You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
297 lines
9.3 KiB
297 lines
9.3 KiB
/* |
|
* keyd - A key remapping daemon. |
|
* |
|
* © 2019 Raheman Vaiya (see also: LICENSE). |
|
*/ |
|
#ifndef _KEYS_H_ |
|
#define _KEYS_H_ |
|
#define _KEYS_H_ |
|
|
|
#include <stdint.h> |
|
#include <stdlib.h> |
|
|
|
#define MOD_ALT_GR 0x10 |
|
#define MOD_CTRL 0x8 |
|
#define MOD_SHIFT 0x4 |
|
#define MOD_SUPER 0x2 |
|
#define MOD_ALT 0x1 |
|
|
|
#define MAX_MOD 5 |
|
|
|
struct keycode_table_ent { |
|
const char *name; |
|
const char *alt_name; |
|
const char *shifted_name; |
|
}; |
|
|
|
struct modifier_table_ent { |
|
const char *name; |
|
uint8_t mask; |
|
|
|
uint8_t code1; |
|
uint8_t code2; /* May be 0. */ |
|
}; |
|
|
|
#define KEYD_ESC 1 |
|
#define KEYD_1 2 |
|
#define KEYD_2 3 |
|
#define KEYD_3 4 |
|
#define KEYD_4 5 |
|
#define KEYD_5 6 |
|
#define KEYD_6 7 |
|
#define KEYD_7 8 |
|
#define KEYD_8 9 |
|
#define KEYD_9 10 |
|
#define KEYD_0 11 |
|
#define KEYD_MINUS 12 |
|
#define KEYD_EQUAL 13 |
|
#define KEYD_BACKSPACE 14 |
|
#define KEYD_TAB 15 |
|
#define KEYD_Q 16 |
|
#define KEYD_W 17 |
|
#define KEYD_E 18 |
|
#define KEYD_R 19 |
|
#define KEYD_T 20 |
|
#define KEYD_Y 21 |
|
#define KEYD_U 22 |
|
#define KEYD_I 23 |
|
#define KEYD_O 24 |
|
#define KEYD_P 25 |
|
#define KEYD_LEFTBRACE 26 |
|
#define KEYD_RIGHTBRACE 27 |
|
#define KEYD_ENTER 28 |
|
#define KEYD_LEFTCTRL 29 |
|
#define KEYD_A 30 |
|
#define KEYD_S 31 |
|
#define KEYD_D 32 |
|
#define KEYD_F 33 |
|
#define KEYD_G 34 |
|
#define KEYD_H 35 |
|
#define KEYD_J 36 |
|
#define KEYD_K 37 |
|
#define KEYD_L 38 |
|
#define KEYD_SEMICOLON 39 |
|
#define KEYD_APOSTROPHE 40 |
|
#define KEYD_GRAVE 41 |
|
#define KEYD_LEFTSHIFT 42 |
|
#define KEYD_BACKSLASH 43 |
|
#define KEYD_Z 44 |
|
#define KEYD_X 45 |
|
#define KEYD_C 46 |
|
#define KEYD_V 47 |
|
#define KEYD_B 48 |
|
#define KEYD_N 49 |
|
#define KEYD_M 50 |
|
#define KEYD_COMMA 51 |
|
#define KEYD_DOT 52 |
|
#define KEYD_SLASH 53 |
|
#define KEYD_RIGHTSHIFT 54 |
|
#define KEYD_KPASTERISK 55 |
|
#define KEYD_LEFTALT 56 |
|
#define KEYD_SPACE 57 |
|
#define KEYD_CAPSLOCK 58 |
|
#define KEYD_F1 59 |
|
#define KEYD_F2 60 |
|
#define KEYD_F3 61 |
|
#define KEYD_F4 62 |
|
#define KEYD_F5 63 |
|
#define KEYD_F6 64 |
|
#define KEYD_F7 65 |
|
#define KEYD_F8 66 |
|
#define KEYD_F9 67 |
|
#define KEYD_F10 68 |
|
#define KEYD_NUMLOCK 69 |
|
#define KEYD_SCROLLLOCK 70 |
|
#define KEYD_KP7 71 |
|
#define KEYD_KP8 72 |
|
#define KEYD_KP9 73 |
|
#define KEYD_KPMINUS 74 |
|
#define KEYD_KP4 75 |
|
#define KEYD_KP5 76 |
|
#define KEYD_KP6 77 |
|
#define KEYD_KPPLUS 78 |
|
#define KEYD_KP1 79 |
|
#define KEYD_KP2 80 |
|
#define KEYD_KP3 81 |
|
#define KEYD_KP0 82 |
|
#define KEYD_KPDOT 83 |
|
#define KEYD_IS_LEVEL3_SHIFT 84 |
|
#define KEYD_ZENKAKUHANKAKU 85 |
|
#define KEYD_102ND 86 |
|
#define KEYD_F11 87 |
|
#define KEYD_F12 88 |
|
#define KEYD_RO 89 |
|
#define KEYD_KATAKANA 90 |
|
#define KEYD_HIRAGANA 91 |
|
#define KEYD_HENKAN 92 |
|
#define KEYD_KATAKANAHIRAGANA 93 |
|
#define KEYD_MUHENKAN 94 |
|
#define KEYD_KPJPCOMMA 95 |
|
#define KEYD_KPENTER 96 |
|
#define KEYD_RIGHTCTRL 97 |
|
#define KEYD_KPSLASH 98 |
|
#define KEYD_SYSRQ 99 |
|
#define KEYD_RIGHTALT 100 |
|
#define KEYD_LINEFEED 101 |
|
#define KEYD_HOME 102 |
|
#define KEYD_UP 103 |
|
#define KEYD_PAGEUP 104 |
|
#define KEYD_LEFT 105 |
|
#define KEYD_RIGHT 106 |
|
#define KEYD_END 107 |
|
#define KEYD_DOWN 108 |
|
#define KEYD_PAGEDOWN 109 |
|
#define KEYD_INSERT 110 |
|
#define KEYD_DELETE 111 |
|
#define KEYD_MACRO 112 |
|
#define KEYD_MUTE 113 |
|
#define KEYD_VOLUMEDOWN 114 |
|
#define KEYD_VOLUMEUP 115 |
|
#define KEYD_POWER 116 |
|
#define KEYD_KPEQUAL 117 |
|
#define KEYD_KPPLUSMINUS 118 |
|
#define KEYD_PAUSE 119 |
|
#define KEYD_SCALE 120 |
|
#define KEYD_KPCOMMA 121 |
|
#define KEYD_HANGEUL 122 |
|
#define KEYD_HANJA 123 |
|
#define KEYD_YEN 124 |
|
#define KEYD_LEFTMETA 125 |
|
#define KEYD_RIGHTMETA 126 |
|
#define KEYD_COMPOSE 127 |
|
#define KEYD_STOP 128 |
|
#define KEYD_AGAIN 129 |
|
#define KEYD_PROPS 130 |
|
#define KEYD_UNDO 131 |
|
#define KEYD_FRONT 132 |
|
#define KEYD_COPY 133 |
|
#define KEYD_OPEN 134 |
|
#define KEYD_PASTE 135 |
|
#define KEYD_FIND 136 |
|
#define KEYD_CUT 137 |
|
#define KEYD_HELP 138 |
|
#define KEYD_MENU 139 |
|
#define KEYD_CALC 140 |
|
#define KEYD_SETUP 141 |
|
#define KEYD_SLEEP 142 |
|
#define KEYD_WAKEUP 143 |
|
#define KEYD_FILE 144 |
|
#define KEYD_SENDFILE 145 |
|
#define KEYD_DELETEFILE 146 |
|
#define KEYD_XFER 147 |
|
#define KEYD_PROG1 148 |
|
#define KEYD_PROG2 149 |
|
#define KEYD_WWW 150 |
|
#define KEYD_MSDOS 151 |
|
#define KEYD_COFFEE 152 |
|
#define KEYD_ROTATE_DISPLAY 153 |
|
#define KEYD_CYCLEWINDOWS 154 |
|
#define KEYD_MAIL 155 |
|
#define KEYD_BOOKMARKS 156 |
|
#define KEYD_COMPUTER 157 |
|
#define KEYD_BACK 158 |
|
#define KEYD_FORWARD 159 |
|
#define KEYD_CLOSECD 160 |
|
#define KEYD_EJECTCD 161 |
|
#define KEYD_EJECTCLOSECD 162 |
|
#define KEYD_NEXTSONG 163 |
|
#define KEYD_PLAYPAUSE 164 |
|
#define KEYD_PREVIOUSSONG 165 |
|
#define KEYD_STOPCD 166 |
|
#define KEYD_RECORD 167 |
|
#define KEYD_REWIND 168 |
|
#define KEYD_PHONE 169 |
|
#define KEYD_ISO 170 |
|
#define KEYD_CONFIG 171 |
|
#define KEYD_HOMEPAGE 172 |
|
#define KEYD_REFRESH 173 |
|
#define KEYD_EXIT 174 |
|
#define KEYD_MOVE 175 |
|
#define KEYD_EDIT 176 |
|
#define KEYD_SCROLLUP 177 |
|
#define KEYD_SCROLLDOWN 178 |
|
#define KEYD_KPLEFTPAREN 179 |
|
#define KEYD_KPRIGHTPAREN 180 |
|
#define KEYD_NEW 181 |
|
#define KEYD_REDO 182 |
|
#define KEYD_F13 183 |
|
#define KEYD_F14 184 |
|
#define KEYD_F15 185 |
|
#define KEYD_F16 186 |
|
#define KEYD_F17 187 |
|
#define KEYD_F18 188 |
|
#define KEYD_F19 189 |
|
#define KEYD_F20 190 |
|
#define KEYD_F21 191 |
|
#define KEYD_F22 192 |
|
#define KEYD_F23 193 |
|
#define KEYD_F24 194 |
|
#define KEYD_PLAYCD 200 |
|
#define KEYD_PAUSECD 201 |
|
#define KEYD_PROG3 202 |
|
#define KEYD_PROG4 203 |
|
#define KEYD_DASHBOARD 204 |
|
#define KEYD_SUSPEND 205 |
|
#define KEYD_CLOSE 206 |
|
#define KEYD_PLAY 207 |
|
#define KEYD_FASTFORWARD 208 |
|
#define KEYD_BASSBOOST 209 |
|
#define KEYD_PRINT 210 |
|
#define KEYD_HP 211 |
|
#define KEYD_CAMERA 212 |
|
#define KEYD_SOUND 213 |
|
#define KEYD_QUESTION 214 |
|
#define KEYD_EMAIL 215 |
|
#define KEYD_CHAT 216 |
|
#define KEYD_SEARCH 217 |
|
#define KEYD_CONNECT 218 |
|
#define KEYD_FINANCE 219 |
|
#define KEYD_SPORT 220 |
|
#define KEYD_SHOP 221 |
|
#define KEYD_ALTERASE 222 |
|
#define KEYD_CANCEL 223 |
|
#define KEYD_BRIGHTNESSDOWN 224 |
|
#define KEYD_BRIGHTNESSUP 225 |
|
#define KEYD_MEDIA 226 |
|
#define KEYD_SWITCHVIDEOMODE 227 |
|
#define KEYD_KBDILLUMTOGGLE 228 |
|
#define KEYD_KBDILLUMDOWN 229 |
|
#define KEYD_KBDILLUMUP 230 |
|
#define KEYD_SEND 231 |
|
#define KEYD_REPLY 232 |
|
#define KEYD_FORWARDMAIL 233 |
|
#define KEYD_SAVE 234 |
|
#define KEYD_DOCUMENTS 235 |
|
#define KEYD_BATTERY 236 |
|
#define KEYD_BLUETOOTH 237 |
|
#define KEYD_WLAN 238 |
|
#define KEYD_UWB 239 |
|
#define KEYD_UNKNOWN 240 |
|
#define KEYD_VIDEO_NEXT 241 |
|
#define KEYD_VIDEO_PREV 242 |
|
#define KEYD_BRIGHTNESS_CYCLE 243 |
|
#define KEYD_BRIGHTNESS_AUTO 244 |
|
#define KEYD_DISPLAY_OFF 245 |
|
#define KEYD_WWAN 246 |
|
#define KEYD_RFKILL 247 |
|
#define KEYD_MICMUTE 248 |
|
|
|
/* These deviate from uinput codes. */ |
|
|
|
#define KEYD_EXTERNAL_MOUSE_BUTTON 196 |
|
|
|
#define KEYD_NOOP 195 |
|
#define KEYD_LEFT_MOUSE 249 |
|
#define KEYD_MIDDLE_MOUSE 250 |
|
#define KEYD_RIGHT_MOUSE 251 |
|
#define KEYD_MOUSE_1 252 |
|
#define KEYD_MOUSE_2 253 |
|
#define KEYD_FN 254 |
|
|
|
uint8_t keycode_to_mod(uint8_t code); |
|
int parse_modset(const char *s, uint8_t *mods); |
|
|
|
extern const struct modifier_table_ent modifier_table[MAX_MOD]; |
|
extern const struct keycode_table_ent keycode_table[256]; |
|
|
|
#endif
|
|
|