diff options
author | Kirill Chibisov <contact@kchibisov.com> | 2023-09-26 01:11:47 +0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-26 01:11:47 +0400 |
commit | 7f040f6779b2ade60603e8199e62f12eca6a7acd (patch) | |
tree | 122857f52e48c7c747db5f404a2d4ff617a98715 | |
parent | 76b565ada7f9511b0bd718d25bfd2ce26ba78578 (diff) | |
download | r-alacritty-vte-7f040f6779b2ade60603e8199e62f12eca6a7acd.tar.gz r-alacritty-vte-7f040f6779b2ade60603e8199e62f12eca6a7acd.tar.bz2 r-alacritty-vte-7f040f6779b2ade60603e8199e62f12eca6a7acd.zip |
Add support for xterm's modifyOtherKeys CSI
Given that an example of the translation table is not present by xterm
and they provide only script to generate one from the running X11
system, the example of the output is also included in the repository
now.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
-rw-r--r-- | doc/modifyOtherKeys-example.txt | 2153 | ||||
-rw-r--r-- | src/ansi.rs | 68 |
2 files changed, 2221 insertions, 0 deletions
diff --git a/doc/modifyOtherKeys-example.txt b/doc/modifyOtherKeys-example.txt new file mode 100644 index 0000000..43bc31f --- /dev/null +++ b/doc/modifyOtherKeys-example.txt @@ -0,0 +1,2153 @@ +Output of localectl status: +System Locale: LANG=en_US.UTF-8 + VC Keymap: us + X11 Layout: us + +Symbols from keysymdef.h: + 2061 keysyms are defined (longest 30) + 1966 keycodes are defined + 1624 keycodes are equated to Unicode + +Summary from xkbcomp: + 256 keyNames + 24 keyTypes + 367 symCache + 256 symMap + +Key types: + Type Used Levels Name + 0 169 1 ONE_LEVEL + 1 30 2 TWO_LEVEL + 2 26 2 ALPHABETIC + 3 12 2 KEYPAD + 6 1 2 PC_CONTROL_LEVEL2 + 7 1 2 PC_ALT_LEVEL2 + 8 16 5 CTRL_ALT + 16 1 4 FOUR_LEVEL + +Key map: + Type Level Name Code Symbol + 0 1/1 ESC 0xff1b XK_Escape + 1 1/2 AE01 0x0031 XK_1 + 2/2 0x0021 XK_exclam + 1 1/2 AE02 0x0032 XK_2 + 2/2 0x0040 XK_at + 1 1/2 AE03 0x0033 XK_3 + 2/2 0x0023 XK_numbersign + 1 1/2 AE04 0x0034 XK_4 + 2/2 0x0024 XK_dollar + 1 1/2 AE05 0x0035 XK_5 + 2/2 0x0025 XK_percent + 1 1/2 AE06 0x0036 XK_6 + 2/2 0x005e XK_asciicircum + 1 1/2 AE07 0x0037 XK_7 + 2/2 0x0026 XK_ampersand + 1 1/2 AE08 0x0038 XK_8 + 2/2 0x002a XK_asterisk + 1 1/2 AE09 0x0039 XK_9 + 2/2 0x0028 XK_parenleft + 1 1/2 AE10 0x0030 XK_0 + 2/2 0x0029 XK_parenright + 1 1/2 AE11 0x002d XK_minus + 2/2 0x005f XK_underscore + 1 1/2 AE12 0x003d XK_equal + 2/2 0x002b XK_plus + 1 1/2 BKSP 0xff08 XK_BackSpace + 2/2 0xff08 XK_BackSpace + 1 1/2 TAB 0xff09 XK_Tab + 2/2 0xfe20 XK_ISO_Left_Tab + 2 1/2 AD01 0x0071 XK_q + 2/2 0x0051 XK_Q + 2 1/2 AD02 0x0077 XK_w + 2/2 0x0057 XK_W + 2 1/2 AD03 0x0065 XK_e + 2/2 0x0045 XK_E + 2 1/2 AD04 0x0072 XK_r + 2/2 0x0052 XK_R + 2 1/2 AD05 0x0074 XK_t + 2/2 0x0054 XK_T + 2 1/2 AD06 0x0079 XK_y + 2/2 0x0059 XK_Y + 2 1/2 AD07 0x0075 XK_u + 2/2 0x0055 XK_U + 2 1/2 AD08 0x0069 XK_i + 2/2 0x0049 XK_I + 2 1/2 AD09 0x006f XK_o + 2/2 0x004f XK_O + 2 1/2 AD10 0x0070 XK_p + 2/2 0x0050 XK_P + 1 1/2 AD11 0x005b XK_bracketleft + 2/2 0x007b XK_braceleft + 1 1/2 AD12 0x005d XK_bracketright + 2/2 0x007d XK_braceright + 0 1/1 RTRN 0xff0d XK_Return + 0 1/1 LCTL 0xffe3 XK_Control_L + 2 1/2 AC01 0x0061 XK_a + 2/2 0x0041 XK_A + 2 1/2 AC02 0x0073 XK_s + 2/2 0x0053 XK_S + 2 1/2 AC03 0x0064 XK_d + 2/2 0x0044 XK_D + 2 1/2 AC04 0x0066 XK_f + 2/2 0x0046 XK_F + 2 1/2 AC05 0x0067 XK_g + 2/2 0x0047 XK_G + 2 1/2 AC06 0x0068 XK_h + 2/2 0x0048 XK_H + 2 1/2 AC07 0x006a XK_j + 2/2 0x004a XK_J + 2 1/2 AC08 0x006b XK_k + 2/2 0x004b XK_K + 2 1/2 AC09 0x006c XK_l + 2/2 0x004c XK_L + 1 1/2 AC10 0x003b XK_semicolon + 2/2 0x003a XK_colon + 1 1/2 AC11 0x0027 XK_apostrophe + 2/2 0x0022 XK_quotedbl + 1 1/2 TLDE 0x0060 XK_grave + 2/2 0x007e XK_asciitilde + 0 1/1 LFSH 0xffe1 XK_Shift_L + 1 1/2 BKSL 0x005c XK_backslash + 2/2 0x007c XK_bar + 2 1/2 AB01 0x007a XK_z + 2/2 0x005a XK_Z + 2 1/2 AB02 0x0078 XK_x + 2/2 0x0058 XK_X + 2 1/2 AB03 0x0063 XK_c + 2/2 0x0043 XK_C + 2 1/2 AB04 0x0076 XK_v + 2/2 0x0056 XK_V + 2 1/2 AB05 0x0062 XK_b + 2/2 0x0042 XK_B + 2 1/2 AB06 0x006e XK_n + 2/2 0x004e XK_N + 2 1/2 AB07 0x006d XK_m + 2/2 0x004d XK_M + 1 1/2 AB08 0x002c XK_comma + 2/2 0x003c XK_less + 1 1/2 AB09 0x002e XK_period + 2/2 0x003e XK_greater + 1 1/2 AB10 0x002f XK_slash + 2/2 0x003f XK_question + 0 1/1 RTSH 0xffe2 XK_Shift_R + 8 1/5 KPMU 0xffaa XK_KP_Multiply + 2/5 0xffaa XK_KP_Multiply + 3/5 0xffaa XK_KP_Multiply + 4/5 0xffaa XK_KP_Multiply + 5/5 XK_XF86ClearGrab + 1 1/2 LALT 0xffe9 XK_Alt_L + 2/2 0xffe7 XK_Meta_L + 0 1/1 SPCE 0x0020 XK_space + 0 1/1 CAPS 0xffe5 XK_Caps_Lock + 8 1/5 FK01 0xffbe XK_F1 + 2/5 0xffbe XK_F1 + 3/5 0xffbe XK_F1 + 4/5 0xffbe XK_F1 + 5/5 XK_XF86Switch_VT_1 + 8 1/5 FK02 0xffbf XK_F2 + 2/5 0xffbf XK_F2 + 3/5 0xffbf XK_F2 + 4/5 0xffbf XK_F2 + 5/5 XK_XF86Switch_VT_2 + 8 1/5 FK03 0xffc0 XK_F3 + 2/5 0xffc0 XK_F3 + 3/5 0xffc0 XK_F3 + 4/5 0xffc0 XK_F3 + 5/5 XK_XF86Switch_VT_3 + 8 1/5 FK04 0xffc1 XK_F4 + 2/5 0xffc1 XK_F4 + 3/5 0xffc1 XK_F4 + 4/5 0xffc1 XK_F4 + 5/5 XK_XF86Switch_VT_4 + 8 1/5 FK05 0xffc2 XK_F5 + 2/5 0xffc2 XK_F5 + 3/5 0xffc2 XK_F5 + 4/5 0xffc2 XK_F5 + 5/5 XK_XF86Switch_VT_5 + 8 1/5 FK06 0xffc3 XK_F6 + 2/5 0xffc3 XK_F6 + 3/5 0xffc3 XK_F6 + 4/5 0xffc3 XK_F6 + 5/5 XK_XF86Switch_VT_6 + 8 1/5 FK07 0xffc4 XK_F7 + 2/5 0xffc4 XK_F7 + 3/5 0xffc4 XK_F7 + 4/5 0xffc4 XK_F7 + 5/5 XK_XF86Switch_VT_7 + 8 1/5 FK08 0xffc5 XK_F8 + 2/5 0xffc5 XK_F8 + 3/5 0xffc5 XK_F8 + 4/5 0xffc5 XK_F8 + 5/5 XK_XF86Switch_VT_8 + 8 1/5 FK09 0xffc6 XK_F9 + 2/5 0xffc6 XK_F9 + 3/5 0xffc6 XK_F9 + 4/5 0xffc6 XK_F9 + 5/5 XK_XF86Switch_VT_9 + 8 1/5 FK10 0xffc7 XK_F10 + 2/5 0xffc7 XK_F10 + 3/5 0xffc7 XK_F10 + 4/5 0xffc7 XK_F10 + 5/5 XK_XF86Switch_VT_10 + 0 1/1 NMLK 0xff7f XK_Num_Lock + 0 1/1 SCLK 0xff14 XK_Scroll_Lock + 3 1/2 KP7 0xff95 XK_KP_Home + 2/2 0xffb7 XK_KP_7 + 3 1/2 KP8 0xff97 XK_KP_Up + 2/2 0xffb8 XK_KP_8 + 3 1/2 KP9 0xff9a XK_KP_Prior + 2/2 0xffb9 XK_KP_9 + 8 1/5 KPSU 0xffad XK_KP_Subtract + 2/5 0xffad XK_KP_Subtract + 3/5 0xffad XK_KP_Subtract + 4/5 0xffad XK_KP_Subtract + 5/5 XK_XF86Prev_VMode + 3 1/2 KP4 0xff96 XK_KP_Left + 2/2 0xffb4 XK_KP_4 + 3 1/2 KP5 0xff9d XK_KP_Begin + 2/2 0xffb5 XK_KP_5 + 3 1/2 KP6 0xff98 XK_KP_Right + 2/2 0xffb6 XK_KP_6 + 8 1/5 KPAD 0xffab XK_KP_Add + 2/5 0xffab XK_KP_Add + 3/5 0xffab XK_KP_Add + 4/5 0xffab XK_KP_Add + 5/5 XK_XF86Next_VMode + 3 1/2 KP1 0xff9c XK_KP_End + 2/2 0xffb1 XK_KP_1 + 3 1/2 KP2 0xff99 XK_KP_Down + 2/2 0xffb2 XK_KP_2 + 3 1/2 KP3 0xff9b XK_KP_Next + 2/2 0xffb3 XK_KP_3 + 3 1/2 KP0 0xff9e XK_KP_Insert + 2/2 0xffb0 XK_KP_0 + 3 1/2 KPDL 0xff9f XK_KP_Delete + 2/2 0xffae XK_KP_Decimal + 0 1/1 LVL3 0xfe03 XK_ISO_Level3_Shift + 16 1/4 LSGT 0x003c XK_less + 2/4 0x003e XK_greater + 3/4 0x007c XK_bar + 4/4 0x00a6 XK_brokenbar + 8 1/5 FK11 0xffc8 XK_F11 + 2/5 0xffc8 XK_F11 + 3/5 0xffc8 XK_F11 + 4/5 0xffc8 XK_F11 + 5/5 XK_XF86Switch_VT_11 + 8 1/5 FK12 0xffc9 XK_F12 + 2/5 0xffc9 XK_F12 + 3/5 0xffc9 XK_F12 + 4/5 0xffc9 XK_F12 + 5/5 XK_XF86Switch_VT_12 + 0 1/1 KATA 0xff26 XK_Katakana + 0 1/1 HIRA 0xff25 XK_Hiragana + 0 1/1 HENK 0xff23 XK_Henkan_Mode + 0 1/1 HKTG 0xff27 XK_Hiragana_Katakana + 0 1/1 MUHE 0xff22 XK_Muhenkan + 0 1/1 KPEN 0xff8d XK_KP_Enter + 0 1/1 RCTL 0xffe4 XK_Control_R + 8 1/5 KPDV 0xffaf XK_KP_Divide + 2/5 0xffaf XK_KP_Divide + 3/5 0xffaf XK_KP_Divide + 4/5 0xffaf XK_KP_Divide + 5/5 XK_XF86Ungrab + 7 1/2 PRSC 0xff61 XK_Print + 2/2 0xff15 XK_Sys_Req + 0 1/1 RALT 0xfe03 XK_ISO_Level3_Shift + 0 1/1 LNFD 0xff0a XK_Linefeed + 0 1/1 HOME 0xff50 XK_Home + 0 1/1 UP 0xff52 XK_Up + 0 1/1 PGUP 0xff55 XK_Prior + 0 1/1 LEFT 0xff51 XK_Left + 0 1/1 RGHT 0xff53 XK_Right + 0 1/1 END 0xff57 XK_End + 0 1/1 DOWN 0xff54 XK_Down + 0 1/1 PGDN 0xff56 XK_Next + 0 1/1 INS 0xff63 XK_Insert + 0 1/1 DELE 0xffff XK_Delete + 0 1/1 KPEQ 0xffbd XK_KP_Equal + 0 1/1 I126 0x00b1 XK_plusminus + 6 1/2 PAUS 0xff13 XK_Pause + 2/2 0xff6b XK_Break + 3 1/2 I129 0xffae XK_KP_Decimal + 2/2 0xffae XK_KP_Decimal + 0 1/1 HNGL 0xff31 XK_Hangul + 0 1/1 HJCV 0xff34 XK_Hangul_Hanja + 0 1/1 LWIN 0xffeb XK_Super_L + 0 1/1 RWIN 0xffec XK_Super_R + 0 1/1 COMP 0xff67 XK_Menu + 0 1/1 STOP 0xff69 XK_Cancel + 0 1/1 AGAI 0xff66 XK_Redo + 0 1/1 UNDO 0xff65 XK_Undo + 0 1/1 FIND 0xff68 XK_Find + 0 1/1 HELP 0xff6a XK_Help + 0 1/1 I187 0x0028 XK_parenleft + 0 1/1 I188 0x0029 XK_parenright + 0 1/1 I190 0xff66 XK_Redo + 0 1/1 LVL5 0xfe11 XK_ISO_Level5_Shift + 0 1/1 I218 0xff61 XK_Print + 0 1/1 I231 0xff69 XK_Cancel + +Other modifiable keycodes: +Code Symbol Actual Mode 0 Mode 1 Mode 2 +0x0020 XK_space 32 -(skip)- --**--** -******* +0x0021 XK_exclam 33 -(skip)- --****** --****** +0x0022 XK_quotedbl 34 -(skip)- --****** --****** +0x0023 XK_numbersign 35 -(skip)- --****** --****** +0x0024 XK_dollar 36 -(skip)- --****** --****** +0x0025 XK_percent 37 -(skip)- --****** --****** +0x0026 XK_ampersand 38 -(skip)- --****** --****** +0x0027 XK_apostrophe 39 -(skip)- --****** --****** +0x0028 XK_parenleft 40 -(skip)- --****** --****** +0x0029 XK_parenright 41 -(skip)- --****** --****** +0x002a XK_asterisk 42 -(skip)- --****** --****** +0x002b XK_plus 43 -(skip)- --****** --****** +0x002c XK_comma 44 -(skip)- --****** --****** +0x002d XK_minus 45 -(skip)- --****** --****** +0x002e XK_period 46 -(skip)- --****** --****** +0x002f XK_slash 47 -(skip)- --**-*** --****** +0x0030 XK_0 48 -(skip)- --****** --****** +0x0031 XK_1 49 -(skip)- --****** --****** +0x0032 XK_2 50 -(skip)- --**--** --****** +0x0033 XK_3 51 -(skip)- --**-*** --****** +0x0034 XK_4 52 -(skip)- --**-*** --****** +0x0035 XK_5 53 -(skip)- --**-*** --****** +0x0036 XK_6 54 -(skip)- --**--** --****** +0x0037 XK_7 55 -(skip)- --**-*** --****** +0x0038 XK_8 56 -(skip)- --**-*** --****** +0x0039 XK_9 57 -(skip)- --****** --****** +0x003a XK_colon 58 -(skip)- --****** --****** +0x003b XK_semicolon 59 -(skip)- --****** --****** +0x003c XK_less 60 -(skip)- --****** --****** +0x003d XK_equal 61 -(skip)- --****** --****** +0x003e XK_greater 62 -(skip)- --****** --****** +0x003f XK_question 63 -(skip)- --****** --****** +0x0040 XK_at 64 -(skip)- --**--** -******* +0x0041 XK_A 65 -(skip)- --**--** -******* +0x0042 XK_B 66 -(skip)- --**--** -******* +0x0043 XK_C 67 -(skip)- --**--** -******* +0x0044 XK_D 68 -(skip)- --**--** -******* +0x0045 XK_E 69 -(skip)- --**--** -******* +0x0046 XK_F 70 -(skip)- --**--** -******* +0x0047 XK_G 71 -(skip)- --**--** -******* +0x0048 XK_H 72 -(skip)- --**--** -******* +0x0049 XK_I 73 -(skip)- --**--** -******* +0x004a XK_J 74 -(skip)- --**--** -******* +0x004b XK_K 75 -(skip)- --**--** -******* +0x004c XK_L 76 -(skip)- --**--** -******* +0x004d XK_M 77 -(skip)- --**--** -******* +0x004e XK_N 78 -(skip)- --**--** -******* +0x004f XK_O 79 -(skip)- --**--** -******* +0x0050 XK_P 80 -(skip)- --**--** -******* +0x0051 XK_Q 81 -(skip)- --**--** -******* +0x0052 XK_R 82 -(skip)- --**--** -******* +0x0053 XK_S 83 -(skip)- --**--** -******* +0x0054 XK_T 84 -(skip)- --**--** -******* +0x0055 XK_U 85 -(skip)- --**--** -******* +0x0056 XK_V 86 -(skip)- --**--** -******* +0x0057 XK_W 87 -(skip)- --**--** -******* +0x0058 XK_X 88 -(skip)- --**--** -******* +0x0059 XK_Y 89 -(skip)- --**--** -******* +0x005a XK_Z 90 -(skip)- --**--** -******* +0x005b XK_bracketleft 91 -(skip)- --**--** -******* +0x005c XK_backslash 92 -(skip)- --**--** -******* +0x005d XK_bracketright 93 -(skip)- --**--** -******* +0x005e XK_asciicircum 94 -(skip)- --**--** -******* +0x005f XK_underscore 95 -(skip)- --**--** -******* +0x0060 XK_grave 96 -(skip)- --**--** -******* +0x0061 XK_a 97 -(skip)- --**--** -******* +0x0062 XK_b 98 -(skip)- --**--** -******* +0x0063 XK_c 99 -(skip)- --**--** -******* +0x0064 XK_d 100 -(skip)- --**--** -******* +0x0065 XK_e 101 -(skip)- --**--** -******* +0x0066 XK_f 102 -(skip)- --**--** -******* +0x0067 XK_g 103 -(skip)- --**--** -******* +0x0068 XK_h 104 -(skip)- --**--** -******* +0x0069 XK_i 105 -(skip)- --**--** -******* +0x006a XK_j 106 -(skip)- --**--** -******* +0x006b XK_k 107 -(skip)- --**--** -******* +0x006c XK_l 108 -(skip)- --**--** -******* +0x006d XK_m 109 -(skip)- --**--** -******* +0x006e XK_n 110 -(skip)- --**--** -******* +0x006f XK_o 111 -(skip)- --**--** -******* +0x0070 XK_p 112 -(skip)- --**--** -******* +0x0071 XK_q 113 -(skip)- --**--** -******* +0x0072 XK_r 114 -(skip)- --**--** -******* +0x0073 XK_s 115 -(skip)- --**--** -******* +0x0074 XK_t 116 -(skip)- --**--** -******* +0x0075 XK_u 117 -(skip)- --**--** -******* +0x0076 XK_v 118 -(skip)- --**--** -******* +0x0077 XK_w 119 -(skip)- --**--** -******* +0x0078 XK_x 120 -(skip)- --**--** -******* +0x0079 XK_y 121 -(skip)- --**--** -******* +0x007a XK_z 122 -(skip)- --**--** -******* +0x007b XK_braceleft 123 -(skip)- --**--** -******* +0x007c XK_bar 124 -(skip)- --**--** -******* +0x007d XK_braceright 125 -(skip)- --**--** -******* +0x007e XK_asciitilde 126 -(skip)- --**--** -******* +0x00a6 XK_brokenbar 166 -(skip)- --****** --****** +0x00b1 XK_plusminus 177 -(skip)- --****** --****** +0xfe03 XK_ISO_Level3_Shift 65027 -(skip)- -(skip)- -(skip)- +0xfe11 XK_ISO_Level5_Shift 65041 -(skip)- -(skip)- -(skip)- +0xfe20 XK_ISO_Left_Tab 65056 -(skip)- -(skip)- -(skip)- +0xff08 XK_BackSpace 65288 -(skip)- -(skip)- -***-*** +0xff09 XK_Tab 65289 -(skip)- -******* -******* +0xff0a XK_Linefeed 65290 -(skip)- -******* --****** +0xff0d XK_Return 65293 -(skip)- -******* -******* +0xff13 XK_Pause 65299 -(skip)- -******* --****** +0xff14 XK_Scroll_Lock 65300 -(skip)- -******* --****** +0xff15 XK_Sys_Req 65301 -(skip)- -******* --****** +0xff1b XK_Escape 65307 -(skip)- --**--** -******* +0xff22 XK_Muhenkan 65314 -(skip)- -******* --****** +0xff23 XK_Henkan_Mode 65315 -(skip)- -******* --****** +0xff25 XK_Hiragana 65317 -(skip)- -******* --****** +0xff26 XK_Katakana 65318 -(skip)- -******* --****** +0xff27 XK_Hiragana_Katakana 65319 -(skip)- -******* --****** +0xff31 XK_Hangul 65329 -(skip)- -******* --****** +0xff34 XK_Hangul_Hanja 65332 -(skip)- -******* --****** +0xff50 XK_Home 65360 -(skip)- -(skip)- -(skip)- +0xff51 XK_Left 65361 -(skip)- -(skip)- -(skip)- +0xff52 XK_Up 65362 -(skip)- -(skip)- -(skip)- +0xff53 XK_Right 65363 -(skip)- -(skip)- -(skip)- +0xff54 XK_Down 65364 -(skip)- -(skip)- -(skip)- +0xff55 XK_Prior 65365 -(skip)- -(skip)- -(skip)- +0xff56 XK_Next 65366 -(skip)- -(skip)- -(skip)- +0xff57 XK_End 65367 -(skip)- -(skip)- -(skip)- +0xff61 XK_Print 65377 -(skip)- -(skip)- -(skip)- +0xff63 XK_Insert 65379 -(skip)- -(skip)- -(skip)- +0xff65 XK_Undo 65381 -(skip)- -(skip)- -(skip)- +0xff66 XK_Redo 65382 -(skip)- -(skip)- -(skip)- +0xff67 XK_Menu 65383 -(skip)- -(skip)- -(skip)- +0xff68 XK_Find 65384 -(skip)- -(skip)- -(skip)- +0xff69 XK_Cancel 65385 -(skip)- -(skip)- -(skip)- +0xff6a XK_Help 65386 -(skip)- -(skip)- -(skip)- +0xff6b XK_Break 65387 -(skip)- -(skip)- -(skip)- +0xff7f XK_Num_Lock 65407 -(skip)- -(skip)- -(skip)- +0xff8d XK_KP_Enter 65421 -(skip)- -(skip)- -(skip)- +0xff95 XK_KP_Home 65429 -(skip)- -(skip)- -(skip)- +0xff96 XK_KP_Left 65430 -(skip)- -(skip)- -(skip)- +0xff97 XK_KP_Up 65431 -(skip)- -(skip)- -(skip)- +0xff98 XK_KP_Right 65432 -(skip)- -(skip)- -(skip)- +0xff99 XK_KP_Down 65433 -(skip)- -(skip)- -(skip)- +0xff9a XK_KP_Prior 65434 -(skip)- -(skip)- -(skip)- +0xff9b XK_KP_Next 65435 -(skip)- -(skip)- -(skip)- +0xff9c XK_KP_End 65436 -(skip)- -(skip)- -(skip)- +0xff9d XK_KP_Begin 65437 -(skip)- -(skip)- -(skip)- +0xff9e XK_KP_Insert 65438 -(skip)- -(skip)- -(skip)- +0xff9f XK_KP_Delete 65439 -(skip)- -(skip)- -(skip)- +0xffaa XK_KP_Multiply 65450 -(skip)- -(skip)- -(skip)- +0xffab XK_KP_Add 65451 -(skip)- -(skip)- -(skip)- +0xffad XK_KP_Subtract 65453 -(skip)- -(skip)- -(skip)- +0xffae XK_KP_Decimal 65454 -(skip)- -(skip)- -(skip)- +0xffaf XK_KP_Divide 65455 -(skip)- -(skip)- -(skip)- +0xffb0 XK_KP_0 65456 -(skip)- -(skip)- -(skip)- +0xffb1 XK_KP_1 65457 -(skip)- -(skip)- -(skip)- +0xffb2 XK_KP_2 65458 -(skip)- -(skip)- -(skip)- +0xffb3 XK_KP_3 65459 -(skip)- -(skip)- -(skip)- +0xffb4 XK_KP_4 65460 -(skip)- -(skip)- -(skip)- +0xffb5 XK_KP_5 65461 -(skip)- -(skip)- -(skip)- +0xffb6 XK_KP_6 65462 -(skip)- -(skip)- -(skip)- +0xffb7 XK_KP_7 65463 -(skip)- -(skip)- -(skip)- +0xffb8 XK_KP_8 65464 -(skip)- -(skip)- -(skip)- +0xffb9 XK_KP_9 65465 -(skip)- -(skip)- -(skip)- +0xffbd XK_KP_Equal 65469 -(skip)- -(skip)- -(skip)- +0xffbe XK_F1 65470 -(skip)- -(skip)- -(skip)- +0xffbf XK_F2 65471 -(skip)- -(skip)- -(skip)- +0xffc0 XK_F3 65472 -(skip)- -(skip)- -(skip)- +0xffc1 XK_F4 65473 -(skip)- -(skip)- -(skip)- +0xffc2 XK_F5 65474 -(skip)- -(skip)- -(skip)- +0xffc3 XK_F6 65475 -(skip)- -(skip)- -(skip)- +0xffc4 XK_F7 65476 -(skip)- -(skip)- -(skip)- +0xffc5 XK_F8 65477 -(skip)- -(skip)- -(skip)- +0xffc6 XK_F9 65478 -(skip)- -(skip)- -(skip)- +0xffc7 XK_F10 65479 -(skip)- -(skip)- -(skip)- +0xffc8 XK_F11 65480 -(skip)- -(skip)- -(skip)- +0xffc9 XK_F12 65481 -(skip)- -(skip)- -(skip)- +0xffe1 XK_Shift_L 65505 -(skip)- -(skip)- -(skip)- +0xffe2 XK_Shift_R 65506 -(skip)- -(skip)- -(skip)- +0xffe3 XK_Control_L 65507 -(skip)- -(skip)- -(skip)- +0xffe4 XK_Control_R 65508 -(skip)- -(skip)- -(skip)- +0xffe5 XK_Caps_Lock 65509 -(skip)- -(skip)- -(skip)- +0xffe7 XK_Meta_L 65511 -(skip)- -(skip)- -(skip)- +0xffe9 XK_Alt_L 65513 -(skip)- -(skip)- -(skip)- +0xffeb XK_Super_L 65515 -(skip)- -(skip)- -(skip)- +0xffec XK_Super_R 65516 -(skip)- -(skip)- -(skip)- +0xffff XK_Delete 65535 -(skip)- -(skip)- -(skip)- + +Modify-param to/from state: + PARAM 0 -> 0 -> 0 () + PARAM 1 -> 0 -> 0 () + PARAM 2 -> 1 -> 2 (Shift) + PARAM 3 -> 8 -> 3 (Alt) + PARAM 4 -> 9 -> 4 (Shift+Alt) + PARAM 5 -> 4 -> 5 (Ctrl) + PARAM 6 -> 5 -> 6 (Shift+Ctrl) + PARAM 7 -> 12 -> 7 (Alt+Ctrl) + PARAM 8 -> 13 -> 8 (Shift+Alt+Ctrl) + +State to/from modify-param: + STATE 0 -> 0 -> 0 () + STATE 1 -> 2 -> 1 (Shift) + STATE 2 -> 0 -> 0 (Lock) + STATE 3 -> 2 -> 1 (Shift+Lock) + STATE 4 -> 5 -> 4 (Ctrl) + STATE 5 -> 6 -> 5 (Shift+Ctrl) + STATE 6 -> 5 -> 4 (Lock+Ctrl) + STATE 7 -> 6 -> 5 (Shift+Lock+Ctrl) + STATE 8 -> 3 -> 8 (Alt) + STATE 9 -> 4 -> 9 (Shift+Alt) + STATE 10 -> 3 -> 8 (Lock+Alt) + STATE 11 -> 4 -> 9 (Shift+Lock+Alt) + STATE 12 -> 7 -> 12 (Ctrl+Alt) + STATE 13 -> 8 -> 13 (Shift+Ctrl+Alt) + STATE 14 -> 7 -> 12 (Lock+Ctrl+Alt) + STATE 15 -> 8 -> 13 (Shift+Lock+Ctrl+Alt) + +Other modified-key escapes: +Code Symbol Actual Mode 0 Mode 1 Mode 2 +0x0020 XK_space 32 -(skip)- --**--** -******* +---- \s \s \s +s--- \s \s \E[32;2u +-a-- \s \E[32;3u \E[32;3u +sa-- \s \E[32;4u \E[32;4u +--c- ^@ ^@ \E[32;5u +s-c- ^@ ^@ \E[32;6u +-ac- ^@ \E[32;7u \E[32;7u +sac- ^@ \E[32;8u \E[32;8u +0x0021 XK_exclam 33 -(skip)- --****** --****** +---- ! ! ! +s--- ! ! ! +-a-- ! \E[33;3u \E[33;3u +sa-- ! \E[33;4u \E[33;4u +--c- ! \E[33;5u \E[33;5u +s-c- ! \E[33;6u \E[33;6u +-ac- ! \E[33;7u \E[33;7u +sac- ! \E[33;8u \E[33;8u +0x0022 XK_quotedbl 34 -(skip)- --****** --****** +---- " " " +s--- " " " +-a-- " \E[34;3u \E[34;3u +sa-- " \E[34;4u \E[34;4u +--c- " \E[34;5u \E[34;5u +s-c- " \E[34;6u \E[34;6u +-ac- " \E[34;7u \E[34;7u +sac- " \E[34;8u \E[34;8u +0x0023 XK_numbersign 35 -(skip)- --****** --****** +---- # # # +s--- # # # +-a-- # \E[35;3u \E[35;3u +sa-- # \E[35;4u \E[35;4u +--c- # \E[35;5u \E[35;5u +s-c- # \E[35;6u \E[35;6u +-ac- # \E[35;7u \E[35;7u +sac- # \E[35;8u \E[35;8u +0x0024 XK_dollar 36 -(skip)- --****** --****** +---- $ $ $ +s--- $ $ $ +-a-- $ \E[36;3u \E[36;3u +sa-- $ \E[36;4u \E[36;4u +--c- $ \E[36;5u \E[36;5u +s-c- $ \E[36;6u \E[36;6u +-ac- $ \E[36;7u \E[36;7u +sac- $ \E[36;8u \E[36;8u +0x0025 XK_percent 37 -(skip)- --****** --****** +---- % % % +s--- % % % +-a-- % \E[37;3u \E[37;3u +sa-- % \E[37;4u \E[37;4u +--c- % \E[37;5u \E[37;5u +s-c- % \E[37;6u \E[37;6u +-ac- % \E[37;7u \E[37;7u +sac- % \E[37;8u \E[37;8u +0x0026 XK_ampersand 38 -(skip)- --****** --****** +---- & & & +s--- & & & +-a-- & \E[38;3u \E[38;3u +sa-- & \E[38;4u \E[38;4u +--c- & \E[38;5u \E[38;5u +s-c- & \E[38;6u \E[38;6u +-ac- & \E[38;7u \E[38;7u +sac- & \E[38;8u \E[38;8u +0x0027 XK_apostrophe 39 -(skip)- --****** --****** +---- ' ' ' +s--- " " " +-a-- ' \E[39;3u \E[39;3u +sa-- " \E[34;4u \E[34;4u +--c- ' \E[39;5u \E[39;5u +s-c- " \E[34;6u \E[34;6u +-ac- ' \E[39;7u \E[39;7u +sac- " \E[34;8u \E[34;8u +0x0028 XK_parenleft 40 -(skip)- --****** --****** +---- ( ( ( +s--- ( ( ( +-a-- ( \E[40;3u \E[40;3u +sa-- ( \E[40;4u \E[40;4u +--c- ( \E[40;5u \E[40;5u +s-c- ( \E[40;6u \E[40;6u +-ac- ( \E[40;7u \E[40;7u +sac- ( \E[40;8u \E[40;8u +0x0029 XK_parenright 41 -(skip)- --****** --****** +---- ) ) ) +s--- ) ) ) +-a-- ) \E[41;3u \E[41;3u +sa-- ) \E[41;4u \E[41;4u +--c- ) \E[41;5u \E[41;5u +s-c- ) \E[41;6u \E[41;6u +-ac- ) \E[41;7u \E[41;7u +sac- ) \E[41;8u \E[41;8u +0x002a XK_asterisk 42 -(skip)- --****** --****** +---- * * * +s--- * * * +-a-- * \E[42;3u \E[42;3u +sa-- * \E[42;4u \E[42;4u +--c- * \E[42;5u \E[42;5u +s-c- * \E[42;6u \E[42;6u +-ac- * \E[42;7u \E[42;7u +sac- * \E[42;8u \E[42;8u +0x002b XK_plus 43 -(skip)- --****** --****** +---- + + + +s--- + + + +-a-- + \E[43;3u \E[43;3u +sa-- + \E[43;4u \E[43;4u +--c- + \E[43;5u \E[43;5u +s-c- + \E[43;6u \E[43;6u +-ac- + \E[43;7u \E[43;7u +sac- + \E[43;8u \E[43;8u +0x002c XK_comma 44 -(skip)- --****** --****** +---- , , , +s--- < < < +-a-- , \E[44;3u \E[44;3u +sa-- < \E[60;4u \E[60;4u +--c- , \E[44;5u \E[44;5u +s-c- < \E[60;6u \E[60;6u +-ac- , \E[44;7u \E[44;7u +sac- < \E[60;8u \E[60;8u +0x002d XK_minus 45 -(skip)- --****** --****** +---- - - - +s--- _ _ _ +-a-- - \E[45;3u \E[45;3u +sa-- _ \E[95;4u \E[95;4u +--c- - \E[45;5u \E[45;5u +s-c- ^_ \E[95;6u \E[95;6u +-ac- - \E[45;7u \E[45;7u +sac- ^_ \E[95;8u \E[95;8u +0x002e XK_period 46 -(skip)- --****** --****** +---- . . . +s--- > > > +-a-- . \E[46;3u \E[46;3u +sa-- > \E[62;4u \E[62;4u +--c- . \E[46;5u \E[46;5u +s-c- > \E[62;6u \E[62;6u +-ac- . \E[46;7u \E[46;7u +sac- > \E[62;8u \E[62;8u +0x002f XK_slash 47 -(skip)- --**-*** --****** +---- / / / +s--- ? ? ? +-a-- / \E[47;3u \E[47;3u +sa-- ? \E[63;4u \E[63;4u +--c- ^_ ^_ \E[47;5u +s-c- ^? \E[63;6u \E[63;6u +-ac- ^_ \E[47;7u \E[47;7u +sac- ^? \E[63;8u \E[63;8u +0x0030 XK_0 48 -(skip)- --****** --****** +---- 0 0 0 +s--- ) ) ) +-a-- 0 \E[48;3u \E[48;3u +sa-- ) \E[41;4u \E[41;4u +--c- 0 \E[48;5u \E[48;5u +s-c- ) \E[41;6u \E[41;6u +-ac- 0 \E[48;7u \E[48;7u +sac- ) \E[41;8u \E[41;8u +0x0031 XK_1 49 -(skip)- --****** --****** +---- 1 1 1 +s--- ! ! ! +-a-- 1 \E[49;3u \E[49;3u +sa-- ! \E[33;4u \E[33;4u +--c- 1 \E[49;5u \E[49;5u +s-c- ! \E[33;6u \E[33;6u +-ac- 1 \E[49;7u \E[49;7u +sac- ! \E[33;8u \E[33;8u +0x0032 XK_2 50 -(skip)- --**--** --****** +---- 2 2 2 +s--- @ @ @ +-a-- 2 \E[50;3u \E[50;3u +sa-- @ \E[64;4u \E[64;4u +--c- ^@ ^@ \E[50;5u +s-c- ^@ ^@ \E[64;6u +-ac- ^@ \E[50;7u \E[50;7u +sac- ^@ \E[64;8u \E[64;8u +0x0033 XK_3 51 -(skip)- --**-*** --****** +---- 3 3 3 +s--- # # # +-a-- 3 \E[51;3u \E[51;3u +sa-- # \E[35;4u \E[35;4u +--c- \E \E \E[51;5u +s-c- # \E[35;6u \E[35;6u +-ac- \E \E[51;7u \E[51;7u +sac- # \E[35;8u \E[35;8u +0x0034 XK_4 52 -(skip)- --**-*** --****** +---- 4 4 4 +s--- $ $ $ +-a-- 4 \E[52;3u \E[52;3u +sa-- $ \E[36;4u \E[36;4u +--c- ^\ ^\ \E[52;5u +s-c- $ \E[36;6u \E[36;6u +-ac- ^\ \E[52;7u \E[52;7u +sac- $ \E[36;8u \E[36;8u +0x0035 XK_5 53 -(skip)- --**-*** --****** +---- 5 5 5 +s--- % % % +-a-- 5 \E[53;3u \E[53;3u +sa-- % \E[37;4u \E[37;4u +--c- ^] ^] \E[53;5u +s-c- % \E[37;6u \E[37;6u +-ac- ^] \E[53;7u \E[53;7u +sac- % \E[37;8u \E[37;8u +0x0036 XK_6 54 -(skip)- --**--** --****** +---- 6 6 6 +s--- \^ \^ \^ +-a-- 6 \E[54;3u \E[54;3u +sa-- \^ \E[94;4u \E[94;4u +--c- ^^ ^^ \E[54;5u +s-c- ^^ ^^ \E[94;6u +-ac- ^^ \E[54;7u \E[54;7u +sac- ^^ \E[94;8u \E[94;8u +0x0037 XK_7 55 -(skip)- --**-*** --****** +---- 7 7 7 +s--- & & & +-a-- 7 \E[55;3u \E[55;3u +sa-- & \E[38;4u \E[38;4u +--c- ^_ ^_ \E[55;5u +s-c- & \E[38;6u \E[38;6u +-ac- ^_ \E[55;7u \E[55;7u +sac- & \E[38;8u \E[38;8u +0x0038 XK_8 56 -(skip)- --**-*** --****** +---- 8 8 8 +s--- * * * +-a-- 8 \E[56;3u \E[56;3u +sa-- * \E[42;4u \E[42;4u +--c- ^? ^? \E[56;5u +s-c- * \E[42;6u \E[42;6u +-ac- ^? \E[56;7u \E[56;7u +sac- * \E[42;8u \E[42;8u +0x0039 XK_9 57 -(skip)- --****** --****** +---- 9 9 9 +s--- ( ( ( +-a-- 9 \E[57;3u \E[57;3u +sa-- ( \E[40;4u \E[40;4u +--c- 9 \E[57;5u \E[57;5u +s-c- ( \E[40;6u \E[40;6u +-ac- 9 \E[57;7u \E[57;7u +sac- ( \E[40;8u \E[40;8u +0x003a XK_colon 58 -(skip)- --****** --****** +---- : : : +s--- : : : +-a-- : \E[58;3u \E[58;3u +sa-- : \E[58;4u \E[58;4u +--c- : \E[58;5u \E[58;5u +s-c- : \E[58;6u \E[58;6u +-ac- : \E[58;7u \E[58;7u +sac- : \E[58;8u \E[58;8u +0x003b XK_semicolon 59 -(skip)- --****** --****** +---- ; ; ; +s--- : : : +-a-- ; \E[59;3u \E[59;3u +sa-- : \E[58;4u \E[58;4u +--c- ; \E[59;5u \E[59;5u +s-c- : \E[58;6u \E[58;6u +-ac- ; \E[59;7u \E[59;7u +sac- : \E[58;8u \E[58;8u +0x003c XK_less 60 -(skip)- --****** --****** +---- < < < +s--- < < < +-a-- < \E[60;3u \E[60;3u +sa-- < \E[60;4u \E[60;4u +--c- < \E[60;5u \E[60;5u +s-c- < \E[60;6u \E[60;6u +-ac- < \E[60;7u \E[60;7u +sac- < \E[60;8u \E[60;8u +0x003d XK_equal 61 -(skip)- --****** --****** +---- = = = +s--- + + + +-a-- = \E[61;3u \E[61;3u +sa-- + \E[43;4u \E[43;4u +--c- = \E[61;5u \E[61;5u +s-c- + \E[43;6u \E[43;6u +-ac- = \E[61;7u \E[61;7u +sac- + \E[43;8u \E[43;8u +0x003e XK_greater 62 -(skip)- --****** --****** +---- > > > +s--- > > > +-a-- > \E[62;3u \E[62;3u +sa-- > \E[62;4u \E[62;4u +--c- > \E[62;5u \E[62;5u +s-c- > \E[62;6u \E[62;6u +-ac- > \E[62;7u \E[62;7u +sac- > \E[62;8u \E[62;8u +0x003f XK_question 63 -(skip)- --****** --****** +---- ? ? ? +s--- ? ? ? +-a-- ? \E[63;3u \E[63;3u +sa-- ? \E[63;4u \E[63;4u +--c- ^? \E[63;5u \E[63;5u +s-c- ^? \E[63;6u \E[63;6u +-ac- ^? \E[63;7u \E[63;7u +sac- ^? \E[63;8u \E[63;8u +0x0040 XK_at 64 -(skip)- --**--** -******* +---- @ @ @ +s--- @ @ \E[64;2u +-a-- @ \E[64;3u \E[64;3u +sa-- @ \E[64;4u \E[64;4u +--c- ^@ ^@ \E[64;5u +s-c- ^@ ^@ \E[64;6u +-ac- ^@ \E[64;7u \E[64;7u +sac- ^@ \E[64;8u \E[64;8u +0x0041 XK_A 65 -(skip)- --**--** -******* +---- A A A +s--- A A \E[65;2u +-a-- A \E[65;3u \E[65;3u +sa-- A \E[65;4u \E[65;4u +--c- ^A ^A \E[65;5u +s-c- ^A ^A \E[65;6u +-ac- ^A \E[65;7u \E[65;7u +sac- ^A \E[65;8u \E[65;8u +0x0042 XK_B 66 -(skip)- --**--** -******* +---- B B B +s--- B B \E[66;2u +-a-- B \E[66;3u \E[66;3u +sa-- B \E[66;4u \E[66;4u +--c- ^B ^B \E[66;5u +s-c- ^B ^B \E[66;6u +-ac- ^B \E[66;7u \E[66;7u +sac- ^B \E[66;8u \E[66;8u +0x0043 XK_C 67 -(skip)- --**--** -******* +---- C C C +s--- C C \E[67;2u +-a-- C \E[67;3u \E[67;3u +sa-- C \E[67;4u \E[67;4u +--c- ^C ^C \E[67;5u +s-c- ^C ^C \E[67;6u +-ac- ^C \E[67;7u \E[67;7u +sac- ^C \E[67;8u \E[67;8u +0x0044 XK_D 68 -(skip)- --**--** -******* +---- D D D +s--- D D \E[68;2u +-a-- D \E[68;3u \E[68;3u +sa-- D \E[68;4u \E[68;4u +--c- ^D ^D \E[68;5u +s-c- ^D ^D \E[68;6u +-ac- ^D \E[68;7u \E[68;7u +sac- ^D \E[68;8u \E[68;8u +0x0045 XK_E 69 -(skip)- --**--** -******* +---- E E E +s--- E E \E[69;2u +-a-- E \E[69;3u \E[69;3u +sa-- E \E[69;4u \E[69;4u +--c- ^E ^E \E[69;5u +s-c- ^E ^E \E[69;6u +-ac- ^E \E[69;7u \E[69;7u +sac- ^E \E[69;8u \E[69;8u +0x0046 XK_F 70 -(skip)- --**--** -******* +---- F F F +s--- F F \E[70;2u +-a-- F \E[70;3u \E[70;3u +sa-- F \E[70;4u \E[70;4u +--c- ^F ^F \E[70;5u +s-c- ^F ^F \E[70;6u +-ac- ^F \E[70;7u \E[70;7u +sac- ^F \E[70;8u \E[70;8u +0x0047 XK_G 71 -(skip)- --**--** -******* +---- G G G +s--- G G \E[71;2u +-a-- G \E[71;3u \E[71;3u +sa-- G \E[71;4u \E[71;4u +--c- ^G ^G \E[71;5u +s-c- ^G ^G \E[71;6u +-ac- ^G \E[71;7u \E[71;7u +sac- ^G \E[71;8u \E[71;8u +0x0048 XK_H 72 -(skip)- --**--** -******* +---- H H H +s--- H H \E[72;2u +-a-- H \E[72;3u \E[72;3u +sa-- H \E[72;4u \E[72;4u +--c- \b \b \E[72;5u +s-c- \b \b \E[72;6u +-ac- \b \E[72;7u \E[72;7u +sac- \b \E[72;8u \E[72;8u +0x0049 XK_I 73 -(skip)- --**--** -******* +---- I I I +s--- I I \E[73;2u +-a-- I \E[73;3u \E[73;3u +sa-- I \E[73;4u \E[73;4u +--c- \t \t \E[73;5u +s-c- \t \t \E[73;6u +-ac- \t \E[73;7u \E[73;7u +sac- \t \E[73;8u \E[73;8u +0x004a XK_J 74 -(skip)- --**--** -******* +---- J J J +s--- J J \E[74;2u +-a-- J \E[74;3u \E[74;3u +sa-- J \E[74;4u \E[74;4u +--c- \n \n \E[74;5u +s-c- \n \n \E[74;6u +-ac- \n \E[74;7u \E[74;7u +sac- \n \E[74;8u \E[74;8u +0x004b XK_K 75 -(skip)- --**--** -******* +---- K K K +s--- K K \E[75;2u +-a-- K \E[75;3u \E[75;3u +sa-- K \E[75;4u \E[75;4u +--c- ^K ^K \E[75;5u +s-c- ^K ^K \E[75;6u +-ac- ^K \E[75;7u \E[75;7u +sac- ^K \E[75;8u \E[75;8u +0x004c XK_L 76 -(skip)- --**--** -******* +---- L L L +s--- L L \E[76;2u +-a-- L \E[76;3u \E[76;3u +sa-- L \E[76;4u \E[76;4u +--c- \f \f \E[76;5u +s-c- \f \f \E[76;6u +-ac- \f \E[76;7u \E[76;7u +sac- \f \E[76;8u \E[76;8u +0x004d XK_M 77 -(skip)- --**--** -******* +---- M M M +s--- M M \E[77;2u +-a-- M \E[77;3u \E[77;3u +sa-- M \E[77;4u \E[77;4u +--c- \r \r \E[77;5u +s-c- \r \r \E[77;6u +-ac- \r \E[77;7u \E[77;7u +sac- \r \E[77;8u \E[77;8u +0x004e XK_N 78 -(skip)- --**--** -******* +---- N N N +s--- N N \E[78;2u +-a-- N \E[78;3u \E[78;3u +sa-- N \E[78;4u \E[78;4u +--c- ^N ^N \E[78;5u +s-c- ^N ^N \E[78;6u +-ac- ^N \E[78;7u \E[78;7u +sac- ^N \E[78;8u \E[78;8u +0x004f XK_O 79 -(skip)- --**--** -******* +---- O O O +s--- O O \E[79;2u +-a-- O \E[79;3u \E[79;3u +sa-- O \E[79;4u \E[79;4u +--c- ^O ^O \E[79;5u +s-c- ^O ^O \E[79;6u +-ac- ^O \E[79;7u \E[79;7u +sac- ^O \E[79;8u \E[79;8u +0x0050 XK_P 80 -(skip)- --**--** -******* +---- P P P +s--- P P \E[80;2u +-a-- P \E[80;3u \E[80;3u +sa-- P \E[80;4u \E[80;4u +--c- ^P ^P \E[80;5u +s-c- ^P ^P \E[80;6u +-ac- ^P \E[80;7u \E[80;7u +sac- ^P \E[80;8u \E[80;8u +0x0051 XK_Q 81 -(skip)- --**--** -******* +---- Q Q Q +s--- Q Q \E[81;2u +-a-- Q \E[81;3u \E[81;3u +sa-- Q \E[81;4u \E[81;4u +--c- ^Q ^Q \E[81;5u +s-c- ^Q ^Q \E[81;6u +-ac- ^Q \E[81;7u \E[81;7u +sac- ^Q \E[81;8u \E[81;8u +0x0052 XK_R 82 -(skip)- --**--** -******* +---- R R R +s--- R R \E[82;2u +-a-- R \E[82;3u \E[82;3u +sa-- R \E[82;4u \E[82;4u +--c- ^R ^R \E[82;5u +s-c- ^R ^R \E[82;6u +-ac- ^R \E[82;7u \E[82;7u +sac- ^R \E[82;8u \E[82;8u +0x0053 XK_S 83 -(skip)- --**--** -******* +---- S S S +s--- S S \E[83;2u +-a-- S \E[83;3u \E[83;3u +sa-- S \E[83;4u \E[83;4u +--c- ^S ^S \E[83;5u +s-c- ^S ^S \E[83;6u +-ac- ^S \E[83;7u \E[83;7u +sac- ^S \E[83;8u \E[83;8u +0x0054 XK_T 84 -(skip)- --**--** -******* +---- T T T +s--- T T \E[84;2u +-a-- T \E[84;3u \E[84;3u +sa-- T \E[84;4u \E[84;4u +--c- ^T ^T \E[84;5u +s-c- ^T ^T \E[84;6u +-ac- ^T \E[84;7u \E[84;7u +sac- ^T \E[84;8u \E[84;8u +0x0055 XK_U 85 -(skip)- --**--** -******* +---- U U U +s--- U U \E[85;2u +-a-- U \E[85;3u \E[85;3u +sa-- U \E[85;4u \E[85;4u +--c- ^U ^U \E[85;5u +s-c- ^U ^U \E[85;6u +-ac- ^U \E[85;7u \E[85;7u +sac- ^U \E[85;8u \E[85;8u +0x0056 XK_V 86 -(skip)- --**--** -******* +---- V V V +s--- V V \E[86;2u +-a-- V \E[86;3u \E[86;3u +sa-- V \E[86;4u \E[86;4u +--c- ^V ^V \E[86;5u +s-c- ^V ^V \E[86;6u +-ac- ^V \E[86;7u \E[86;7u +sac- ^V \E[86;8u \E[86;8u +0x0057 XK_W 87 -(skip)- --**--** -******* +---- W W W +s--- W W \E[87;2u +-a-- W \E[87;3u \E[87;3u +sa-- W \E[87;4u \E[87;4u +--c- ^W ^W \E[87;5u +s-c- ^W ^W \E[87;6u +-ac- ^W \E[87;7u \E[87;7u +sac- ^W \E[87;8u \E[87;8u +0x0058 XK_X 88 -(skip)- --**--** -******* +---- X X X +s--- X X \E[88;2u +-a-- X \E[88;3u \E[88;3u +sa-- X \E[88;4u \E[88;4u +--c- ^X ^X \E[88;5u +s-c- ^X ^X \E[88;6u +-ac- ^X \E[88;7u \E[88;7u +sac- ^X \E[88;8u \E[88;8u +0x0059 XK_Y 89 -(skip)- --**--** -******* +---- Y Y Y +s--- Y Y \E[89;2u +-a-- Y \E[89;3u \E[89;3u +sa-- Y \E[89;4u \E[89;4u +--c- ^Y ^Y \E[89;5u +s-c- ^Y ^Y \E[89;6u +-ac- ^Y \E[89;7u \E[89;7u +sac- ^Y \E[89;8u \E[89;8u +0x005a XK_Z 90 -(skip)- --**--** -******* +---- Z Z Z +s--- Z Z \E[90;2u +-a-- Z \E[90;3u \E[90;3u +sa-- Z \E[90;4u \E[90;4u +--c- ^Z ^Z \E[90;5u +s-c- ^Z ^Z \E[90;6u +-ac- ^Z \E[90;7u \E[90;7u +sac- ^Z \E[90;8u \E[90;8u +0x005b XK_bracketleft 91 -(skip)- --**--** -******* +---- [ [ [ +s--- { { \E[123;2u +-a-- [ \E[91;3u \E[91;3u +sa-- { \E[123;4u \E[123;4u +--c- \E \E \E[91;5u +s-c- \E \E \E[123;6u +-ac- \E \E[91;7u \E[91;7u +sac- \E \E[123;8u \E[123;8u +0x005c XK_backslash 92 -(skip)- --**--** -******* +---- \\ \\ \\ +s--- | | \E[124;2u +-a-- \\ \E[92;3u \E[92;3u +sa-- | \E[124;4u \E[124;4u +--c- ^\ ^\ \E[92;5u +s-c- ^\ ^\ \E[124;6u +-ac- ^\ \E[92;7u \E[92;7u +sac- ^\ \E[124;8u \E[124;8u +0x005d XK_bracketright 93 -(skip)- --**--** -******* +---- ] ] ] +s--- } } \E[125;2u +-a-- ] \E[93;3u \E[93;3u +sa-- } \E[125;4u \E[125;4u +--c- ^] ^] \E[93;5u +s-c- ^] ^] \E[125;6u +-ac- ^] \E[93;7u \E[93;7u +sac- ^] \E[125;8u \E[125;8u +0x005e XK_asciicircum 94 -(skip)- --**--** -******* +---- \^ \^ \^ +s--- \^ \^ \E[94;2u +-a-- \^ \E[94;3u \E[94;3u +sa-- \^ \E[94;4u \E[94;4u +--c- ^^ ^^ \E[94;5u +s-c- ^^ ^^ \E[94;6u +-ac- ^^ \E[94;7u \E[94;7u +sac- ^^ \E[94;8u \E[94;8u +0x005f XK_underscore 95 -(skip)- --**--** -******* +---- _ _ _ +s--- _ _ \E[95;2u +-a-- _ \E[95;3u \E[95;3u +sa-- _ \E[95;4u \E[95;4u +--c- ^_ ^_ \E[95;5u +s-c- ^_ ^_ \E[95;6u +-ac- ^_ \E[95;7u \E[95;7u +sac- ^_ \E[95;8u \E[95;8u +0x0060 XK_grave 96 -(skip)- --**--** -******* +---- ` ` ` +s--- ~ ~ \E[126;2u +-a-- ` \E[96;3u \E[96;3u +sa-- ~ \E[126;4u \E[126;4u +--c- ^@ ^@ \E[96;5u +s-c- ^^ ^^ \E[126;6u +-ac- ^@ \E[96;7u \E[96;7u +sac- ^^ \E[126;8u \E[126;8u +0x0061 XK_a 97 -(skip)- --**--** -******* +---- a a a +s--- A A \E[65;2u +-a-- a \E[97;3u \E[97;3u +sa-- A \E[65;4u \E[65;4u +--c- ^A ^A \E[97;5u +s-c- ^A ^A \E[65;6u +-ac- ^A \E[97;7u \E[97;7u +sac- ^A \E[65;8u \E[65;8u +0x0062 XK_b 98 -(skip)- --**--** -******* +---- b b b +s--- B B \E[66;2u +-a-- b \E[98;3u \E[98;3u +sa-- B \E[66;4u \E[66;4u +--c- ^B ^B \E[98;5u +s-c- ^B ^B \E[66;6u +-ac- ^B \E[98;7u \E[98;7u +sac- ^B \E[66;8u \E[66;8u +0x0063 XK_c 99 -(skip)- --**--** -******* +---- c c c +s--- C C \E[67;2u +-a-- c \E[99;3u \E[99;3u +sa-- C \E[67;4u \E[67;4u +--c- ^C ^C \E[99;5u +s-c- ^C ^C \E[67;6u +-ac- ^C \E[99;7u \E[99;7u +sac- ^C \E[67;8u \E[67;8u +0x0064 XK_d 100 -(skip)- --**--** -******* +---- d d d +s--- D D \E[68;2u +-a-- d \E[100;3u \E[100;3u +sa-- D \E[68;4u \E[68;4u +--c- ^D ^D \E[100;5u +s-c- ^D ^D \E[68;6u +-ac- ^D \E[100;7u \E[100;7u +sac- ^D \E[68;8u \E[68;8u +0x0065 XK_e 101 -(skip)- --**--** -******* +---- e e e +s--- E E \E[69;2u +-a-- e \E[101;3u \E[101;3u +sa-- E \E[69;4u \E[69;4u +--c- ^E ^E \E[101;5u +s-c- ^E ^E \E[69;6u +-ac- ^E \E[101;7u \E[101;7u +sac- ^E \E[69;8u \E[69;8u +0x0066 XK_f 102 -(skip)- --**--** -******* +---- f f f +s--- F F \E[70;2u +-a-- f \E[102;3u \E[102;3u +sa-- F \E[70;4u \E[70;4u +--c- ^F ^F \E[102;5u +s-c- ^F ^F \E[70;6u +-ac- ^F \E[102;7u \E[102;7u +sac- ^F \E[70;8u \E[70;8u +0x0067 XK_g 103 -(skip)- --**--** -******* +---- g g g +s--- G G \E[71;2u +-a-- g \E[103;3u \E[103;3u +sa-- G \E[71;4u \E[71;4u +--c- ^G ^G \E[103;5u +s-c- ^G ^G \E[71;6u +-ac- ^G \E[103;7u \E[103;7u +sac- ^G \E[71;8u \E[71;8u +0x0068 XK_h 104 -(skip)- --**--** -******* +---- h h h +s--- H H \E[72;2u +-a-- h \E[104;3u \E[104;3u +sa-- H \E[72;4u \E[72;4u +--c- \b \b \E[104;5u +s-c- \b \b \E[72;6u +-ac- \b \E[104;7u \E[104;7u +sac- \b \E[72;8u \E[72;8u +0x0069 XK_i 105 -(skip)- --**--** -******* +---- i i i +s--- I I \E[73;2u +-a-- i \E[105;3u \E[105;3u +sa-- I \E[73;4u \E[73;4u +--c- \t \t \E[105;5u +s-c- \t \t \E[73;6u +-ac- \t \E[105;7u \E[105;7u +sac- \t \E[73;8u \E[73;8u +0x006a XK_j 106 -(skip)- --**--** -******* +---- j j j +s--- J J \E[74;2u +-a-- j \E[106;3u \E[106;3u +sa-- J \E[74;4u \E[74;4u +--c- \n \n \E[106;5u +s-c- \n \n \E[74;6u +-ac- \n \E[106;7u \E[106;7u +sac- \n \E[74;8u \E[74;8u +0x006b XK_k 107 -(skip)- --**--** -******* +---- k k k +s--- K K \E[75;2u +-a-- k \E[107;3u \E[107;3u +sa-- K \E[75;4u \E[75;4u +--c- ^K ^K \E[107;5u +s-c- ^K ^K \E[75;6u +-ac- ^K \E[107;7u \E[107;7u +sac- ^K \E[75;8u \E[75;8u +0x006c XK_l 108 -(skip)- --**--** -******* +---- l l l +s--- L L \E[76;2u +-a-- l \E[108;3u \E[108;3u +sa-- L \E[76;4u \E[76;4u +--c- \f \f \E[108;5u +s-c- \f \f \E[76;6u +-ac- \f \E[108;7u \E[108;7u +sac- \f \E[76;8u \E[76;8u +0x006d XK_m 109 -(skip)- --**--** -******* +---- m m m +s--- M M \E[77;2u +-a-- m \E[109;3u \E[109;3u +sa-- M \E[77;4u \E[77;4u +--c- \r \r \E[109;5u +s-c- \r \r \E[77;6u +-ac- \r \E[109;7u \E[109;7u +sac- \r \E[77;8u \E[77;8u +0x006e XK_n 110 -(skip)- --**--** -******* +---- n n n +s--- N N \E[78;2u +-a-- n \E[110;3u \E[110;3u +sa-- N \E[78;4u \E[78;4u +--c- ^N ^N \E[110;5u +s-c- ^N ^N \E[78;6u +-ac- ^N \E[110;7u \E[110;7u +sac- ^N \E[78;8u \E[78;8u +0x006f XK_o 111 -(skip)- --**--** -******* +---- o o o +s--- O O \E[79;2u +-a-- o \E[111;3u \E[111;3u +sa-- O \E[79;4u \E[79;4u +--c- ^O ^O \E[111;5u +s-c- ^O ^O \E[79;6u +-ac- ^O \E[111;7u \E[111;7u +sac- ^O \E[79;8u \E[79;8u +0x0070 XK_p 112 -(skip)- --**--** -******* +---- p p p +s--- P P \E[80;2u +-a-- p \E[112;3u \E[112;3u +sa-- P \E[80;4u \E[80;4u +--c- ^P ^P \E[112;5u +s-c- ^P ^P \E[80;6u +-ac- ^P \E[112;7u \E[112;7u +sac- ^P \E[80;8u \E[80;8u +0x0071 XK_q 113 -(skip)- --**--** -******* +---- q q q +s--- Q Q \E[81;2u +-a-- q \E[113;3u \E[113;3u +sa-- Q \E[81;4u \E[81;4u +--c- ^Q ^Q \E[113;5u +s-c- ^Q ^Q \E[81;6u +-ac- ^Q \E[113;7u \E[113;7u +sac- ^Q \E[81;8u \E[81;8u +0x0072 XK_r 114 -(skip)- --**--** -******* +---- r r r +s--- R R \E[82;2u +-a-- r \E[114;3u \E[114;3u +sa-- R \E[82;4u \E[82;4u +--c- ^R ^R \E[114;5u +s-c- ^R ^R \E[82;6u +-ac- ^R \E[114;7u \E[114;7u +sac- ^R \E[82;8u \E[82;8u +0x0073 XK_s 115 -(skip)- --**--** -******* +---- s s s +s--- S S \E[83;2u +-a-- s \E[115;3u \E[115;3u +sa-- S \E[83;4u \E[83;4u +--c- ^S ^S \E[115;5u +s-c- ^S ^S \E[83;6u +-ac- ^S \E[115;7u \E[115;7u +sac- ^S \E[83;8u \E[83;8u +0x0074 XK_t 116 -(skip)- --**--** -******* +---- t t t +s--- T T \E[84;2u +-a-- t \E[116;3u \E[116;3u +sa-- T \E[84;4u \E[84;4u +--c- ^T ^T \E[116;5u +s-c- ^T ^T \E[84;6u +-ac- ^T \E[116;7u \E[116;7u +sac- ^T \E[84;8u \E[84;8u +0x0075 XK_u 117 -(skip)- --**--** -******* +---- u u u +s--- U U \E[85;2u +-a-- u \E[117;3u \E[117;3u +sa-- U \E[85;4u \E[85;4u +--c- ^U ^U \E[117;5u +s-c- ^U ^U \E[85;6u +-ac- ^U \E[117;7u \E[117;7u +sac- ^U \E[85;8u \E[85;8u +0x0076 XK_v 118 -(skip)- --**--** -******* +---- v v v +s--- V V \E[86;2u +-a-- v \E[118;3u \E[118;3u +sa-- V \E[86;4u \E[86;4u +--c- ^V ^V \E[118;5u +s-c- ^V ^V \E[86;6u +-ac- ^V \E[118;7u \E[118;7u +sac- ^V \E[86;8u \E[86;8u +0x0077 XK_w 119 -(skip)- --**--** -******* +---- w w w +s--- W W \E[87;2u +-a-- w \E[119;3u \E[119;3u +sa-- W \E[87;4u \E[87;4u +--c- ^W ^W \E[119;5u +s-c- ^W ^W \E[87;6u +-ac- ^W \E[119;7u \E[119;7u +sac- ^W \E[87;8u \E[87;8u +0x0078 XK_x 120 -(skip)- --**--** -******* +---- x x x +s--- X X \E[88;2u +-a-- x \E[120;3u \E[120;3u +sa-- X \E[88;4u \E[88;4u +--c- ^X ^X \E[120;5u +s-c- ^X ^X \E[88;6u +-ac- ^X \E[120;7u \E[120;7u +sac- ^X \E[88;8u \E[88;8u +0x0079 XK_y 121 -(skip)- --**--** -******* +---- y y y +s--- Y Y \E[89;2u +-a-- y \E[121;3u \E[121;3u +sa-- Y \E[89;4u \E[89;4u +--c- ^Y ^Y \E[121;5u +s-c- ^Y ^Y \E[89;6u +-ac- ^Y \E[121;7u \E[121;7u +sac- ^Y \E[89;8u \E[89;8u +0x007a XK_z 122 -(skip)- --**--** -******* +---- z z z +s--- Z Z \E[90;2u +-a-- z \E[122;3u \E[122;3u +sa-- Z \E[90;4u \E[90;4u +--c- ^Z ^Z \E[122;5u +s-c- ^Z ^Z \E[90;6u +-ac- ^Z \E[122;7u \E[122;7u +sac- ^Z \E[90;8u \E[90;8u +0x007b XK_braceleft 123 -(skip)- --**--** -******* +---- { { { +s--- { { \E[123;2u +-a-- { \E[123;3u \E[123;3u +sa-- { \E[123;4u \E[123;4u +--c- \E \E \E[123;5u +s-c- \E \E \E[123;6u +-ac- \E \E[123;7u \E[123;7u +sac- \E \E[123;8u \E[123;8u +0x007c XK_bar 124 -(skip)- --**--** -******* +---- | | | +s--- | | \E[124;2u +-a-- | \E[124;3u \E[124;3u +sa-- | \E[124;4u \E[124;4u +--c- ^\ ^\ \E[124;5u +s-c- ^\ ^\ \E[124;6u +-ac- ^\ \E[124;7u \E[124;7u +sac- ^\ \E[124;8u \E[124;8u +0x007d XK_braceright 125 -(skip)- --**--** -******* +---- } } } +s--- } } \E[125;2u +-a-- } \E[125;3u \E[125;3u +sa-- } \E[125;4u \E[125;4u +--c- ^] ^] \E[125;5u +s-c- ^] ^] \E[125;6u +-ac- ^] \E[125;7u \E[125;7u +sac- ^] \E[125;8u \E[125;8u +0x007e XK_asciitilde 126 -(skip)- --**--** -******* +---- ~ ~ ~ +s--- ~ ~ \E[126;2u +-a-- ~ \E[126;3u \E[126;3u +sa-- ~ \E[126;4u \E[126;4u +--c- ^^ ^^ \E[126;5u +s-c- ^^ ^^ \E[126;6u +-ac- ^^ \E[126;7u \E[126;7u +sac- ^^ \E[126;8u \E[126;8u +0x00a6 XK_brokenbar 166 -(skip)- --****** --****** +---- ¦ ¦ ¦ +s--- ¦ ¦ ¦ +-a-- ¦ \E[166;3u \E[166;3u +sa-- ¦ \E[166;4u \E[166;4u +--c- ¦ \E[166;5u \E[166;5u +s-c- ¦ \E[166;6u \E[166;6u +-ac- ¦ \E[166;7u \E[166;7u +sac- ¦ \E[166;8u \E[166;8u +0x00b1 XK_plusminus 177 -(skip)- --****** --****** +---- ± ± ± +s--- ± ± ± +-a-- ± \E[177;3u \E[177;3u +sa-- ± \E[177;4u \E[177;4u +--c- ± \E[177;5u \E[177;5u +s-c- ± \E[177;6u \E[177;6u +-ac- ± \E[177;7u \E[177;7u +sac- ± \E[177;8u \E[177;8u +0xfe03 XK_ISO_Level3_Shift 65027 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xfe11 XK_ISO_Level5_Shift 65041 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xfe20 XK_ISO_Left_Tab 65056 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key +0xff08 XK_BackSpace 65288 -(skip)- -(skip)- -***-*** +---- \b \b \b +s--- \b \b \E[8;2u +-a-- \b \b \E[8;3u +sa-- \b \b \E[8;4u +--c- \b \b \b +s-c- \b \b \E[8;6u +-ac- \b \b \E[8;7u +sac- \b \b \E[8;8u +0xff09 XK_Tab 65289 -(skip)- -******* -******* +---- \t \t \t +s--- \t \E[9;2u \E[9;2u +-a-- \t \E[9;3u \E[9;3u +sa-- \t \E[9;4u \E[9;4u +--c- \t \E[9;5u \E[9;5u +s-c- \t \E[9;6u \E[9;6u +-ac- \t \E[9;7u \E[9;7u +sac- \t \E[9;8u \E[9;8u +0xff0a XK_Linefeed 65290 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff0d XK_Return 65293 -(skip)- -******* -******* +---- \r \r \r +s--- \r \E[13;2u \E[13;2u +-a-- \r \E[13;3u \E[13;3u +sa-- \r \E[13;4u \E[13;4u +--c- \r \E[13;5u \E[13;5u +s-c- \r \E[13;6u \E[13;6u +-ac- \r \E[13;7u \E[13;7u +sac- \r \E[13;8u \E[13;8u +0xff13 XK_Pause 65299 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff14 XK_Scroll_Lock 65300 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff15 XK_Sys_Req 65301 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff1b XK_Escape 65307 -(skip)- --**--** -******* +---- \E \E \E +s--- \E \E \E[27;2u +-a-- \E \E[27;3u \E[27;3u +sa-- \E \E[27;4u \E[27;4u +--c- \E \E \E[27;5u +s-c- \E \E \E[27;6u +-ac- \E \E[27;7u \E[27;7u +sac- \E \E[27;8u \E[27;8u +0xff22 XK_Muhenkan 65314 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff23 XK_Henkan_Mode 65315 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff25 XK_Hiragana 65317 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff26 XK_Katakana 65318 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff27 XK_Hiragana_Katakana 65319 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff31 XK_Hangul 65329 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff34 XK_Hangul_Hanja 65332 -(skip)- -******* --****** +---- -ignore- -ignore- -ignore- +s--- -ignore- -ignore- -ignore- +-a-- -ignore- -ignore- -ignore- +sa-- -ignore- -ignore- -ignore- +--c- -ignore- -ignore- -ignore- +s-c- -ignore- -ignore- -ignore- +-ac- -ignore- -ignore- -ignore- +sac- -ignore- -ignore- -ignore- +0xff50 XK_Home 65360 -(skip)- -(skip)- -(skip)- +---- 1:cursor 1:cursor 1:cursor +s--- 2:cursor 2:cursor 2:cursor +-a-- 3:cursor 3:cursor 3:cursor +sa-- 4:cursor 4:cursor 4:cursor +--c- 5:cursor 5:cursor 5:cursor +s-c- 6:cursor 6:cursor 6:cursor +-ac- 7:cursor 7:cursor 7:cursor +sac- 8:cursor 8:cursor 8:cursor +0xff51 XK_Left 65361 -(skip)- -(skip)- -(skip)- +---- 1:cursor 1:cursor 1:cursor +s--- 2:cursor 2:cursor 2:cursor +-a-- 3:cursor 3:cursor 3:cursor +sa-- 4:cursor 4:cursor 4:cursor +--c- 5:cursor 5:cursor 5:cursor +s-c- 6:cursor 6:cursor 6:cursor +-ac- 7:cursor 7:cursor 7:cursor +sac- 8:cursor 8:cursor 8:cursor +0xff52 XK_Up 65362 -(skip)- -(skip)- -(skip)- +---- 1:cursor 1:cursor 1:cursor +s--- 2:cursor 2:cursor 2:cursor +-a-- 3:cursor 3:cursor 3:cursor +sa-- 4:cursor 4:cursor 4:cursor +--c- 5:cursor 5:cursor 5:cursor +s-c- 6:cursor 6:cursor 6:cursor +-ac- 7:cursor 7:cursor 7:cursor +sac- 8:cursor 8:cursor 8:cursor +0xff53 XK_Right 65363 -(skip)- -(skip)- -(skip)- +---- 1:cursor 1:cursor 1:cursor +s--- 2:cursor 2:cursor 2:cursor +-a-- 3:cursor 3:cursor 3:cursor +sa-- 4:cursor 4:cursor 4:cursor +--c- 5:cursor 5:cursor 5:cursor +s-c- 6:cursor 6:cursor 6:cursor +-ac- 7:cursor 7:cursor 7:cursor +sac- 8:cursor 8:cursor 8:cursor +0xff54 XK_Down 65364 -(skip)- -(skip)- -(skip)- +---- 1:cursor 1:cursor 1:cursor +s--- 2:cursor 2:cursor 2:cursor +-a-- 3:cursor 3:cursor 3:cursor +sa-- 4:cursor 4:cursor 4:cursor +--c- 5:cursor 5:cursor 5:cursor +s-c- 6:cursor 6:cursor 6:cursor +-ac- 7:cursor 7:cursor 7:cursor +sac- 8:cursor 8:cursor 8:cursor +0xff55 XK_Prior 65365 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key +0xff56 XK_Next 65366 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key +0xff57 XK_End 65367 -(skip)- -(skip)- -(skip)- +---- 1:cursor 1:cursor 1:cursor +s--- 2:cursor 2:cursor 2:cursor +-a-- 3:cursor 3:cursor 3:cursor +sa-- 4:cursor 4:cursor 4:cursor +--c- 5:cursor 5:cursor 5:cursor +s-c- 6:cursor 6:cursor 6:cursor +-ac- 7:cursor 7:cursor 7:cursor +sac- 8:cursor 8:cursor 8:cursor +0xff61 XK_Print 65377 -(skip)- -(skip)- -(skip)- +---- 1:misc-key 1:misc-key 1:misc-key +s--- 2:misc-key 2:misc-key 2:misc-key +-a-- 3:misc-key 3:misc-key 3:misc-key +sa-- 4:misc-key 4:misc-key 4:misc-key +--c- 5:misc-key 5:misc-key 5:misc-key +s-c- 6:misc-key 6:misc-key 6:misc-key +-ac- 7:misc-key 7:misc-key 7:misc-key +sac- 8:misc-key 8:misc-key 8:misc-key +0xff63 XK_Insert 65379 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key +0xff65 XK_Undo 65381 -(skip)- -(skip)- -(skip)- +---- 1:misc-key 1:misc-key 1:misc-key +s--- 2:misc-key 2:misc-key 2:misc-key +-a-- 3:misc-key 3:misc-key 3:misc-key +sa-- 4:misc-key 4:misc-key 4:misc-key +--c- 5:misc-key 5:misc-key 5:misc-key +s-c- 6:misc-key 6:misc-key 6:misc-key +-ac- 7:misc-key 7:misc-key 7:misc-key +sac- 8:misc-key 8:misc-key 8:misc-key +0xff66 XK_Redo 65382 -(skip)- -(skip)- -(skip)- +---- 1:misc-key 1:misc-key 1:misc-key +s--- 2:misc-key 2:misc-key 2:misc-key +-a-- 3:misc-key 3:misc-key 3:misc-key +sa-- 4:misc-key 4:misc-key 4:misc-key +--c- 5:misc-key 5:misc-key 5:misc-key +s-c- 6:misc-key 6:misc-key 6:misc-key +-ac- 7:misc-key 7:misc-key 7:misc-key +sac- 8:misc-key 8:misc-key 8:misc-key +0xff67 XK_Menu 65383 -(skip)- -(skip)- -(skip)- +---- 1:misc-key 1:misc-key 1:misc-key +s--- 2:misc-key 2:misc-key 2:misc-key +-a-- 3:misc-key 3:misc-key 3:misc-key +sa-- 4:misc-key 4:misc-key 4:misc-key +--c- 5:misc-key 5:misc-key 5:misc-key +s-c- 6:misc-key 6:misc-key 6:misc-key +-ac- 7:misc-key 7:misc-key 7:misc-key +sac- 8:misc-key 8:misc-key 8:misc-key +0xff68 XK_Find 65384 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key +0xff69 XK_Cancel 65385 -(skip)- -(skip)- -(skip)- +---- 1:misc-key 1:misc-key 1:misc-key +s--- 2:misc-key 2:misc-key 2:misc-key +-a-- 3:misc-key 3:misc-key 3:misc-key +sa-- 4:misc-key 4:misc-key 4:misc-key +--c- 5:misc-key 5:misc-key 5:misc-key +s-c- 6:misc-key 6:misc-key 6:misc-key +-ac- 7:misc-key 7:misc-key 7:misc-key +sac- 8:misc-key 8:misc-key 8:misc-key +0xff6a XK_Help 65386 -(skip)- -(skip)- -(skip)- +---- 1:misc-key 1:misc-key 1:misc-key +s--- 2:misc-key 2:misc-key 2:misc-key +-a-- 3:misc-key 3:misc-key 3:misc-key +sa-- 4:misc-key 4:misc-key 4:misc-key +--c- 5:misc-key 5:misc-key 5:misc-key +s-c- 6:misc-key 6:misc-key 6:misc-key +-ac- 7:misc-key 7:misc-key 7:misc-key +sac- 8:misc-key 8:misc-key 8:misc-key +0xff6b XK_Break 65387 -(skip)- -(skip)- -(skip)- +---- 1:misc-key 1:misc-key 1:misc-key +s--- 2:misc-key 2:misc-key 2:misc-key +-a-- 3:misc-key 3:misc-key 3:misc-key +sa-- 4:misc-key 4:misc-key 4:misc-key +--c- 5:misc-key 5:misc-key 5:misc-key +s-c- 6:misc-key 6:misc-key 6:misc-key +-ac- 7:misc-key 7:misc-key 7:misc-key +sac- 8:misc-key 8:misc-key 8:misc-key +0xff7f XK_Num_Lock 65407 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xff8d XK_KP_Enter 65421 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff95 XK_KP_Home 65429 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff96 XK_KP_Left 65430 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff97 XK_KP_Up 65431 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff98 XK_KP_Right 65432 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff99 XK_KP_Down 65433 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff9a XK_KP_Prior 65434 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff9b XK_KP_Next 65435 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff9c XK_KP_End 65436 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff9d XK_KP_Begin 65437 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xff9e XK_KP_Insert 65438 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key +0xff9f XK_KP_Delete 65439 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key +0xffaa XK_KP_Multiply 65450 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffab XK_KP_Add 65451 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffad XK_KP_Subtract 65453 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffae XK_KP_Decimal 65454 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffaf XK_KP_Divide 65455 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb0 XK_KP_0 65456 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb1 XK_KP_1 65457 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb2 XK_KP_2 65458 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb3 XK_KP_3 65459 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb4 XK_KP_4 65460 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb5 XK_KP_5 65461 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb6 XK_KP_6 65462 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb7 XK_KP_7 65463 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb8 XK_KP_8 65464 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffb9 XK_KP_9 65465 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffbd XK_KP_Equal 65469 -(skip)- -(skip)- -(skip)- +---- 1:keypad 1:keypad 1:keypad +s--- 2:keypad 2:keypad 2:keypad +-a-- 3:keypad 3:keypad 3:keypad +sa-- 4:keypad 4:keypad 4:keypad +--c- 5:keypad 5:keypad 5:keypad +s-c- 6:keypad 6:keypad 6:keypad +-ac- 7:keypad 7:keypad 7:keypad +sac- 8:keypad 8:keypad 8:keypad +0xffbe XK_F1 65470 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffbf XK_F2 65471 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc0 XK_F3 65472 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc1 XK_F4 65473 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc2 XK_F5 65474 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc3 XK_F6 65475 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc4 XK_F7 65476 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc5 XK_F8 65477 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc6 XK_F9 65478 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc7 XK_F10 65479 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc8 XK_F11 65480 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffc9 XK_F12 65481 -(skip)- -(skip)- -(skip)- +---- 1:func-key 1:func-key 1:func-key +s--- 2:func-key 2:func-key 2:func-key +-a-- 3:func-key 3:func-key 3:func-key +sa-- 4:func-key 4:func-key 4:func-key +--c- 5:func-key 5:func-key 5:func-key +s-c- 6:func-key 6:func-key 6:func-key +-ac- 7:func-key 7:func-key 7:func-key +sac- 8:func-key 8:func-key 8:func-key +0xffe1 XK_Shift_L 65505 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffe2 XK_Shift_R 65506 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffe3 XK_Control_L 65507 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffe4 XK_Control_R 65508 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffe5 XK_Caps_Lock 65509 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffe7 XK_Meta_L 65511 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffe9 XK_Alt_L 65513 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffeb XK_Super_L 65515 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffec XK_Super_R 65516 -(skip)- -(skip)- -(skip)- +---- 1:modifier 1:modifier 1:modifier +s--- 2:modifier 2:modifier 2:modifier +-a-- 3:modifier 3:modifier 3:modifier +sa-- 4:modifier 4:modifier 4:modifier +--c- 5:modifier 5:modifier 5:modifier +s-c- 6:modifier 6:modifier 6:modifier +-ac- 7:modifier 7:modifier 7:modifier +sac- 8:modifier 8:modifier 8:modifier +0xffff XK_Delete 65535 -(skip)- -(skip)- -(skip)- +---- 1:edit-key 1:edit-key 1:edit-key +s--- 2:edit-key 2:edit-key 2:edit-key +-a-- 3:edit-key 3:edit-key 3:edit-key +sa-- 4:edit-key 4:edit-key 4:edit-key +--c- 5:edit-key 5:edit-key 5:edit-key +s-c- 6:edit-key 6:edit-key 6:edit-key +-ac- 7:edit-key 7:edit-key 7:edit-key +sac- 8:edit-key 8:edit-key 8:edit-key diff --git a/src/ansi.rs b/src/ansi.rs index 918e35b..4ca2fa6 100644 --- a/src/ansi.rs +++ b/src/ansi.rs @@ -652,6 +652,14 @@ pub trait Handler { /// [`keyboard mode`]: crate::ansi::KeyboardModes /// [`behavior`]: crate::ansi::KeyboardModesApplyBehavior fn set_keyboard_mode(&mut self, _mode: KeyboardModes, _behavior: KeyboardModesApplyBehavior) {} + + /// Set XTerm's [`ModifyOtherKeys`] option. + fn set_modify_other_keys(&mut self, _mode: ModifyOtherKeys) {} + + /// Report XTerm's [`ModifyOtherKeys`] state. + /// + /// The output is of form `CSI > 4 ; mode m`. + fn report_modify_other_keys(&mut self) {} } bitflags! { @@ -678,6 +686,50 @@ bitflags! { } } +/// XTMODKEYS modifyOtherKeys state. +/// +/// This only applies to keys corresponding to ascii characters. +/// +/// For the details on how to implement the mode handling correctly, consult [`XTerm's +/// implementation`] and the [`output`] of XTerm's provided [`perl script`]. Some libraries and +/// implementations also use the [`fixterms`] definition of the `CSI u`. +/// +/// The end escape sequence has a `CSI char; modifiers u` form while the original +/// `CSI 27 ; modifier ; char ~`. The clients should prefer the `CSI u`, since it has +/// more adoption. +/// +/// [`XTerm's implementation`]: https://invisible-island.net/xterm/modified-keys.html +/// [`perl script`]: https://github.com/ThomasDickey/xterm-snapshots/blob/master/vttests/modify-keys.pl +/// [`output`]: https://github.com/alacritty/vte/blob/master/doc/modifyOtherKeys-example.txt +/// [`fixterms`]: http://www.leonerd.org.uk/hacks/fixterms/ +#[repr(u8)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum ModifyOtherKeys { + /// Reset the state. + Reset, + /// Enables this feature except for keys with well-known behavior, e.g., Tab, Backspace and + /// some special control character cases which are built into the X11 library (e.g., + /// Control-Space to make a NUL, or Control-3 to make an Escape character). + /// + /// Escape sequences shouldn't be emitted under the following circumstances: + /// - When the key is in range of `[64;127]` and the modifier is either Control or Shift + /// - When the key combination is a known control combination alias + /// + /// For more details, consult the [`example`] for the suggested translation. + /// + /// [`example`]: https://github.com/alacritty/vte/blob/master/doc/modifyOtherKeys-example.txt + EnableExceptWellDefined, + /// Enables this feature for all keys including the exceptions of + /// [`Self::EnableExceptWellDefined`]. XTerm still ignores the special cases built into the + /// X11 library. Any shifted (modified) ordinary key send an escape sequence. The Alt- and + /// Meta- modifiers cause XTerm to send escape sequences. + /// + /// For more details, consult the [`example`] for the suggested translation. + /// + /// [`example`]: https://github.com/alacritty/vte/blob/master/doc/modifyOtherKeys-example.txt + EnableAll, +} + /// Describes how the new [`KeyboardModes`] should be applied. #[repr(u8)] #[derive(Default, Clone, Copy, PartialEq, Eq)] @@ -1481,6 +1533,22 @@ where } } }, + ('m', [b'>']) => { + let mode = match (next_param_or(1) == 4).then(|| next_param_or(0)) { + Some(0) => ModifyOtherKeys::Reset, + Some(1) => ModifyOtherKeys::EnableExceptWellDefined, + Some(2) => ModifyOtherKeys::EnableAll, + _ => return unhandled!(), + }; + handler.set_modify_other_keys(mode); + }, + ('m', [b'?']) => { + if params_iter.next() == Some(&[4]) { + handler.report_modify_other_keys(); + } else { + unhandled!() + } + }, ('n', []) => handler.device_status(next_param_or(0) as usize), ('P', []) => handler.delete_chars(next_param_or(1) as usize), ('q', [b' ']) => { |