- C 93.6%
- Roff 5.2%
- Makefile 0.6%
- Shell 0.6%
| screenshots | ||
| showevent | ||
| .clang-format | ||
| .gitignore | ||
| build.sh | ||
| client.c | ||
| color.c | ||
| config.def.h | ||
| cursor.c | ||
| dat.h | ||
| error.c | ||
| event.c | ||
| fns.h | ||
| grab.c | ||
| install.sh | ||
| key.c | ||
| LICENSE | ||
| main.c | ||
| manage.c | ||
| menu.c | ||
| mkfile | ||
| mkriorules.sh | ||
| monitor.c | ||
| patchlevel.h | ||
| printevent.c | ||
| printevent.h | ||
| README.md | ||
| README.rio | ||
| rio.c | ||
| ryudo.1 | ||
| ryudo.1.html | ||
| ryudo.1.md | ||
| ryudo.desktop | ||
| ryudo.log | ||
| startryudo | ||
| xevents.c | ||
| xshove.c | ||
RYUDO
the minimalist floatiling window manager that flows
-- Iris Lightshard nilix@nilfm.cc 2019 --
About
ryudo is a fork of Russ Cox's rio, itself a fork of David Hogan's 9wm.
The primary additions I've made are:
- Explicit list of eligible terminal programs in
config.h urxvtis the default terminal emulator (still tries9termand thenxtermif no dice)- Window spawning behavior has been made more natural -- windows shouldn't spawn partially offscreen like with
rio - Customizable colors, borders, fonts, gaps, and keybinds in
config.h - Multimonitor support via
Xrandr - Default keybindings:
- New Terminal: Super+Slash
- Switch Windows: Alt-Tab
- Switch to Window on the next monitor: Alt-Shift-Tab
- Destroy: Super+D
- Iconify: Super+I
- Uniconify: Super+U
- Maximize: Super+M
- moVe: Super+V
- Reshape: Super+R
- wrAngle: Super+A
- Stick: Super+S
- Snap Left: Super+H
- Snap Right: Super+L
- Snap Top: Super+K
- Snap Bottom: Super+J
- Snap Top-Left: Super+Q
- Snap Bottom-Left: Super+W
- Snap Bottom-Right: Super+O
- Snap Top-Right: Super+P
- Snap Big Center: Super+C
- Snap Floating Center: Super+Shift+C
- Virtual Desk++: Super+Right
- Virtual Desk—: Super+Left
- Other new features customizable by
config.h:- Show/hide 'Stick' Button3 menuitem
AUTOSTICKlist of windows to spawn sticky by default and not focus (pseudo-panel/dock windows)TRANSPARENTLISTof window classes to be rendered with partial transparency (and corresponding OPACITY setting)- Optionally notify with
notify-sendwhich desktop is switched to (I use it withdunst) - Gaps for pseudo-tiling
- Option to swap the keyboard shortcuts between "Snap Big Center" and "Snap Floating Center" (and the preferred behavior for terminals launched by keyboard)
- Focus model for new windows in multimonitor setup (follow mouse or follow active window)
The name "Ryudo" is a nod to "Rio" and a Japanese word for "flow."
Using ryudo should feel very natural -- you can do things with keyboard or
mouse depending on the situation. Terminal launching can be done with mouse
using the popup menu, or using the keyboard, which will spawn a terminal
window centered (its exact geometry is configurable via config.h).
Dependencies, Building, Installation
Running and building require the following:
- a full
plan9portinstallation libX11and development headerslibXTand development headerslibXrandrand development headerslibnotifyand development headers
Build with build.sh (calls mk and does some other magic), and install with install.sh (will install to a local folder if run as a normal user, or to your $PLAN9/bin/ plus session wrapper in /usr/bin and .desktop file in /usr/share/xsessions/ if run as root).
If you have trouble building, you might need to edit the mkfile at line 2 to point to the proper location of your plan9port's mkwsysrules.sh, or edit the compiler flags (CFLAGS) linker flags (LDFLAGS) to point to your libraries' real location.
Bugs and Caveats
Of the bugs and caveats not already mentioned in rio's README:
- Compositing rules in picom are ignored in favor of the ones in config.h.
- Switching back and forth between virtual desktops very quickly can cause some windows to glitch out, lose their parent (border), and become unfocusable.
- Some applications that render fullscreen or dedicated OSD windows (Virtualbox, Zoom, etc) will need to be manually maximized to fix their alignment (in the former case) or otherwise misbehave.
- Probably more!
License and Legacy
ryudo is distributed under the 9wm license.
The original README from rio, (which contains the original README from 9wm) is in this repository. See README.rio