kbdset(1) DG/UX R4.11MU05 kbdset(1)
NAME
kbdset - attach to att_kbd mapping tables, set modes
SYNOPSIS
kbdset [-oq] [-a table] [-v string] [-k hotkey] [-m x] [-t ticks]
kbdset [-oq] [-d table] [-v string] [-k hotkey] [-m x] [-t ticks]
DESCRIPTION
kbdset is the normal user interface to the attkbd STREAMS module
[see kbdcomp(1M) and attkbd(7) for general descriptions of the
module's capabilities]. The kbdset command allows users to attach to
pre-loaded tables, detach from tables, and to set options. Options
are provided for setting hot-keys to toggle tables and for
controlling modes of the module.
Arguments and options are scanned and acted upon in command line
order. If the -o option is given, subsequent options affect the
output side of the STREAM, otherwise the input side is assumed.
Presence of the -q option causes the kbdset command to list tables
which can be accessed by the invoking user. In this case all
subsequent options are ignored. The output from the -q option lists
the user's current hot-key settings, current timer values, and for
each available table an identifier, the name, size, attachments
(input and/or output sides), reference count, number of components,
and type (private or public). In the following example, there is one
composite table, two tables are attached on the input side, and one
on the output side.
In Hot Key = ^
Timers: In = 20 ; Out = 20
ID Name Size I/O Ref Cmp Type
4039f300 Ucase 56 - o 1 - ext
403a0480 Case/Dvorak 68 - - 0 2 pri
[4039f300] [4037e400]
4036ce00 Deutsche 332 i - 4 - pub
4037e400 Dvorak 312 i - 2 - pri
The ID field is an identifier unique to a given table (actually its
address in memory). Currently attached tables are marked i or o,
otherwise the I/O fields are marked with a dash. Ref is a reference
count of attached users (including composites that refer to simple
tables) and if non-zero, indicates that the table is in use. Size is
the total size in bytes of the table and associated overhead in
memory. If the table is a composite table, the Cmp field contains a
number instead of a dash, and the following line lists an identifier
for each component, in order of processing (allowing identification
of the components in a composite table). Publicly available tables
are marked with the type pub and private tables with pri. Private
tables are available only to the invoking user and within the current
STREAM. Tables which are really external functions [see attkbd(7)]
are marked ext; they are always of the type - pub. Tables that are
interpreted in timeout mode [see kbdcomp(1M)] have an asterisk (*)
preceding the Type field; members of composite tables that are
interpreted in timeout mode have an asterisk after their bracketed
identifier (on the second output line). External functions are never
time-sensitive, unless by their own internal specification.
The option -a accompanied by an argument attaches to the named table.
A table may not be multiply attached by a single user. When a table
is attached and no other table is already attached then the table is
automatically made current. The option -d detaches from the named
table [see kbdload(1M) for a description of how tables are loaded].
The -k option sets the user's hot-key. Setting a hot-key with only a
single active table allows mapping to be toggled on and off,
depending on the hot-key mode. A hot-key is a single byte, typically
set to a relatively unused control character, that is caught by the
attkbd module and used for module control rather than being
translated in any way. The key used as a hot-key becomes unavailable
for other uses (unless it is generated by mapping). The hot-key may
be reset at any time, independently from other options. Note that
kbdset does not interpret ^X-type sequences; it expects a literal
hot-key character.
The -m option with an integer argument controls the hot-key mode.
Legal modes are 0, 1 (the default), and 2. Mode 0 allows one to
toggle through the list of attached tables. Upon reaching the end of
the list, the cycle returns to the beginning of the list. Use of
mode 0 with only one table loaded does not allow mapping to be turned
off. Mode 1 toggles to the unmapped state upon reaching the end of
the list (for example, given two tables, the sequence is table1,
table2, off, table1, and so on). Mode 2 toggles to the unmapped (or
off) state between every table in the list of attached tables (for
example, given two tables, the sequence is table1, off, table2, off,
table1, and so on).
The -v option turns on verbose mode, which can be useful when
multiple tables are used in interactive sessions. In verbose mode,
the name of the table can be output to the terminal whenever the user
changes to a new table with the hot-key. The string associated with
the option can be any short string. If the character sequence %n
appears in the string, the name of the current table (or a null
string) will be substituted for the %n. (A null argument to -v is
equivalent to terse mode.) One useful sequence for this mode is
save-cursor, goto-status-line, clear-to-end-of-line, ``%n'', restore-
cursor. This causes output of the current table name on the
terminal's status line; in the absence of a status-line, a simple
sequence is to print the table name and RETURN [see terminfo(4) for
the appropriate escape sequences]. Verbose mode is only available to
show input table status to the output side of the STREAM. The output
string for verbose mode is not itself passed through the mapping
process, but is transmitted directly downstream with no other
interpretation (it should thus be a string of ASCII characters or in
some other externally available codeset).
The -t option with an argument is used to change the timer for tables
in the STREAM that are interpreted in timeout mode. Values (in
``clock ticks'') between 5 and 400 are acceptable. (Depending on the
hardware, the clock is usually either 60Hz or 100Hz, thus one tick is
either 1/60 or 1/100 of a second; with a bit of experimentation, a
suitable value for one's own system and typing speed can be found.)
When a table that uses timeout mode is attached, it is assigned the
current timer value. All tables that are attached after setting the
timer value will take on the new value, but tables currently attached
are unaffected (this allows one to set different values for different
tables). The option does not affect other users' values. The timer
value may be set independently for input and output sides by using -t
in conjunction with -o. The value for a currently attached table may
be reset by detaching the table, setting the value, then re-attaching
the table.
In the query output, the line beginning with Timers: shows the timer
values for input and output sides of the module.
Limitations
A table may be detached while it is current; however, in this case,
it is first made non-current; this allows error recovery under
adverse circumstances. Detachment of a current table is not affected
by the current hot-key mode, but always toggles to a state where no
table is current.
Future Directions
Better control of timeout mode and values should be provided.
FILES
/usr/lib/kbd directory containing system standard map files
SEE ALSO
alpq(1), kbdcomp(1M), kbdload(1M), alp(7), attkbd(7).
NOTES
It is not possible with the -q option to see the timer values
assigned to currently attached tables, nor to reset the value for a
table that is currently attached.
Licensed material--property of copyright holder(s)