xref: /minix3/minix/include/minix/keymap.h (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1 /*	keymap.h - defines for keymapping		Author: Marcus Hampel
2  */
3 #ifndef _SYS__KEYMAP_H
4 #define _SYS__KEYMAP_H
5 
6 #define K(k)	[INPUT_KEY_ ## k]	/* Map to key entry */
7 
8 #define	C(c)	((c) & 0x1F)	/* Map to control code		*/
9 #define A(c)	((c) | 0x80)	/* Set eight bit (ALT)		*/
10 #define CA(c)	A(C(c))		/* Control-Alt			*/
11 #define	N(c)	((c) | HASNUM)	/* Add "Num Lock has effect" attribute */
12 #define	L(c)	((c) | HASCAPS)	/* Add "Caps Lock has effect" attribute */
13 
14 #define EXT	0x0100		/* Normal function keys		*/
15 #define CTRLKEY	0x0200		/* Control key			*/
16 #define SHIFT	0x0400		/* Shift key			*/
17 #define ALT	0x0800		/* Alternate key		*/
18 #define HASNUM	0x4000		/* Num Lock has effect		*/
19 #define HASCAPS	0x8000		/* Caps Lock has effect		*/
20 
21 /* The left and right versions for the actual keys in the keymap. */
22 #define LCTRL	CTRLKEY
23 #define RCTRL	(CTRLKEY | EXT)
24 #define LSHIFT	SHIFT
25 #define RSHIFT	(SHIFT | EXT)
26 #define LALT	ALT
27 #define RALT	(ALT | EXT)
28 
29 /* Delete key */
30 #define DEL	0177
31 
32 /* Numeric keypad */
33 #define HOME	(0x01 + EXT)
34 #define END	(0x02 + EXT)
35 #define UP	(0x03 + EXT)
36 #define DOWN	(0x04 + EXT)
37 #define LEFT	(0x05 + EXT)
38 #define RIGHT	(0x06 + EXT)
39 #define PGUP	(0x07 + EXT)
40 #define PGDN	(0x08 + EXT)
41 #define MID	(0x09 + EXT)
42 /* UNUSED	(0x0A + EXT) */
43 /* UNUSED	(0x0B + EXT) */
44 #define INSRT	(0x0C + EXT)
45 
46 /* Keys affected by Num Lock */
47 #define NHOME	N(HOME)
48 #define NEND	N(END)
49 #define NUP	N(UP)
50 #define NDOWN	N(DOWN)
51 #define NLEFT	N(LEFT)
52 #define NRIGHT	N(RIGHT)
53 #define NPGUP	N(PGUP)
54 #define NPGDN	N(PGDN)
55 #define NMID	N(MID)
56 #define NINSRT	N(INSRT)
57 #define NDEL	N(DEL)
58 
59 /* Alt + Numeric keypad */
60 #define AHOME	(0x01 + ALT)
61 #define AEND	(0x02 + ALT)
62 #define AUP	(0x03 + ALT)
63 #define ADOWN	(0x04 + ALT)
64 #define ALEFT	(0x05 + ALT)
65 #define ARIGHT	(0x06 + ALT)
66 #define APGUP	(0x07 + ALT)
67 #define APGDN	(0x08 + ALT)
68 #define AMID	(0x09 + ALT)
69 #define AMIN	(0x0A + ALT)
70 #define APLUS	(0x0B + ALT)
71 #define AINSRT	(0x0C + ALT)
72 
73 /* Ctrl + Numeric keypad */
74 #define CHOME	(0x01 + CTRLKEY)
75 #define CEND	(0x02 + CTRLKEY)
76 #define CUP	(0x03 + CTRLKEY)
77 #define CDOWN	(0x04 + CTRLKEY)
78 #define CLEFT	(0x05 + CTRLKEY)
79 #define CRIGHT	(0x06 + CTRLKEY)
80 #define CPGUP	(0x07 + CTRLKEY)
81 #define CPGDN	(0x08 + CTRLKEY)
82 #define CMID	(0x09 + CTRLKEY)
83 #define CNMIN	(0x0A + CTRLKEY)
84 #define CPLUS	(0x0B + CTRLKEY)
85 #define CINSRT	(0x0C + CTRLKEY)
86 
87 /* Lock keys */
88 #define CALOCK	(0x0D + EXT)	/* caps lock	*/
89 #define	NLOCK	(0x0E + EXT)	/* number lock	*/
90 #define SLOCK	(0x0F + EXT)	/* scroll lock	*/
91 
92 /* Function keys */
93 #define F1	(0x10 + EXT)
94 #define F2	(0x11 + EXT)
95 #define F3	(0x12 + EXT)
96 #define F4	(0x13 + EXT)
97 #define F5	(0x14 + EXT)
98 #define F6	(0x15 + EXT)
99 #define F7	(0x16 + EXT)
100 #define F8	(0x17 + EXT)
101 #define F9	(0x18 + EXT)
102 #define F10	(0x19 + EXT)
103 #define F11	(0x1A + EXT)
104 #define F12	(0x1B + EXT)
105 
106 /* Alt+Fn */
107 #define AF1	(0x10 + ALT)
108 #define AF2	(0x11 + ALT)
109 #define AF3	(0x12 + ALT)
110 #define AF4	(0x13 + ALT)
111 #define AF5	(0x14 + ALT)
112 #define AF6	(0x15 + ALT)
113 #define AF7	(0x16 + ALT)
114 #define AF8	(0x17 + ALT)
115 #define AF9	(0x18 + ALT)
116 #define AF10	(0x19 + ALT)
117 #define AF11	(0x1A + ALT)
118 #define AF12	(0x1B + ALT)
119 
120 /* Ctrl+Fn */
121 #define CF1	(0x10 + CTRLKEY)
122 #define CF2	(0x11 + CTRLKEY)
123 #define CF3	(0x12 + CTRLKEY)
124 #define CF4	(0x13 + CTRLKEY)
125 #define CF5	(0x14 + CTRLKEY)
126 #define CF6	(0x15 + CTRLKEY)
127 #define CF7	(0x16 + CTRLKEY)
128 #define CF8	(0x17 + CTRLKEY)
129 #define CF9	(0x18 + CTRLKEY)
130 #define CF10	(0x19 + CTRLKEY)
131 #define CF11	(0x1A + CTRLKEY)
132 #define CF12	(0x1B + CTRLKEY)
133 
134 /* Shift+Fn */
135 #define SF1	(0x10 + SHIFT)
136 #define SF2	(0x11 + SHIFT)
137 #define SF3	(0x12 + SHIFT)
138 #define SF4	(0x13 + SHIFT)
139 #define SF5	(0x14 + SHIFT)
140 #define SF6	(0x15 + SHIFT)
141 #define SF7	(0x16 + SHIFT)
142 #define SF8	(0x17 + SHIFT)
143 #define SF9	(0x18 + SHIFT)
144 #define SF10	(0x19 + SHIFT)
145 #define SF11	(0x1A + SHIFT)
146 #define SF12	(0x1B + SHIFT)
147 
148 /* Alt+Shift+Fn */
149 #define ASF1	(0x10 + ALT + SHIFT)
150 #define ASF2	(0x11 + ALT + SHIFT)
151 #define ASF3	(0x12 + ALT + SHIFT)
152 #define ASF4	(0x13 + ALT + SHIFT)
153 #define ASF5	(0x14 + ALT + SHIFT)
154 #define ASF6	(0x15 + ALT + SHIFT)
155 #define ASF7	(0x16 + ALT + SHIFT)
156 #define ASF8	(0x17 + ALT + SHIFT)
157 #define ASF9	(0x18 + ALT + SHIFT)
158 #define ASF10	(0x19 + ALT + SHIFT)
159 #define ASF11	(0x1A + ALT + SHIFT)
160 #define ASF12	(0x1B + ALT + SHIFT)
161 
162 #define MAP_COLS	6	/* Number of columns in keymap */
163 #define NR_SCAN_CODES	0xE8	/* Number of scan codes (rows in keymap) */
164 
165 typedef uint16_t keymap_t[NR_SCAN_CODES][MAP_COLS];
166 
167 #define KEY_MAGIC	"KMAZ"	/* Magic number of keymap file */
168 
169 #endif /* _SYS__KEYMAP_H */
170