grio – customizable rio

grio [ –x 'menu_cmd' ] [ –a 'cmd_argument' ] [ –e ] [ –c background color ] [ –t text color ] [ –u window color ] [ –y active bordercolor ] [ –z bkground bordercolor ] [ –l scrollbar color ] [ –B bkground image ] [ –w border width ]

Rio with hubfs integration, command menu customization, selectable colors. Grio is a modified version of rio(1) All rio options are supported. Integration with hubfs(4) and a user–selectable command is provided via the right mouse button menu. This manpage describes only the new features.

Menu Options
Grio provides an 'exit' command in the right button menu, because it is often run nested. The –e option removes the 'exit' command from the menu. A user–selected command (or /bin/acme by default) is added to the menu via the –x option. The command must include the full path, for instance /bin/stats rather than simply 'stats'. A single argument containing no spaces may be passed with the –a argument option. If the argument is a set of flags, the – needs to be included. For instance, –lems as an argument to stats. The argument may not contain any spaces, and quoting does not enable the use of multi–part arguments.

Color Selection
Most of the colors used by grio are now user–selectable via 8 digit hex codes. See colors(1) to inspect sample colors and their codes. –c colorcode sets the background color. –t textcolor sets the color of text in windows. –u windowcolor sets the color the windows themselves. –y bordercolor sets the color of the border of the currently active window, and –z bordercolor sets the color of the border of the unselected windows. The width of borders is set with an integer parameter to –w borderpixels with 2 as the minimum for visible window borders. If no theming parameters are provided, the appearance defaults to standard.

Background Image
B backimg sets an image for use as the background. The image must be in Plan 9 Image format. You can use the tools such as jpg(1) or png(1) with the –c option to convert other images to Plan 9 format. The image will be tiled to fill the available background space.

Hubfs integration
Another menu option, Hub is present in the right mouse button menu. This provides integration with Hubfs(4) such that after this command is selected, the window swept out will automatically be connected to the hubfs mounted at /n/hubfs. On startup, if there is not already a mounted hubfs at /n/hubfs, grio will launch a new instance of hubfs with the srv file posted at /srv/riohubfs.username. It is often useful to import the /srv of a remote machine and mount a hubfs from it to /n/hubfs prior to starting grio

Start with no exit command in the menu, and the ability to create a subgrio with its windows set to scroll mode. (Windows of hosting grio will not be in scroll mode because the –s option is "consumed" by the –a argument.)
grio –e –x /bin/grio –a –s

Start with a tasteful light purple theme and thin black borders
grio –c 0xffaaffff –y 0 –w 2

Import and mount a hubfs already running on a remote machine for easy use from the menu
rimport kremvax /srv
mount –c /srv/kremhub /n/hubfs

Start with a theme of bold and breathtaking beauty
grio –c 0xff0000ff –u 0x00ccff –y 0x00ff00ff –t 0xffff00ff –z 0xffaa00ff
–w 10 –x /bin/games/catclock –f /lib/font/bit/times/latin1.bold.10.font


It would be nice if the –a argument option could parse and separate multipart arguments.