KEYTABLES(5)

NAME
keytables - keyboard table descriptions for loadkeys and dumpkeys

DESCRIPTION

These files are used by loadkeys(1) to modify the translation tables used by the keyboard streams module kb(4M), and generated by dumpkeys (see loadkeys(1)) from those translation tables.

Any line in the file beginning with # is a comment, and is ignored. # is treated specially only at the beginning of a line.

Other lines specify the values to load into the tables for a particular keystation. The format is either:

    key number list_of_entries

or

    swap number1 with number2

or

    key number1 same as number2

or a blank line, which is ignored.

    key number list_of_entries

sets the entries for keystation number from the list given. An entry in that list is of the form

    tablename code

where tablename is the name of a particular translation table, or all. The translation tables are:

    base
        entry when no shifts are active

    shift
        entry when "Shift" key is down

    caps
        entry when "Caps Lock" is in effect

    ctrl
        entry when "Control" is down

    altg
        entry when "Alt Graph" is down

    numl
        entry when "Num Lock" is in effect

    up  entry when a key goes up

All tables other than up refer to the action generated when a key goes down. Entries in the up table are used only for shift keys, since the shift in question goes away when the key goes up, except for keys such as "Caps Lock" or "Num Lock"; the keyboard streams module makes the key look as if it were a latching key.

A table name of all indicates that the entry for all tables should be set to the specified value, with the following exception: for entries with a value other than hole, the entry for the numl table should be set to nonl, and the entry for the up table should be set to nop.

