XCMDMENU(1.6) X11R6 XCMDMENU(1.6) Talisman User Commands Talisman User Commands 31 May 1994 NAME xcmdmenu - command menu utility for X SYNOPSIS xcmdmenu [-help] [-debug] [-ghost|-noghost] [-boxed|-paned] [-oneshot|-persist] [filename] DESCRIPTION The xcmdmenu program allows the user to run a user-configured command menu on a workstation display running X. Each xcmdmenu is composed of buttons, each of which may be configured to run a shell command using the Bourne shell sh(1). Buttons without associated commands are merely used as labels. OPTIONS The various options may appear in any order: filename A file containing the label/command pairs and comments used to configure an invocation of xcmdmenu. Defaults to .xcmdmenu in the current directory or ~/.xcmdmenu in the home directory if .xcmdmenu is unavailable, or the <X11LibDir>/xcmdmenu.cfg file if neither is available. -help Print a usage message and exit. -ghost Allow each button to be activated only once, whereafter that button will be ghosted to indicate that it is no longer valid. -noghost Don't use ghosting, instead allow multiple use of all command buttons (the default). -boxed Use the boxedWidget to manage the buttons. This causes the buttons to appear in a tray-style arrangement. -paned Use the panedWidget to manage the buttons (the default). This causes the buttons to appear in a single column. -oneshot The menu will exit after the first button is activated and its command, if any, completed. -persist Don't use oneshot, that is, the menu persists until explicitly - 1 - Formatted: December 22, 2024 XCMDMENU(1.6) X11R6 XCMDMENU(1.6) Talisman User Commands Talisman User Commands 31 May 1994 exited (the default). xcmdmenu will also accept the standard X Toolkit options; see the xterm(1) manual page, subsection RESOURCES. USAGE The xcmdmenu has been used to ease project management, to pop up automatically generated menus, and to handle menu hierarchies. It is characterized by small, project- and directory-specific menus, generally run at need rather than from xinit(1) or the like. Output from a particular invocation of xcmdmenu will generally show up in the xterm(1) from which it was invoked. Hence the parent terminal is often used as a display window for ls(1) and make(1) output. The configuration file is composed of labels and commands in parentheses, and comments (any not in parentheses). Nesting of parentheses is observed unless a parenthesis is escaped with a backslash, which itself may be so escaped (see SCRIPTS). All text outside of parentheses is ignored. Parenthesized strings are automatically paired, ignoring newlines. Any label associated with an empty command string is considered to be a text button rather than a title button, and is automatically ghosted. Labels may also be empty strings, and will produce blank text boxes in the resulting menu. EXAMPLES To use the underlying X Toolkit options to select a particular font: xcmdmenu -fn '*sony*24*' Another example using explicit resources: xcmdmenu -xrm '*font: *sony*24*' To get the same effect through an X RESOURCES file, include the following line in your resources file: xcmdmenu*font: *sony*24* SCRIPTS A project menu: Label Command (Title) () - 2 - Formatted: December 22, 2024 XCMDMENU(1.6) X11R6 XCMDMENU(1.6) Talisman User Commands Talisman User Commands 31 May 1994 ( ( \) ) ) () a test label showing parens () () (Clear) (clear &) (Make) (make &) (Edit File) (${EDITOR} `ifc .` &) InterViews only (Run a.out) (a.out &) execute (List) (echo listing ; ls -Flasg &) (Du) (du . &) (Update Menu) (xcmdmenu -debug &) (Time Test) (sleep 5) Generating an audio menu on a Sun SPARC in csh(1): rm .xcmdmenu foreach file ( *.au ) echo -n "(`expr $file : '\(.*\).au'`)" >> .xcmdmenu echo "(cat $file > /dev/audio)" >> .xcmdmenu end xcmdmenu -boxed & Generating an audio menu on a Sun SPARC in sh(1): for file in *.au do echo -n "(`expr $file : '\(.*\).au'`)" echo "(cat $file > /dev/audio)" done > .xcmdmenu xcmdmenu -boxed & X RESOURCES xcmdmenu uses the following X resources: paned (class Paned) Indicates whether to use the panedWidget. Defaults to true. If false, the boxedWidget is used instead. ghost (class Ghost) Indicates whether buttons are to be ghosted after selection. Defaults to false. debug (class Debug) Whether or not to do debugging. Defaults to false. oneshot (class Oneshot) Determines whether the menu exits after first button activation. Defaults to false. - 3 - Formatted: December 22, 2024 XCMDMENU(1.6) X11R6 XCMDMENU(1.6) Talisman User Commands Talisman User Commands 31 May 1994 xcmdmenu also uses the resources of its subwidgets, including the commandWidget, panedWidget, boxWidget, and textWidget. FILES .xcmdmenu The usual configuration file (in the current dir) for an invocation of xcmdmenu. ~/.xcmdmenu User-specific configuration file to be read by xcmdmenu when a directory-specific configuration file is not available. <X11LibDir>/xcmdmenu.cfg Default configuration file to be read by xcmdmenu when no other appropriate file is available. SEE ALSO X(1), xinit(1), sh(1), system(3) BUGS Probably. COPYRIGHT Copyright (c) 1993, 1994 Christopher Alexander North-Keys The X Consortium, and any party obtaining a copy of these files from the X Consortium, directly or indirectly, is granted, free of charge, a full and unrestricted irrevocable, world-wide, paid up, royalty- free, nonexclusive right and license to deal in this software and documentation files (the "Software"), including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons who receive copies from any such party to do so. This license includes without limitation a license to do the foregoing actions under any patents of the party supplying this software to the X Consortium. AUTHOR Christopher Alexander North-Keys <erlkonig@gnu.ai.mit.edu> Director/Instructor of OS and Software Design RDA Computer Training NOTES The xcmdmenu program was produced under the auspices of Group Talisman - 4 - Formatted: December 22, 2024