*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> kbd (7)              
Title
Content
Arch
Section
 

Contents


kbd(7)									kbd(7)


NAME    [Toc]    [Back]

     kbd - generalized string translation module

DESCRIPTION    [Toc]    [Back]

     The STREAMS module	kbd is a programmable string translation module. It
     can perform two types of operations on an input stream: the first type is
     simple byte-swapping via a	lookup table, the second is string
     translation.  It is useful	for code set conversion	and compose-key	or
     dead-key character	production on terminals	and production of overstriking
     sequences on printers. It may also	be used	for minor types	of keyrebinding,
	expansion of abbreviations, and	keyboard re-arrangement	(an
     example of	the latter would be swapping the positions of the Y and	Z
     keys, required for	German keyboards, or providing Dvorak keyboard
     emulation for QWERTY keyboards).  The manual entry	kbdcomp(1M) discusses
     table construction, the input language, and contains sample uses.	This
     document is intended mainly to aid	administrators in configuring the
     module on a particular system; the	user interface to the module is	solely
     through the commands kbdload(1M) and kbdset(1).

     The kbd module works by modifying an input	stream according to
     instructions embodied in tables.  It has no built in default tables.
     Some tables may be	loaded when the	system is first	brought	up by pushing
     the module	and loading standard or	often-used tables [see kbdload(1M)]
     which are retained	in main-memory across invocations and made available
     to	all users.  These are called public tables. Users may also load
     private tables at any time-these do not remain resident.

     With the kbdset command, users may	query the module for a list of
     available and attached tables, attach various tables, and set the
     optional per-user hot-key,	hot-key	mode, and verbose string for their
     particular	invocation.

     When a user attaches more than one	table, the user's hot-key may be used
     to	cycle to the next table	in the list.  If only one table	is specified,
     the hot-key may be	used to	toggle translation on and off.	When multiple
     tables are	in use,	the hot-key may	be used	to cycle through the list of
     tables. [See kbdset(1) for	a description of the available modes.]

     In	its initial state, kbd scans input for occurrences of bytes beginning
     a translation sequence.  Upon receiving such a byte, it attempts to match
     subsequent	bytes of the input to programmed sequences.  Input is buffered
     beginning with the	byte which caused the state change and is released if
     a match is	not found.  When a match fails,	the first byte of the invalid
     sequence is sent upstream,	the buffered input is shifted, and the scan
     begins again with the resulting input sequence.  If the current table
     contains an error entry, its value	(one or	more bytes) is substituted for
     the offending input byte.	When a sequence	is found to be valid, the
     entire sequence is	replaced with the result string	specified for it.

     The kbd module may	be used	in either the read or write directions,	or
     both simultaneously.  Maps	and hot-keys may be specified independently
     for input and output.



									Page 1






kbd(7)									kbd(7)



     The kbd also supports the use of external kernel-resident functions as if
     they were tables; once declared and attached (via kbdload and kbdset
     respectively) they	may be used as simple tables or	members	of composites.
     To	accomplish this, kbd understands the registration functions of the alp
     module and	can access any function	registered with	that module.  Further
     information on external functions and their definition is contained in
     alp(7).  External functions are especially	useful in supporting multibyte
     code set conversions that would be	difficult or impossible	with normal
     kbd tables.

   Limitations    [Toc]    [Back]
     It	is not an error	to attach multiple tables without defining a hot-key,
     but the tables will not all be accessible.	 It is recommended that	the
     user's hot-key be set before loading and attaching	tables to avoid
     unpleasant	side effects when an unfamiliar	arrangement is first loaded.

     Each user has a limitation	on the amount of memory	that may be used for
     private and attached tables. This ``quota'' is controlled by the kbd_umem
     variable described	below.	When a user that is not	the super-user
     attempts to load a	table or create	a composite table, the quota is
     checked, and the load will	fail if	it would cause the quota to be
     exceeded.	When a composite table is attached, the	space for attachment
     (which requires more space	than the composite table itself) is charged
     against this quota	(attachment of simple tables is	not charged against
     the quota).  The quota is enforced	only when loading new tables.
     Detaching temporarily from	unneeded composite tables may reduce the
     current allocation	enough to load a table that would otherwise fail due
     to	quota enforcement.  To minimize	chances	of failure while loading
     tables, it	is advisable to	load all required tables and make all required
     composite tables before attaching any of them.

   Configuration Parameters    [Toc]    [Back]
     The master	(or space.c) file contains some	configurable parameters.

     NKBDU is the maximum number of tables that	may be attached	by a single
     user.  The	number should be large enough to cover uncommon	cases, and
     must be at	least 2.  Default is 6.

     ZUMEM, from which the variable kbd_umem is	assigned, is the maximum
     number of bytes that a user (other	than the super user) may have
     allocated to private tables (that is, the quota).	Default	is 4096.

     KBDTIME is	the default timer value	for timeout mode.  It is the number of
     clock ticks allowed before	timing out.  The value of one clock tick
     depends on	the hardware, but is usually 1/100 or 1/60 of a	second.	A
     timeout value of 20 is 1/5	second at 100Hz; with a	60Hz clock, a value of
     12	produces a 1/5 second timeout.	Values from 5 to 400 inclusive are
     allowed by	the module; if the value set for KBDTIME is outside this
     range, the	module forces it to the	nearest	limit.	(This value is only a
     default; users may	change their particular	stream to use a	different
     value depending on	their own preferences, terminal	baud-rate, and typing
     speed.)



									Page 2






kbd(7)									kbd(7)


FILES    [Toc]    [Back]

     /usr/lib/kbd	 - directory containing	system standard	table files.
     /usr/lib/kbd/*.map	 - source for some system table	files.

SEE ALSO    [Toc]    [Back]

      
      
     kbdset(1),	kbdcomp(1M), kbdload(1M), alp(7).

NOTES    [Toc]    [Back]

     NULL characters may not be	used in	result or input	strings, because they
     are used as string	delimiters.

     One should	be able	to obtain information on timeout values	of currently
     attached tables, and be able to reset values more easily.


									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
gettext Linux print out string using translation
ngettext Linux print out string using translation with singular/plural
sgegv IRIX the generalized eigenvalues (alphar +/- alphai*i, beta), and optionally, the left and/or right generalized eig
dgegv IRIX the generalized eigenvalues (alphar +/- alphai*i, beta), and optionally, the left and/or right generalized eig
ldr_inq_region Tru64 Return module information about a region in a loaded module
xlate_address IRIX do address translation
xlate_pro_add_range IRIX add a translation range
zgegv IRIX B, the generalized eigenvalues (alpha, beta), and optionally,
cgegv IRIX B, the generalized eigenvalues (alpha, beta), and optionally,
kbd OpenBSD set national keyboard translation
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service