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