corresponds to one of the parameters
set by the title modes control sequence: Set window/icon labels using hexadecimal
Query window/icon labels using hexadecimal Set window/icon labels using
UTF-8 (overrides utf8Title resource).
Query window/icon labels using UTF-8
- translations (class Translations)
- Specifies the key and button bindings
for menus, selections, ``programmed strings'', etc. The translations resource,
which provides much of xterm's configurability, is a feature of the X Toolkit
Intrinsics library (Xt). See the ACTIONS section.
- trimSelection (class TrimSelection)
- If you set highlightSelection, you can see the text which is selected,
including any trailing spaces. Clearing the screen (or a line) resets it
to a state containing no spaces. Some lines may contain trailing spaces
when an application writes them to the screen. However, you may not wish
to paste lines with trailing spaces. If this resource is true, xterm will
trim trailing spaces from text which is selected. It does not affect spaces
which result in a wrapped line, nor will it trim the trailing newline from
your selection. The default is ``false''.
- underLine (class UnderLine)
- This specifies
whether or not text with the underline attribute should be underlined. It
may be desirable to disable underlining when color is being used for the
underline attribute. The default is ``true''.
- useClipping (class UseClipping)
- Tell xterm whether to use clipping to keep from producing dots outside
the text drawing area. Originally used to work around for overstriking effects,
this is also needed to work with some incorrectly-sized fonts. The default
is ``true''.
- utf8 (class Utf8)
- This specifies whether xterm will run in UTF-8
mode. If you set this resource, xterm also sets the wideChars resource as
a side-effect. The resource can be set via the menu entry ``UTF-8 Encoding''. The
default is ``default''.
- Xterm accepts either a keyword (ignoring case)
- or the
number shown in parentheses:
- false (0)
- UTF-8 mode is initially off. The command-line
option +u8 sets the resource to this value. Escape sequences for turning
UTF-8 mode on/off are allowed.
- true (1)
- UTF-8 mode is initially on. Escape
sequences for turning UTF-8 mode on/off are allowed.
- always (2)
- The command-line
option -u8 sets the resource to this value. Escape sequences for turning
UTF-8 mode on/off are ignored.
- default (3)
- This is the default value of the
resource. It is changed during initialization depending on whether the locale
resource was set, to false (0) or always (2)
. See the locale resource for
additional discussion of non-UTF-8 locales.
- If you want to set the value of
utf8, it should be in this range.
- Other nonzero values are treated the same
as ``1'', i.e., UTF-8 mode is initially on, and escape sequences for turning UTF-8
mode on/off are allowed.
- utf8Fonts (class Utf8Fonts)
- See the discussion
of the locale resource. This specifies whether xterm will use UTF-8 fonts
specified via resource patterns such as ``*vt100.utf8Fonts.font'' or normal (ISO-8859-1)
fonts via patterns such as ``*vt100.font''. The resource can be set via the menu
entry ``UTF-8 Fonts''. The default is ``default''.
- Xterm accepts either a keyword
(ignoring case)
- or the number shown in parentheses:
- false (0)
- Use the ISO-8859-1
fonts. The menu entry is enabled, allowing the choice of fonts to be changed
at runtime.
- true (1)
- Use the UTF-8 fonts. The menu entry is enabled, allowing
the choice of fonts to be changed at runtime.
- always (2)
- Always use the
UTF-8 fonts. This also disables the menu entry.
- default (3)
- At startup, the
resource is set to true or false, according to the effective value of the
utf8 resource.
- utf8Latin1 (class Utf8Latin1)
- If true, allow an ISO-8859-1
normal font to be combined with an ISO-10646-1 font if the latter is given
via the -fw option or its corresponding resource value. The default is ``false''.
- utf8SelectTypes (class Utf8SelectTypes)
- Override xterm's default selection
target list (see SELECT/PASTE) for selections in wide-character (UTF-8) mode.
The default is an empty string, i.e., ``'', which does not override anything.
- utf8Title (class Utf8Title)
- Applications can set xterm's title by writing
a control sequence. Normally this control sequence follows the VT220 convention,
which encodes the string in ISO-8859-1 and allows for an 8-bit string terminator.
If xterm is started in a UTF-8 locale, it translates the ISO-8859-1 string
to UTF-8 to work with the X libraries which assume the string is UTF-8.
- However,
some users may wish to write a title string encoded in UTF-8.
- The window
manager is responsible for drawing window titles. Some window managers (not
all) support UTF-8 encoding of window titles. Set this resource to ``true'' to
allow UTF-8 encoded title strings. That cancels the translation to UTF-8,
allowing UTF-8 strings to be displayed as is.
- This feature is available as
a menu entry, since it is related to
- the particular applications you are
running within xterm. You can also use a control sequence (see the discussion
of ``Title Modes'' in the control sequences document), to set an equivalent
flag. The titleModes resource sets the same value, which overrides this
resource.
- The default is ``false''.
- veryBoldColors (class VeryBoldColors)
- Specifies
whether to combine video attributes with colors specified by colorBD, colorBL,
colorIT, colorRV, and colorUL. The resource value is the sum of values for
each attribute:
1 for reverse,
2 for underline,
4 for bold,
8 for blink, and
512 for italic
- The default is ``0''.
- visualBell (class VisualBell)
- Specifies whether or not
a visible bell (i.e., flashing) should be used instead of an audible bell
when Control-G is received. The default is ``false'', which tells xterm to use
an audible bell.
- visualBellDelay (class VisualBellDelay)
- Number of milliseconds
to delay when displaying a visual bell. Default is 100. If set to zero, no
visual bell is displayed. This is useful for very slow displays, e.g., an
LCD display on a laptop.
- visualBellLine (class VisualBellLine)
- Specifies
whether to flash only the current line when displaying a visual bell rather
than flashing the entire screen: The default is ``false'', which tells xterm
to flash the entire screen.
- vt100Graphics (class VT100Graphics)
- This specifies
whether xterm will interpret VT100 graphic character escape sequences while
in UTF-8 mode. The default is ``true'', to provide support for various legacy
applications.
- wideBoldFont (class WideBoldFont)
- This option specifies the
font to be used for displaying bold wide text. By default, it will attempt
to use a font twice as wide as the font that will be used to draw bold
text. If no double-width font is found, it will improvise, by stretching
the bold font.
- wideChars (class WideChars)
- Specifies if xterm should respond
to control sequences that process 16-bit characters. The default is ``false''.
- wideFont (class WideFont)
- This option specifies the font to be used for
displaying wide text. By default, it will attempt to use a font twice as
wide as the font that will be used to draw normal text. If no double-width
font is found, it will improvise, by stretching the normal font.
- ximFont
(class XimFont)
- This option specifies the font to be used for displaying
the preedit string in the ``OverTheSpot'' input method.
- In ``OverTheSpot'' preedit
type, the preedit (preconversion)
- string is displayed at the position of
the cursor. It is the XIM server's responsibility to display the preedit
string. The XIM client must inform the XIM server of the cursor position.
For best results, the preedit string must be displayed with a proper font.
Therefore, xterm informs the XIM server of the proper font. The font is
be supplied by a "fontset", whose default value is ``*''. This matches every
font, the X library automatically chooses fonts with proper charsets. The
ximFont resource is provided to override this default font setting.
The following resources are specified as part of the tek4014
widget (class Tek4014). These are specified by patterns such as ``__default_class__.tek4014.NAME'':
- font2 (class Font)
- Specifies font number 2 to use in the Tektronix window.
- font3 (class Font)
- Specifies font number 3 to use in the Tektronix window.
- fontLarge (class Font)
- Specifies the large font to use in the Tektronix
window.
- fontSmall (class Font)
- Specifies the small font to use in the Tektronix
window.
- ginTerminator (class GinTerminator)
- Specifies what character(s)
should follow a GIN report or status report. The possibilities are ``none'',
which sends no terminating characters, ``CRonly'', which sends CR, and ``CR&EOT'',
which sends both CR and EOT. The default is ``none''.
- height (class Height)
- Specifies
the height of the Tektronix window in pixels.
- initialFont (class InitialFont)
- Specifies which of the four Tektronix fonts to use initially. Values are
the same as for the set-tek-text action. The default is ``large''.
- width (class
Width)
- Specifies the width of the Tektronix window in pixels.
The
resources that may be specified for the various menus are described in
the documentation for the Athena SimpleMenu widget. The name and classes
of the entries in each of the menus are listed below. Resources named ``lineN''
where N is a number are separators with class SmeLine.
As with all X resource-based
widgets, the labels mentioned are customary defaults for the application.
The Main Options menu (widget name mainMenu) has the following entries:
- toolbar (class SmeBSB)
- This entry invokes the set-toolbar(toggle) action.
- securekbd (class SmeBSB)
- This entry invokes the secure() action.
- allowsends
(class SmeBSB)
- This entry invokes the allow-send-events(toggle) action.
- redraw
(class SmeBSB)
- This entry invokes the redraw() action.
- logging (class SmeBSB)
- This entry invokes the logging(toggle) action.
- print-immediate (class SmeBSB)
- This entry invokes the print-immediate() action.
- print-on-error (class SmeBSB)
- This entry invokes the print-on-error() action.
- print (class SmeBSB)
- This
entry invokes the print() action.
- print-redir (class SmeBSB)
- This entry invokes
the print-redir() action.
- 8-bit-control (class SmeBSB)
- This entry invokes the
set-8-bit-control(toggle) action.
- backarrow key (class SmeBSB)
- This entry invokes
the set-backarrow(toggle) action.
- num-lock (class SmeBSB)
- This entry invokes
the set-num-lock(toggle) action.
- alt-esc (class SmeBSB)
- This entry invokes
the alt-sends-escape(toggle) action.
- meta-esc (class SmeBSB)
- This entry invokes
the meta-sends-escape(toggle) action.
- delete-is-del (class SmeBSB)
- This entry
invokes the delete-is-del(toggle) action.
- oldFunctionKeys (class SmeBSB)
- This
entry invokes the old-function-keys(toggle) action.
- hpFunctionKeys (class
SmeBSB)
- This entry invokes the hp-function-keys(toggle) action.
- scoFunctionKeys
(class SmeBSB)
- This entry invokes the sco-function-keys(toggle) action.
- sunFunctionKeys
(class SmeBSB)
- This entry invokes the sun-function-keys(toggle) action.
- sunKeyboard
(class SmeBSB)
- This entry invokes the sunKeyboard(toggle) action.
- suspend
(class SmeBSB)
- This entry invokes the send-signal(tstp) action on systems
that support job control.
- continue (class SmeBSB)
- This entry invokes the
send-signal(cont) action on systems that support job control.
- interrupt (class
SmeBSB)
- This entry invokes the send-signal(int) action.
- hangup (class SmeBSB)
- This entry invokes the send-signal(hup) action.
- terminate (class SmeBSB)
- This entry invokes the send-signal(term) action.
- kill (class SmeBSB)
- This
entry invokes the send-signal(kill) action.
- quit (class SmeBSB)
- This entry
invokes the quit() action.
The VT Options menu (widget name vtMenu) has
the following entries:
- scrollbar (class SmeBSB)
- This entry invokes the
set-scrollbar(toggle) action.
- jumpscroll (class SmeBSB)
- This entry invokes
the set-jumpscroll(toggle) action.
- reversevideo (class SmeBSB)
- This entry
invokes the set-reverse-video(toggle) action.
- autowrap (class SmeBSB)
- This
entry invokes the set-autowrap(toggle) action.
- reversewrap (class SmeBSB)
- This entry invokes the set-reversewrap(toggle) action.
- autolinefeed (class
SmeBSB)
- This entry invokes the set-autolinefeed(toggle) action.
- appcursor
(class SmeBSB)
- This entry invokes the set-appcursor(toggle) action.
- appkeypad
(class SmeBSB)
- This entry invokes the set-appkeypad(toggle) action.
- scrollkey
(class SmeBSB)
- This entry invokes the set-scroll-on-key(toggle) action.
- scrollttyoutput
(class SmeBSB)
- This entry invokes the set-scroll-on-tty-output(toggle) action.
- allow132 (class SmeBSB)
- This entry invokes the set-allow132(toggle) action.
- cursesemul (class SmeBSB)
- This entry invokes the set-cursesemul(toggle)
action.
- visualbell (class SmeBSB)
- This entry invokes the set-visualbell(toggle)
action.
- bellIsUrgent (class SmeBSB)
- This entry invokes the set-bellIsUrgent(toggle)
action.
- poponbell (class SmeBSB)
- This entry invokes the set-poponbell(toggle)
action.
- cursorblink (class SmeBSB)
- This entry invokes the set-cursorblink(toggle)
action.
- titeInhibit (class SmeBSB)
- This entry invokes the set-titeInhibit(toggle)
action.
- activeicon (class SmeBSB)
- This entry toggles active icons on and
off if this feature was compiled into xterm. It is enabled only if xterm
was started with the command line option +ai or the activeIcon resource
is set to ``true''.
- softreset (class SmeBSB)
- This entry invokes the soft-reset()
action.
- hardreset (class SmeBSB)
- This entry invokes the hard-reset() action.
- clearsavedlines (class SmeBSB)
- This entry invokes the clear-saved-lines()
action.
- tekshow (class SmeBSB)
- This entry invokes the set-visibility(tek,toggle)
action.
- tekmode (class SmeBSB)
- This entry invokes the set-terminal-type(tek)
action.
- vthide (class SmeBSB)
- This entry invokes the set-visibility(vt,off)
action.
- altscreen (class SmeBSB)
- This entry invokes the set-altscreen(toggle)
action.
- sixelScrolling (class SmeBSB)
- This entry invokes the set-sixel-scrolling(toggle)
action.
The VT Fonts menu (widget name fontMenu) has the following entries:
- fontdefault (class SmeBSB)
- This entry invokes the set-vt-font(d) action,
setting the font using the font (default) resource, e.g., ``Default'' in the
menu.
- font1 (class SmeBSB)
- This entry invokes the set-vt-font(1)
action, setting
the font using the font1 resource, e.g., ``Unreadable'' in the menu.
- font2 (class
SmeBSB)
- This entry invokes the set-vt-font(2)
action, setting the font using
the font2 resource, e.g., ``Tiny'' in the menu.
- font3 (class SmeBSB)
- This entry
invokes the set-vt-font(3)
action, setting the font using the font3 resource,
e.g., ``Small'' in the menu.
- font4 (class SmeBSB)
- This entry invokes the set-vt-font(4)
action, letting the font using the font4 resource, e.g., ``Medium'' in the menu.
- font5 (class SmeBSB)
- This entry invokes the set-vt-font(5)
action, letting
the font using the font5 resource, e.g., ``Large'' in the menu.
- font6 (class SmeBSB)
- This entry invokes the set-vt-font(6)
action, letting the font using the
font6 resource, e.g., ``Huge'' in the menu.
- fontescape (class SmeBSB)
- This entry
invokes the set-vt-font(e) action.
- fontsel (class SmeBSB)
- This entry invokes
the set-vt-font(s) action.
- font-linedrawing (class SmeBSB)
- This entry invokes
the set-font-linedrawing(s) action.
- font-packed (class SmeBSB)
- This entry invokes
the set-font-packed(s) action.
- font-doublesize (class SmeBSB)
- This entry invokes
the set-font-doublesize(s) action.
- render-font (class SmeBSB)
- This entry invokes
the set-render-font(s) action.
- utf8-mode (class SmeBSB)
- This entry invokes
the set-utf8-mode(s) action.
- utf8-title (class SmeBSB)
- This entry invokes the
set-utf8-title(s) action.
The TEK Options menu (widget name tekMenu) has
the following entries:
- tektextlarge (class SmeBSB)
- This entry invokes the
set-tek-text(large)
action.
- tektext2 (class SmeBSB)
- This entry invokes the
set-tek-text(2)
action.
- tektext3 (class SmeBSB)
- This entry invokes the set-tek-text(3)
action.
- tektextsmall (class SmeBSB)
- This entry invokes the set-tek-text(small)
action.
- tekpage (class SmeBSB)
- This entry invokes the tek-page() action.
- tekreset
(class SmeBSB)
- This entry invokes the tek-reset() action.
- tekcopy (class
SmeBSB)
- This entry invokes the tek-copy() action.
- vtshow (class SmeBSB)
- This
entry invokes the set-visibility(vt,toggle) action.
- vtmode (class SmeBSB)
- This entry invokes the set-terminal-type(vt) action.
- tekhide (class SmeBSB)
- This entry invokes the set-visibility(tek,toggle) action.
The
following resources are useful when specified for the Athena Scrollbar
widget:
- thickness (class Thickness)
- Specifies the width in pixels of the
scrollbar.
- background (class Background)
- Specifies the color to use for
the background of the scrollbar.
- foreground (class Foreground)
- Specifies
the color to use for the foreground of the scrollbar. The ``thumb'' of the scrollbar
is a simple checkerboard pattern alternating pixels for foreground and
background color.
Once the VT102 window is created, xterm
allows you to select text and copy it within the same or other windows.
The selection functions are invoked when the pointer buttons
are used with no modifiers, and when they are used with the ``shift'' key. The
assignment of the functions described below to keys and buttons may be
changed through the resource database; see ACTIONS below.
Pointer button
one (usually left) is used to save text into the cut buffer. Move the cursor
to beginning of the text, and then hold the button down while moving the
cursor to the end of the region and releasing the button. The selected text
is highlighted and is saved in the global cut buffer and made the PRIMARY
selection when the button is released. Normally (but see the discussion
of on2Clicks, etc):
·- Double-clicking selects by words.
·- Triple-clicking selects
by lines.
·- Quadruple-clicking goes back to characters, etc.
Multiple-click
is determined by the time from button up to button down, so you can change
the selection unit in the middle of a selection. Logical words and lines
selected by double- or triple-clicking may wrap across more than one screen
line if lines were wrapped by xterm itself rather than by the application
running in the window. If the key/button bindings specify that an X selection
is to be made, xterm will leave the selected text highlighted for as long
as it is the selection owner.
Pointer button two (usually middle) ``types''
(pastes) the text from the PRIMARY selection, if any, otherwise from the
cut buffer, inserting it as keyboard input.
Pointer button three (usually
right) extends the current selection. (Without loss of generality, you can
swap ``right'' and ``left'' everywhere in the rest of this paragraph.) If pressed
while closer to the right edge of the selection than the left, it extends/contracts
the right edge of the selection. If you contract the selection past the
left edge of the selection, xterm assumes you really meant the left edge,
restores the original selection, then extends/contracts the left edge of
the selection. Extension starts in the selection unit mode that the last
selection or extension was performed in; you can multiple-click to cycle
through them.
By cutting and pasting pieces of text without trailing new
lines, you can take text from several places in different windows and form
a command to the shell, for example, or take output from a program and
insert it into your favorite editor. Since cut buffers are globally shared
among different applications, you may regard each as a ``file'' whose contents
you know. The terminal emulator and other text programs should be treating
it as if it were a text file, i.e., the text is delimited by new lines.
The
scroll region displays the position and amount of text currently showing
in the window (highlighted) relative to the amount of text actually saved.
As more text is saved (up to the maximum), the size of the highlighted
area decreases.
Clicking button one with the pointer in the scroll region
moves the adjacent line to the top of the display window.
Clicking button
three moves the top line of the display window down to the pointer position.
Clicking button two moves the display to a position in the saved text
that corresponds to the pointer's position in the scrollbar.
Unlike
the VT102 window, the Tektronix window does not allow the copying of text.
It does allow Tektronix GIN mode, and in this mode the cursor will change
from an arrow to a cross. Pressing any key will send that key and the current
coordinate of the cross cursor. Pressing button one, two, or three will
return the letters ``l'', ``m'', and ``r'', respectively. If the ``shift'' key is pressed
when a pointer button is pressed, the corresponding upper case letter is
sent. To distinguish a pointer button from a key, the high bit of the character
is set (but this is bit is normally stripped unless the terminal mode is
RAW; see tty(4)
for details).
X clients provide select and
paste support by responding to requests conveyed by the server.
When
configured to use the primary selection, (the default) xterm can provide
the selection data in ways which help to retain character encoding information
as it is pasted.
A user ``selects'' text on xterm, which highlights the selected
text. A subsequent ``paste'' to another client forwards a request to the client
owning the selection. If xterm owns the primary selection, it makes the
data available in the form of one or more ``selection targets''. If it does
not own the primary selection, e.g., if it has released it or another client
has asserted ownership, it relies on cut-buffers to pass the data. But cut-buffers
handle only ISO-8859-1 data (officially - some clients ignore the rules).
When configured to use the clipboard (see resource selectToClipboard),
the problem with persistence of ownership is bypassed. Otherwise, there
is no difference regarding the data which can be passed via selection.
The
PRIMARY token is a standard X feature, documented in the ICCCM (Inter-Client
Communication Conventions Manual), which states
The selection named by
the atom PRIMARY is used for all commands that take only a single argument
and is the principal means of communication between clients that use the
selection mechanism.
However, many applications use CLIPBOARD in imitation
of other windowing systems. The selectToClipboard resource (and corresponding
menu entry Select to Clipboard) introduce the SELECT token (known only
to xterm) which chooses between the PRIMARY and CLIPBOARD tokens.
Without
using this feature, one can use workarounds such as the xclip program to
show the contents of the X clipboard within an xterm window.
The different types of data which are passed depend on what the
receiving client asks for. These are termed selection targets.
When asking
for the selection data, xterm tries the following types in this order:
- UTF8_STRING
- This is an XFree86 extension, which denotes that the data is
encoded in UTF-8. When xterm is built with wide-character support, it both
accepts and provides this type.
- TEXT
- the text is in the encoding which corresponds
to your current locale.
- STRING
- This is Latin 1 (ISO-8859-1) data.
The middle two (TEXT and COMPOUND_TEXT)
are added if xterm is configured with the i18nSelections resource set to
``true''.
UTF8_STRING is preferred (therefore first in the list) since xterm
stores text as Unicode data when running in wide-character mode, and no
translation is needed. On the other hand, TEXT and COMPOUND_TEXT may require
translation. If the translation is incomplete, they will insert X's ``defaultString''
whose value cannot be set, and may simply be empty. Xterm's defaultString
resource specifies the string to use for incomplete translations of the
UTF8_STRING.
You can alter the types which xterm tries using the eightBitSelectTypes
or utf8SelectTypes resources. For instance, you might have some specific
locale setting which does not use UTF-8 encoding. The resource value is a
comma-separated list of the selection targets, which consist of the names
shown. You can use the special name I18N to denote the optional inclusion
of TEXT and COMPOUND_TEXT. The names are matched ignoring case, and can
be abbreviated. The default list can be expressed in several ways, e.g.,
UTF8_STRING,I18N,STRING
utf8,i18n,string
u,i,s
Xterm has four menus, named mainMenu, vtMenu, fontMenu, and tekMenu.
Each menu pops up under the correct combinations of key and button presses.
Each menu is divided into sections, separated by a horizontal line. Some
menu entries correspond to modes that can be altered. A check mark appears
next to a mode that is currently active. Selecting one of these modes toggles
its state. Other menu entries are commands; selecting one of these performs
the indicated function.
All of the menu entries correspond to X actions.
In the list below, the menu label is shown followed by the action's name
in parenthesis.
The xterm mainMenu pops up when the ``control''
key and pointer button one are pressed in a window. This menu contains items
that apply to both the VT102 and Tektronix windows. There are several sections:
- Commands for managing X events:
- Toolbar
- Clicking on the ``Toolbar'' menu entry
hides the toolbar if it is visible, and shows it if it is not.
- Secure Keyboard
(securekbd)
- The Secure Keyboard mode is helpful when typing in passwords
or other sensitive data in an unsecure environment; see SECURITY below
(but read the limitations carefully).
- Allow SendEvents (allowsends)
- Specifies
whether or not synthetic key and button events generated using the X protocol
SendEvent request should be interpreted or discarded. This corresponds to
the allowSendEvents resource.
- Redraw Window (redraw)
- Forces the X display
to repaint; useful in some environments.
- Commands for capturing output:
- Log to File (logging)
- Captures text sent to the screen in a logfile, as
in the -l logging option.
- Print-All Immediately
- Invokes the print-immediate
action, sending the text of the current window directly to a file, as specified
by the printFileImmediate, printModeImmediate and printOptsImmediate resources.
- Print-All on Error
- Invokes the print-on-error action, which toggles a flag
telling xterm that if it exits with an X error, to send the text of the
current window directly to a file, as specified by the printFileXError,
printModeXError and printOptsXError resources.
- Print Window (print)
- Sends
the text of the current window to the program given in the printerCommand
resource.
- Redirect to Printer (print-redir)
- This sets the printerControlMode
to 0 or 2. You can use this to turn the printer on as if an application
had sent the appropriate control sequence. It is also useful for switching
the printer off if an application turns it on without resetting the print
control mode.
- Modes for setting keyboard style:
- 8-Bit Controls (8-bit-control)
- Enabled for VT220 emulation, this controls whether xterm will send 8-bit
control sequences rather than using 7-bit (ASCII) controls, e.g., sending
a byte in the range 128-159 rather than the escape character followed by
a second byte. Xterm always interprets both 8-bit and 7-bit control sequences
(see the document Xterm Control Sequences). This corresponds to the eightBitControl
resource.
- Backarrow Key (BS/DEL) (backarrow key)
- Modifies the behavior of
the backarrow key, making it transmit either a backspace (8)
or delete
(127) character. This corresponds to the backarrowKey resource.
- Alt/NumLock
Modifiers (num-lock)
- Controls the treatment of Alt- and NumLock-key modifiers.
This corresponds to the numLock resource.
- Meta Sends Escape (meta-esc)
- Controls
whether Meta keys are converted into a two-character sequence with the character
itself preceded by ESC. This corresponds to the metaSendsEscape resource.
- Delete is DEL (delete-is-del)
- Controls whether the Delete key on the editing
keypad should send DEL (127) or the VT220-style Remove escape sequence. This
corresponds to the deleteIsDEL resource.
- Old Function-Keys (oldFunctionKeys)
- HP Function-Keys (hpFunctionKeys)
- SCO Function-Keys (scoFunctionKeys)
- Sun
Function-Keys (sunFunctionKeys)
- VT220 Keyboard (sunKeyboard)
- These act as
a radio-button, selecting one style for the keyboard layout. It corresponds
to more than one resource setting: sunKeyboard, sunFunctionKeys, scoFunctionKeys
and hpFunctionKeys.
- Commands for process signalling:
- Send STOP Signal (suspend)
- Send CONT Signal (continue)
- Send INT Signal (interrupt)
- Send HUP Signal
(hangup)
- Send TERM Signal (terminate)
- Send KILL Signal (kill)
- These send
the SIGTSTP, SIGCONT, SIGINT, SIGHUP, SIGTERM and SIGKILL signals respectively,
to the process group of the process running under xterm (usually the shell).
The SIGCONT function is especially useful if the user has accidentally
typed CTRL-Z, suspending the process.
- Quit (quit)
- Stop processing X events
except to support the -hold option, and then send a SIGHUP signal to the
process group of the process running under xterm (usually the shell).
The vtMenu sets various modes in the VT102 emulation, and is
popped up when the ``control'' key and pointer button two are pressed in the
VT102 window.
- VT102/VT220 Modes:
- Enable Scrollbar (scrollbar)
- Enable (or
disable) the scrollbar. This corresponds to the -sb option and the scrollBar
resource.
- Enable Jump Scroll (jumpscroll)
- Enable (or disable) jump scrolling.
This corresponds to the -j option and the jumpScroll resource.
- Enable Reverse
Video (reversevideo)
- Enable (or disable) reverse-video. This corresponds
to the -rv option and the reverseVideo resource.
- Enable Auto Wraparound
(autowrap)
- Enable (or disable) auto-wraparound. This corresponds to the -aw
option and the autoWrap resource.
- Enable Reverse Wraparound (reversewrap)
- Enable (or disable) reverse wraparound. This corresponds to the -rw option
and the reverseWrap resource.
- Enable Auto Linefeed (autolinefeed)
- Enable
(or disable) auto-linefeed. This is the VT102 NEL function, which causes
the emulator to emit a linefeed after each carriage return. There is no
corresponding command-line option or resource setting.
- Enable Application
Cursor Keys (appcursor)
- Enable (or disable) application cursor keys. This
corresponds to the appcursorDefault resource. There is no corresponding
command-line option.
- Enable Application Keypad (appkeypad)
- Enable (or disable)
application keypad keys. This corresponds to the appkeypadDefault resource.
There is no corresponding command-line option.
- Scroll to Bottom on Key Press
(scrollkey)
- Enable (or disable) scrolling to the bottom of the scrolling
region on a keypress. This corresponds to the -sk option and the scrollKey
resource.
- As a special case, the XON / XOFF keys (control/S and control/Q)
are ignored.
-
- Scroll to Bottom on Tty Output (scrollttyoutput)
- Enable (or
disable) scrolling to the bottom of the scrolling region on output to the
terminal. This corresponds to the -si option and the scrollTtyOutput resource.
- Allow 80/132 Column Switching (allow132)
- Enable (or disable) switching
between 80 and 132 columns. This corresponds to the -132 option and the c132
resource.
- Keep Selection (keepSelection)
- Tell xterm whether to disown the
selection when it stops highlighting it, e.g., when an application modifies
the display so that it no longer matches the text which has been highlighted.
As long as xterm continues to own the selection, it can provide the corresponding
text to other clients via cut/paste. This corresponds to the keepSelection
resource. There is no corresponding command-line option.
- Select to Clipboard
(selectToClipboard)
- Tell xterm whether to use the PRIMARY or CLIPBOARD
for SELECT tokens in the translations resource which maps keyboard and
mouse actions to select/paste actions. This corresponds to the selectToClipboard
resource. There is no corresponding command-line option.
- Enable Visual Bell
(visualbell)
- Enable (or disable) visible bell (i.e., flashing) instead of
an audible bell. This corresponds to the -vb option and the visualBell resource.
- Enable Bell Urgency (bellIsUrgent)
- Enable (or disable) Urgency window
manager hint when Control-G is received. This corresponds to the bellIsUrgent
resource.
- Enable Pop on Bell (poponbell)
- Enable (or disable) raising of
the window when Control-G is received. This corresponds to the -pop option
and the popOnBell resource.
- Enable Blinking Cursor (cursorblink)
- Enable
(or disable) the blinking-cursor feature. This corresponds to the -bc option
and the cursorBlink resource. There is also an escape sequence (see the
document Xterm Control Sequences). The menu entry and the escape sequence
states are XOR'd: if both are enabled, the cursor will not blink, if only
one is enabled, the cursor will blink.
- Enable Alternate Screen Switching
(titeInhibit)
- Enable (or disable) switching between the normal and alternate
screens. This corresponds to the titeInhibit resource. There is no corresponding
command-line option.
- Enable Active Icon (activeicon)
- Enable (or disable)
the active-icon feature. This corresponds to the -ai option and the activeIcon
resource.
- Sixel Scrolling (sixelScrolling)
- When enabled, sixel graphics
are positioned at the current text cursor location, scroll the image vertically
if larger than the screen, and leave the text cursor at the start of the
next complete line after the image when returning to text mode (this is
the default). When disabled, sixel graphics are positioned at the upper
left of the screen, are cropped to fit the screen, and do not affect the
text cursor location. This corresponds to the sixelScrolling resource. There
is no corresponding command-line option.
- Private Color Registers (privateColorRegisters)
- When enabled, each graphic image uses a separate set of color registers,
so that it essentially has a private palette (this is the default). If
it is not set, all graphics images share a common set of registers which
is how sixel and ReGIS graphics worked on actual hardware. The default
is likely a more useful mode on modern TrueColor hardware. This corresponds
to the privateColorRegisters resource. There is no corresponding command-line
option.
- VT102/VT220 Commands:
- Do Soft Reset (softreset)
- Reset scroll regions.
This can be convenient when some program has left the scroll regions set
incorrectly (often a problem when using VMS or TOPS-20). This corresponds
to the VT220 DECSTR control sequence.
- Do Full Reset (hardreset)
- The full
reset entry will clear the screen, reset tabs to every eight columns, and
reset the terminal modes (such as wrap and smooth scroll) to their initial
states just after xterm has finished processing the command line options.
This corresponds to the VT102 RIS control sequence, with a few obvious
differences. For example, your session is not disconnected as a real VT102
would do.
- Reset and Clear Saved Lines (clearsavedlines)
- Perform a full
reset, and also clear the saved lines.
- Commands for setting the current
screen:
- Show Tek Window (tekshow)
- When enabled, pops the Tektronix 4014
window up (makes it visible). When disabled, hides the Tektronix 4014 window.
- Switch to Tek Mode (tekmode)
- When enabled, pops the Tektronix 4014 window
up if it is not already visible, and switches the input stream to that
window. When disabled, hides the Tektronix 4014 window and switches input
back to the VTxxx window.
- Hide VT Window (vthide)
- When enabled, hides the
VTxxx window, shows the Tektronix 4014 window if it was not already visible
and switches the input stream to that window. When disabled, shows the VTxxx
window, and switches the input stream to that window.
- Show Alternate Screen
(altscreen)
- When enabled, shows the alternate screen. When disabled, shows
the normal screen. Note that the normal screen may have saved lines; the
alternate screen does not.
The fontMenu pops up when when the ``control''
key and pointer button three are pressed in a window. It sets the font used
in the VT102 window, or modifies the way the font is specified or displayed.
There are several sections.
The first section allows you to select the font
from a set of alternatives:
- Default (fontdefault)
- Set the font to the default,
i.e., that given by the *VT100.font resource.
- Unreadable (font1)
- Set the font
to that given by the *VT100.font1 resource.
- Tiny (font2)
- Set the font to
that given by the *VT100.font2 resource.
- Small (font3)
- Set the font to that
given by the *VT100.font3 resource.
- Medium (font4)
- Set the font to that given
by the *VT100.font4 resource.
- Large (font5)
- Set the font to that given by
the *VT100.font5 resource.
- Huge (font6)
- Set the font to that given by the
*VT100.font6 resource.
- Escape Sequence
- This allows you to set the font last
specified by the Set Font escape sequence (see the document Xterm Control
Sequences).
- Selection (fontsel)
- This allows you to set the font specified
the current selection as a font name (if the PRIMARY selection is owned).
The second section allows you to modify the way it is displayed:
- Bold Fonts
- This is normally checked (enabled). When unchecked, xterm will not use bold
fonts. The setting corresponds to the allowBoldFonts resource.
- Line-Drawing
Characters (font-linedrawing)
- When set, tells xterm to draw its own line-drawing
characters. Otherwise it relies on the font containing these. Compare to
the forceBoxChars resource.
- Packed Font (font-packed)
- When set, tells xterm
to use the minimum glyph-width from a font when displaying characters. Use
the maximum width (unchecked) to help display proportional fonts. Compare
to the forcePackedFont resource.
- Doublesized Characters (font-doublesize)
- When set, xterm may ask the font server to produce scaled versions of the
normal font, for VT102 double-size characters.
The third section allows you
to modify the way it is specified:
- TrueType Fonts (render-font)
- If the renderFont
and corresponding resources were set, this is a further control whether
xterm will actually use the Xft library calls to obtain a font.
- UTF-8 Encoding
(utf8-mode)
- This controls whether xterm uses UTF-8 encoding of input/output.
It is useful for temporarily switching xterm to display text from an application
which does not follow the locale settings. It corresponds to the utf8 resource.
- UTF-8 Fonts (utf8-fonts)
- This controls whether xterm uses UTF-8 fonts for
display. It is useful for temporarily switching xterm to display text from
an application which does not follow the locale settings. It combines the
utf8 and utf8Fonts resources.
- UTF-8 Titles (utf8-titles)
- This controls whether
xterm accepts UTF-8 encoding for title control sequences. It corresponds
to the utf8Fonts resource.
- Initially the checkmark is set according to both
the utf8
- and utf8Fonts resource values. If the latter is set to ``always'',
the checkmark is disabled. Likewise, if there are no fonts given in the
utf8Fonts subresources, then the checkmark also is disabled.
- The standard
__default_class__ app-defaults file defines both sets of fonts,
- while the
U__default_class__ app-defaults file defines only one set. Assuming the standard
app-defaults files, this command will launch xterm able to switch between
UTF-8 and ISO-8859-1 encoded fonts:
uxterm -class __default_class__
- The fourth section allows you to enable or disable special operations
- which can be controlled by writing escape sequences to the terminal. These
are disabled if the SendEvents feature is enabled:
- Allow Color Ops (allow-font-ops)
- This corresponds to the allowColorOps resource. Enable or disable control
sequences that set/query the colors.
- Allow Font Ops (allow-font-ops)
- This
corresponds to the allowFontOps resource. Enable or disable control sequences
that set/query the font.
- Allow Tcap Ops (allow-tcap-ops)
- Enable or disable
control sequences that query the terminal's notion of its function-key strings,
as termcap or terminfo capabilities. This corresponds to the allowTcapOps
resource.
- Allow Title Ops (allow-title-ops)
- Enable or disable control sequences
that modify the window title or icon name. This corresponds to the allowTitleOps
resource.
- Allow Window Ops (allow-window-ops)
- Enable or disable extended window
control sequences (as used in dtterm). This corresponds to the allowWindowOps
resource.
The tekMenu sets various modes in the Tektronix emulation,
and is popped up when the ``control'' key and pointer button two are pressed
in the Tektronix window. The current font size is checked in the modes section
of the menu.
- Large Characters (tektextlarge)
- #2 Size Characters (tektext2)
- #3 Size Characters (tektext3)
- Small Characters (tektextsmall)
Commands:
- PAGE (tekpage)
- Clear the Tektronix window.
- RESET (tekreset)
- COPY (tekcopy)
Windows:
- Show VT Window (vtshow)
- Switch to VT Mode (vtmode)
- Hide Tek Window
(tekhide)
X environments differ in their security consciousness.
·- Most servers, run under xdm, are capable of using a ``magic cookie'' authorization
scheme that can provide a reasonable level of security for many people.
If your server is only using a host-based mechanism to control access to
the server (see xhost(__mansuffix__)), then if you enable access for a
host and other users are also permitted to run clients on that same host,
it is possible that someone can run an application which uses the basic
services of the X protocol to snoop on your activities, potentially capturing
a transcript of everything you type at the keyboard.
·- Any process which
has access to your X display can manipulate it in ways that you might not
anticipate, even redirecting your keyboard to itself and sending events
to your application's windows. This is true even with the ``magic cookie'' authorization
scheme. While the allowSendEvents provides some protection against rogue
applications tampering with your programs, guarding against a snooper is
harder.
·- The X input extension for instance allows an application to bypass
all of the other (limited) authorization and security features, including
the GrabKeyboard protocol.
·- The possibility of an application spying on
your keystrokes is of particular concern when you want to type in a password
or other sensitive data. The best solution to this problem is to use a better
authorization mechanism than is provided by X.
Subject to all of these caveats,
a simple mechanism exists for protecting keyboard input in xterm.
The xterm
menu (see MENUS above) contains a Secure Keyboard entry which, when enabled,
attempts to ensure that all keyboard input is directed only to xterm (using
the GrabKeyboard protocol request). When an application prompts you for
a password (or other sensitive data), you can enable Secure Keyboard using
the menu, type in the data, and then disable Secure Keyboard using the
menu again.
·- This ensures that you know which window is accepting your keystrokes.
·- It cannot ensure that there are no processes which have access to your
X display that might be observing the keystrokes as well.
Only one X client
at a time can grab the keyboard, so when you attempt to enable Secure Keyboard
it may fail. In this case, the bell will sound. If the Secure Keyboard succeeds,
the foreground and background colors will be exchanged (as if you selected
the Reverse Video entry in the Modes menu); they will be exchanged again
when you exit secure mode. If the colors do not switch, then you should
be very suspicious that you are being spoofed. If the application you are
running displays a prompt before asking for the password, it is safest
to enter secure mode before the prompt gets displayed, and to make sure
that the prompt gets displayed correctly (in the new colors), to minimize
the probability of spoofing. You can also bring up the menu again and make
sure that a check mark appears next to the entry.
Secure Keyboard mode
will be disabled automatically if your xterm window becomes iconified (or
otherwise unmapped), or if you start up a reparenting window manager (that
places a title bar or other decoration around the window) while in Secure
Keyboard mode. (This is a feature of the X protocol not easily overcome.)
When this happens, the foreground and background colors will be switched
back and the bell will sound in warning.
Clicking the
left pointer button twice in rapid succession (double-clicking) causes all
characters of the same class (e.g., letters, white space, punctuation) to
be selected as a ``word''. Since different people have different preferences
for what should be selected (for example, should filenames be selected
as a whole or only the separate subnames), the default mapping can be overridden
through the use of the charClass (class CharClass) resource.
This resource
is a series of comma-separated range:value pairs. The range is either a single
number or low-high in the range of 0 to 65535, corresponding to the code
for the character or characters to be set. The value is arbitrary, although
the default table uses the character number of the first character occurring
in the set. When not in UTF-8 mode, only the first 256 bytes of this table
will be used.
The default table starts as follows -
static int charClass[256] = {
/* NUL SOH STX ETX EOT ENQ ACK BEL */
32, 1, 1, 1, 1, 1, 1, 1,
/* BS HT NL VT NP CR SO SI */
1, 32, 1, 1, 1, 1, 1, 1,
/* DLE DC1 DC2 DC3 DC4 NAK SYN ETB */
1, 1, 1, 1, 1, 1, 1, 1,
/* CAN EM SUB ESC FS GS RS US */
1, 1, 1, 1, 1, 1, 1, 1,
/* SP ! " # $ % & AQ */
" <- for emacs autocolor to work well :-)
32, 33, 34, 35, 36, 37, 38, 39,
/* ( ) * + , - . / */
40, 41, 42, 43, 44, 45, 46, 47,
/* 0 1 2 3 4 5 6 7 */
48, 48, 48, 48, 48, 48, 48, 48,
/* 8 9 : ; < = > ? */
48, 48, 58, 59, 60, 61, 62, 63,
/* @ A B C D E F G */
64, 48, 48, 48, 48, 48, 48, 48,
/* H I J K L M N O */
48, 48, 48, 48, 48, 48, 48, 48,
/* P Q R S T U V W */
48, 48, 48, 48, 48, 48, 48, 48,
/* X Y Z [ \ ] ^ _ */
48, 48, 48, 91, 92, 93, 94, 48,
/* ` a b c d e f g */
96, 48, 48, 48, 48, 48, 48, 48,
/* h i j k l m n o */
48, 48, 48, 48, 48, 48, 48, 48,
/* p q r s t u v w */
48, 48, 48, 48, 48, 48, 48, 48,
/* x y z { | } ~ DEL */
48, 48, 48, 123, 124, 125, 126, 1,
/* x80 x81 x82 x83 IND NEL SSA ESA */
1, 1, 1, 1, 1, 1, 1, 1,
/* HTS HTJ VTS PLD PLU RI SS2 SS3 */
1, 1, 1, 1, 1, 1, 1, 1,
/* DCS PU1 PU2 STS CCH MW SPA EPA */
1, 1, 1, 1, 1, 1, 1, 1,
/* x98 x99 x9A CSI ST OSC PM APC */
1, 1, 1, 1, 1, 1, 1, 1,
/* - i c/ L ox Y- | So */
160, 161, 162, 163, 164, 165, 166, 167,
/* .. c0 ip << _ R0 - */
168, 169, 170, 171, 172, 173, 174, 175,
/* o +- 2 3 AQ u q| . */
176, 177, 178, 179, 180, 181, 182, 183,
/* , 1 2 >> 1/4 1/2 3/4 ? */
184, 185, 186, 187, 188, 189, 190, 191,
/* A` AAQ A^ A~ A: Ao AE C, */
48, 48, 48, 48, 48, 48, 48, 48,
/* E` EAQ E^ E: I` IAQ I^ I: */
48, 48, 48, 48, 48, 48, 48, 48,
/* D- N~ O` OAQ O^ O~ O: X */
48, 48, 48, 48, 48, 48, 48, 215,
/* O/ U` UAQ U^ U: YAQ P B */
48, 48, 48, 48, 48, 48, 48, 48,
/* a` aAQ a^ a~ a: ao ae c, */
48, 48, 48, 48, 48, 48, 48, 48,
/* e` eAQ e^ e: i` iAQ i^ i: */
48, 48, 48, 48, 48, 48, 48, 48,
/* d n~ o` oAQ o^ o~ o: -: */
48, 48, 48, 48, 48, 48, 48, 247,
/* o/ u` uAQ u^ u: yAQ P y: */
48, 48, 48, 48, 48, 48, 48, 48};
- For example, the string ``33:48,37:48,45-47:48,38:48'' indicates that the
- exclamation mark, percent sign, dash, period, slash, and ampersand characters
should be treated the same way as characters and numbers. This is useful
for cutting and pasting electronic mailing addresses and filenames.
It is possible to rebind keys (or sequences of keys) to arbitrary
strings for input, by changing the translations resources for the vt100
or tek4014 widgets. Changing the translations resource for events other
than key and button events is not expected, and will cause unpredictable
behavior.
The following actions are provided for use within the vt100
or tek4014 translations resources:
- allow-color-ops(on/off/toggle)
- This action
sets, unsets or toggles the allowColorOps resource and is also invoked
by the allow-color-ops entry in fontMenu.
- allow-font-ops(on/off/toggle)
- This
action sets, unsets or toggles the allowFontOps resource and is also invoked
by the allow-font-ops entry in fontMenu.
- allow-send-events(on/off/toggle)
- This
action sets, unsets or toggles the allowSendEvents resource and is also
invoked by the allowsends entry in mainMenu.
- allow-tcap-ops(on/off/toggle)
- This action sets, unsets or toggles the allowTcapOps resource and is also
invoked by the allow-tcap-ops entry in fontMenu.
- allow-title-ops(on/off/toggle)
- This action sets, unsets or toggles the allowTitleOps resource and is also
invoked by the allow-title-ops entry in fontMenu.
- allow-window-ops(on/off/toggle)
- This action sets, unsets or toggles the allowWindowOps resource and is
also invoked by the allow-window-ops entry in fontMenu.
- alt-sends-escape()
- This
action toggles the state of the altSendsEscape resource.
- bell([percent])
- This action rings the keyboard bell at the specified percentage above or
below the base volume.
- clear-saved-lines()
- This action does hard-reset() (see
below) and also clears the history of lines saved off the top of the screen.
It is also invoked from the clearsavedlines entry in vtMenu. The effect
is identical to a hardware reset (RIS) control sequence.
- copy-selection(destname
[, ...])
- This action puts the currently selected text into all of the selections
or cutbuffers specified by destname. Unlike select-end, it does not send
a mouse position or otherwise modify the internal selection state.
- create-menu(m/v/f/t)
- This action creates one of the menus used by xterm, if it has not been
previously created. The parameter values are the menu names: mainMenu, vtMenu,
fontMenu, tekMenu, respectively.
- dabbrev-expand()
- Expands the word before
cursor by searching in the preceding text on the screen and in the scrollback
buffer for words starting with that abbreviation. Repeating dabbrev-expand()
several times in sequence searches for an alternative expansion by looking
farther back. Lack of more matches is signaled by a beep(). Attempts to expand
an empty word (i.e., when cursor is preceded by a space) yield successively
all previous words. Consecutive identical expansions are ignored. The word
here is defined as a sequence of non-whitespace characters. This feature
partially emulates the behavior of ``dynamic abbreviation'' expansion in Emacs
(bound there to M-/). Here is a resource setting for xterm which will do
the same thing:
*VT100*translations: #override \n\
Meta <KeyPress> /:dabbrev-expand()
- deiconify()
- Changes the window state back to normal, if it was iconified.
- delete-is-del()
- This action toggles the state of the deleteIsDEL resource.
- dired-button()
- Handles a button event (other than press and release) by
echoing the event's position (i.e., character line and column) in the following
format:
^X ESC G <line+`` ''> <col+`` ''>
- exec-formatted(format, sourcename [, ...])
- Execute
an external command, using the current selection for part of the command's
parameters. The first parameter, format gives the basic command. Succeeding
parameters specify the selection source as in insert-selection.
- The format
parameter allows these substitutions:
- %%
- inserts a "%".
- %P
- the screen-position
at the beginning of the highlighted region, as a semicolon-separated pair
of integers using the values that the CUP control sequence would use.
- %p
- the screen-position after the beginning of the highlighted region, using
the same convention as ``%P''.
- %S
- the length of the string that ``%s'' would insert.
- %s
- the content of the selection, unmodified.
- %T
- the length of the string
that ``%t'' would insert.
- %t
- the selection, trimmed of leading/trailing whitespace,
and newlines changed to single spaces.
- %V
- the video attributes at the beginning
of the highlighted region, as a semicolon-separated list of integers using
the values that the SGR control sequence would use.
- %v
- the video attributes
after the end of the highlighted region, using the same convention as ``%V''.
- After constructing the command-string,
- xterm forks a subprocess and executes
the command, which completes independently of xterm.
- For example, this translation
would invoke a new xterm process
- to view a file whose name is selected
while holding the shift key down. The new process is started when the mouse
button is released:
*VT100*translations: #override Shift \
<Btn1Up>: exec-formatted("xterm -e view '%t'", SELECT)
- exec-selectable(format, onClicks)
- Execute an external command, using data
copied from the screen for part of the command's parameters. The first parameter,
format gives the basic command as in exec-formatted. The second parameter
specifies the method for copying the data as in the onClicks resource.
- fullscreen(on/off/toggle)
- This action sets, unsets or toggles the fullscreen resource.
- iconify()
- Iconifies
the window.
- hard-reset()
- This action resets the scrolling region, tabs, window
size, and cursor keys and clears the screen. It is also invoked from the
hardreset entry in vtMenu.
- ignore()
- This action ignores the event but checks
for special pointer position escape sequences.
- insert()
- This action inserts
the character or string associated with the key that was pressed.
- insert-eight-bit()
- This action inserts an eight-bit (Meta) version of the character or string
associated with the key that was pressed. Only single-byte values are treated
specially. The exact action depends on the value of the altSendsEscape and
the metaSendsEscape and the eightBitInput resources. The metaSendsEscape
resource is tested first. See the eightBitInput resource for a full discussion.
- The term ``eight-bit'' is misleading:
- xterm checks if the key is in the range
128 to 255 (the eighth bit is set). If the value is in that range, depending
on the resource values, xterm may then do one of the following:
·- add 128
to the value, setting its eighth bit,
·- send an ESC byte before the key,
or
·- send the key unaltered.
- insert-formatted(format, sourcename [, ...])
- Insert
the current selection or data related to it, formatted. The first parameter,
format gives the template for the data as in exec-formatted. Succeeding parameters
specify the selection source as in insert-selection.
- insert-selectable(format,
onClicks)
- Insert data copied from the screen, formatted. The first parameter,
format gives the template for the data as in exec-formatted. The second parameter
specifies the method for copying the data as in the onClicks resource.
- insert-selection(sourcename
[, ...])
- This action inserts the string found in the selection or cutbuffer
indicated by sourcename. Sources are checked in the order given (case is
significant) until one is found. Commonly-used selections include: PRIMARY,
SECONDARY, and CLIPBOARD. Cut buffers are typically named CUT_BUFFER0 through
CUT_BUFFER7.
- insert-seven-bit()
- This action is a synonym for insert(). The
term ``seven-bit'' is misleading: it only implies that xterm does not try to
add 128 to the key's value as in insert-eight-bit().
- interpret(control-sequence)
- Interpret the given control sequence locally, i.e., without passing it to
the host. This works by inserting the control sequence at the front of the
input buffer. Use ``\'' to escape octal digits in the string. Xt does not allow
you to put a null character (i.e., ``\000'') in the string.
- keymap(name)
- This action
dynamically defines a new translation table whose resource name is name
with the suffix Keymap (case is significant). The name None restores the
original translation table.
- larger-vt-font()
- Set the font to the next larger
one, based on the font dimensions. See also set-vt-font().
- load-vt-fonts(name[,class])
- Load fontnames from the given subresource name and class. That is, load
the ``*VT100.name.font'', resource as ``*VT100.font'' etc. If no name is given, the
original set of fontnames is restored.
- Unlike set-vt-font(), this does not
affect the escape- and select-fonts,
- since those are not based on resource
values. It does affect the fonts loosely organized under the ``Default'' menu
entry, including font, boldFont, wideFont and wideBoldFont.
- maximize()
- Resizes
the window to fill the screen.
- meta-sends-escape()
- This action toggles the
state of the metaSendsEscape resource.
- popup-menu(menuname)
- This action displays
the specified popup menu. Valid names (case is significant) include: mainMenu,
vtMenu, fontMenu, and tekMenu.
- print(printer-flags)
- This action prints the
window. It is also invoked by the print entry in mainMenu.
- The action accepts
optional parameters, which temporarily override
- resource settings. The parameter
values are matched ignoring case:
- noFormFeed
- no form feed will be sent
at the end of the last line printed (i.e., printerFormFeed is ``false'').
- FormFeed
- a form feed will be sent at the end of the last line printed (i.e., printerFormFeed
is ``true'').
- noNewLine
- no newline will be sent at the end of the last line
printed, and wrapped lines will be combined into long lines (i.e., printerNewLine
is ``false'').
- NewLine
- a newline will be sent at the end of the last line printed,
and each line will be limited (by adding a newline) to the screen width
(i.e., printerNewLine is ``true'').
- noAttrs
- the page is printed without attributes
(i.e., printAttributes is ``0'').
- monoAttrs
- the page is printed with monochrome
(vt220) attributes (i.e., printAttributes is ``1'').
- colorAttrs
- the page is printed
with ANSI color attributes (i.e., printAttributes is ``2'').
- print-everything(printer-flags)
- This action sends the entire text history, in addition to the text currently
visible, to the program given in the printerCommand resource. It allows
the same optional parameters as the print action. With a suitable printer
command, the action can be used to load the text history in an editor.
- print-immediate()
- Sends the text of the current window directly to a file, as specified by
the printFileImmediate, printModeImmediate and printOptsImmediate resources.
- print-on-error()
- Toggles a flag telling xterm that if it exits with an X
error, to send the text of the current window directly to a file, as specified
by the printFileXError, printModeXError and printOptsXError resources.
- print-redir()
- This action toggles the printerControlMode between 0 and 2. The corresponding
popup menu entry is useful for switching the printer off if you happen
to change your mind after deciding to print random binary files on the
terminal.
- quit()
- This action sends a SIGHUP to the subprogram and exits.
It is also invoked by the quit entry in mainMenu.
- readline-button()
- Supports
the optional readline feature by echoing repeated cursor forward or backward
control sequences on button release event, to request that the host application
update its notion of the cursor's position to match the button event.
- redraw()
- This action redraws the window. It is also invoked by the redraw entry in
mainMenu.
- restore()
- Restores the window to the size before it was last maximized.
- scroll-back(count [,units [,mouse] ])
- This action scrolls the text window
backward so that text that had previously scrolled off the top of the screen
is now visible.
- The count argument
- indicates the number of units (which
may be page, halfpage, pixel, or line) by which to scroll.
- An adjustment
can be specified for these values
- by appending a ``+'' or ``-'' sign followed by
a number, e.g., page-2 to specify 2 lines less than a page.
- If the third parameter
mouse is given, the action is ignored when
- mouse reporting is enabled.
- scroll-forw(count
[,units [,mouse] ])
- This action is similar to scroll-back except that it
scrolls in the other direction.
- secure()
- This action toggles the Secure
Keyboard mode described in the section named SECURITY, and is invoked from
the securekbd entry in mainMenu.
- scroll-lock(on/off/toggle)
- This action sets,
unsets or toggles internal state which tells xterm whether Scroll Lock
is active, subject to the allowScrollLock resource.
- select-cursor-end(destname
[, ...])
- This action is similar to select-end except that it should be used
with select-cursor-start.
- select-cursor-extend()
- This action is similar to select-extend
except that it should be used with select-cursor-start.
- select-cursor-start()
- This action is similar to select-start except that it begins the selection
at the current text cursor position.
- select-end(destname [, ...])
- This action
puts the currently selected text into all of the selections or cutbuffers
specified by destname. It also sends a mouse position and updates the internal
selection state to reflect the end of the selection process.
- select-extend()
- This action tracks the pointer and extends the selection. It should only
be bound to Motion events.
- select-set()
- This action stores text that corresponds
to the current selection, without affecting the selection mode.
- select-start()
- This action begins text selection at the current pointer location. See the
section on POINTER USAGE for information on making selections.
- send-signal(signame)
- This action sends the signal named by signame to the xterm subprocess (the
shell or program specified with the -e command line option). It is also invoked
by the suspend, continue, interrupt, hangup, terminate, and kill entries
in mainMenu. Allowable signal names are (case is not significant): tstp
(if supported by the operating system), suspend (same as tstp), cont (if
supported by the operating system), int, hup, term, quit, alrm, alarm (same
as alrm) and kill.
- set-8-bit-control(on/off/toggle)
- This action sets, unsets
or toggles the eightBitControl resource. It is also invoked from the 8-bit-control
entry in vtMenu.
- set-allow132(on/off/toggle)
- This action sets, unsets or
toggles the c132 resource. It is also invoked from the allow132 entry in
vtMenu.
- set-altscreen(on/off/toggle)
- This action sets, unsets or toggles
between the alternate and current screens.
- set-appcursor(on/off/toggle)
- This
action sets, unsets or toggles the handling Application Cursor Key mode
and is also invoked by the appcursor entry in vtMenu.
- set-appkeypad(on/off/toggle)
- This action sets, unsets or toggles the handling of Application Keypad
mode and is also invoked by the appkeypad entry in vtMenu.
- set-autolinefeed(on/off/toggle)
- This action sets, unsets or toggles automatic insertion of linefeeds. It
is also invoked by the autolinefeed entry in vtMenu.
- set-autowrap(on/off/toggle)
- This action sets, unsets or toggles automatic wrapping of long lines. It
is also invoked by the autowrap entry in vtMenu.
- set-backarrow(on/off/toggle)
- This action sets, unsets or toggles the backarrowKey resource. It is also
invoked from the backarrow key entry in vtMenu.
- set-bellIsUrgent(on/off/toggle)
- This action sets, unsets or toggles the bellIsUrgent resource. It is also
invoked by the bellIsUrgent entry in vtMenu.
- set-cursorblink(on/off/toggle)
- This action sets, unsets or toggles the cursorBlink resource. It is also
invoked from the cursorblink entry in vtMenu.
- set-cursesemul(on/off/toggle)
- This action sets, unsets or toggles the curses resource. It is also invoked
from the cursesemul entry in vtMenu.
- set-font-doublesize(on/off/toggle)
- This
action sets, unsets or toggles the fontDoublesize resource. It is also invoked
by the font-doublesize entry in fontMenu.
- set-hp-function-keys(on/off/toggle)
- This action sets, unsets or toggles the hpFunctionKeys resource. It is also
invoked by the hpFunctionKeys entry in mainMenu.
- set-jumpscroll(on/off/toggle)
- This action sets, unsets or toggles the jumpscroll resource. It is also
invoked by the jumpscroll entry in vtMenu.
- set-font-linedrawing(on/off/toggle)
- This action sets, unsets or toggles the xterm's state regarding whether
the current font has line-drawing characters and whether it should draw
them directly. It is also invoked by the font-linedrawing entry in fontMenu.
- set-font-packed(on/off/toggle)
- This action sets, unsets or toggles
the forcePackedFont's resource which controls use of the font's minimum or
maximum glyph width. It is also invoked by the font-packed entry in fontMenu.
- set-keep-selection(on/off/toggle)
- This action sets, unsets or toggles the
keepSelection resource. It is also invoked by the keepSelection entry in
vtMenu.
- set-logging(on/off/toggle)
- This action sets, unsets or toggles the
state of the logging option.
- set-old-function-keys(on/off/toggle)
- This action
sets, unsets or toggles the state of legacy function keys. It is also invoked
by the oldFunctionKeys entry in mainMenu.
- set-marginbell(on/off/toggle)
- This
action sets, unsets or toggles the marginBell resource.
- set-num-lock(on/off/toggle)
- This action toggles the state of the numLock resource.
- set-pop-on-bell(on/off/toggle)
- This action sets, unsets or toggles the popOnBell resource. It is also invoked
by the poponbell entry in vtMenu.
- set-private-colors(on/off/toggle)
- This action
sets, unsets or toggles the privateColorRegisters resource.
- set-render-font(on/off/toggle)
- This action sets, unsets or toggles the renderFont resource. It is also
invoked by the render-font entry in fontMenu.
- set-reverse-video(on/off/toggle)
- This action sets, unsets or toggles the reverseVideo resource. It is also
invoked by the reversevideo entry in vtMenu.
- set-reversewrap(on/off/toggle)
- This action sets, unsets or toggles the reverseWrap resource. It is also
invoked by the reversewrap entry in vtMenu.
- set-scroll-on-key(on/off/toggle)
- This action sets, unsets or toggles the scrollKey resource. It is also invoked
from the scrollkey entry in vtMenu.
- set-scroll-on-tty-output(on/off/toggle)
- This action sets, unsets or toggles the scrollTtyOutput resource. It is
also invoked from the scrollttyoutput entry in vtMenu.
- set-scrollbar(on/off/toggle)
- This action sets, unsets or toggles the scrollbar resource. It is also invoked
by the scrollbar entry in vtMenu.
- set-sco-function-keys(on/off/toggle)
- This
action sets, unsets or toggles the scoFunctionKeys resource. It is also
invoked by the scoFunctionKeys entry in mainMenu.
- set-select(on/off/toggle)
- This action sets, unsets or toggles the selectToClipboard resource. It is
also invoked by the selectToClipboard entry in vtMenu.
- set-sixel-scrolling(on/off/toggle)
- This action toggles between inline (sixel scrolling) and absolute positioning.
It can also be controlled via DEC private mode 80 (DECSDM) or from the
sixelScrolling entry in the btMenu.
- set-sun-function-keys(on/off/toggle)
- This
action sets, unsets or toggles the sunFunctionKeys resource. It is also
invoked by the sunFunctionKeys entry in mainMenu.
- set-sun-keyboard(on/off/toggle)
- This action sets, unsets or toggles the sunKeyboard resource. It is also
invoked by the sunKeyboard entry in mainMenu.
- set-tek-text(large/2/3/small)
- This action sets the font used in the Tektronix window to the value of
the selected resource according to the argument. The argument can be either
a keyword or single-letter alias, as shown in parentheses:
- large (l)
- Use
resource fontLarge, same as menu entry tektextlarge.
- two (2)
- Use resource
font2, same as menu entry tektext2.
- three (3)
- Use resource font3, same as
menu entry tektext3.
- small (s)
- Use resource fontSmall, same as menu entry
tektextsmall.
- set-terminal-type(type)
- This action directs output to either
the vt or tek windows, according to the type string. It is also invoked
by the tekmode entry in vtMenu and the vtmode entry in tekMenu.
- set-titeInhibit(on/off/toggle)
- This action sets, unsets or toggles the titeInhibit resource, which controls
switching between the alternate and current screens.
- set-toolbar(on/off/toggle)
- This action sets, unsets or toggles the toolbar feature. It is also invoked
by the toolbar entry in mainMenu.
- set-utf8-mode(on/off/toggle)
- This action
sets, unsets or toggles the utf8 resource. It is also invoked by the utf8-mode
entry in fontMenu.
- set-utf8-title(on/off/toggle)
- This action sets, unsets
or toggles the utf8Title resource. It is also invoked by the utf8-title entry
in fontMenu.
- set-visibility(vt/tek,on/off/toggle)
- This action sets, unsets
or toggles whether or not the vt or tek windows are visible. It is also
invoked from the tekshow and vthide entries in vtMenu and the vtshow and
tekhide entries in tekMenu.
- set-visual-bell(on/off/toggle)
- This action sets,
unsets or toggles the visualBell resource. It is also invoked by the visualbell
entry in vtMenu.
- set-vt-font(d/1/2/3/4/5/6/e/s [,normalfont [, boldfont]])
- This action sets the font or fonts currently being used in the VT102 window.
The first argument is a single character that specifies the font to be
used:
- d or D indicate the default font (the font initially
- used when xterm
was started),
- 1 through 6 indicate the fonts
- specified by the font1 through
font6 resources,
- e or E
- indicate the normal and bold fonts that have been
set through escape codes (or specified as the second and third action arguments,
respectively), and
- s or S indicate the font selection (as made by programs
such as
- xfontsel(__mansuffix__)) indicated by the second action argument.
- If xterm is configured to support wide characters, an
- additional two optional
parameters are recognized for the e argument: wide font and wide bold font.
- smaller-vt-font()
- Set the font to the next smaller one, based on the font
dimensions. See also set-vt-font().
- soft-reset()
- This action resets the scrolling
region. It is also invoked from the softreset entry in vtMenu. The effect
is identical to a soft reset (DECSTR) control sequence.
- spawn-new-terminal(params)
- Spawn a new xterm process. This is available on systems which have a modern
version of the process filesystem, e.g., ``/proc'', which xterm can read.
- Use
the ``cwd'' process entry, e.g., /proc/12345/cwd to obtain the
- working directory
of the process which is running in the current xterm.
- On systems which have
the ``exe'' process entry, e.g., /proc/12345/exe,
- use this to obtain the actual
executable. Otherwise, use the $PATH variable to find xterm.
- If parameters
are given in the action,
- pass them to the new xterm process.
- start-extend()
- This action is similar to select-start except that the selection is extended
to the current pointer location.
- start-cursor-extend()
- This action is similar
to select-extend except that the selection is extended to the current text
cursor position.
- string(string)
- This action inserts the specified text string
as if it had been typed. Quotation is necessary if the string contains whitespace
or non-alphanumeric characters. If the string argument begins with the characters
``0x'', it is interpreted as a hex character constant.
- tek-copy()
- This action
copies the escape codes used to generate the current window contents to
a file in the current directory beginning with the name COPY. It is also
invoked from the tekcopy entry in tekMenu.
- tek-page()
- This action clears
the Tektronix window. It is also invoked by the tekpage entry in tekMenu.
- tek-reset()
- This action resets the Tektronix window. It is also invoked by
the tekreset entry in tekMenu.
- vi-button()
- Handles a button event (other
than press and release) by echoing a control sequence computed from the
event's line number in the screen relative to the current line:
ESC ^P
or ESC ^N
according to whether the event is before, or after the current
line, respectively. The ^N (or ^P) is repeated once for each line that the
event differs from the current line. The control sequence is omitted altogether
if the button event is on the current line.
- visual-bell()
- This action flashes
the window quickly.
The Tektronix window also has the following action:
- gin-press(l/L/m/M/r/R)
- This action sends the indicated graphics input code.
The default bindings in the VT102 window use the SELECT
token, which is set by the selectToClipboard resource. These are for the
vt100 widget:
Shift <KeyPress> Prior:scroll-back(1,halfpage) \n\
Shift <KeyPress> Next:scroll-forw(1,halfpage) \n\
Shift <KeyPress> Select:select-cursor-start() \
select-cursor-end(SELECT, CUT_BUFFER0) \n\
Shift <KeyPress> Insert:insert-selection(SELECT, CUT_BUFFER0) \n\
Alt <Key>Return:fullscreen() \n\
<KeyRelease> Scroll_Lock:scroll-lock() \n\
Shift~Ctrl <KeyPress> KP_Add:larger-vt-font() \n\
Shift Ctrl <KeyPress> KP_Add:smaller-vt-font() \n\
Shift <KeyPress> KP_Subtract:smaller-vt-font() \n\
~Meta <KeyPress>:insert-seven-bit() \n\
Meta <KeyPress>:insert-eight-bit() \n\
!Ctrl <Btn1Down>:popup-menu(mainMenu) \n\
!Lock Ctrl <Btn1Down>:popup-menu(mainMenu) \n\
!Lock Ctrl @Num_Lock <Btn1Down>:popup-menu(mainMenu) \n\
! @Num_Lock Ctrl <Btn1Down>:popup-menu(mainMenu) \n\
~Meta <Btn1Down>:select-start() \n\
~Meta <Btn1Motion>:select-extend() \n\
!Ctrl <Btn2Down>:popup-menu(vtMenu) \n\
!Lock Ctrl <Btn2Down>:popup-menu(vtMenu) \n\
!Lock Ctrl @Num_Lock <Btn2Down>:popup-menu(vtMenu) \n\
! @Num_Lock Ctrl <Btn2Down>:popup-menu(vtMenu) \n\
~Ctrl ~Meta <Btn2Down>:ignore() \n\
Meta <Btn2Down>:clear-saved-lines() \n\
~Ctrl ~Meta <Btn2Up>:insert-selection(SELECT, CUT_BUFFER0) \n\
!Ctrl <Btn3Down>:popup-menu(fontMenu) \n\
!Lock Ctrl <Btn3Down>:popup-menu(fontMenu) \n\
!Lock Ctrl @Num_Lock <Btn3Down>:popup-menu(fontMenu) \n\
! @Num_Lock Ctrl <Btn3Down>:popup-menu(fontMenu) \n\
~Ctrl ~Meta <Btn3Down>:start-extend() \n\
~Meta <Btn3Motion>:select-extend() \n\
Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
Lock Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
Lock @Num_Lock Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
@Num_Lock Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
<Btn4Down>:scroll-back(5,line,m) \n\
Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
Lock Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
Lock @Num_Lock Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
@Num_Lock Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
<Btn5Down>:scroll-forw(5,line,m) \n\
<BtnUp>:select-end(SELECT, CUT_BUFFER0) \n\
<BtnDown>:ignore()
The default bindings in the Tektronix window are analogous but less extensive.
These are for the tek4014 widget:
~Meta<KeyPress>: insert-seven-bit() \n\
Meta<KeyPress>: insert-eight-bit() \n\
!Ctrl <Btn1Down>: popup-menu(mainMenu) \n\
!Lock Ctrl <Btn1Down>: popup-menu(mainMenu) \n\
!Lock Ctrl @Num_Lock <Btn1Down>: popup-menu(mainMenu) \n\
!Ctrl @Num_Lock <Btn1Down>: popup-menu(mainMenu) \n\
!Ctrl <Btn2Down>: popup-menu(tekMenu) \n\
!Lock Ctrl <Btn2Down>: popup-menu(tekMenu) \n\
!Lock Ctrl @Num_Lock <Btn2Down>: popup-menu(tekMenu) \n\
!Ctrl @Num_Lock <Btn2Down>: popup-menu(tekMenu) \n\
Shift ~Meta<Btn1Down>: gin-press(L) \n\
~Meta<Btn1Down>: gin-press(l) \n\
Shift ~Meta<Btn2Down>: gin-press(M) \n\
~Meta<Btn2Down>: gin-press(m) \n\
Shift ~Meta<Btn3Down>: gin-press(R) \n\
~Meta<Btn3Down>: gin-press(r)
Here is an example which uses shifted select/paste to copy to the clipboard,
and unshifted select/paste for the primary selection. In each case, a (different)
cut buffer is also a target or source of the select/paste operation. It
is important to remember however, that cut buffers store data in ISO-8859-1
encoding, while selections can store data in a variety of formats and encodings.
While xterm owns the selection, it highlights it. When it loses the selection,
it removes the corresponding highlight. But you can still paste from the
corresponding cut buffer.
*VT100*translations: #override \n\
~Shift~Ctrl<Btn2Up>: insert-selection(PRIMARY, CUT_BUFFER0) \n\
Shift~Ctrl<Btn2Up>: insert-selection(CLIPBOARD, CUT_BUFFER1) \n\
~Shift<BtnUp>: select-end(PRIMARY, CUT_BUFFER0) \n\
Shift<BtnUp>: select-end(CLIPBOARD, CUT_BUFFER1)
In the example, the class name VT100 is used rather than the widget name.
These are different; the class name provides a more-specific match than
the widget name. A leading ``*'' is used because the widget hierarchy above
the vt100 widget depends on whether the toolbar support is compiled into
xterm.
Below is shown a sample of how the keymap() action may be used to
add special keys for entering commonly-typed words:
*VT100.Translations: #override <Key>F13: keymap(dbx)
*VT100.dbxKeymap.translations: \
<Key>F14: keymap(None) \n\
<Key>F17: string("next") string(0x0d) \n\
<Key>F18: string("step") string(0x0d) \n\
<Key>F19: string("continue") string(0x0d) \n\
<Key>F20: string("print ") insert-selection(PRIMARY, CUT_BUFFER0)
Key bindings are normally associated with the
vt100 or tek4014 widgets which act as terminal emulators. Xterm's scrollbar
(and toolbar if it is configured) are separate widgets. Because all of these
use the X Toolkit, they have corresponding translations resources. Those
resources are distinct, and match different patterns, e.g., the differences
in widget-name and number of levels of widgets which they may contain.
The
scrollbar widget is a child of the vt100 widget. It is positioned on top
of the vt100 widget. Toggling the scrollbar on and off causes the vt100
widget to resize.
The default bindings for the scrollbar widget use only
mouse-button events:
<Btn5Down>: StartScroll(Forward) \n\
<Btn1Down>: StartScroll(Forward) \n\
<Btn2Down>: StartScroll(Continuous) MoveThumb() NotifyThumb()
\n\
<Btn3Down>: StartScroll(Backward) \n\
<Btn4Down>: StartScroll(Backward) \n\
<Btn2Motion>: MoveThumb() NotifyThumb() \n\
<BtnUp>: NotifyScroll(Proportional) EndScroll()
Events which the scrollbar widget does not recognize at all are lost.
However, at startup, xterm augments these translations with the default
translations used for the vt100 widget, together with the resource ``actions''
which those translations use. Because the scrollbar (or menubar) widgets
do not recognize these actions (but because it has a corresponding translation),
they are passed on to the vt100 widget.
This augmenting of the scrollbar's
translations has a few limitations:
·- Xterm knows what the default translations
are, but there is no suitable library interface for determining what customizations
a user may have added to the vt100 widget. All that xterm can do is augment
the scrollbar widget to give it the same starting point for further customization
by the user.
·- Events in the gap between the widgets may be lost.
·- Compose
sequences begun in one widget cannot be completed in the other, because
the input methods for each widget do not share context information.
Most
customizations of the scrollbar translations do not concern key bindings.
Rather, users are generally more interested in changing the bindings of
the mouse buttons. For example, some people prefer using the left pointer
button for dragging the scrollbar thumb. That can be set up by altering
the translations resource, e.g.,
*VT100.scrollbar.translations: #override \n\
<Btn5Down>: StartScroll(Forward) \n\
<Btn1Down>: StartScroll(Continuous) MoveThumb() NotifyThumb()
\n\
<Btn4Down>: StartScroll(Backward) \n\
<Btn1Motion>: MoveThumb() NotifyThumb() \n\
<BtnUp>: NotifyScroll(Proportional) EndScroll()
Applications can send sequences of characters
to the terminal to change its behavior. Often they are referred to as ``ANSI
escape sequences'' or just plain ``escape sequences'' but both terms are misleading:
·- ANSI x3.64 (obsolete) which was replaced by ISO 6429 (ECMA-48) gave rules
for the format of these sequences of characters.
·- While the original VT100
was claimed to be ANSI-compatible (against x3.64), there is no freely available
version of the ANSI standard to show where the VT100 differs. Most of the
documents which mention the ANSI standard have additions not found in the
original (such as those based on ansi.sys). So this discussion focuses on
the ISO standards.
·- The standard describes only sequences sent from the
host to the terminal. There is no standard for sequences sent by special
keys from the terminal to the host. By convention (and referring to existing
terminals), the format of those sequences usually conforms to the host-to-terminal
standard.
·- Some of xterm's sequences do not fit into the standard scheme.
Technically those are ``unspecified''. As an example, DEC Screen Alignment Test
(DECALN) is this three-character sequence:
ESC # 8
·- Some sequences fit into the standard format, but are not listed in the
standard. These include the sequences used for setting up scrolling margins
and doing forward/reverse scrolling.
·- Some of the sequences (in particular,
the single-character functions such as tab and backspace) do not include
the escape character.
With all of that in mind, the standard refers to these
sequences of characters as ``control sequences''.
The Xterm Control Sequences
document lists the control sequences which an application can send xterm
to make it perform various operations. Most of these operations are standardized,
from either the DEC or Tektronix terminals, or from more widely used standards
such as ISO-6429.
A few examples of usage are given in this section.
Some scripts use echo with options -e and -n to tell the shell to interpret
the string ``\e'' as the escape character and to suppress a trailing newline
on output. Those are not portable, not recommended. Instead, use printf (POSIX).
For example, to set the window title to ``Hello world!'', you could use one
of these commands in a script:
printf '\033]2;Hello world!\033\'
printf '\033]2;Hello world!\007'
printf '\033]2;%s\033\' "Hello world!"
printf '\033]2;%s\007' "Hello world!"
The printf command interprets the octal value ``\033'' for escape, and (since
it was not given in the format) omits a trailing newline from the output.
Some programs (such as screen(1)
) set both window- and icon-titles at the
same time, using a slightly different control sequence.
Xterm,
like any VT100-compatible terminal emulator, has two modes for the special
keys (cursor-keys, numeric keypad, and certain function-keys):
·- normal mode,
which makes the special keys transmit ``useful'' sequences such as the control
sequence for cursor-up when pressing the up-arrow, and
·- application mode,
which uses a different control sequence that cannot be mistaken for the
``useful'' sequences.
The main difference between the two modes is that normal
mode sequences start with CSI (escape [) and application mode sequences
start with SS3 (escape O).
The terminal is initialized into one of these
two modes (usually the normal mode), based on the terminal description
(termcap or terminfo). The terminal description also has capabilities (strings)
defined for the keypad mode used in curses applications.
There is a problem
in using the terminal description for applications that are not intended
to be full-screen curses applications: the definitions of special keys are
only correct for this keypad mode. For example, some shells (unlike ksh(1)
,
which appears to be hard-coded, not even using termcap) allow their users
to customize key-bindings, assigning shell actions to special keys.
A few shell programs provide the ability for users to
add color and other video attributes to the shell prompt strings. Users
can do this by setting $PS1 (the primary prompt string). Again, bash and
zsh have provided features not found in ksh. There is a problem, however:
the prompt's width on the screen will not necessarily be the same as the
number of characters. Because there is no guidance in the POSIX standard,
each shell addresses the problem in a different way:
·- bash treats characters
within ``\['' and ``\]'' as nonprinting (using no width on the screen).
·- zsh treats
characters within ``%{'' and ``%}'' as nonprinting.
In addition to the difference
in syntax, the shells provide different methods for obtaining useful escape
sequences:
·- As noted in Special Keys, zsh initializes the $terminfo array
with the terminal capabilities.
- It also provides a function echoti which
works like tput(1)
- to convert a terminal capability with its parameters
into a string that can be written to the terminal. ·
- Shells lacking a comparable
feature (such as bash) can always use the program tput to do this transformation.
Hard-coded escape sequences are supported by each shell, but are not recommended
because those rely upon particular configurations and cannot be easily
moved between different user environments.
Xterm sets several
environment variables:
- DISPLAY
- is the display name, pointing to the X server
(see DISPLAY NAMES in X(__miscmansuffix__)).
- TERM
- is set according to the
terminfo (or termcap) entry which it is using as a reference.
- On some systems,
you may encounter situations where the shell which you
- use and xterm are
built using libraries with different terminal databases. In that situation,
xterm may choose a terminal description not known to the shell.
- WINDOWID
- is set to the X window id number of the xterm window.
- XTERM_FILTER
- is set
if a locale-filter is used. The value is the pathname of the filter.
- XTERM_LOCALE
- shows the locale which was used by xterm on startup. Some shell initialization
scripts may set a different locale.
- XTERM_SHELL
- is set to the pathname of
the program which is invoked. Usually that is a shell program, e.g., /bin/sh.
Since it is not necessarily a shell program however, it is distinct from
``SHELL''.
- XTERM_VERSION
- is set to the string displayed by the -version option.
That is normally an identifier for the X Window libraries used to build
xterm, followed by xterm's patch number in parenthesis. The patch number
is also part of the response to a Secondary Device Attributes (DA) control
sequence (see Xterm Control Sequences).
Depending on your system configuration,
xterm may also set the following:
- COLUMNS
- the width of the xterm in characters
(cf: ``stty columns'').
- HOME
- when xterm is configured to update utmp.
- LINES
- the
height of the xterm in characters (cf: ``stty rows'').
- LOGNAME
- when xterm is
configured to update utmp.
- SHELL
- when xterm is configured to update utmp.
It is also set if you provide a valid shell name as the optional parameter.
- Xterm sets this to an absolute pathname.
- If you have set the variable to
a relative pathname, xterm may set it to a different shell pathname.
- If
you have set this to an pathname which does not correspond to a valid
- shell,
xterm may unset it, to avoid confusion.
- TERMCAP
- the contents of the termcap
entry corresponding to $TERM, with lines and columns values substituted
for the actual size window you have created.
- TERMINFO
- may be defined to
a nonstandard location in the configure script.
The actual pathnames
given may differ on your system.
- /etc/shells
- contains a list of valid shell
programs, used by xterm to decide if the ``SHELL'' environment variable should
be set for the process started by xterm.
- /etc/utmp
- the system logfile, which
records user logins.
- /etc/wtmp
- the system logfile, which records user logins
and logouts.
- __apploaddir__/__default_class__
- the xterm default application
resources.
- __apploaddir__/__default_class__-color
- the xterm color application
resources. If your display supports color, use this *customization: -color
in your .Xdefaults file to automatically use this resource file rather
than __apploaddir__/__default_class__. If you do not do this, xterm uses
its compiled-in default resource settings for colors.
- __pixmapsdir__
- the
directory in which xterm's pixmap icon files are installed.
Most
of the fatal error messages from xterm use the following format: xterm:
Error XXX, errno YYY: ZZZ
The XXX codes (which are used by xterm as its
exit-code) are listed below, with a brief explanation.
- is used for miscellaneous
errors, usually accompanied by a specific message,
- ERROR_FIONBIO
main: ioctl() failed on FIONBIO - ERROR_F_GETFL
main: ioctl() failed on F_GETFL - ERROR_F_SETFL
main: ioctl() failed on F_SETFL - ERROR_OPDEVTTY
spawn: open() failed on /dev/tty - ERROR_TIOCGETP
spawn: ioctl() failed on TIOCGETP - ERROR_PTSNAME
spawn: ptsname() failed - ERROR_OPPTSNAME
spawn: open() failed on ptsname - ERROR_PTEM
spawn: ioctl() failed on I_PUSH/"ptem" - ERROR_CONSEM
spawn: ioctl() failed on I_PUSH/"consem" - ERROR_LDTERM
spawn: ioctl() failed on I_PUSH/"ldterm" - ERROR_TTCOMPAT
spawn: ioctl() failed on I_PUSH/"ttcompat" - ERROR_TIOCSETP
spawn: ioctl() failed on TIOCSETP - ERROR_TIOCSETC
spawn: ioctl() failed on TIOCSETC - ERROR_TIOCSETD
spawn: ioctl() failed on TIOCSETD - ERROR_TIOCSLTC
spawn: ioctl() failed on TIOCSLTC - ERROR_TIOCLSET
spawn: ioctl() failed on TIOCLSET - ERROR_INIGROUPS
spawn: initgroups() failed - ERROR_FORK
spawn: fork() failed - ERROR_EXEC
spawn: exec() failed - ERROR_PTYS
get_pty: not enough ptys - ERROR_PTY_EXEC
waiting for initial map - ERROR_SETUID
spawn: setuid() failed - ERROR_INIT
spawn: can't initialize window - ERROR_TIOCKSET
spawn: ioctl() failed on TIOCKSET - ERROR_TIOCKSETC
spawn: ioctl() failed on TIOCKSETC - ERROR_LUMALLOC
luit: command-line malloc failed - ERROR_SELECT
in_put: select() failed - ERROR_VINIT
VTInit: can't initialize window - ERROR_KMMALLOC1
HandleKeymapChange: malloc failed - ERROR_TSELECT
Tinput: select() failed - ERROR_TINIT
TekInit: can't initialize window - ERROR_BMALLOC2
SaltTextAway: malloc() failed - ERROR_LOGEXEC
StartLog: exec() failed - ERROR_XERROR
xerror: XError event - ERROR_XIOERROR
xioerror: X I/O error - ERROR_ICEERROR
ICE I/O error - ERROR_SCALLOC
Alloc: calloc() failed on base - ERROR_SCALLOC2
Alloc: calloc() failed on rows - ERROR_SAVE_PTR
ScrnPointers: malloc/realloc() failed
Large pastes do not work on
some systems. This is not a bug in xterm; it is a bug in the pseudo terminal
driver of those systems. Xterm feeds large pastes to the pty only as fast
as the pty will accept data, but some pty drivers do not return enough
information to know if the write has succeeded.
When connected to an input
method, it is possible for xterm to hang if the XIM server is suspended
or killed.
Many of the options are not resettable after xterm starts.
This
program still needs to be rewritten. It should be split into very modular
sections, with the various emulators being completely separate widgets
that do not know about each other. Ideally, you'd like to be able to pick
and choose emulator widgets and stick them into a single control widget.
There needs to be a dialog box to allow entry of the Tek COPY file name.
resize(__mansuffix__), luit(__mansuffix__), uxterm(__mansuffix__),
X(__miscmansuffix__), pty(4)
, tty(4)
Xterm Control Sequences (this is
the file ctlseqs.ms).
http://invisible-island.net/xterm/xterm.html
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
http://invisible-island.net/xterm/xterm.faq.html
Far too many people,
including:
Loretta Guarino Reid (DEC-UEG-WSL), Joel McCormack (DEC-UEG-WSL),
Terry Weissman (DEC-UEG-WSL), Edward Moy (Berkeley), Ralph R. Swick (MIT-Athena),
Mark Vandevoorde (MIT-Athena), Bob McNamara (DEC-MAD), Jim Gettys (MIT-Athena),
Bob Scheifler (MIT X Consortium), Doug Mink (SAO), Steve Pitschke (Stellar),
Ron Newman (MIT-Athena), Jim Fulton (MIT X Consortium), Dave Serisky (HP),
Jonathan Kamens (MIT-Athena), Jason Bacon, Stephen P. Wall, David Wexelblat,
and Thomas Dickey (invisible-island.net).
Table of Contents