NAME¶
x3270 - IBM host access tool
SYNOPSIS¶
x3270 [options] [host]
x3270 [options] session-file.x3270
DESCRIPTION¶
x3270 opens a telnet connection to an IBM host in an X
window. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name
selection), and supports IND$FILE file transfer. The window created by
x3270 can use its own font for displaying characters, so it is a
fairly accurate representation of an IBM 3278 or 3279. It is similar to
tn3270(1) except that it is X11-based, not curses-based. The full
syntax for host is:
[prefix:]...[LUname@]hostname[:port][=accept]
Prepending a P: onto hostname causes the connection
to go through the telnet-passthru service rather than directly to the
host. See PASSTHRU below.
Prepending an S: onto hostname removes the
"extended data stream" option reported to the host. See -tn
below for further information.
Prepending an N: onto hostname turns off TN3270E
support for the session.
Prepending an L: onto hostname causes x3270
to first create a TLS tunnel to the host, and then create a TN3270 session
inside the tunnel. (This function is supported only if x3270 was
built with TLS support). Note that TLS-encrypted sessions using the TELNET
START-TLS option are negotiated with the host automatically; for these
sessions the L: prefix should not be used.
Prepending a Y: onto hostname causes x3270 to
skip validation of host TLS certificates. This overrides any other
configuration or command-line options.
Prepending an A: onto hostname is equivalent to
setting the -nvt option; it forces an NVT-mode session instead of a
3270-mode session.
A specific Logical Unit (LU) name to use may be specified by
prepending it to the hostname with an `@'. Multiple LU names
to try can be separated by commas. An empty LU can be placed in the list
with an extra comma. (Note that the LU name is used for different purposes
by different kinds of hosts. For example, CICS uses the LU name as the
Terminal ID.)
The hostname may optionally be placed inside square-bracket
characters `[' and `]'. This will prevent any colon `:'
characters in the hostname from being interpreted as indicating option
prefixes or port numbers. This allows numeric IPv6 addresses to be used as
hostnames.
On systems that support the forkpty library call, the
hostname may be replaced with -e and a command string. This
will cause x3270 to connect to a local child process, such as a
shell.
The port to connect to defaults to telnet. This can be
overridden with the -port option, or by appending a port to
the hostname with a colon `:'. (For compatability with
previous versions of x3270 and with tn3270(1), the port
may also be specified as a second, separate argument.)
An optional accept name (a hostname to accept in the host's TLS
certificate) may be specified by appending it to the hostname with an equals
sign (`='). The accept name can also be specified with the
-accepthostname option.
OPTIONS¶
x3270 is a toolkit based program, so it understands
standard Xt options and resources. It also understands the following
options:
- -accepthostname
name
- Specifies a particular hostname to accept when validating the name
presented in the server SSL certificate, instead of comparing to the name
used to make the connection.
- -activeicon
- Specifies that the icon should be a miniature version of the screen image.
See ICONS below.
- -apl
- Sets up APL mode. This is actually an abbreviation for several options.
See APL SUPPORT below.
- -cadir
directory
- Specifies a directory containing CA (root) certificates to use when
verifying a certificate provided by the host. (OpenSSL only)
- -cafile
filename
- Specifies a PEM-format file containing CA (root) certificates to use when
verifying a certificate provided by the host. (OpenSSL only)
- -cc
range:value[,...]
- Sets character classes.
- -certfile
filename
- Specifies a file containing a client certificate to provide to the host.
The default file type is PEM.
- -clientcert
name
- Specifies the name of a client certificate to provide to the host. (MacOS
only)
- -certfiletype
type
- Specifies the type of the certificate file specified by -certfile.
Type can be pem or asn1. (OpenSSL only)
- -chainfile
filename
- Specifies a certificate chain file in PEM format, containing a certificate
to provide to the host, as well as one or more intermediate certificates
and the CA certificate used to sign that certificate. If -chainfile
is specified, it overrides -certfile. (OpenSSL only)
- -clear
toggle
- Sets the initial value of toggle to false.
- -codepage
name
- Specifies an EBCDIC host code page.
- -connecttimeout
seconds
- Specifies the time that x3270 will wait for a host connection to
complete.
- -devname
name
- Specifies a device name (workstation ID) for RFC 4777 support.
- -efont
name
- Specifies a font for the emulator window.
- -hostsfile
file
- Uses file as the hosts file, which allows aliases for host names
and scripts to be executed at login. See ibm_hosts(1) for
details.
- -httpd
[addr:]port
- Specifies a port and optional address to listen on for HTTP connections.
Addr can be specified as `*' to indicate 0.0.0.0; the default is
127.0.0.1. IPv6 numeric addresses must be specified inside of square
brackets, e.g., [::1]:4080 to specify the IPv6 loopback address and TCP
port 4080.
- Note that this option is mutually-exclusive with the -scriptport
option
- -iconname
name
- Specifies an alternate title for the program icon.
- -iconx
x
- Specifies the initial x coordinate for the program icon.
- -icony
y
- Specifies the initial y coordinate for the program icon.
- -im method
- Specifies the name of the input method to use for multi-byte input.
(Supported only when x3270 is compiled with DBCS support.)
- -keyfile
filename
- Specifies a file containing the private key for the certificate file
(specified via -certfile or -chainfile). The default file
type is PEM. (OpenSSL only)
- -keyfiletype
type
- Specifies the type of the private key file specified by -keyfile.
Type can be pem or asn1. (OpenSSL only)
- -keypasswd
type:value
- Specifies the password for the private key file (OpenSSL) or client
certificate file (MacOS), if it is encrypted. The argument can be
file:filename, specifying that the password is in a file, or
string:string, specifying the password on the command-line
directly. If the private key file is encrypted and no -keypasswd
option is given, the password will be prompted for interactively.
- -keymap
name
- Specifies a keymap name and optional modifiers. See KEYMAPS below.
- -keypad
- Turns on the keypad as soon as x3270 starts.
- -km name
- Specifies the local encoding method for multi-byte text. name is an
encoding name recognized by the ICU library. (Supported only when x3270 is
compiled with DBCS support, and necessary only when x3270 cannot figure it
out from the locale.)
- -loginmacro
Action(arg...) ...
- Specifies a macro to run at login time.
- -model
name
- The model of 3270 display to be emulated. The model name is in two parts,
either of which may be omitted:
- The first part is the base model, which is either 3278 or
3279. 3278 specifies a monochrome (green on black) 3270
display; 3279 specifies a color 3270 display.
- The second part is the model number, which specifies the number of
rows and columns. Model 4 is the default.
Model Number |
Columns |
Rows |
2 |
80 |
24 |
3 |
80 |
32 |
4 |
80 |
43 |
5 |
132 |
27 |
- Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5,
but most hosts seem to work with them anyway.
- The default model for a color X display is 3279-4. For a monochrome
X display, it is 3278-4.
- -mono
- Forces x3270 to believe it is running on a monochrome X
display.
- -noverifycert
- For TLS connections, do not verify the host certificate.
- -nvt
- Start in NVT mode instead of waiting for the host to send data, and make
the default terminal type xterm.
- -once
- Causes x3270 to exit after a host disconnects. This option has
effect only if a hostname is specified on the command line.
- -oversize
colsxrows
- Makes the screen larger than the default for the chosen model number. This
option has effect only in combination with extended data stream support
(controlled by the "x3270.extended" resource), and only if the
host supports the Query Reply structured field. The number of columns
multiplied by the number of rows must not exceed 16383 (3fff hex), the
limit of 14-bit 3270 buffer addressing.
- -port n
- Specifies a different TCP port to connect to. n can be a name from
/etc/services like telnet, or a number. This option changes
the default port number used for all connections. (The positional
parameter affects only the initial connection.)
- -printerlu
luname
- Causes x3270 to automatically start a pr3287 printer
session. If luname is ".", then the printer session will
be associated with the interactive terminal session (this requires that
the host support TN3270E). Otherwise, the value is used as the explicit LU
name to associate with the printer session.
- -proxy
type:host[:port]
- Causes x3270 to connect via the specified proxy, instead of using a
direct connection. The host can be an IP address or hostname. The
optional port can be a number or a service name. For a list of
supported proxy types, see PROXY below.
- -pt type
- Specifies the preedit type for the multi-byte input method. Valid values
are OverTheSpot, OffTheSpot, Root and
OnTheSpot. The value for OverTheSpot can include an optional
suffix, a signed number indicating the vertical distance in rows of the
preedit window from the cursor position, e.g. OverTheSpot+1 or
OverTheSpot-2. The default value is OverTheSpot+1.
(Supported only when x3270 is compiled with DBCS support.)
- -reconnect
- Causes x3270 to automatically reconnect to the host if it ever
disconnects. This option has effect only if a hostname is specified on the
command line.
- -sb
- Turns on the scrollbar.
- +sb
- Turns the scrollbar off.
- -scheme
name
- Specifes a color scheme to use in 3279 mode. This option has effect only
in combination with 3279 emulation.
- -script
- Causes x3270 to read actions from standard input, with the results
written to standard output. The protocol for these actions is documented
in x3270-script(1).
- -sl n
- Specifies that n lines should be saved for scrolling back. The
default is 4096.
- -scriptport
[addr:]port
- Specifies a port and optional address to listen on for scripting
connections. Addr can be specified as `*' to indicate 0.0.0.0; the
default is 127.0.0.1. IPv6 numeric addresses must be specified inside of
square brackets, e.g., [::1]:4081 to specify the IPv6 loopback address and
TCP port 4081.
- Note that this option is mutually-exclusive with the -httpd option
- -scriptportonce
- Allows x3270 to accept only one script connection. When that connection is
broken, x3270 will exit.
- -secure
- Disables run-time features that could compromise system security
(user-specified file names and actions, etc.).
- -set
toggle
- Sets the initial value of toggle to true.
- -socket
- Causes the emulator to create a Unix-domain socket when it starts, for use
by script processes to send actions to the emulator. The socket is named
/tmp/x3sck.pid. The -p option of x3270if
causes it to use this socket, instead of pipes specified by environment
variables.
- -tn name
- Specifies the terminal name to be transmitted over the telnet connection.
The default name is IBM-model_name-E, for example,
IBM-3279-4-E for a color X display, or IBM-3278-4-E for a
monochrome X display.
- Some hosts are confused by the -E suffix on the terminal name, and
will ignore the extra screen area on models 3, 4 and 5. Prepending an
S: on the hostname, or setting the "x3270.extended"
resource to "false", removes the -E from the terminal
name when connecting to such hosts.
- The name can also be specified with the "x3270.termName"
resource.
- -trace
- Turns on data stream tracing at startup. Unlike turning it on from a menu
option, there is no pop-up to confirm the file name, which defaults to
/tmp/x3trc.pid.
- -tracefile
file
- Specifies a file to save data stream and event traces into. If the name
starts with `>>', data will be appended to the file. If the value
stdout is given, then traces will be written to standard output. If
the value none is given, then traces will be piped directly to the
monitor window, and no file will be created.
- -tracefilesize
size
- Places a limit on the size of a trace file. If this option is not
specified, or is specified as 0 or none, the trace file size
will be unlimited. The minimum size is 64 Kbytes. The value of size
can have a K or M suffix, indicating kilobytes or megabytes
respectively. When the trace file reaches the size limit, it will be
renamed with a `-' appended and a new file started.
- -user
name
- Specifies the user name for RFC 4777 support.
- -v
- Display the version and build options for x3270 and exit.
- -verifycert
- For TLS connections, verify the host certificate, and do not allow the
connection to complete unless it can be validated. (This is the default
setting.) This option is overridden by a Y: prepended to the
hostname when connecting.
After reading resource definitions from the X server and any
standandard X11 resource definition files ($HOME/.Xdefaults, etc.),
x3270 will read definitions from the file $HOME/.x3270pro.
This file contains local customizations and is also used to save changed
options by the Save Changed Options in File menu option.
Note that -xrm options override any definitions in the
.x3270pro file.
STATUS LINE¶
The x3270 status line contains a variety of information.
From left to right, the fields are:
- comm status
- The first symbol is always a 4. If x3270 is in TN3270E mode,
the second symbol is a B; otherwise it is an A. If
x3270 is disconnected, the third symbol is a question mark.
Otherwise, if x3270 is in SSCP-LU mode, the third symbol is an
S. Otherwise it is blank.
- keyboard
lock
- If the keyboard is locked, an "X" symbol and a message field
indicate the reason for the keyboard lock.
- shift
- Three characters indicate the keyboard modifier status. "M"
indicates the Meta key, "A" the Alt key, and an up-arrow or
"^" indicates the Shift key.
- compose
- The letter "C" indicates that a composite character is in
progress. If another symbol follows the "C", it is the first
character of the composite.
- typeahead
- The letter "T" indicates that one or more keystrokes are in the
typeahead buffer.
- temporary
keymap
- The letter "K" indicates that a temporary keymap is in
effect.
- reverse
- The letter "R" indicates that the keyboard is in reverse field
entry mode.
- insert
mode
- A thick caret "^" or the letter "I" indicates that the
keyboard is in insert mode.
- printer
session
- The letter "P" indicates that a pr3287 session is
active.
- script
- The letter "S" indicates that a script is active.
- LU name
- The LU name associated with the session, if there is one.
- timing
- A clock symbol and a time in seconds indicate the time it took to process
the last AID or the time to connect to a host. This display is
optional.
- cursor
position
- The cursor row and column are optionally displayed, zero padded and
separated by a "/". Location 001/001 is at the upper left, which
is different from the row and columns parameters used with various
actions, where the upper left corner is row 0, column 0.
ICONS¶
If the -activeicon option is given (or the
"x3270.activeIcon" resource is set to true), x3270
will attempt to make its icon a miniature version of the current screen
image. This function is highly dependent on your window manager:
- mwm
- The size of the icon is limited by the "Mwm.iconImageMaximum"
resource, which defaults to 50x50. The image will be clipped at the
bottom and right. The icon cannot accept keyboard input.
- olwm
- The full screen image of all 3270 models can be displayed on the icon.
However, the icon cannot be resized, so if the model is later changed with
an x3270 menu option, the icon image will be corrupted. The icon
cannot accept keyboard input.
- twm and
tvtwm
- The full screen image of all 3270 models can be displayed on the icon, and
the icon can be resized. The icon can accept keyboard input.
- However, twm does not put labels on application-supplied icon
windows. You can have x3270 add its own label to the icon by
setting the "x3270.labelIcon" resource to true. The
default font for icon labels is 8x13; you may change it with the
"x3270.iconLabelFont" resource.
KEYMAPS¶
The type of keyboard may be specified with the -keymap
switch or using either the KEYMAP or KEYBD environment variables. The types
of supported keyboards include sun_k3, sun_k4, sun_k5,
hp-k1, hp-pc and ncd.
The keymap may also be specified as a comma-separated list of
names. Later definitions override earlier ones. This is used to specify both
a primary keyboard type and a set of modifiers. The modifiers defined
include:
- ow
- (OpenWindows) Swaps the middle and right mouse button definitions, so the
middle button performs the "Extend" function and the right-hand
button performs the "Paste" function. Also changes the cut and
paste actions to use the OpenWindows CLIPBOARD.
- apl
- Allows entry of APL characters (see APL SUPPORT below).
- finnish7
- Replaces the bracket, brace and bar keys with common Finnish
characters.
- norwegian7
- Replaces the bracket, brace and bar keys with common Norwegian
characters.
A temporary keymap can also be specified while x3270 is
running with the Keymap action. When the action
Keymap(n) is executed, temporary keymap n is added to
or deleted from the current keymap. Multiple temporary keymaps can be active
simultaneously. The action Keymap(None) restores the original keymap.
Note: When Keymap() is specified as part of a list of multiple
actions in a keymap, it must be the last action in the list.
The temporary keymap hebrew is provided to allow entry of
Hebrew characters.
The X Toolkit translation mechanism is used to provide keyboard
emulation. It maps events into actions. The best documentation
can be found with X toolkit documents, but the following should suffice for
simple customization.
An Xt event consists of (at least) four fields. The first is
called a modifier. It may be any combination of Meta,
Shift and Ctrl. If it is prefaced by !, it means those
modifiers only. The second field is the specific event, in x3270
usually just <Key>. The third field is the detail field, which gives
the actual key. The name of the key may be determined using the xev
program or with the "Trace X Events" menu option. The last field
is the action, which is the internal emulator function. A complete list of
actions may be found later in the manual.
There are three levels of translation tables in x3270. The
first is a defined by the resource x3270.keymap.base. It defines
alphabetic, numeric, function keys, and such basic functions as Enter and
Delete. It allows a minimal useful functionality. It is generally compiled
in x3270, but can be overridden.
The second level is a keyboard specific table, which is selected
by the x3270.keymap resource, and defined by the
x3270.keymap.name resource (where name is the value of
the x3270.keymap resource). This keymap defines actions for such
things as keypad keys, and keys unique to certain keyboards. Several
predefined keymaps are included with x3270.
The third level is a user customizable table which may be used to
augment or override key definitions. This keymap is defined by the
x3270.keymap.name.user resource.
In addition, keymaps may be defined for use in 3270 mode or NVT
mode only. These keymaps use the suffixes .3270 and .nvt in
their names, respectively. If a keymap
x3270.keymap.name.mode is defined, it will augment the
keymap x3270.keymap.name when x3270 is in the given
mode. If a keymap
x3270.keymap.name.user.mode is defined, it will
augment the keymap x3270.keymap.name.user when
x3270 is in the given mode.
The default translation table x3270.keymap.base is:
<Key>Multi_key |
Compose() |
Shift<Key>Left |
KybdSelect(Left,PRIMARY) |
<Key>Left |
Left() |
Meta<Key>Right |
NextWord() |
Shift<Key>Right |
KybdSelect(Right,PRIMARY) |
<Key>Right |
Right() |
Shift<Key>Up |
KybdSelect(Up,PRIMARY) |
<Key>Up |
Up() |
Shift<Key>Down |
KybdSelect(Down,PRIMARY) |
<Key>Down |
Down() |
Ctrl<Btn1Down> |
HandleMenu(quitMenu) |
Ctrl<Btn2Down> |
HandleMenu(optionsMenu) |
Ctrl<Btn3Down> |
HandleMenu(hostMenu) |
Shift<Btn1Down> |
MoveCursor() |
<Btn1Down> |
select-start() |
<Btn1Motion> |
select-extend() |
<Btn2Down> |
ignore() |
<Btn2Motion> |
ignore() |
<Btn2Up> |
insert-selection(PRIMARY) |
<Btn3Down> |
start-extend() |
<Btn3Motion> |
select-extend() |
<BtnUp> |
select-end(PRIMARY) |
Meta<Key>F1 |
PF(13) |
Shift<Key>F1 |
PF(13) |
Meta<Key>F2 |
PF(14) |
Shift<Key>F2 |
PF(14) |
Meta<Key>F3 |
PF(15) |
Shift<Key>F3 |
PF(15) |
Meta<Key>F4 |
PF(16) |
Shift<Key>F4 |
PF(16) |
Meta<Key>F5 |
PF(17) |
Shift<Key>F5 |
PF(17) |
Meta<Key>F6 |
PF(18) |
Shift<Key>F6 |
PF(18) |
Meta<Key>F7 |
PF(19) |
Shift<Key>F7 |
PF(19) |
Meta<Key>F8 |
PF(20) |
Shift<Key>F8 |
PF(20) |
Meta<Key>F9 |
PF(21) |
Shift<Key>F9 |
PF(21) |
Meta<Key>F10 |
PF(22) |
Shift<Key>F10 |
PF(22) |
Meta<Key>F11 |
PF(23) |
Shift<Key>F11 |
PF(23) |
Meta<Key>F12 |
PF(24) |
Shift<Key>F12 |
PF(24) |
<Key>F1 |
PF(1) |
<Key>F2 |
PF(2) |
<Key>F3 |
PF(3) |
<Key>F4 |
PF(4) |
<Key>F5 |
PF(5) |
<Key>F6 |
PF(6) |
<Key>F7 |
PF(7) |
<Key>F8 |
PF(8) |
<Key>F9 |
PF(9) |
<Key>F10 |
PF(10) |
<Key>F11 |
PF(11) |
<Key>F12 |
PF(12) |
Alt<Key>q |
Quit() |
<Key>Prior |
Scroll(backward) |
<Key>Next |
Scroll(forward) |
:<Key> |
Default() |
The default 3270-mode table x3270.keymap.base.3270 adds the
following definitions:
Shift<Key>Return |
Newline() |
<Key>Return |
Enter() |
<Key>Linefeed |
Newline() |
Shift<Key>Tab |
BackTab() |
<Key>Tab |
Tab() |
<Key>Home |
Home() |
Meta<Key>Left |
PreviousWord() |
Meta<Key>Right |
NextWord() |
<Key>Insert |
Insert() |
<Key>Delete |
Delete() |
<Key>BackSpace |
BackSpace() |
Ctrl Shift<Btn1Down> |
MouseSelect() |
Shift<Btn1Down> |
MoveCursor() |
Meta<Key>1 |
PA(1) |
Meta<Key>2 |
PA(2) |
Meta<Key>3 |
PA(3) |
Ctrl<Key>a |
SelectAll(PRIMARY) |
Meta<Key>a |
Attn() |
Meta<Key>b |
PrintWindow() |
Ctrl<Key>c |
set-select(CLIPBOARD) |
Meta<Key>c |
Clear() |
Meta<Key>d |
Delete() |
Meta<Key>e |
EraseEOF() |
Meta<Key>f |
Flip() |
Meta<Key>h |
Home() |
Meta<Key>i |
Insert() |
Meta<Key>l |
Redraw() |
Meta<Key>p |
PrintText() |
Meta<Key>r |
Reset() |
Meta<Key>u |
Unselect() |
Ctrl<Key>u |
DeleteField() |
Ctrl<Key>v |
insert-selection(CLIPBOARD) |
Meta<Key>v |
ToggleReverse() |
Ctrl<Key>w |
DeleteWord() |
Ctrl<Key>x |
Cut(CLIPBOARD) |
Meta is the diamond shaped key on a sun_k4, "Alt" on an
NCD, "Extend Char" on an HP. The following xmodmap command
must be used on the NCD to allow use the the "Alt" key:
xmodmap -e "keysym Alt_L = Meta_L"
The left mouse button may be used to make a selection. Clicking
once unselects the current selection. Clicking twice selects the word under
the mouse cursor. Clicking three times selects the line under the mouse
cursor. Clicking and dragging selects a rectangular area of the display.
The middle mouse button may be used to paste a selection.
The right mouse button may also be used for selections, selecting
the rectangular area between the current position and where the left button
was last pressed.
On color X displays, the "x3270.selectBackground"
resource is used to distinguish the selected text from the rest of the
screen. On monochrome X displays, selected text is in reverse video. (It can
be distinguished from a block cursor because the block cursor covers
slightly less than an entire character position on the screen.)
The left mouse button, when pressed with the "Shift" key
held down, moves the 3270 cursor to the where the mouse cursor is
pointing.
This is the complete list of keymap-callable actions. Other
actions are defined for use by scripts and are documented in
x3270-script(1); still others are defined for internal use by
x3270 and are not documented here. Note that when an action with no
parameters is used in a keymap, the parentheses and empty argument list are
still required.
Actions marked with an asterisk (*) may block, sending data to the
host and possibly waiting for a response.
+2 AltCursor() |
switch between block and underscore cursor |
+2 BackSpace() |
move cursor left (or send ASCII BS) |
+2 BackTab() |
tab to start of previous input field |
+2 Charset(charset) |
change host code page |
+2 CircumNot() |
input "^" in NVT mode, or "notsign" in 3270
mode |
+2 Compose() |
next two keys form a special symbol |
+2 *Connect(host) |
connect to host |
+2 *CursorSelect() |
Cursor Select AID |
+2 Cut() |
copy highlighted area to clipboard and erase |
+2 Default() |
enter key literally |
+2 Delete() |
delete character under cursor (or send ASCII DEL) |
+2 DeleteField() |
delete the entire field |
+2 DeleteWord() |
delete the current or previous word |
+2 *Disconnect() |
disconnect from host |
+2 Down() |
move cursor down |
+2 Dup()([failonerror|nofailonerror]) |
duplicate field |
+2 *Enter() |
Enter AID (or send ASCII CR) |
+2 Erase() |
erase previous character (or send ASCII BS) |
+2 EraseEOF() |
erase to end of current field |
+2 EraseInput() |
erase all input fields |
+2 FieldEnd() |
move cursor to end of field |
+2 FieldMark()([failonerror|nofailonError]) |
mark field |
+2 HandleMenu(name) |
pop up a menu |
+2 HexString(hex_digits) |
insert control-character string |
+2 Home() |
move cursor to first input field |
+2 Insert() |
set insert mode |
+2 *Interrupt() |
send TELNET IP to host |
+2 Key(keysym[,failonerror|nofailonerror]) |
insert key keysym |
+2 Key(0xxx[,failonError|nofailonerror]) |
insert key with character code xx |
+2 Keymap(keymap) |
toggle alternate keymap (or remove with None) |
+2 KybdSelect(direction [,atom...]) |
Extend selection by one row or column |
+2 Left() |
move cursor left |
+2 Left2() |
move cursor left 2 positions |
+2 *Macro(macro) |
run a macro |
+2 MonoCase() |
toggle uppercase-only mode |
+2 MoveCursor() |
move cursor to mouse position |
+2 MoveCursor(row,col) |
move cursor to zero-origin (row,col) |
+2 *MoveCursorSelect() |
move cursor to mouse position, light pen selection |
+2 Newline() |
move cursor to first field on next line (or send ASCII LF) |
+2 NextWord() |
move cursor to next word |
+2 *PA(n) |
Program Attention AID (n from 1 to 3) |
+2 *PF(n) |
Program Function AID (n from 1 to 24) |
+2 PreviousWord() |
move cursor to previous word |
+2 PasteString(hex_digits) |
insert string using pasting behavior |
+2 Printer(start[,lu]|stop) |
start or stop printer session |
+2 PrintText(command) |
print screen text on printer |
+2 PrintWindow(command) |
print screen image (bitmap) on printer |
+2 *Reconnect() |
reconnect to previous host |
+2 Redraw() |
redraw window |
+2 Reset() |
reset locked keyboard |
+2 Right() |
move cursor right |
+2 Right2() |
move cursor right 2 positions |
+2 *Script(command[,arg...]) |
run a script |
+2 Scroll(forward|backward) |
scroll screen |
+2 SelectAll(atom) |
select entire screen |
+2 SetFont(font) |
change emulator font |
+2 *String(string) |
insert string (simple macro facility) |
+2 Tab() |
move cursor to next input field |
+2 Toggle(option[,set|clear]) |
toggle an option |
+2 ToggleInsert() |
toggle insert mode |
+2 ToggleReverse() |
toggle reverse-input mode |
+2 *Transfer(option=value...') |
file transfer |
+2 Unselect() |
release selection |
+2 (the following are similar to xterm) |
+2 insert-selection([atom[,atom...]]) |
paste selection |
+2 move-select() |
a combination of MoveCursor and select-start |
+2 select-end(atom[,atom...]]) |
complete selection and assign to atom(s) |
+2 select-extend() |
move the end of a selection |
+2 select-start() |
mark the beginning of a selection |
+2 set-select(atom[,atom...]]) |
assign existing selection to atom(s) |
+2 start-extend() |
begin marking the end of a selection |
Note that certain parameters to x3270 actions (such as the names
of files and keymaps) are subject to substitutions:
The character ~ at the beginning of a string is replaced
with the user's home directory. A ~ character followed by a username
is replaced with that user's home directory.
Environment variables are substituted using the Unix shell
convention of $name or ${name}.
Two special pseudo-environment variables are supported.
${TIMESTAMP} is replaced with a microsecond-resolution timestamp; ${UNIQUE}
is replaced with a string guaranteed to make a unique filename (the process
ID optionally followed by a dash and a string of digits). ${UNIQUE} is used
to form trace file names.
THE PRINTTEXT ACTION¶
The PrintText() produces screen snapshots in a number of
different forms. The default form wth no arguments sends a copy of the
screen to the default printer. A single argument is the command to use to
print, e.g., lpr.
Multiple arguments can include keywords to control the output of
PrintText():
- file,filename
- Save the output in a file.
- html
- Save the output as HTML. This option implies file.
- rtf
- Save the output as RichText. This option implies file. The font
defaults to Courier New and the point size defaults to 8. These can
be overridden by the printTextFont and printTextSize
resources, respectively.
- string
- Return the output as a string. This can only be used from scripts.
- modi
- Render modified fields in italics.
- caption,text
- Add the specified text as a caption above the output. Within
text, the special sequence %T% will be replaced with a
timestamp.
- secure
- Disables the pop-up dialog.
- command,command
- Directs the output to a command. This allows one or more of the other
keywords to be specified, while still sending the output to the printer.
MACROS AND SCRIPTS¶
There are several types of macros and script functions
available.
- The String
Action
- The simplest method for macros is provided via the String() action,
which can be bound to any key in a keymap. The arguments to
String() are one or more double-quoted strings which are inserted
directly as if typed. The C backslash conventions are honored as follows.
(Entries marked * mean that after sending the AID code to the host,
x3270 will wait for the host to unlock the keyboard before further
processing the string.)
\b |
Left() |
\exxxx |
EBCDIC character in hex |
\f |
Clear()* |
\n |
Enter()* |
\pan |
PA(n)* |
\pfnn |
PF(nn)* |
\r |
Newline() |
\t |
Tab() |
\T |
BackTab() |
\uxxxx |
Unicode character in hex |
\xxxxx |
Unicode character in hex |
- Note that the numeric values for the \e, \u and \x sequences can be
abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and
some Unicode character codes represent DBCS characters, which will work
only if x3270 is built with DBCS support and the host allows DBCS input in
the current field.
- An example keymap entry would be:
Meta<Key>p: String("probs
clearrdr\n")
- Note: The strings are in ASCII and converted to EBCDIC, so beware
of inserting control codes. Also, a backslash before a p may need
to be doubled so it will not be removed when a resource file is read.
- There is also an alternate form of the String() action,
HexString(), which is used to enter non-printing data. The argument
to HexString() is a string of hexadecimal digits, two per
character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal
data represent EBCDIC characters, which are entered into the current
field. In NVT mode, the hexadecimal data represent ASCII characters, which
are sent directly to the host.
- The Script
Action
- This action causes x3270 to start a child process which can execute
x3270 actions. Standard input and output from the child process are
piped back to x3270. The Script() action is fully documented
in x3270-script(1).
- The macros
Resource
- An alternate method of defining macros is the "x3270.macros"
resource. This resource is similar to a keymap, but instead of defining
keyboard mappings, it associates a list of X actions with a name. These
names are displayed on a Macros menu that appears when x3270 is
connected to a host. Selecting one of the names on the menu executes the X
actions associated with it. Typically the actions are String()
calls, but any action may be specified. Here is a sample macros resource
definition, which would result in a four-entry Macros menu:
x3270.macros: \
log off: String("logout\n")\n\
vtam: String("dial vtam\n")\n\
pa1: PA(1)\n\
alt printer: PrintText("lpr -Plw2")
- You can also define a different set of macros for each host. If there is a
resource named `x3270.macros.somehost', it defines the
macros menu for when x3270 is connected to somehost.
- The -script
Option
- This facility allows x3270 to operate under the complete control of
a script. x3270 accepts actions from standard input, and prints
results on standard output. The -script option is fully documented
in x3270-script(1).
COMPOSITE CHARACTERS¶
x3270 allows the direct entry of accented letters and
special symbols. Pressing and releasing the "Compose" key,
followed by two other keys, causes entry of the symbol combining those two
keys. For example, "Compose" followed by the "C" key and
the "," (comma) key, enters the "C-cedilla" symbol. A C
on the status line indicates a pending composite character.
The mappings between these pairs of ordinary keys and the symbols
they represent is controlled by the "x3270.composeMap" resource;
it gives the name of the map to use. The maps themselves are named
"x3270.composeMap.name". The default is "latin1",
which gives mappings for most of the symbols in the ISO 8859-1 Latin-1
character set that are not in the 7-bit ASCII character set.
Note: The default keymap defines the "Multi_key"
keysym as the "Compose" key. If your keyboard lacks such a key,
you may set up your own "Compose" key with a keymap that maps some
other keysym onto the Compose() action.
APL SUPPORT¶
x3270 supports the full APL2 character set and the entry of
APL characters from the keyboard.
APL characters are supported only in the special 3270
font.
Keyboard entry of APL characters is supported through the
apl keymap modifier. This modifier defines the "Alt" key as
an APL shift key, with a typical APL keyboard layout, e.g., "Alt"
pressed with the A key results in the APL "alpha" symbol.
Overstruck characters such as "quad-quote" are not defined as
single keystrokes; instead they are entered as composites (see COMPOSITE
CHARACTERS above). A special composite map, apl, is provided for this
purpose.
Note: Some keyboards do not define the "Alt" key
as a modifier, so keymaps that use the "Alt" key will not
function. On a Sun for example, this can be remedied with the command:
xmodmap -e "add mod2 = Alt_L"
For convenience, an -apl option is defined, which is an
abbreviation for the following resource definitions:
x3270.keymap: your_keymap_name,apl
x3270.charset: apl
x3270.composeMap: apl
There are a number of APL characters that are similar in
appearance to non-APL characters. In particular, the APL "stile",
"slope," "tilde" and "quotedot" characters are
similar to the EBCDIC "bar", "backslash,"
"tilde" and "exclaim" characters. The APL characters are
entered with the "Alt" key, and have slightly different
appearances.
The complete list of special APL keysyms is as follows. Entries
marked with an asterisk (*) represent simple aliases for standard EBCDIC
characters. Entries marked with an (S) represent Sharp APL charatcers.
APL Symbol |
Hex |
x3270 apl_ Keysym |
x3270 Key |
x3270 Composed Keys |
A underbar |
41 |
Aunderbar |
Alt-A |
A + underbar |
alpha |
B0 |
alpha |
Alt-a |
|
B underbar |
42 |
Bunderbar |
Alt-B |
B + underbar |
bar |
60* |
bar |
- |
|
brace left |
C0 |
braceleft |
Alt-{ |
|
brace right |
D0 |
braceright |
Alt-} |
|
C underbar |
43 |
Cunderbar |
Alt-C |
C + underbar |
circle |
9D |
circle |
Alt-o |
|
circle bar |
ED |
circlebar |
|
circle + bar |
circle slope |
CF |
circleslope |
|
circle + slope |
circle star |
FD |
circlestar |
|
circle + star |
circle stile |
CD |
circlestile |
|
circle + stile |
colon |
7A* |
colon |
: |
|
comma |
6B* |
comma |
, |
|
comma bar (S) |
E5 |
commabar |
|
comma + bar |
D underbar |
44 |
Dunderbar |
Alt-D |
D + underbar |
del |
BA |
del |
Alt-g |
|
del stile |
DC |
delstile |
|
del + stile |
del tilde |
FB |
deltilde |
|
del + tilde |
delta |
BB |
delta |
Alt-h |
|
delta stile |
DD |
deltastile |
|
delta + stile |
delta underbar |
FC |
deltaunderbar |
|
delta + underbar |
diamond |
70 |
diamond |
|
up caret + down caret |
dieresis |
72 |
dieresis |
Alt-1 |
|
dieresis circle (S) |
E5 |
dieresiscircle |
|
dieresis + circle |
dieresis dot |
EC |
dieresisdot |
|
dieresis + dot |
dieresis jot (S) |
E4 |
dieresisjot |
|
dieresis + jot |
divide |
B8 |
divide |
Alt-+ |
|
dot |
4B* |
dot |
. |
|
down arrow |
8B |
downarrow |
Alt-u |
|
down caret |
78 |
downcaret |
Alt-9 |
|
down caret tilde |
CB |
downcarettilde |
|
down caret + tilde |
down shoe |
AB |
downshoe |
Alt-v |
|
down stile |
8E |
downstile |
Alt-d |
|
down tack |
AC |
downtack |
Alt-b |
|
down tack jot |
FE |
downtackjot |
|
down tack + jot |
down tack up tack |
DA |
downtackuptack |
|
down tack + up tack |
E underbar |
45 |
Eunderbar |
Alt-E |
E + underbar |
epsilon |
B1 |
epsilon |
Alt-e |
|
epsilon underbar |
75 |
epsilonunderbar |
|
epsilon + underbar |
equal |
7E* |
equal |
"=" |
|
equal underbar |
E1 |
equalunderbar |
|
equal + underbar |
euro (S) |
E7 |
euro |
|
C + = |
F underbar |
46 |
Funderbar |
Alt-F |
F + underbar |
G underbar |
47 |
Gunderbar |
Alt-G |
G + underbar |
greater |
6E* |
greater |
> |
|
H underbar |
48 |
Hunderbar |
Alt-H |
H + underbar |
I underbar |
49 |
Iunderbar |
Alt-I |
I + underbar |
iota |
B2 |
iota |
Alt-i |
|
iota underbar |
74 |
iotaunderbar |
|
iota + underbar |
J underbar |
51 |
Junderbar |
Alt-J |
J + underbar |
jot |
AF |
jot |
alt-j |
|
K underbar |
52 |
Kunderbar |
Alt-K |
K + underbar |
L underbar |
53 |
Lunderbar |
Alt-L |
L + underbar |
left arrow |
9F |
leftarrow |
Alt-[ |
|
left bracket |
AD |
leftbracket |
[ |
|
left paren |
4D* |
leftparen |
( |
|
left shoe |
9B |
leftshoe |
Alt-z |
|
less |
4C* |
less |
< |
|
M underbar |
54 |
Munderbar |
Alt-M |
M + underbar |
N underbar |
55 |
Nunderbar |
Alt-N |
N + underbar |
not equal |
BE |
notequal |
Alt-8 |
equal + slash |
not greater |
8C |
notgreater |
Alt-4 |
less + equal |
not less |
AE |
notless |
Alt-6 |
greater + equal |
O underbar |
56 |
Ounderbar |
Alt-O |
O + underbar |
omega |
B4 |
omega |
Alt-w |
|
overbar |
A0 |
overbar |
Alt-2 |
|
P underbar |
57 |
Punderbar |
Alt-P |
P + underbar |
plus |
4E* |
plus |
+ |
|
Q underbar |
58 |
Qunderbar |
Alt-Q |
Q + underbar |
quad |
90 |
quad |
Alt-l |
|
quad divide |
EE |
quaddivide |
|
quad + divide |
quad jot |
73 |
quadjot |
|
quad + jot |
quad quote |
DE |
quadquote |
|
quad + quote |
quad slope |
CE |
quadslope |
|
quad + slope |
query |
6F* |
query |
? |
|
quote |
7D* |
quote |
' |
|
quote dot |
DB |
quotedot |
|
quote + dot |
R underbar |
59 |
Runderbar |
Alt-R |
R + underbar |
rho |
B3 |
rho |
Alt-r |
|
right arrow |
8F |
rightarrow |
Alt-] |
|
right bracket |
BD |
rightbracket |
] |
|
right paren |
5D* |
rightparen |
) |
|
right shoe |
9A |
rightshoe |
Alt-x |
|
S underbar |
62 |
Sunderbar |
Alt-S |
S + underbar |
semicolon |
5E* |
semicolon |
; |
|
slash |
61* |
slash |
/ |
|
slash bar |
EA |
slashbar |
|
slash + bar |
slope |
B7 |
slope |
Alt-\ |
|
slope bar |
EB |
slopebar |
|
slope + bar |
squad |
CC |
squad |
|
quad + quad |
star |
5C* |
star |
* |
|
stile |
BF |
stile |
Alt-| |
|
T underbar |
63 |
Tunderbar |
Alt-T |
T + underbar |
tilde |
80 |
tilde |
Alt-~ |
|
times |
B6 |
times |
Alt-= |
|
U underbar |
64 |
Uunderbar |
Alt-U |
U + underbar |
underbar |
6D* |
underbar |
"_" |
|
up arrow |
8A |
uparrow |
Alt-y |
|
up caret |
71 |
upcaret |
Alt-0 |
|
up caret tilde |
CA |
upcarettilde |
|
up caret + tilde |
up shoe |
AA |
upshoe |
Alt-c |
|
up shoe jot |
DF |
upshoejot |
|
up shoe + jot |
up stile |
8D |
upstile |
Alt-s |
|
up tack |
BC |
uptack |
Alt-n |
|
up tack jot |
EF |
uptackjot |
|
up tack + jot |
V underbar |
65 |
Vunderbar |
Alt-V |
V + underbar |
W underbar |
66 |
Wunderbar |
Alt-W |
W + underbar |
X underbar |
67 |
Xunderbar |
Alt-X |
X + underbar |
Y underbar |
68 |
Yunderbar |
Alt-Y |
Y + underbar |
Z underbar |
69 |
Zunderbar |
Alt-Z |
Z + underbar |
XIM SUPPORT¶
When compiled with DBCS support, x3270 supports multi-byte
input methods via the XIM protocol.
The input method is selected by the XMODIFIERS environment
variable or the -im command-line option.
The preedit type is specified by the -pt command-line
option, with a default of OverTheSpot+1.
SCREEN PRINTING¶
Screen printing is handled through options on the File menu
or by the PrintText() and PrintWindow() actions. Each results
in a pop-up to confirm the print command.
The PrintText() action (usually assigned to the key
<Meta>p) sends the current screen image to the printer as ASCII
characters. The default command used to print the data is controlled by the
"x3270.printTextCommand" resource; the default is lpr. You
may also use a keymap definition to pass a print command the
PrintText() action itself. The command receives the screen text as
its standard input. For example, the following keymap will save the screen
text in a file:
Meta<Key>f: PrintText("cat
>screen.image")
The PrintWindow() action (usually assigned to the key
<Meta>b) sends the current screen image to the printer as a bitmap.
The default command used to print the data is controlled by the
"x3270.printWindowCommand" resource; the default is
xwd -id %d | xpr | lpr.
You may also use a keymap definition to pass a print command to
the PrintWindow() action itself. If the command contains the text
"%d", the window ID of x3270 will be substituted before it
is run. For example, the following keymap will pop up a duplicate of the
current screen image:
Meta<Key>g: PrintWindow("xwd -id %d | xwud
&")
If the command for PrintWindow() or PrintText() begins with an
"@" character, the initial pop-up menu to confirm the print
command is not displayed and the command cannot be edited.
BUGS¶
Cursor highlighting will not work with if you use the
NoTitleFocus option in your .twmrc file.
PASSTHRU¶
x3270 supports the Sun telnet-passthru service
provided by the in.telnet-gw server. This allows outbound telnet
connections through a firewall machine. When a P: is prepended to a
hostname, x3270 acts much like the itelnet(1) command. It
contacts the machine named internet-gateway at the port defined in
/etc/services as telnet-passthru (which defaults to 3514). It
then passes the requested hostname and port to the in.telnet-gw
server.
PROXY¶
The -proxy option or the x3270.proxy resource causes
x3270 to use a proxy server to connect to the host. The syntax of the option
or resource is:
type:[
username:
password@]
host[:
port]
The supported values for type are:
Proxy Type |
Protocol |
Default Port |
http |
RFC 2817 HTTP tunnel (squid) |
3128 |
passthru |
Sun in.telnet-gw |
none |
socks4 |
SOCKS version 4 |
1080 |
socks5 |
SOCKS version 5 (RFC 1928) |
1080 |
telnet |
No protocol (just send connect host port) |
none |
The special types socks4a and socks5d can also be
used to force the proxy server to do the hostname resolution for the SOCKS
protocol. Note that only the http and socks5 proxies support a
username and password.
FILES¶
/etc/ibm_hosts
$HOME/.x3270pro
ENVIRONMENT VARIABLES¶
3270PRO Path of profile file, containing resource
definitions. Merged after the system resource database, but before
X3270RDB. Defaults to $HOME/.x3270pro.
NOX3270PRO If set, do not read the profile.
X3270RDB Additional resource definitions, merged after the profile file
but before the command-line options.
KEYMAP Keymap name.
KEYBD Keymap name.
SEE ALSO¶
pr3287(1), s3270(1), x3270-script(1), c3270(1), telnet(1),
tn3270(1), ibm_hosts(5)
X Toolkit Intrinsics
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements
COPYRIGHTS¶
Copyright 1993-2021, Paul Mattes.
Copyright 2004-2005, Don Russell.
Copyright 2004, Dick Altenbern.
Copyright 1990, Jeff Sparkes.
Copyright 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA
30332.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- *
- Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
- *
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- *
- Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff
Sparkes, GTRC nor the names of their contributors may be used to endorse
or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK
ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.