Create a menu to run commands
ratmenu [ -display displayname ] [ -font fname ] [ -fg foreground-color ] [ -bg background-color ] [ -io item-offset ] [ -label name ] [ -shell prog ] [ -align {left|center|right} ] [ -style {snazzy|dreary} ] [ -persist ] [ -version ] [ menuitemcommand ] ...
ratmenu is a simple program that accepts a list of menu item and command pairs on the command line. It creates a window that consists of nothing but a menu. When a particular item is selected, the corresponding command is executed.
ratmenu does not recognize any usage of the rodent. It is entirely keystroke operated.
Menu items must be followed by a command. The syntax is based on that of the dialog program.
ratmenu accepts the following command line options.
-display displayname
Use the X display displayname, instead of the default display.
-font fname
(X Resource: font) Use the font fname, instead of the default font.
-label name
Change both the window and icon labels of the window to name. The default label is the last component of the path used to run ratmenu, typically, ratmenu.
-fg foreground-color
(X Resource: fgcolor) Set the foreground color to foreground-color. By default, the foreground color is black.
-bg background-color
(X Resource: bgcolor) Set the background color to background-color. By default, the background color is white.
-io item-offset
Set the first selected item to item-offset. By default, the first item is the top-most one, or item-offset 1. The next item down would be at item-offset 2.
-style {snazzy|dreary}
(X Resource: style) The default style is snazzy, where the highlight bar, which shows the currently selected item, remains stationary while all the menu items are rotated up or down when the cursor keys are moved. In dreary mode, the highlight bar moves up and down the menu as it does on all conventional keyboard controlled menus.
-align {left|center|right}
(X Resource: align) Align the text of the menu entries to the left, right, or center. Defaults to left. This is different from 9menu, which defaults to center.
-shell prog
Use prog as the shell to run commands, instead of /bin/sh. A popular alternative shell is rc(1). If the shell cannot be executed, ratmenu will silently fall back to using /bin/sh.
-back prevmenu
prevmenu is a command or shell script to run when the back key is pressed, usually a script that has ratmenu showing the previous menu. Used to create nested menus, it gives the user a way to back out and return to the previous menu. Note that you can use this option for other things too. The command specified by the -back option is executed when the user hits one of the "back" keys.
-persist
(X Resource: persist) Ordinarily, ratmenu exits if a new window pops up on top of it, or if you switch to another window. This option tells ratmenu to hang around, like a regular window.
-version
This option prints the version of ratmenu on the standard output, and then exits with an exit value of zero.
The Up keystrokes move the selection to the next item up. The Down keystrokes move the selection to the next item down. When the selection reaches the top or bottom, it scrolls around to the other side on pressing of the appropriate keystroke. The Select keystrokes execute the command corresponding to the currently selected menu item, and exit ratmenu. The Exit keystrokes quit ratmenu without doing anything.
Up
'k', Up_arrow, BackSpace, '-', C-p
Down
'j', Down_arrow, Space, Tab, '+', C-n, C-i
Select
'l', Right_arrow, Return, C-f, C-m, C-j
Back
'h', Left_arrow, C-b
Exit
'q', Escape, C-g
You can configure some items using xrdb to load appropriate X resources. There is an example configuration in the file /usr/share/doc/ratmenu/Xresources.ratmenu which shows all possible configuration items. Give it a look; it is fairly easy to figure out.
ratmenu -label "Remotes xterm" acme "rsh acme xterm" herman "rsh herman 9term" & ratmenu -label 'X progs' ghostview ghostview xdvi xdvi xeyes xeyes xneko xneko & ratmenu -back ~/bin/mypreviousmenu "X Eyes" xeyes &
The initial idea for this program was by Arnold Robbins, after having worked with John Mackin's GWM Blit emulation. Matty Farrow wrote a version using libXg, from which some ideas were borrowed. This code was written by David Hogan and Arnold Robbins. Rich Salz motivated the -shell option. Jonathan Walther modified this code to play nicely with the ratpoison window manager by removing handling of mouse events and iconification. Zrajm C Akfohg made many improvements in his ratmen fork, including X resource handling, some of which were folded back in.