rio – rio-like Window Manager for X

rio [ –font fontname ] [ –grey ] [ –s ] [ –term termprog ] [ –version ] [ –virtuals num ] [ exit | restart ]
xshove [ name rectangle ]

Rio is a window manager for X which attempts to emulate the window management policies of Plan 9’s rio window manager. Rio is derived from David Hogan’s 9wm.
The –grey option makes the background stippled grey, the default X11 background, instead of solid grey, the Plan 9 background.
The –font option sets the font in rio’s menu to fname, overriding the default. Unlike the other programs in the Plan 9 ports, rio expects this font to be an X11 font rather than a Plan 9 font.
The –term option specifies an alternative program to run when the New menu item is selected. The default is to try 9term(1) and then to fall back to xterm(1). The –s option has no effect. It formerly set the scrolling mode for new windows and is recognized to avoid breaking scripts. See 9term(1) for a description of scrolling behavior.
The –version option prints the current version on standard error, then exits.
The –virtuals option sets the number of virtual screens (the default is 1, and the maximum is 12).
If the argument exit or restart is given, it is sent to an already-running rio, causing the extant rio to exit or restart.

Using rio
One window is current, and is indicated with a dark border and text; characters typed on the keyboard are available in the /dev/cons file of the process in the current window. Characters written on /dev/cons appear asynchronously in the associated window whether or not the window is current.
Windows are created, deleted and rearranged using the mouse. Clicking (pressing and releasing) mouse button 1 in a non-current window makes that window current and brings it in front of any windows that happen to be overlapping it. When the mouse cursor points to the background area or is in a window that has not claimed the mouse for its own use, pressing mouse button 3 activates a menu of window operations provided by rio. Releasing button 3 then selects an operation. At this point, a gunsight or cross cursor indicates that an operation is pending. The button 3 menu operations are:
New     Create a window. Press button 3 where one corner of the new rectangle should appear (cross cursor), and move the mouse, while holding down button 3, to the diagonally opposite corner. Releasing button 3 creates the window, and makes it current. Very small windows may not be created. The new window is created running termprog, by
default 9term(1) or, if 9term is not available, xterm(1).
Resize   Change the size and location of a window. First click button 3 in the window to be changed (gunsight cursor). Then sweep out a window as for the New operation. The window is made current.
Move    Move a window to another location. After pressing and holding button 3 over the window to be moved (gunsight cursor), indicate the new position by dragging the rectangle to the new location. The window is made current. Windows may be moved partially off-screen.
Delete   Delete a window. Click in the window to be deleted (gunsight cursor). Deleting a window causes a hangup note to be sent to all processes in the window’s process group (see notify(3)).
Hide    Hide a window. Click in the window to be hidden (gunsight cursor); it will be moved off-screen. Each hidden window is given a menu entry in the button 3 menu according to its current window system label.
label    Restore a hidden window.
Windows may also be arranged by dragging their borders. Pressing button 1 or 2 over a window’s border allows one to move the corresponding edge or corner, while button 3 moves the whole window.
When the mouse cursor points to the background area and rio has been started with multiple virtual screens using the –virtuals option, clicking button 2 brings up a menu to select a virtual screen to view. Scrolling the mouse wheel while the cursor points at the background will cycle through the virtual screens.
Xshove moves or resizes every window whose X11 class or instance strings contain name. The rectangle argument can be widthxheight, widthxheight@xmin,xmax, or xmin,ymin,xmax,ymax. A leading + or causes the rectangle to be interpreted as a delta: +10,0 nudges a window to the right, while +100x100 grows a window. With no arguments, xshove lists all the current X windows. Xshove is not specific to rio and can be used with other window managers.

In Plan 9’s rio, clicking button 2 or button 3 to select a window also sends that event to the window itself. This rio does not.
The command-line syntax is non-standard.
In Plan 9’s rio, newly started applications take over the current window. This rio starts a new window for each program. (In X11, it appears to be impossible to know which window starts a particular program.)
There is a currently a compiled-in limit of 128 hidden windows.

9term(1), xterm(1)
As mentioned above, rio is mainly maintenance updates applied to the original 9wm by David Hogan; see

Space Glenda