Remove building with NOCRYPTO option
[minix3.git] / minix / man / man5 / keymap.5
blobaba13743db19a1e4f3e36c479641ef47f43782cd
1 .TH KEYMAP 5
2 .SH NAME
3 keymap \- keyboard maps
4 .SH SYNOPSIS
5 .B /etc/keymap
6 .SH DESCRIPTION
7 .B /etc/keymap 
8 is the compressed mapping from keyboard scan codes to ASCII.
9 It is made from a keymap source file consisting of MAP_COLS columns
10 (MINIX assigns the value 6 to MAX_COLS, corresponding to key pressed,
11 key+SHIFT, key+LEFT_ALT, key+RIGHT_ALT, key+ALT+SHIFT and key+CTRL) and 
12 NR_SCAN_CODES rows (MINIX assigns the value 0xE8 to NR_SCAN_CODES,
13 corresponding to the range of defined USB HID key codes, which is the
14 set of key codes that is to be provided by all keyboard drivers),
15 and each element is 2 bytes in length (see u16_t in type definitions). 
16 The low order byte corresponds to the character represented by the scan 
17 code, and the high order byte corresponds to the special meaning (when 
18 CAPS LOCK has effect, if it is a function key, etc.), which is converted to
19 binary keymap format using the
20 .BR genmap  
21 utility. 
22 .PP
23 .SS "Types (general): <sys/types.h>"
24 <sys/types.h> defines the
25 .B u8_t
26 and
27 .B u16_t
28 types, corresponding to 8 and 16 bit values.
29 .SS "Keys: <minix/input.h>"
30 This header file contains the list of keys, prefixed by a
31 .B INPUT_KEY_
32 prefix. The
33 .B K
34 macro (see below) automatically adds the
35 .B INPUT_KEY_
36 prefix to the given key name. Input types from pages other than the key page
37 are not supported by TTY.
38 .SS "Macros: <minix/keymap.h>"
39 .TP
40 .BI "K(" k ") - Key"
41 Maps to the entry for the key in the bitmap
42 .TP
43 .BI "C(" c ") - Control"
44 Maps to control code
45 .TP
46 .BI "A(" c ") - Alt"
47 Sets the eight bit
48 .TP
49 .BI "CA(" c ") - Control-Alt"
50 Short for
51 .BI "A(C(" c "))"
52 .TP
53 .BI "L(" c ") - Caps Lock"
54 Adds Caps Lock effect
55 .PP
56 These macros are used in a keymap source file to help define keys.  So
57 instead of writing
58 .B 032
59 to put a CTRL-Z in the map you write
60 .BR "C('Z')" .
61 The
62 .BI "L(" c ")"
63 macro is used in column 0 to tell that the Caps Lock key is active for this
64 key.  (Caps Lock should only have effect on letters.)
65 Similarly, some keys in column 0 have a
66 .B N
67 prefix to indicate that they are affected by the Num Lock key.
68 .SS "Definitions: <minix/keymap.h>"
69 <minix/keymap.h> contains a large number of definitions for special keys,
70 like function keys, and keys on the numeric keypad.  They are:
71 .PP
72 Modifier keys:
73 .BR LCTRL ,
74 .BR RCTRL ,
75 .BR LSHIFT ,
76 .BR RSHIFT ,
77 .BR LALT ,
78 .BR RALT .
79 .PP
80 Special keys:
81 .BR HOME ,
82 .BR END ,
83 .BR UP ,
84 .BR DOWN ,
85 .BR LEFT ,
86 .BR RIGHT ,
87 .BR PGUP ,
88 .BR PGDN ,
89 .BR MID " (numeric '5'),"
90 .BR MIN " (only with " A " or " C " prefix),"
91 .BR PLUS ,
92 .BR INSRT ,
93 .BR DEL .
94 .PP
95 Special keys affected by Num Lock:
96 .BR NHOME ,
97 .BR NEND ", ..."
98 .BR NINSRT ,
99 .BR NDEL .
101 ALT + numpad key:
102 .BR AHOME ,
103 .BR AEND ", ...,"
104 .BR AINSRT .
106 CTRL + numpad:
107 .BR CHOME ,
108 .BR CEND ", ...,"
109 .BR CINSRT .
111 Lock keys:
112 .BR CALOCK " (Caps Lock),"
113 .BR NLOCK " (Num Lock),"
114 .BR SLOCK " (Scroll Lock)."
116 Function keys:
117 .BR F1 ", ...,"
118 .BR F12 .
120 ALT - function key:
121 .BR AF1 ", ...,"
122 .BR AF12 .
124 CTRL - function key:
125 .BR CF1 ", ...,"
126 .BR CF12 .
128 SHIFT - function key:
129 .BR SF1 ", ...,"
130 .BR SF12 .
132 ALT - SHIFT - function key:
133 .BR ASF1 ", ...,"
134 .BR ASF12 .
136 .SS "Creating/changing keyboard mapping"
137 You can create your own keyboard mapping by copying one of the existing
138 keymap source files (Standard Minix:
139 .BR drivers/tty/keymaps/*.src )
140 and modifying the desired keys. Once this has been done, you need to
141 recompile the genmap.c file, either by adding a new entry to the Makefile,
142 or by running the following commands:
145 .ft B
146 cc -DKEYSRC=\e"\fIkeymap\fP.src\e" genmap.c
147 .ft P
150 After this, the 
151 .BR keymap 
152 file can be generated by running:
155 .BI "a.out > " keymap .map
158 The keymap can be loaded in the keyboard driver by:
161 .BI "loadkeys " keymap .map
164 It is wise to first run
165 .B loadkeys
166 on one of the maps in
167 .B /usr/lib/keymaps
168 so that you can easily revert back to a known keymap with a few taps on the
169 up-arrow key and pressing return.  You will otherwise have to fix the keymap
170 with a faulty keymap loaded into the keyboard driver, which is no fun.
172 When the keymap is to your satisfaction you can copy it to
173 .B /etc/keymap
174 to have it loaded automatically at reboot.
175 .SH FILES
176 .TP 15
177 .B /etc/keymap
178 Default keymap file
179 .SH "SEE ALSO"
180 .B loadkeys (1).
181 .SH AUTHOR
182 Victor A. Rodriguez - El bit Fantasma (Bit-Man@Tasa.Com.AR)