XCMDMENU(1.6) Talisman User Commands XCMDMENU(1.6)
NAMExcmdmenu - command menu utility for X
SYNOPSISxcmdmenu [-help] [-debug] [-ghost|-noghost]
[-boxed|-paned] [-oneshot|-persist] [filename]
DESCRIPTION
The xcmdmenu program allows the user to run a user-config-
ured 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 com-
ments 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, where-
after 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 acti-
vated and its command, if any, completed.
-persist
Don't use oneshot, that is, the menu persists until
explicitly exited (the default).
xcmdmenu will also accept the standard X Toolkit options;
see the xterm(1) manual page, subsection RESOURCES.
X11R6 31 May 1994 1
XCMDMENU(1.6) Talisman User Commands XCMDMENU(1.6)
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 gen-
erally show up in the xterm(1) from which it was invoked.
Hence the parent terminal is often used as a display win-
dow 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 par-
ticular 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) ()
( ( \) ) ) () a test label showing parens
() ()
(Clear) (clear &)
(Make) (make &)
(Edit File) (${EDITOR} `ifc .` &) InterViews only
(Run a.out) (a.out &) execute
X11R6 31 May 1994 2
XCMDMENU(1.6) Talisman User Commands XCMDMENU(1.6)
(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 RESOURCESxcmdmenu 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.
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
X11R6 31 May 1994 3
XCMDMENU(1.6) Talisman User Commands XCMDMENU(1.6)
xcmdmenu.
~/.xcmdmenu User-specific configuration file to be
read by xcmdmenu when a directory-spe-
cific configuration file is not avail-
able.
<X11LibDir>/xcmdmenu.cfg
Default configuration file to be read
by xcmdmenu when no other appropriate
file is available.
SEE ALSOX(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 irrevoca-
ble, 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
X11R6 31 May 1994 4