KBDSET(1) RISC/os Reference Manual KBDSET(1)
NAME
kbdset - attach to kbd mapping tables, set modes
SYNOPSIS
kbdset [-oq] [-{a|d} table] [-v string] [ -k hotkey] [-m x]
[-t ticks]
DESCRIPTION
kbdset is the normal user interface to the kbd(7) module.
(See kbdcomp(1M) and kbd(7) for a general description of the
module's capabilities.) kbdset 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 kbdset to list modules
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 value, and for each available table an identifier, the
name, size, attachments (input and/or output sides), refer-
ence count, number of components, and type (private or pub-
lic). In the following example, there is one composite
table; two tables are attached on the input side, and one on
the outputside.
In Hot Key = ^
Timers: In = 20 ; Out = 20
ID Name Size I/O Ref Cmp Type
40319800 Deutsche 324 1 - 4 - pub
4033de80 Case/Dvorak 68 - - 0 2 pri
[40316800] [40316a00]
40316800 Case 312 - o 1 - pri
40316a00 Dvorak 312 1 - 1 - pri
The ID field is an identifier unique to a given table (actu-
ally 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
Printed 11/19/92 Page 1
KBDSET(1) RISC/os Reference Manual KBDSET(1)
table). Publicly available tables are marked with the type
pub and private tables with pri. Private tables are avail-
able only to the invoking user and within the current
Stream. 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).
The option -a accompanied by an argument attaches to the
named table. A table may not be multiply attached by a sin-
gle 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.
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 tog-
gles to the unmapped state upon reaching the end of the list
(e.g., given two tables, the sequence is table1, table2,
off, table1, etc.). Mode 2 toggles to the unmapped (or off
state between every table in the list of attached tables
(e.g., given two tables, the sequence is table1, off,
table2, off, table1, etc.).
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. (See the ter-
minfo(4) description for the appropriate escape sequences.)
Page 2 Printed 11/19/92
KBDSET(1) RISC/os Reference Manual KBDSET(1)
Verbose mode is only available to show input table status to
the output side of the Stream. The output string for ver-
bose 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 charac-
ters or in some other
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 altct set-
ting 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 con-
junction 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.
BUGS
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.
FUTURE DIRECTIONS
Better control of timeout mode and values should be pro-
vided.
FILES
/usr/lib/kbd directory containing system stan-
dard map files.
SEE ALSO
kbdcomp(1M), kbdload(1M), kbd(7) in the RISC/os System
Administrator's Reference Manual.
Printed 11/19/92 Page 3