kbdset [-o] [-d table] [-v string] [-k hotkey] [-m x] [-t ticks]
kbdset [-q]
Arguments and options are scanned and acted on 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.
The -q option causes the kbdset command to list modules that 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 value, 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 - priThe ID field is an identifier unique to a given table; it is 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
kbd(7))
are marked ext
;
they are always of type pub
.
Tables that are interpreted in timeout (see
kbdcomp(1M))
mode 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 specifications.
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 kbd 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. Valid 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 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 code set).
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.
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.