From 470457e22a1b5537013603d5e367c51e47bb61bf Mon Sep 17 00:00:00 2001 From: James Date: Mon, 5 May 2014 17:50:20 +0100 Subject: fish --- output_map.h | 871 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 871 insertions(+) create mode 100644 output_map.h (limited to 'output_map.h') diff --git a/output_map.h b/output_map.h new file mode 100644 index 0000000..978a17c --- /dev/null +++ b/output_map.h @@ -0,0 +1,871 @@ + +#define HACK_NONE 0UL /*Do nothing special */ + +#define HACK_CTRL_L 1UL<<0 +#define HACK_SHIFT_L 1UL<<1 +#define HACK_ALT_L 1UL<<2 +#define HACK_SUPER_L 1UL<<3 + +#define HACK_CTRL_R 1UL<<4 +#define HACK_SHIFT_R 1UL<<5 +#define HACK_ALT_R 1UL<<6 +#define HACK_SUPER_R 1UL<<7 + +#define HACK_SHIFT_MASK 0x22 +#define HACK_MODIFIER_MASK 0xff + +#define HACK_RCS 1UL<<16 /*Require a shift key to be pressed and pass it through */ +#define HACK_HS 1UL<<17 /*Require and then hide a shift key */ +#define HACK_ILS 1UL<<18 /*Insert left shift */ + + +struct map_ent +{ + uint32_t hacks; + uint8_t code; + uint32_t keycode; +}; + + +static struct map_ent map[] = { +/* Crazy parenthesis*/ + { + HACK_RCS, 0x26, KEY_9}, /* parenleft */ + { + HACK_RCS, 0x27, KEY_0}, /* parenright */ + +#ifdef APPLE_KEYBOARD + { + HACK_NONE, 0x29, KEY_102ND }, + { + HACK_NONE, 0x65, KEY_ESC}, + { + HACK_NONE, 0x48, KEY_F19}, + { + HACK_NONE, 0x64, KEY_GRAVE}, +#endif + +#if 0 +#if 0 +/* UK - US misery for windows UK map*/ + { + HACK_RCS, 0x34, 0x32}, /* shift 2 ->shift ' */ + { + HACK_RCS, 0x1f, 0x27}, /* shift ' -> shift 2 */ + { + HACK_RCS, 0x31, 0x60}, /* shift ` -> shift # */ + { + HACK_HS, 0x31, 0x33}, /* shift 3 -> # */ + { + HACK_NONE, 0x64, 0x5c}, /* backslash -> backslash */ +#endif +#if 1 +/*misery for james' gbus keymap */ + { + HACK_CTRL_L, 0xE0, 0xffe5}, /* Caps_Lock */ + { + HACK_NONE, 0x39, 0xffe3}, /* Control_L */ + { + HACK_NONE, 0x31, 0x60}, /* ` -> ` */ + { + HACK_NONE, 0x64, 0x5c}, /* backslash -> backslash */ +#endif +#endif + +/*Modifier keys*/ + { + HACK_CTRL_L, 0xE0, KEY_LEFTCTRL}, /* Control_L */ + { + HACK_SHIFT_L, 0xE1, KEY_LEFTSHIFT}, /* Shift_L */ + { + HACK_ALT_L, 0xE2, KEY_LEFTALT}, /* Alt_L */ + { + HACK_SUPER_L, 0xE3, KEY_LEFTMETA}, /* Super_L */ + { + HACK_CTRL_R, 0xE4, KEY_RIGHTCTRL}, /* Control_R */ + { + HACK_SHIFT_R, 0xE5, KEY_RIGHTSHIFT}, /* Shift_R */ + { + HACK_ALT_R, 0xE6, KEY_RIGHTALT}, /* Alt_R */ + { + HACK_SUPER_R, 0xE7, KEY_RIGHTMETA}, /* Super_R */ +/* normal service below here */ + { + HACK_NONE, 0x04, KEY_A}, /* a */ + { + HACK_NONE, 0x05, KEY_B}, /* b */ + { + HACK_NONE, 0x06, KEY_C}, /* c */ + { + HACK_NONE, 0x07, KEY_D}, /* d */ + { + HACK_NONE, 0x08, KEY_E}, /* e */ + { + HACK_NONE, 0x09, KEY_F}, /* f */ + { + HACK_NONE, 0x0a, KEY_G}, /* g */ + { + HACK_NONE, 0x0b, KEY_H}, /* h */ + { + HACK_NONE, 0x0c, KEY_I}, /* i */ + { + HACK_NONE, 0x0d, KEY_J}, /* j */ + { + HACK_NONE, 0x0e, KEY_K}, /* k */ + { + HACK_NONE, 0x0f, KEY_L}, /* l */ + { + HACK_NONE, 0x10, KEY_M}, /* m */ + { + HACK_NONE, 0x11, KEY_N}, /* n */ + { + HACK_NONE, 0x12, KEY_O}, /* o */ + { + HACK_NONE, 0x13, KEY_P}, /* p */ + { + HACK_NONE, 0x14, KEY_Q}, /* q */ + { + HACK_NONE, 0x15, KEY_R}, /* r */ + { + HACK_NONE, 0x16, KEY_S}, /* s */ + { + HACK_NONE, 0x17, KEY_T}, /* t */ + { + HACK_NONE, 0x18, KEY_U}, /* u */ + { + HACK_NONE, 0x19, KEY_V}, /* v */ + { + HACK_NONE, 0x1a, KEY_W}, /* w */ + { + HACK_NONE, 0x1b, KEY_X}, /* x */ + { + HACK_NONE, 0x1c, KEY_Y}, /* y */ + { + HACK_NONE, 0x1d, KEY_Z}, /* z */ + { + HACK_NONE, 0x1e, KEY_1}, /* 1 */ + { + HACK_NONE, 0x1f, KEY_2}, /* 2 */ + { + HACK_NONE, 0x20, KEY_3}, /* 3 */ + { + HACK_NONE, 0x21, KEY_4}, /* 4 */ + { + HACK_NONE, 0x22, KEY_5}, /* 5 */ + { + HACK_NONE, 0x23, KEY_6}, /* 6 */ + { + HACK_NONE, 0x24, KEY_7}, /* 7 */ + { + HACK_NONE, 0x25, KEY_8}, /* 8 */ + { + HACK_NONE, 0x26, KEY_9}, /* 9 */ + { + HACK_NONE, 0x27, KEY_0}, /* 0 */ + { + HACK_NONE, 0x28, KEY_ENTER}, /* Return */ + { + HACK_NONE, 0x29, KEY_ESC}, /* Escape */ + { + HACK_NONE, 0x2a, KEY_BACKSPACE}, /* BackSpace */ + { + HACK_NONE, 0x2b, KEY_TAB}, /* Tab */ + { + HACK_NONE, 0x2c, KEY_SPACE}, /* space */ + { + HACK_NONE, 0x2d, KEY_MINUS}, /* minus */ + { + HACK_NONE, 0x2e, KEY_EQUAL}, /* equal */ + { + HACK_NONE, 0x2f, KEY_LEFTBRACE}, /* bracketleft */ + { + HACK_NONE, 0x30, KEY_RIGHTBRACE}, /* bracketright */ + { + HACK_NONE, 0x31, KEY_BACKSLASH}, /* backslash */ + { + HACK_NONE, 0x32, KEY_BACKSLASH}, /* backslash */ + { + HACK_NONE, 0x33, KEY_SEMICOLON}, /* semicolon */ + { + HACK_NONE, 0x34, KEY_APOSTROPHE}, /* apostrophe */ + { + HACK_NONE, 0x35, KEY_GRAVE}, /* grave */ + { + HACK_NONE, 0x36, KEY_COMMA}, /* comma */ + { + HACK_NONE, 0x37, KEY_DOT}, /* period */ + { + HACK_NONE, 0x38, KEY_SLASH}, /* slash */ + { + HACK_NONE, 0x39, KEY_CAPSLOCK}, /* Caps_Lock */ + { + HACK_NONE, 0x3A, KEY_F1}, /* F1 */ + { + HACK_NONE, 0x3B, KEY_F2}, /* F2 */ + { + HACK_NONE, 0x3C, KEY_F3}, /* F3 */ + { + HACK_NONE, 0x3D, KEY_F4}, /* F4 */ + { + HACK_NONE, 0x3E, KEY_F5}, /* F5 */ + { + HACK_NONE, 0x3F, KEY_F6}, /* F6 */ + { + HACK_NONE, 0x40, KEY_F7}, /* F7 */ + { + HACK_NONE, 0x41, KEY_F8}, /* F8 */ + { + HACK_NONE, 0x42, KEY_F9}, /* F9 */ + { + HACK_NONE, 0x43, KEY_F10}, /* F10 */ + { + HACK_NONE, 0x44, KEY_F11}, /* F11 */ + { + HACK_NONE, 0x45, KEY_F12}, /* F12 */ + { + HACK_NONE, 0x46, KEY_SYSRQ}, /* Print */ + { + HACK_NONE, 0x47, KEY_SCROLLLOCK}, /* Scroll_Lock */ + { + HACK_NONE, 0x48, KEY_PAUSE}, /* Pause */ + { + HACK_NONE, 0x49, KEY_INSERT}, /* Insert */ + { + HACK_NONE, 0x4A, KEY_HOME}, /* Home */ + { + HACK_NONE, 0x4B, KEY_PAGEUP}, /* Prior */ + { + HACK_NONE, 0x4C, KEY_DELETE}, /* Delete */ + { + HACK_NONE, 0x4D, KEY_END}, /* End */ + { + HACK_NONE, 0x4E, KEY_PAGEDOWN}, /* Next */ + { + HACK_NONE, 0x4F, KEY_RIGHT}, /* Right */ + { + HACK_NONE, 0x50, KEY_LEFT}, /* Left */ + { + HACK_NONE, 0x51, KEY_DOWN}, /* Down */ + { + HACK_NONE, 0x52, KEY_UP}, /* Up */ + { + HACK_NONE, 0x53, KEY_NUMLOCK}, /* Num_Lock */ + { + HACK_NONE, 0x54, KEY_KPSLASH}, /* KP_Divide */ + { + HACK_NONE, 0x55, KEY_KPASTERISK}, /* KP_Multiply */ + { + HACK_NONE, 0x56, KEY_KPMINUS}, /* KP_Subtract */ + { + HACK_NONE, 0x57, KEY_KPPLUS}, /* KP_Add */ + { + HACK_NONE, 0x58, KEY_KPENTER}, /* KP_Enter */ + { + HACK_NONE, 0x59, KEY_KP1}, /* KP_1 */ + { + HACK_NONE, 0x5A, KEY_KP2}, /* KP_2 */ + { + HACK_NONE, 0x5B, KEY_KP3}, /* KP_3 */ + { + HACK_NONE, 0x5C, KEY_KP4}, /* KP_4 */ + { + HACK_NONE, 0x5D, KEY_KP5}, /* KP_5 */ + { + HACK_NONE, 0x5E, KEY_KP6}, /* KP_6 */ + { + HACK_NONE, 0x5F, KEY_KP7}, /* KP_7 */ + { + HACK_NONE, 0x60, KEY_KP8}, /* KP_8 */ + { + HACK_NONE, 0x61, KEY_KP9}, /* KP_9 */ + { + HACK_NONE, 0x62, KEY_KP0}, /* KP_0 */ + { + HACK_NONE, 0x63, KEY_KPDOT}, /* KP_Decimal */ + { + HACK_NONE, 0x64, KEY_102ND}, /* less */ + { + HACK_NONE, 0x65, KEY_COMPOSE}, /* Menu */ + { + HACK_NONE, 0x65, KEY_MENU}, /* Menu */ + { + HACK_NONE, 0x66, KEY_POWER}, /* XF86PowerOff */ + { + HACK_NONE, 0x67, KEY_KPEQUAL}, /* KP_Equal */ + { + HACK_NONE, 0x68, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x69, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x6A, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x6B, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x6C, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x6D, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x6E, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x6F, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x70, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x71, 0x0}, /* TouchpadToggle */ + { + HACK_NONE, 0x72, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x73, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x74, KEY_OPEN}, /* SunOpen */ + { + HACK_NONE, 0x75, KEY_HELP}, /* Help */ + { + HACK_NONE, 0x76, KEY_PROPS}, /* SunProps */ + { + HACK_NONE, 0x77, KEY_FRONT}, /* SunFront */ + { + HACK_NONE, 0x78, KEY_STOP}, /* Cancel */ + { + HACK_NONE, 0x79, KEY_AGAIN}, /* Again */ + { + HACK_NONE, 0x7A, KEY_UNDO}, /* Undo */ + { + HACK_NONE, 0x7B, KEY_CUT}, /* Cut */ + { + HACK_NONE, 0x7C, KEY_COPY}, /* Copy */ + { + HACK_NONE, 0x7D, KEY_PASTE}, /* Paste */ + { + HACK_NONE, 0x7E, KEY_FIND}, /* Find */ + { + HACK_NONE, 0x7F, KEY_MUTE}, /* Mute */ + { + HACK_NONE, 0x80, KEY_VOLUMEDOWN}, /* RaiseVolume */ + { + HACK_NONE, 0x81, KEY_VOLUMEUP}, /* LowerVolume */ + { + HACK_NONE, 0x82, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x83, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x84, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x85, KEY_KPDOT}, /* KP_Decimal */ + { + HACK_NONE, 0x86, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x87, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x88, KEY_KATAKANAHIRAGANA}, /* Hiragana_Katakana */ + { + HACK_NONE, 0x89, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x8A, KEY_HENKAN}, /* Henkan_Mode */ + { + HACK_NONE, 0x8B, KEY_MUHENKAN}, /* Muhenkan */ + { + HACK_NONE, 0x8C, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x8D, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x8E, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x8F, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x90, KEY_HANGEUL}, /* Hangul */ + { + HACK_NONE, 0x91, KEY_HANJA}, /* Hangul_Hanja */ + { + HACK_NONE, 0x92, KEY_KATAKANA}, /* Katakana */ + { + HACK_NONE, 0x93, KEY_HIRAGANA}, /* Hiragana */ + { + HACK_NONE, 0x94, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x95, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x96, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x97, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x98, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x99, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x9A, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x9B, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x9C, KEY_DELETE}, /* Delete */ + { + HACK_NONE, 0x9D, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x9E, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0x9F, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA0, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA1, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA2, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA3, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA4, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA5, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA6, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA7, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA8, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xA9, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xAA, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xAB, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xAC, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xAD, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xAE, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xAF, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB0, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB1, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB2, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB3, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB4, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB5, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB6, KEY_9}, /* parenleft */ + { + HACK_NONE, 0xB7, KEY_0}, /* parenright */ + { + HACK_NONE, 0xB8, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xB9, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xBA, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xBB, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xBC, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xBD, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xBE, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xBF, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC0, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC1, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC2, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC3, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC4, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC5, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC6, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC7, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC8, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xC9, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xCA, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xCB, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xCC, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xCD, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xCE, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xCF, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD0, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD1, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD2, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD3, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD4, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD5, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD6, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD7, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xD8, KEY_DELETE}, /* Delete */ + { + HACK_NONE, 0xD9, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xDA, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xDB, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xDC, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xDD, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xDE, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xDF, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xE0, KEY_LEFTCTRL}, /* Control_L */ + { + HACK_NONE, 0xE1, KEY_LEFTSHIFT}, /* Shift_L */ + { + HACK_NONE, 0xE2, KEY_LEFTALT}, /* Alt_L */ + { + HACK_NONE, 0xE3, KEY_LEFTMETA}, /* Super_L */ + { + HACK_NONE, 0xE4, KEY_RIGHTCTRL}, /* Control_R */ + { + HACK_NONE, 0xE5, KEY_RIGHTSHIFT}, /* Shift_R */ + { + HACK_NONE, 0xE6, KEY_RIGHTALT}, /* Alt_R */ + { + HACK_NONE, 0xE7, KEY_RIGHTMETA}, /* Super_R */ + { + HACK_NONE, 0xE8, KEY_PLAYPAUSE}, /* Play */ + { + HACK_NONE, 0xE9, KEY_STOPCD}, /* Stop */ + { + HACK_NONE, 0xEA, KEY_PREVIOUSSONG}, /* |< */ + { + HACK_NONE, 0xEB, KEY_NEXTSONG}, /* >| */ + { + HACK_NONE, 0xEC, KEY_EJECTCD}, /* XF86Eject */ + { + HACK_NONE, 0xED, KEY_VOLUMEUP}, /* RaiseVolume */ + { + HACK_NONE, 0xEE, KEY_VOLUMEDOWN}, /* LowerVolume */ + { + HACK_NONE, 0xEF, KEY_MUTE}, /* Mute */ + { + HACK_NONE, 0xF0, KEY_WWW}, /* WWW */ + { + HACK_NONE, 0xF1, KEY_BACK}, /* Back */ + { + HACK_NONE, 0xF2, KEY_FORWARD}, /* Forward */ + { + HACK_NONE, 0xF3, KEY_CANCEL}, /* Cancel */ + { + HACK_NONE, 0xF4, KEY_FIND}, /* Find */ + { + HACK_NONE, 0xF5, KEY_SCROLLUP}, /* ScrollUp */ + { + HACK_NONE, 0xF6, KEY_SCROLLDOWN}, /* ScrollDown */ + { + HACK_NONE, 0xF7, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xF8, KEY_SLEEP}, /* Sleep */ + { + HACK_NONE, 0xF9, KEY_COFFEE}, /* ScreenSaver */ + { + HACK_NONE, 0xFA, KEY_REFRESH}, /* Reload */ + { + HACK_NONE, 0xFB, KEY_CALC}, /* Calculator */ + { + HACK_NONE, 0xFC, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xFD, 0x0}, /* NoSymbol */ + { + HACK_NONE, 0xFE, 0x0}, /* NoSymbol */ +}; + +#define MAP_LEN (sizeof(map)/sizeof(struct map_ent)) + + +#if 0 +#define MAP_LEN 256 +static int kc_map[MAP_LEN]; +static KeySym kc_map[MAP_LEN] = { + [0x04] = 0x61, /* a */ + [0x05] = 0x62, /* b */ + [0x06] = 0x63, /* c */ + [0x07] = 0x64, /* d */ + [0x08] = 0x65, /* e */ + [0x09] = 0x66, /* f */ + [0x0a] = 0x67, /* g */ + [0x0b] = 0x68, /* h */ + [0x0c] = 0x69, /* i */ + [0x0d] = 0x6a, /* j */ + [0x0e] = 0x6b, /* k */ + [0x0f] = 0x6c, /* l */ + [0x10] = 0x6d, /* m */ + [0x11] = 0x6e, /* n */ + [0x12] = 0x6f, /* o */ + [0x13] = 0x70, /* p */ + [0x14] = 0x71, /* q */ + [0x15] = 0x72, /* r */ + [0x16] = 0x73, /* s */ + [0x17] = 0x74, /* t */ + [0x18] = 0x75, /* u */ + [0x19] = 0x76, /* v */ + [0x1a] = 0x77, /* w */ + [0x1b] = 0x78, /* x */ + [0x1c] = 0x79, /* y */ + [0x1d] = 0x7a, /* z */ + [0x1e] = 0x31, /* 1 */ + [0x1f] = 0x32, /* 2 */ + [0x20] = 0x33, /* 3 */ + [0x21] = 0x34, /* 4 */ + [0x22] = 0x35, /* 5 */ + [0x23] = 0x36, /* 6 */ + [0x24] = 0x37, /* 7 */ + [0x25] = 0x38, /* 8 */ + [0x26] = 0x39, /* 9 */ + [0x27] = 0x30, /* 0 */ + [0x28] = 0xff0d, /* Return */ + [0x29] = 0xff1b, /* Escape */ + [0x2a] = 0xff08, /* BackSpace */ + [0x2b] = 0xff09, /* Tab */ + [0x2c] = 0x20, /* space */ + [0x2d] = 0x2d, /* minus */ + [0x2e] = 0x3d, /* equal */ + [0x2f] = 0x5b, /* bracketleft */ + [0x30] = 0x5d, /* bracketright */ + [0x31] = 0x5c, /* backslash */ + [0x32] = 0x5c, /* backslash */ + [0x33] = 0x3b, /* semicolon */ + [0x34] = 0x27, /* apostrophe */ + [0x35] = 0x60, /* grave */ + [0x36] = 0x2c, /* comma */ + [0x37] = 0x2e, /* period */ + [0x38] = 0x2f, /* slash */ + [0x39] = 0xffe5, /* Caps_Lock */ + [0x3A] = 0xffbe, /* F1 */ + [0x3B] = 0xffbf, /* F2 */ + [0x3C] = 0xffc0, /* F3 */ + [0x3D] = 0xffc1, /* F4 */ + [0x3E] = 0xffc2, /* F5 */ + [0x3F] = 0xffc3, /* F6 */ + [0x40] = 0xffc4, /* F7 */ + [0x41] = 0xffc5, /* F8 */ + [0x42] = 0xffc6, /* F9 */ + [0x43] = 0xffc7, /* F10 */ + [0x44] = 0xffc8, /* F11 */ + [0x45] = 0xffc9, /* F12 */ + [0x46] = 0xff61, /* Print */ + [0x47] = 0xff14, /* Scroll_Lock */ + [0x48] = 0xff13, /* Pause */ + [0x49] = 0xff63, /* Insert */ + [0x4A] = 0xff50, /* Home */ + [0x4B] = 0xff55, /* Prior */ + [0x4C] = 0xffff, /* Delete */ + [0x4D] = 0xff57, /* End */ + [0x4E] = 0xff56, /* Next */ + [0x4F] = 0xff53, /* Right */ + [0x50] = 0xff51, /* Left */ + [0x51] = 0xff54, /* Down */ + [0x52] = 0xff52, /* Up */ + [0x53] = 0xff7f, /* Num_Lock */ + [0x54] = 0xffaf, /* KP_Divide */ + [0x55] = 0xffaa, /* KP_Multiply */ + [0x56] = 0xffad, /* KP_Subtract */ + [0x57] = 0xffab, /* KP_Add */ + [0x58] = 0xff8d, /* KP_Enter */ + [0x59] = 0xffb1, /* KP_1 */ + [0x5A] = 0xffb2, /* KP_2 */ + [0x5B] = 0xffb3, /* KP_3 */ + [0x5C] = 0xffb4, /* KP_4 */ + [0x5D] = 0xffb5, /* KP_5 */ + [0x5E] = 0xffb6, /* KP_6 */ + [0x5F] = 0xffb7, /* KP_7 */ + [0x60] = 0xffb8, /* KP_8 */ + [0x61] = 0xffb9, /* KP_9 */ + [0x62] = 0xffb0, /* KP_0 */ + [0x63] = 0xffae, /* KP_Decimal */ + [0x64] = 0x3c, /* less */ + [0x65] = 0xff67, /* Menu */ + [0x66] = 0x1008ff2a, /* XF86PowerOff */ + [0x67] = 0xffbd, /* KP_Equal */ + [0x68] = 0x0, /* NoSymbol */ + [0x69] = 0x0, /* NoSymbol */ + [0x6A] = 0x0, /* NoSymbol */ + [0x6B] = 0x0, /* NoSymbol */ + [0x6C] = 0x0, /* NoSymbol */ + [0x6D] = 0x0, /* NoSymbol */ + [0x6E] = 0x0, /* NoSymbol */ + [0x6F] = 0x0, /* NoSymbol */ + [0x70] = 0x0, /* NoSymbol */ + [0x71] = 0x1008ffa9, /* XF86TouchpadToggle */ + [0x72] = 0x0, /* NoSymbol */ + [0x73] = 0x0, /* NoSymbol */ + [0x74] = 0x1005ff73, /* SunOpen */ + [0x75] = 0xff6a, /* Help */ + [0x76] = 0x1005ff70, /* SunProps */ + [0x77] = 0x1005ff71, /* SunFront */ + [0x78] = 0xff69, /* Cancel */ + [0x79] = 0xff66, /* Redo */ + [0x7A] = 0xff65, /* Undo */ + [0x7B] = 0x1008ff58, /* XF86Cut */ + [0x7C] = 0x1008ff57, /* XF86Copy */ + [0x7D] = 0x1008ff6d, /* XF86Paste */ + [0x7E] = 0xff68, /* Find */ + [0x7F] = 0x1008ff12, /* XF86AudioMute */ + [0x80] = 0x1008ff13, /* XF86AudioRaiseVolume */ + [0x81] = 0x1008ff11, /* XF86AudioLowerVolume */ + [0x82] = 0x0, /* NoSymbol */ + [0x83] = 0x0, /* NoSymbol */ + [0x84] = 0x0, /* NoSymbol */ + [0x85] = 0xffae, /* KP_Decimal */ + [0x86] = 0x0, /* NoSymbol */ + [0x87] = 0x0, /* NoSymbol */ + [0x88] = 0xff27, /* Hiragana_Katakana */ + [0x89] = 0x0, /* NoSymbol */ + [0x8A] = 0xff23, /* Henkan_Mode */ + [0x8B] = 0xff22, /* Muhenkan */ + [0x8C] = 0x0, /* NoSymbol */ + [0x8D] = 0x0, /* NoSymbol */ + [0x8E] = 0x0, /* NoSymbol */ + [0x8F] = 0x0, /* NoSymbol */ + [0x90] = 0xff31, /* Hangul */ + [0x91] = 0xff34, /* Hangul_Hanja */ + [0x92] = 0xff26, /* Katakana */ + [0x93] = 0xff25, /* Hiragana */ + [0x94] = 0x0, /* NoSymbol */ + [0x95] = 0x0, /* NoSymbol */ + [0x96] = 0x0, /* NoSymbol */ + [0x97] = 0x0, /* NoSymbol */ + [0x98] = 0x0, /* NoSymbol */ + [0x99] = 0x0, /* NoSymbol */ + [0x9A] = 0x0, /* NoSymbol */ + [0x9B] = 0x0, /* NoSymbol */ + [0x9C] = 0xffff, /* Delete */ + [0x9D] = 0x0, /* NoSymbol */ + [0x9E] = 0x0, /* NoSymbol */ + [0x9F] = 0x0, /* NoSymbol */ + [0xA0] = 0x0, /* NoSymbol */ + [0xA1] = 0x0, /* NoSymbol */ + [0xA2] = 0x0, /* NoSymbol */ + [0xA3] = 0x0, /* NoSymbol */ + [0xA4] = 0x0, /* NoSymbol */ + [0xA5] = 0x0, /* NoSymbol */ + [0xA6] = 0x0, /* NoSymbol */ + [0xA7] = 0x0, /* NoSymbol */ + [0xA8] = 0x0, /* NoSymbol */ + [0xA9] = 0x0, /* NoSymbol */ + [0xAA] = 0x0, /* NoSymbol */ + [0xAB] = 0x0, /* NoSymbol */ + [0xAC] = 0x0, /* NoSymbol */ + [0xAD] = 0x0, /* NoSymbol */ + [0xAE] = 0x0, /* NoSymbol */ + [0xAF] = 0x0, /* NoSymbol */ + [0xB0] = 0x0, /* NoSymbol */ + [0xB1] = 0x0, /* NoSymbol */ + [0xB2] = 0x0, /* NoSymbol */ + [0xB3] = 0x0, /* NoSymbol */ + [0xB4] = 0x0, /* NoSymbol */ + [0xB5] = 0x0, /* NoSymbol */ + [0xB6] = 0x28, /* parenleft */ + [0xB7] = 0x29, /* parenright */ + [0xB8] = 0x0, /* NoSymbol */ + [0xB9] = 0x0, /* NoSymbol */ + [0xBA] = 0x0, /* NoSymbol */ + [0xBB] = 0x0, /* NoSymbol */ + [0xBC] = 0x0, /* NoSymbol */ + [0xBD] = 0x0, /* NoSymbol */ + [0xBE] = 0x0, /* NoSymbol */ + [0xBF] = 0x0, /* NoSymbol */ + [0xC0] = 0x0, /* NoSymbol */ + [0xC1] = 0x0, /* NoSymbol */ + [0xC2] = 0x0, /* NoSymbol */ + [0xC3] = 0x0, /* NoSymbol */ + [0xC4] = 0x0, /* NoSymbol */ + [0xC5] = 0x0, /* NoSymbol */ + [0xC6] = 0x0, /* NoSymbol */ + [0xC7] = 0x0, /* NoSymbol */ + [0xC8] = 0x0, /* NoSymbol */ + [0xC9] = 0x0, /* NoSymbol */ + [0xCA] = 0x0, /* NoSymbol */ + [0xCB] = 0x0, /* NoSymbol */ + [0xCC] = 0x0, /* NoSymbol */ + [0xCD] = 0x0, /* NoSymbol */ + [0xCE] = 0x0, /* NoSymbol */ + [0xCF] = 0x0, /* NoSymbol */ + [0xD0] = 0x0, /* NoSymbol */ + [0xD1] = 0x0, /* NoSymbol */ + [0xD2] = 0x0, /* NoSymbol */ + [0xD3] = 0x0, /* NoSymbol */ + [0xD4] = 0x0, /* NoSymbol */ + [0xD5] = 0x0, /* NoSymbol */ + [0xD6] = 0x0, /* NoSymbol */ + [0xD7] = 0x0, /* NoSymbol */ + [0xD8] = 0xffff, /* Delete */ + [0xD9] = 0x0, /* NoSymbol */ + [0xDA] = 0x0, /* NoSymbol */ + [0xDB] = 0x0, /* NoSymbol */ + [0xDC] = 0x0, /* NoSymbol */ + [0xDD] = 0x0, /* NoSymbol */ + [0xDE] = 0x0, /* NoSymbol */ + [0xDF] = 0x0, /* NoSymbol */ + [0xE0] = 0xffe3, /* Control_L */ + [0xE1] = 0xffe1, /* Shift_L */ + [0xE2] = 0xffe9, /* Alt_L */ + [0xE3] = 0xffeb, /* Super_L */ + [0xE4] = 0xffe4, /* Control_R */ + [0xE5] = 0xffe2, /* Shift_R */ + [0xE6] = 0xffea, /* Alt_R */ + [0xE7] = 0xffec, /* Super_R */ + [0xE8] = 0x1008ff14, /* XF86AudioPlay */ + [0xE9] = 0x1008ff15, /* XF86AudioStop */ + [0xEA] = 0x1008ff16, /* XF86AudioPrev */ + [0xEB] = 0x1008ff17, /* XF86AudioNext */ + [0xEC] = 0x1008ff2c, /* XF86Eject */ + [0xED] = 0x1008ff13, /* XF86AudioRaiseVolume */ + [0xEE] = 0x1008ff11, /* XF86AudioLowerVolume */ + [0xEF] = 0x1008ff12, /* XF86AudioMute */ + [0xF0] = 0x1008ff2e, /* XF86WWW */ + [0xF1] = 0x1008ff26, /* XF86Back */ + [0xF2] = 0x1008ff27, /* XF86Forward */ + [0xF3] = 0xff69, /* Cancel */ + [0xF4] = 0xff68, /* Find */ + [0xF5] = 0x1008ff78, /* XF86ScrollUp */ + [0xF6] = 0x1008ff79, /* XF86ScrollDown */ + [0xF7] = 0x0, /* NoSymbol */ + [0xF8] = 0x1008ff2f, /* XF86Sleep */ + [0xF9] = 0x1008ff2d, /* XF86ScreenSaver */ + [0xFA] = 0x1008ff73, /* XF86Reload */ + [0xFB] = 0x1008ff1d, /* XF86Calculator */ + [0xFC] = 0x0, /* NoSymbol */ + [0xFD] = 0x0, /* NoSymbol */ + [0xFE] = 0x0, /* NoSymbol */ +}; + + +static uint8_t +keycode_to_usb (int k) +{ + int i; + for (i = 0; i < MAP_LEN; ++i) + { + if (kc_map[i] == k) + return i; + } + return 0; +} +#endif -- cgit v1.2.3