4.3BSD-UWisc/man/mann/xshell.n

.TH XSHELL 1 "31 October 1985" "X Version 10"
.SH NAME
xshell - X Window System, key/button command exec
.SH SYNOPSIS
.B xshell
[ \fIoptions\fP ] [ \fIhost\fP:\fIdisplay\fP ] ...
.SH DESCRIPTION
.I Xshell
is a program for starting up X applications with a single key or button
stroke.  It displays a scallop shell icon in which button and key
presses stand for different commands.  The user can bind a command string
to any key or button by inserting a line like the following in his or her 
\fI.Xdefaults\fP file:
.PP
.nf
    xshell.action.keyname:   command to be exec'ed
.fi
.PP
Keynames are simply letters, numbers, and symbols as they appear on the
keyboard (e.g. a, $, 9), or one of the following special names (taken from 
the X keyboard definitions):
.PP
.nf
    KEYPAD0              FUNC1            E1
    KEYPAD.              FUNC2            E2
    ENTER                FUNC3            E3
    KEYPAD1              FUNC4            E4
    KEYPAD2              FUNC5            E5
    KEYPAD3              FUNC6            E6
    KEYPAD4              FUNC7            LEFTARROW
    KEYPAD5              FUNC8            RIGHTARROW
    KEYPAD6              FUNC9            DOWNARROW
    KEYPAD,              FUNC10           UPARROW
    KEYPAD7              FUNC11           SHIFT
    KEYPAD8              FUNC12           CONTROL
    KEYPAD9              FUNC13           LOCK
    KEYPAD-              FUNC14           SYMBOL
    PF1                  FUNC15
    PF2                  FUNC16
    PF3                  FUNC17
    PF4                  FUNC18
    LEFTBUTTON           FUNC19
    MIDDLEBUTTON         FUNC29
    RIGHTBUTTON

.fi
.PP
Thus, the following `.Xdefaults' definitions specify that the Left Button
will spawn a terminal window, the Middle Button an editor, the Right Button
a calculator, $ a Bourne shell, and # a superuser shell:
.PP
.nf
    xshell.action.LeftButton:       xterm =80x65-0+0 -fn 6x10
    xshell.action.MiddleButton:     xted =80x65+0-0 
    xshell.action.RightButton:      xterm =20x20-0-0 -fn 6x10 -e dc
    xshell.action.$:                xterm =80x65+0+0 -fn 6x10 -e sh
    xshell.action.#:                xterm =80x65+0+0 -fn 6x10 -e su
.fi
.PP
.I Xshell
breaks the command string up into words by removing all white space (i.e.
tabs and spaces) and uses the vfork() and execvp() system calls to spawn
off the command.  A more complicated parsing algorithm could easily be
added, but the current method is adequate (and fast and memory efficient).
.PP
One thing to keep in mind is that 
.I xshell
is NOT a window manager.  It was written to make popping up frequently used
utilities as painless as possible (how many times have you found that you
need just 1 more window....).  It might make a nice addition to some of
the more verbose window managers, but it runs quite nicely as a separate
program.

.SH ARGUMENTS
.PP
.I Xshell
is designed to be somewhat compatible with 
.I xclock
in the arguments that it takes.  However, 
.I xshell 
will allow you to abbreviate its longer flags to any length you chose.  Thus,
the \-reverse flag can be spelled out, given as \-rev, or even just \-r:
.PP
.TP 10
.B \-fg \fIcolor\fP
On color displays, determines the color of the foreground.
.PP
.TP 10
.B \-bg \fIcolor\fP
On color displays, determines the color of the background.
.PP
.TP 10
.B \-bd \fIcolor\fP
On color displays, determines the color of the border.
.PP
.TP 10
.B \-bw \fIpixels\fP
Specify the width in pixels of the border around the
.I xshell
window.
.PP
.TP 10
.B \-v\[olume\] \fIn\fP
Volume for calls to \fIXFeep\fP, used when errors (such as unbound key) are found.
.PP
.TP 10
.B \-f\[lash\] \fIn\fP
Number of times to flash the shell window to acknowledge a button or key press.
.PP
.TP 10
.B \-d\[elay\] \fIn\fP
One-hundredths of a second to wait between flashs (default is 5).
.PP
.TP 10
.B \-r\[everse\]
Reverse video (swap foreground and background).
.PP
.TP 10
.B \-q\[uiet\]
Do not `feep' on errors (see volume).
.PP
.TP 10
.B \-s\[mall\]
Use a smaller (48x48) version of the shell icon.  The default icon is 96x96.
.PP
.TP 10
.B =\fIgeometry\fP
By default 
.I xshell
will create a window the size of whatever icon you select; the standard X
window geometry argument will override this.
See \fIX(1)\fP for details.
.PP
.TP 10
.B \fIhost\fP:\fIdisplay\fP
specifies the display on which to put the
.I xshell
window.  This overrides the DISPLAY environment variable.

.SH X DEFAULTS
.PP
To make invoking 
.I xshell
easier, each of the flags listed above may be specified in the user's
\fI.Xdefaults\fP file:
.PP
.TP 10
.B Foreground
gives the foreground color.
.PP
.TP 10
.B Background
gives the background color.
.PP
.TP 10
.B Border
gives the border color.
.PP
.TP 10
.B BorderWidth
gives the border width.
.PP
.TP 10
.B ReverseVideo
if "on", the shell icon should be white on black instead of black on white.
.PP
.TP 10
.B Volume
gives the volume to use in calls to XFeep().
.PP
.TP 10
.B Flash
gives the number of times to flash the shell window to acknowledge key or
button presses.
.PP
.TP 10
.B Delay
gives hundredths of a second to wait in between flashes.
.PP
.TP 10
.B Quiet
prevents 
.I xshell
from feeping at you when you mistype.
.PP
.TP 10
.B IconSize
if "small", a halfsize (48x48) version of the scallopshell is used.
.PP
.TP 10
.B WindowGeometry
gives the shell window size using standard X =WxH+X+Y notation.

.SH ENVIRONMENT
.PP
.PP
.TP 10
.B DISPLAY
To get the default host and display number.

.SH SEE ALSO
xwm(1), xnwm(1), X(1), execl(3), vfork(2)
.SH DIAGNOSTICS
If 
.B \-quiet
is not given on the command line or
``xshell.Quiet: on''
does not appear in the user's \fI.Xdefaults\fP,
.I xshell
will `feep' if a key or button is pressed for which there is no definition
in the \fI.Xdefaults\fP file.
.SH AUTHOR
.PP
Copyright 1985, Cognition Inc.
.PP
Jim Fulton (Cognition Inc.)
.SH BUGS
.I Xshell
uses the XGetDefault call to fetch the command string for a given key.  Thus,
you cannot bind the colon (``:'') character to a command.
.PP
A more `user-friendly' interface could include dialog boxes that the user
could pop up to type in a command directly so that a full shell doesn't have
to be started.  Then again, it is nice and compact now and if you really 
need to do that more than once you should use a real shell.
.PP
This program along with
\fIxwm(1)\fP and \fIxnwm\fP have been mostly superceded by \fIuwm(1)\fP.