ryudo with a terminal centered after keyboard spawn, editing its own source code in micro yudo showing off some pseudo-tiling goodness ryudo in old-school floating style

Neat projects often emerge where you least expect. After trying to use rio from plan9port in combination with my wmctrl script qwopTiler, I was a bit saddened when I realized that they wouldn't gel, since rio is not Extended-Window-Management-Hints (EWMH) compliant and much of the functionality of wmctrl depends on the EWMH.

But all was not lost, as the features I wanted were simple, as is the source of rio. So ryudo was born.

Building on top of nice features from rio like the sweep-to-resize and slick menu system, ryudo adds keyboard shortcuts for all your typical window management operations like hide, unhide, maximize, and close, as well as keybinds for quick window snapping just like was implemented in qwopTiler, and an extra feature to launch a centered terminal with a keyboard shortcut.

Other features include better logic for focusing and placing new windows, sticky/omnipresent windows, notification integration for desktop switching, configurable autostick windows (to make a kind of panel or dashboard with, eg, xosview + xclock), and configurable always-draw windows (ie, always draw their geometry with the mouse on spawn as if they were a terminal window created with the 'New' menu command).

All the settings are together in the config.h file, so changing the settings doesn't require one to hunt in the source for them. Other minor features were the re-enabling of the -ffm (focus-follows-mouse) runtime option and the final cutting of long window names in the hidden window list to 23 characters max (plus a '~' symbol to signify that it is truncated).

Some caveats inherited from the rio and 9wm code are a lack of partial alpha support, (which means a tool like transset needs to be used to acheive window translucency -- not a terrible setback), and a lack of click-to-raise behavior in focus-follows-mouse mode. The biggest drawback currently is a lack of proper multimonitor support.

In all, ryudo has proven in my usage so far to be extremely lightweight and usable, supporting keyboard and mouse control depending on preference. The multimonitor support issue is a dealbreaker for some, but in many situations is a non-issue. If you like rio or 9wm and want a little more versatility, give ryudo a try! If you have experience in C and/or X11 programming and want to improve ryudo, hack away -- the source is free for all.