RIO(1) RIO(1)
NAME
rio - rio-like Window Manager for X
SYNOPSIS
rio [ -font fontname ] [ -grey ] [ -s ] [ -term termprog ] [
-version ] [ -virtuals num ] [ exit | restart ]
xshove [ name rectangle ]
DESCRIPTION
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, over-
riding 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 res-
tart.
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
Page 1 Plan 9 (printed 10/29/25)
RIO(1) RIO(1)
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 opera-
tions provided by rio. Releasing button 3 then selects an
operation. At this point, a gunsight or cross cursor indi-
cates that an operation is pending. The button 3 menu oper-
ations 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 cre-
ates the window, and makes it current. Very small
windows may not be created. The new window is cre-
ated 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 par-
tially 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 but-
ton 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
Page 2 Plan 9 (printed 10/29/25)
RIO(1) RIO(1)
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 spe-
cific to rio and can be used with other window managers.
BUGS
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 pro-
gram. (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 win-
dows.
SEE ALSO
9term(1), xterm(1)
As mentioned above, rio is mainly maintenance updates
applied to the original 9wm by David Hogan; see
http://unauthorised.org/dhog/9wm.html.
Page 3 Plan 9 (printed 10/29/25)