aboutsummaryrefslogtreecommitdiff
path: root/keysym/keysim.go
blob: 831ee4ed5b6c7d190eb3b4d4edb3daf97f180644 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
package keysym

// copied from https://github.com/driusan/dewm/blob/master/keysym/keysym.go

// Known KeySyms from /usr/include/X11/keysymdef.h
const (
	// TTY function keys, cleverly chosen to map to ASCII, for convenience of
	// programming, but could have been arbitrary (at the cost of lookup
	// tables in client code).
	XK_BackSpace   = 0xff08 // Back space, back char
	XK_Tab         = 0xff09
	XK_Linefeed    = 0xff0a // Linefeed, LF
	XK_Clear       = 0xff0b
	XK_Return      = 0xff0d // Return, enter
	XK_Pause       = 0xff13 // Pause, hold
	XK_Scroll_Lock = 0xff14
	XK_Sys_Req     = 0xff15
	XK_Escape      = 0xff1b
	XK_Delete      = 0xffff // Delete, rubout
	// Latin 1
	// (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
	// Byte 3 = 0
	XK_space        = 0x0020 // U+0020 SPACE
	XK_exclam       = 0x0021 // U+0021 EXCLAMATION MARK
	XK_quotedbl     = 0x0022 // U+0022 QUOTATION MARK
	XK_numbersign   = 0x0023 // U+0023 NUMBER SIGN
	XK_dollar       = 0x0024 // U+0024 DOLLAR SIGN
	XK_percent      = 0x0025 // U+0025 PERCENT SIGN
	XK_ampersand    = 0x0026 // U+0026 AMPERSAND
	XK_apostrophe   = 0x0027 // U+0027 APOSTROPHE
	XK_quoteright   = 0x0027 // deprecated
	XK_parenleft    = 0x0028 // U+0028 LEFT PARENTHESIS
	XK_parenright   = 0x0029 // U+0029 RIGHT PARENTHESIS
	XK_asterisk     = 0x002a // U+002A ASTERISK
	XK_plus         = 0x002b // U+002B PLUS SIGN
	XK_comma        = 0x002c // U+002C COMMA
	XK_minus        = 0x002d // U+002D HYPHEN-MINUS
	XK_period       = 0x002e // U+002E FULL STOP
	XK_slash        = 0x002f // U+002F SOLIDUS
	XK_0            = 0x0030 // U+0030 DIGIT ZERO
	XK_1            = 0x0031 // U+0031 DIGIT ONE
	XK_2            = 0x0032 // U+0032 DIGIT TWO
	XK_3            = 0x0033 // U+0033 DIGIT THREE
	XK_4            = 0x0034 // U+0034 DIGIT FOUR
	XK_5            = 0x0035 // U+0035 DIGIT FIVE
	XK_6            = 0x0036 // U+0036 DIGIT SIX
	XK_7            = 0x0037 // U+0037 DIGIT SEVEN
	XK_8            = 0x0038 // U+0038 DIGIT EIGHT
	XK_9            = 0x0039 // U+0039 DIGIT NINE
	XK_colon        = 0x003a // U+003A COLON
	XK_semicolon    = 0x003b // U+003B SEMICOLON
	XK_less         = 0x003c // U+003C LESS-THAN SIGN
	XK_equal        = 0x003d // U+003D EQUALS SIGN
	XK_greater      = 0x003e // U+003E GREATER-THAN SIGN
	XK_question     = 0x003f // U+003F QUESTION MARK
	XK_at           = 0x0040 // U+0040 COMMERCIAL AT
	XK_A            = 0x0041 // U+0041 LATIN CAPITAL LETTER A
	XK_B            = 0x0042 // U+0042 LATIN CAPITAL LETTER B
	XK_C            = 0x0043 // U+0043 LATIN CAPITAL LETTER C
	XK_D            = 0x0044 // U+0044 LATIN CAPITAL LETTER D
	XK_E            = 0x0045 // U+0045 LATIN CAPITAL LETTER E
	XK_F            = 0x0046 // U+0046 LATIN CAPITAL LETTER F
	XK_G            = 0x0047 // U+0047 LATIN CAPITAL LETTER G
	XK_H            = 0x0048 // U+0048 LATIN CAPITAL LETTER H
	XK_I            = 0x0049 // U+0049 LATIN CAPITAL LETTER I
	XK_J            = 0x004a // U+004A LATIN CAPITAL LETTER J
	XK_K            = 0x004b // U+004B LATIN CAPITAL LETTER K
	XK_L            = 0x004c // U+004C LATIN CAPITAL LETTER L
	XK_M            = 0x004d // U+004D LATIN CAPITAL LETTER M
	XK_N            = 0x004e // U+004E LATIN CAPITAL LETTER N
	XK_O            = 0x004f // U+004F LATIN CAPITAL LETTER O
	XK_P            = 0x0050 // U+0050 LATIN CAPITAL LETTER P
	XK_Q            = 0x0051 // U+0051 LATIN CAPITAL LETTER Q
	XK_R            = 0x0052 // U+0052 LATIN CAPITAL LETTER R
	XK_S            = 0x0053 // U+0053 LATIN CAPITAL LETTER S
	XK_T            = 0x0054 // U+0054 LATIN CAPITAL LETTER T
	XK_U            = 0x0055 // U+0055 LATIN CAPITAL LETTER U
	XK_V            = 0x0056 // U+0056 LATIN CAPITAL LETTER V
	XK_W            = 0x0057 // U+0057 LATIN CAPITAL LETTER W
	XK_X            = 0x0058 // U+0058 LATIN CAPITAL LETTER X
	XK_Y            = 0x0059 // U+0059 LATIN CAPITAL LETTER Y
	XK_Z            = 0x005a // U+005A LATIN CAPITAL LETTER Z
	XK_bracketleft  = 0x005b // U+005B LEFT SQUARE BRACKET
	XK_backslash    = 0x005c // U+005C REVERSE SOLIDUS
	XK_bracketright = 0x005d // U+005D RIGHT SQUARE BRACKET
	XK_asciicircum  = 0x005e // U+005E CIRCUMFLEX ACCENT
	XK_underscore   = 0x005f // U+005F LOW LINE
	XK_grave        = 0x0060 // U+0060 GRAVE ACCENT
	XK_quoteleft    = 0x0060 // deprecated
	XK_a            = 0x0061 // U+0061 LATIN SMALL LETTER A
	XK_b            = 0x0062 // U+0062 LATIN SMALL LETTER B
	XK_c            = 0x0063 // U+0063 LATIN SMALL LETTER C
	XK_d            = 0x0064 // U+0064 LATIN SMALL LETTER D
	XK_e            = 0x0065 // U+0065 LATIN SMALL LETTER E
	XK_f            = 0x0066 // U+0066 LATIN SMALL LETTER F
	XK_g            = 0x0067 // U+0067 LATIN SMALL LETTER G
	XK_h            = 0x0068 // U+0068 LATIN SMALL LETTER H
	XK_i            = 0x0069 // U+0069 LATIN SMALL LETTER I
	XK_j            = 0x006a // U+006A LATIN SMALL LETTER J
	XK_k            = 0x006b // U+006B LATIN SMALL LETTER K
	XK_l            = 0x006c // U+006C LATIN SMALL LETTER L
	XK_m            = 0x006d // U+006D LATIN SMALL LETTER M
	XK_n            = 0x006e // U+006E LATIN SMALL LETTER N
	XK_o            = 0x006f // U+006F LATIN SMALL LETTER O
	XK_p            = 0x0070 // U+0070 LATIN SMALL LETTER P
	XK_q            = 0x0071 // U+0071 LATIN SMALL LETTER Q
	XK_r            = 0x0072 // U+0072 LATIN SMALL LETTER R
	XK_s            = 0x0073 // U+0073 LATIN SMALL LETTER S
	XK_t            = 0x0074 // U+0074 LATIN SMALL LETTER T
	XK_u            = 0x0075 // U+0075 LATIN SMALL LETTER U
	XK_v            = 0x0076 // U+0076 LATIN SMALL LETTER V
	XK_w            = 0x0077 // U+0077 LATIN SMALL LETTER W
	XK_x            = 0x0078 // U+0078 LATIN SMALL LETTER X
	XK_y            = 0x0079 // U+0079 LATIN SMALL LETTER Y
	XK_z            = 0x007a // U+007A LATIN SMALL LETTER Z
	XK_braceleft    = 0x007b // U+007B LEFT CURLY BRACKET
	XK_bar          = 0x007c // U+007C VERTICAL LINE
	XK_braceright   = 0x007d // U+007D RIGHT CURLY BRACKET
	XK_asciitilde   = 0x007e // U+007E TILDE

	XK_nobreakspace   = 0x00a0 // U+00A0 NO-BREAK SPACE
	XK_exclamdown     = 0x00a1 // U+00A1 INVERTED EXCLAMATION MARK
	XK_cent           = 0x00a2 // U+00A2 CENT SIGN
	XK_sterling       = 0x00a3 // U+00A3 POUND SIGN
	XK_currency       = 0x00a4 // U+00A4 CURRENCY SIGN
	XK_yen            = 0x00a5 // U+00A5 YEN SIGN
	XK_brokenbar      = 0x00a6 // U+00A6 BROKEN BAR
	XK_section        = 0x00a7 // U+00A7 SECTION SIGN
	XK_diaeresis      = 0x00a8 // U+00A8 DIAERESIS
	XK_copyright      = 0x00a9 // U+00A9 COPYRIGHT SIGN
	XK_ordfeminine    = 0x00aa // U+00AA FEMININE ORDINAL INDICATOR
	XK_guillemotleft  = 0x00ab // U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
	XK_notsign        = 0x00ac // U+00AC NOT SIGN
	XK_hyphen         = 0x00ad // U+00AD SOFT HYPHEN
	XK_registered     = 0x00ae // U+00AE REGISTERED SIGN
	XK_macron         = 0x00af // U+00AF MACRON
	XK_degree         = 0x00b0 // U+00B0 DEGREE SIGN
	XK_plusminus      = 0x00b1 // U+00B1 PLUS-MINUS SIGN
	XK_twosuperior    = 0x00b2 // U+00B2 SUPERSCRIPT TWO
	XK_threesuperior  = 0x00b3 // U+00B3 SUPERSCRIPT THREE
	XK_acute          = 0x00b4 // U+00B4 ACUTE ACCENT
	XK_mu             = 0x00b5 // U+00B5 MICRO SIGN
	XK_paragraph      = 0x00b6 // U+00B6 PILCROW SIGN
	XK_periodcentered = 0x00b7 // U+00B7 MIDDLE DOT
	XK_cedilla        = 0x00b8 // U+00B8 CEDILLA
	XK_onesuperior    = 0x00b9 // U+00B9 SUPERSCRIPT ONE
	XK_masculine      = 0x00ba // U+00BA MASCULINE ORDINAL INDICATOR
	XK_guillemotright = 0x00bb // U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
	XK_onequarter     = 0x00bc // U+00BC VULGAR FRACTION ONE QUARTER
	XK_onehalf        = 0x00bd // U+00BD VULGAR FRACTION ONE HALF
	XK_threequarters  = 0x00be // U+00BE VULGAR FRACTION THREE QUARTERS
	XK_questiondown   = 0x00bf // U+00BF INVERTED QUESTION MARK
	XK_Agrave         = 0x00c0 // U+00C0 LATIN CAPITAL LETTER A WITH GRAVE
	XK_Aacute         = 0x00c1 // U+00C1 LATIN CAPITAL LETTER A WITH ACUTE
	XK_Acircumflex    = 0x00c2 // U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
	XK_Atilde         = 0x00c3 // U+00C3 LATIN CAPITAL LETTER A WITH TILDE
	XK_Adiaeresis     = 0x00c4 // U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
	XK_Aring          = 0x00c5 // U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
	XK_AE             = 0x00c6 // U+00C6 LATIN CAPITAL LETTER AE
	XK_Ccedilla       = 0x00c7 // U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA
	XK_Egrave         = 0x00c8 // U+00C8 LATIN CAPITAL LETTER E WITH GRAVE
	XK_Eacute         = 0x00c9 // U+00C9 LATIN CAPITAL LETTER E WITH ACUTE
	XK_Ecircumflex    = 0x00ca // U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
	XK_Ediaeresis     = 0x00cb // U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS
	XK_Igrave         = 0x00cc // U+00CC LATIN CAPITAL LETTER I WITH GRAVE
	XK_Iacute         = 0x00cd // U+00CD LATIN CAPITAL LETTER I WITH ACUTE
	XK_Icircumflex    = 0x00ce // U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
	XK_Idiaeresis     = 0x00cf // U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS
	XK_ETH            = 0x00d0 // U+00D0 LATIN CAPITAL LETTER ETH
	XK_Eth            = 0x00d0 // deprecated
	XK_Ntilde         = 0x00d1 // U+00D1 LATIN CAPITAL LETTER N WITH TILDE
	XK_Ograve         = 0x00d2 // U+00D2 LATIN CAPITAL LETTER O WITH GRAVE
	XK_Oacute         = 0x00d3 // U+00D3 LATIN CAPITAL LETTER O WITH ACUTE
	XK_Ocircumflex    = 0x00d4 // U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
	XK_Otilde         = 0x00d5 // U+00D5 LATIN CAPITAL LETTER O WITH TILDE
	XK_Odiaeresis     = 0x00d6 // U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
	XK_multiply       = 0x00d7 // U+00D7 MULTIPLICATION SIGN
	XK_Oslash         = 0x00d8 // U+00D8 LATIN CAPITAL LETTER O WITH STROKE
	XK_Ooblique       = 0x00d8 // U+00D8 LATIN CAPITAL LETTER O WITH STROKE
	XK_Ugrave         = 0x00d9 // U+00D9 LATIN CAPITAL LETTER U WITH GRAVE
	XK_Uacute         = 0x00da // U+00DA LATIN CAPITAL LETTER U WITH ACUTE
	XK_Ucircumflex    = 0x00db // U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
	XK_Udiaeresis     = 0x00dc // U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS
	XK_Yacute         = 0x00dd // U+00DD LATIN CAPITAL LETTER Y WITH ACUTE
	XK_THORN          = 0x00de // U+00DE LATIN CAPITAL LETTER THORN
	XK_Thorn          = 0x00de // deprecated
	XK_ssharp         = 0x00df // U+00DF LATIN SMALL LETTER SHARP S
	XK_agrave         = 0x00e0 // U+00E0 LATIN SMALL LETTER A WITH GRAVE
	XK_aacute         = 0x00e1 // U+00E1 LATIN SMALL LETTER A WITH ACUTE
	XK_acircumflex    = 0x00e2 // U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
	XK_atilde         = 0x00e3 // U+00E3 LATIN SMALL LETTER A WITH TILDE
	XK_adiaeresis     = 0x00e4 // U+00E4 LATIN SMALL LETTER A WITH DIAERESIS
	XK_aring          = 0x00e5 // U+00E5 LATIN SMALL LETTER A WITH RING ABOVE
	XK_ae             = 0x00e6 // U+00E6 LATIN SMALL LETTER AE
	XK_ccedilla       = 0x00e7 // U+00E7 LATIN SMALL LETTER C WITH CEDILLA
	XK_egrave         = 0x00e8 // U+00E8 LATIN SMALL LETTER E WITH GRAVE
	XK_eacute         = 0x00e9 // U+00E9 LATIN SMALL LETTER E WITH ACUTE
	XK_ecircumflex    = 0x00ea // U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
	XK_ediaeresis     = 0x00eb // U+00EB LATIN SMALL LETTER E WITH DIAERESIS
	XK_igrave         = 0x00ec // U+00EC LATIN SMALL LETTER I WITH GRAVE
	XK_iacute         = 0x00ed // U+00ED LATIN SMALL LETTER I WITH ACUTE
	XK_icircumflex    = 0x00ee // U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
	XK_idiaeresis     = 0x00ef // U+00EF LATIN SMALL LETTER I WITH DIAERESIS
	XK_eth            = 0x00f0 // U+00F0 LATIN SMALL LETTER ETH
	XK_ntilde         = 0x00f1 // U+00F1 LATIN SMALL LETTER N WITH TILDE
	XK_ograve         = 0x00f2 // U+00F2 LATIN SMALL LETTER O WITH GRAVE
	XK_oacute         = 0x00f3 // U+00F3 LATIN SMALL LETTER O WITH ACUTE
	XK_ocircumflex    = 0x00f4 // U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
	XK_otilde         = 0x00f5 // U+00F5 LATIN SMALL LETTER O WITH TILDE
	XK_odiaeresis     = 0x00f6 // U+00F6 LATIN SMALL LETTER O WITH DIAERESIS
	XK_division       = 0x00f7 // U+00F7 DIVISION SIGN
	XK_oslash         = 0x00f8 // U+00F8 LATIN SMALL LETTER O WITH STROKE
	XK_ooblique       = 0x00f8 // U+00F8 LATIN SMALL LETTER O WITH STROKE
	XK_ugrave         = 0x00f9 // U+00F9 LATIN SMALL LETTER U WITH GRAVE
	XK_uacute         = 0x00fa // U+00FA LATIN SMALL LETTER U WITH ACUTE
	XK_ucircumflex    = 0x00fb // U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
	XK_udiaeresis     = 0x00fc // U+00FC LATIN SMALL LETTER U WITH DIAERESIS
	XK_yacute         = 0x00fd // U+00FD LATIN SMALL LETTER Y WITH ACUTE
	XK_thorn          = 0x00fe // U+00FE LATIN SMALL LETTER THORN
	XK_ydiaeresis     = 0x00ff // U+00FF LATIN SMALL LETTER Y WITH DIAERESIS

	// Cursor control & motion
	XK_Home      = 0xff50
	XK_Left      = 0xff51 // Move left, left arrow
	XK_Up        = 0xff52 // Move up, up arrow
	XK_Right     = 0xff53 // Move right, right arrow
	XK_Down      = 0xff54 // Move down, down arrow
	XK_Prior     = 0xff55 // Prior, previous
	XK_Page_Up   = 0xff55
	XK_Next      = 0xff56 // Next
	XK_Page_Down = 0xff56
	XK_End       = 0xff57 // EOL
	XK_Begin     = 0xff58 // BOL
)