aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/modifyOtherKeys-example.txt2153
-rw-r--r--src/ansi.rs68
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' ']) => {