The code specifies the effect of the key in question when the specified shift key is down. A code consists of either:

    •   A character, which indicates that the key should generate the given character. The character can either be a single character, a single character preceded by ^ which refers to a "control character" (for instance, ^c is control-C), or a C-style character constant enclosed in single quote characters ('), which can be expressed with C-style escape sequences such as \r for RETURN or \000 for the null character. Note that the single character may be any character in an 8-bit character set, such as ISO 8859/1.

    •   A string, consisting of a list of characters enclosed in double quote characters ("). Note that the use of the double quote character means that a code of double quote must be enclosed in single quotes.

•   One of the following expressions:

    shiftkeys+leftshift
        the key is to be the left-hand "Shift" key

    shiftkeys+rightshift
        the key is to be the right-hand "Shift" key

    shiftkeys+leftctrl
        the key is to be the left-hand "Control" key

    shiftkeys+rightctrl
        the key is to be the right-hand "Control" key

    shiftkeys+alt
        the key is to be the "Alt" shift key

    shiftkeys+altgraph
        the key is to be the "Alt Graph" shift key

    shiftkeys+capslock
        the key is to be the "Caps Lock" key

    shiftkeys+shiftlock
        the key is to be the "Shift Lock" key

    shiftkeys+numlock
        the key is to be the "Num Lock" key

    buckybits+systembit
        the key is to be the "Stop" key in Sunview; this is normally the L1 key, or the SETUP key on the VT100 keyboard

    buckybits+metabit
        the key is to be the "meta" key, that is, the "Left" or "Right" key on a Sun-2 or Sun-3 keyboard or the "diamond" key on a Sun-4 keyboard

    compose
        the key is to be the "Compose" key

    ctrlq
        on the "VT100" keyboard, the key is to transmit the control-Q character (this would be the entry for the "Q" key in the ctrl table)

    ctrls
        on the "VT100" keyboard, the key is to transmit the control-S character (this would be the entry for the "S" key in the ctrl table)

    noscroll
        on the "VT100" keyboard, the key is to be the "No Scroll" key

    string+uparrow
        the key is to be the "up arrow" key

    string+downarrow
        the key is to be the "down arrow" key

    string+leftarrow
        the key is to be the "left arrow" key

    string+rightarrow
        the key is to be the "right arrow" key

    string+homearrow
        the key is to be the "home" key

    fa_acute
        the key is to be the acute accent "floating accent" key

    fa_cedilla
        the key is to be the cedilla "floating accent" key

    fa_cflex
        the key is to be the circumflex "floating accent" key

    fa_grave
        the key is to be the grave accent "floating accent" key

    fa_tilde
        the key is to be the tilde "floating accent" key

    fa_umlaut
        the key is to be the umlaut "floating accent" key

    nonl
        this is used only in the Num Lock table; the key is not to be affected by the state of Num Lock

    pad0
        the key is to be the "0" key on the numeric keypad

    pad1
        the key is to be the "1" key on the numeric keypad

    pad2
        the key is to be the "2" key on the numeric keypad

    pad3
        the key is to be the "3" key on the numeric keypad

    pad4
        the key is to be the "4" key on the numeric keypad

    pad5
        the key is to be the "5" key on the numeric keypad

    pad6
        the key is to be the "6" key on the numeric keypad

    pad7
        the key is to be the "7" key on the numeric keypad

    pad8
        the key is to be the "8" key on the numeric keypad

    pad9
        the key is to be the "9" key on the numeric keypad

    paddot
        the key is to be the "." key on the numeric keypad

    padenter
        the key is to be the "Enter" key on the numeric keypad

    padplus
        the key is to be the "+" key on the numeric keypad

    padminus
        the key is to be the "-" key on the numeric keypad

    padstar
        the key is to be the "*" key on the numeric keypad

    padslash
        the key is to be the "/" key on the numeric keypad

    padequal
        the key is to be the "=" key on the numeric keypad

    padsep
        the key is to be the "," (separator) key on the numeric keypad

    lf(n)
        the key is to be the left-hand function key n

    rf(n)
        the key is to be the right-hand function key n

    tf(n)
        the key is to be the top function key n

    bf(n)
        the key is to be the "bottom" function key n

    nop the key is to do nothing

    error
        this code indicates an internal error; to be used only for keystation 126, and must be used there

    idle
        this code indicates that the keyboard is idle (that is, has no keys down); to be used only for all entries other than the numl and up table entries for keystation 127, and must be used there

    oops
        this key exists, but its action is not defined; it has the same effect as nop

    reset
        this code indicates that the keyboard has just been reset; to be used only for the up table entry for keystation 127, and must be used there

    swap number1 with number2

exchanges the entries for keystations number1 and number2.

    key number1 same as number2

sets the entries for keystation number1 to be the same as those for keystation number2. If the file does not specify entries for keystation number2, the entries currently in the translation table are used; if the file does specify entries for keystation number2, those entries are used.

EXAMPLES
The following entry sets keystation 15 to be a “hole” (that is, an entry indicating that there is no keystation 15); sets keystation 30 to do nothing when Alt Graph is down, generate "!" when Shift is down, and generate "1" under all other circumstances; and sets keystation 76 to be the left-hand Control key.

    key 15	 all hole
    key 30	 base 1 shift ! caps 1 ctrl 1 altg nop
    key 76	 all shiftkeys+leftctrl up shiftkeys+leftctrl

The following entry exchanges the Delete and Back Space keys on the Type 4 keyboard:

    swap 43 with 66

Keystation 43 is normally the Back Space key, and keystation 66 is normally the Delete key.

The following entry disables the Caps Lock key on the Type 3 and U.S. Type 4 keyboards:

    key 119 all nop

The following specifies the standard translation tables for the U.S. Type 4 keyboard:

    key 0	 all hole
    key 1	 all buckybits+systembit up buckybits+systembit
    key 2	 all hole
    key 3	 all lf(2)
    key 4	 all hole
    key 5	 all tf(1)
    key 6	 all tf(2)
    key 7	 all tf(10)
    key 8	 all tf(3)
    key 9	 all tf(11)
    key 10	 all tf(4)
    key 11	 all tf(12)
    key 12	 all tf(5)
    key 13	 all shiftkeys+altgraph up shiftkeys+altgraph
    key 14	 all tf(6)
    key 15	 all hole
    key 16	 all tf(7)
    key 17	 all tf(8)
    key 18	 all tf(9)
    key 19	 all shiftkeys+alt up shiftkeys+alt
    key 20	 all hole
    key 21	 all rf(1)
    key 22	 all rf(2)
    key 23	 all rf(3)
    key 24	 all hole
    key 25	 all lf(3)
    key 26	 all lf(4)
    key 27	 all hole
    key 28	 all hole
    key 29	 all ^[
    key 30	 base 1 shift ! caps 1 ctrl 1 altg nop
    key 31	 base 2 shift @ caps 2 ctrl ^@ altg nop
    key 32	 base 3 shift # caps 3 ctrl 3 altg nop
    key 33	 base 4 shift $ caps 4 ctrl 4 altg nop
    key 34	 base 5 shift % caps 5 ctrl 5 altg nop
    key 35	 base 6 shift ^ caps 6 ctrl ^^ altg nop
    key 36	 base 7 shift & caps 7 ctrl 7 altg nop
    key 37	 base 8 shift * caps 8 ctrl 8 altg nop
    key 38	 base 9 shift ( caps 9 ctrl 9 altg nop
    key 39	 base 0 shift ) caps 0 ctrl 0 altg nop
    key 40	 base - shift _ caps - ctrl ^_ altg nop
    key 41	 base = shift + caps = ctrl = altg nop
    key 42	 base ` shift ~ caps ` ctrl ^^ altg nop
    key 43	 all '\b'
    key 44	 all hole
    key 45	 all rf(4) numl padequal
    key 46	 all rf(5) numl padslash
    key 47	 all rf(6) numl padstar
    key 48	 all bf(13)
    key 49	 all lf(5)
    key 50	 all bf(10) numl padequal
    key 51	 all lf(6)
    key 52	 all hole
    key 53	 all '\t'
    key 54	 base q shift Q caps Q ctrl ^Q altg nop
    key 55	 base w shift W caps W ctrl ^W altg nop
    key 56	 base e shift E caps E ctrl ^E altg nop
    key 57	 base r shift R caps R ctrl ^R altg nop
    key 58	 base t shift T caps T ctrl ^T altg nop
    key 59	 base y shift Y caps Y ctrl ^Y altg nop
    key 60	 base u shift U caps U ctrl ^U altg nop
    key 61	 base i shift I caps I ctrl '\t' altg nop
    key 62	 base o shift O caps O ctrl ^O altg nop
    key 63	 base p shift P caps P ctrl ^P altg nop
    key 64	 base [ shift { caps [ ctrl ^[ altg nop
    key 65	 base ] shift } caps ] ctrl ^] altg nop
    key 66	 all '\177'
    key 67	 all compose
    key 68	 all rf(7) numl pad7
    key 69	 all rf(8) numl pad8
    key 70	 all rf(9) numl pad9
    key 71	 all bf(15) numl padminus
    key 72	 all lf(7)
    key 73	 all lf(8)
    key 74	 all hole
    key 75	 all hole
    key 76	 all shiftkeys+leftctrl up shiftkeys+leftctrl
    key 77	 base a shift A caps A ctrl ^A altg nop
    key 78	 base s shift S caps S ctrl ^S altg nop
    key 79	 base d shift D caps D ctrl ^D altg nop
    key 80	 base f shift F caps F ctrl ^F altg nop
    key 81	 base g shift G caps G ctrl ^G altg nop
    key 82	 base h shift H caps H ctrl '\b' altg nop
    key 83	 base j shift J caps J ctrl '\n' altg nop
    key 84	 base k shift K caps K ctrl '\v' altg nop
    key 85	 base l shift L caps L ctrl ^L altg nop
    key 86	 base ; shift : caps ; ctrl ; altg nop
    key 87	 base '\'' shift '"' caps '\'' ctrl '\'' altg nop
    key 88	 base '\\' shift | caps '\\' ctrl ^\ altg nop
    key 89	 all '\r'
    key 90	 all bf(11) numl padenter
    key 91	 all rf(10) numl pad4
    key 92	 all rf(11) numl pad5
    key 93	 all rf(12) numl pad6
    key 94	 all bf(8) numl pad0
    key 95	 all lf(9)
    key 96	 all hole
    key 97	 all lf(10)
    key 98	 all shiftkeys+numlock
    key 99	 all shiftkeys+leftshift up shiftkeys+leftshift
    key 100	 base z shift Z caps Z ctrl ^Z altg nop
    key 101	 base x shift X caps X ctrl ^X altg nop
    key 102	 base c shift C caps C ctrl ^C altg nop
    key 103	 base v shift V caps V ctrl ^V altg nop
    key 104	 base b shift B caps B ctrl ^B altg nop
    key 105	 base n shift N caps N ctrl ^N altg nop
    key 106	 base m shift M caps M ctrl '\r' altg nop
    key 107	 base , shift < caps , ctrl , altg nop
    key 108	 base . shift > caps . ctrl . altg nop
    key 109	 base / shift ? caps / ctrl ^_ altg nop
    key 110	 all shiftkeys+rightshift up shiftkeys+rightshift
    key 111	 all '\n'
    key 112	 all rf(13) numl pad1
    key 113	 all rf(14) numl pad2
    key 114	 all rf(15) numl pad3
    key 115	 all hole
    key 116	 all hole
    key 117	 all hole
    key 118	 all lf(16)
    key 119	 all shiftkeys+capslock
    key 120	 all buckybits+metabit up buckybits+metabit
    key 121	 base ' ' shift ' ' caps ' ' ctrl ^@ altg ' '
    key 122	 all buckybits+metabit up buckybits+metabit
    key 123	 all hole
    key 124	 all hole
    key 125	 all bf(14) numl padplus
    key 126	 all error numl error up hole
    key 127	 all idle numl idle up reset

SEE ALSO
loadkeys(1), kb(4M)