PageRenderTime 73ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 1ms

/data/keys.lisp

http://github.com/pyb/zen
Lisp | 1278 lines | 1186 code | 12 blank | 80 comment | 0 complexity | 8218f3fecf4d9408e55029b8b4b9b7c1 MD5 | raw file
Possible License(s): GPL-3.0
  1. ;; data from evdev.c perhaps copyrighted like so:
  2. #|
  3. /*
  4. * Copyright © 2004-2008 Red Hat, Inc.
  5. *
  6. * Permission to use, copy, modify, distribute, and sell this software
  7. * and its documentation for any purpose is hereby granted without
  8. * fee, provided that the above copyright notice appear in all copies
  9. * and that both that copyright notice and this permission notice
  10. * appear in supporting documentation, and that the name of Red Hat
  11. * not be used in advertising or publicity pertaining to distribution
  12. * of the software without specific, written prior permission. Red
  13. * Hat makes no representations about the suitability of this software
  14. * for any purpose. It is provided "as is" without express or implied
  15. * warranty.
  16. *
  17. * THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  18. * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
  19. * NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  20. * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  21. * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
  22. * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  23. * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  24. *
  25. */
  26. |#
  27. ;; data from x/usr/include/X11/keysymdef.h perhaps copyrighted like so:
  28. #|
  29. Copyright 1987, 1994, 1998 The Open Group
  30. Permission to use, copy, modify, distribute, and sell this software and its
  31. documentation for any purpose is hereby granted without fee, provided that
  32. the above copyright notice appear in all copies and that both that
  33. copyright notice and this permission notice appear in supporting
  34. documentation.
  35. The above copyright notice and this permission notice shall be included
  36. in all copies or substantial portions of the Software.
  37. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  38. OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  39. MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  40. IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
  41. OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  42. ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  43. OTHER DEALINGS IN THE SOFTWARE.
  44. Except as contained in this notice, the name of The Open Group shall
  45. not be used in advertising or otherwise to promote the sale, use or
  46. other dealings in this Software without prior written authorization
  47. from The Open Group.
  48. Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts
  49. All Rights Reserved
  50. Permission to use, copy, modify, and distribute this software and its
  51. documentation for any purpose and without fee is hereby granted,
  52. provided that the above copyright notice appear in all copies and that
  53. both that copyright notice and this permission notice appear in
  54. supporting documentation, and that the name of Digital not be
  55. used in advertising or publicity pertaining to distribution of the
  56. software without specific, written prior permission.
  57. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  58. ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  59. DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  60. ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  61. WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  62. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  63. SOFTWARE.
  64. |#
  65. (defconstant +scancode-to-keys+
  66. '(
  67. (#x00 :NoSymbol :NoSymbol)
  68. (#x01 :XK_Escape :NoSymbol)
  69. (#x02 :XK_1 :XK_exclam)
  70. (#x03 :XK_2 :XK_at)
  71. (#x04 :XK_3 :XK_numbersign)
  72. (#x05 :XK_4 :XK_dollar)
  73. (#x06 :XK_5 :XK_percent)
  74. (#x07 :XK_6 :XK_asciicircum)
  75. (#x08 :XK_7 :XK_ampersand)
  76. (#x09 :XK_8 :XK_asterisk)
  77. (#x0a :XK_9 :XK_parenleft)
  78. (#x0b :XK_0 :XK_parenright)
  79. (#x0c :XK_minus :XK_underscore)
  80. (#x0d :XK_equal :XK_plus)
  81. (#x0e :XK_BackSpace :NoSymbol)
  82. (#x0f :XK_Tab :XK_ISO_Left_Tab)
  83. (#x10 :XK_Q :NoSymbol)
  84. (#x11 :XK_W :NoSymbol)
  85. (#x12 :XK_E :NoSymbol)
  86. (#x13 :XK_R :NoSymbol)
  87. (#x14 :XK_T :NoSymbol)
  88. (#x15 :XK_Y :NoSymbol)
  89. (#x16 :XK_U :NoSymbol)
  90. (#x17 :XK_I :NoSymbol)
  91. (#x18 :XK_O :NoSymbol)
  92. (#x19 :XK_P :NoSymbol)
  93. (#x1a :XK_bracketleft :XK_braceleft)
  94. (#x1b :XK_bracketright :XK_braceright)
  95. (#x1c :XK_Return :NoSymbol)
  96. (#x1d :XK_Control_L :NoSymbol)
  97. (#x1e :XK_A :NoSymbol)
  98. (#x1f :XK_S :NoSymbol)
  99. (#x20 :XK_D :NoSymbol)
  100. (#x21 :XK_F :NoSymbol)
  101. (#x22 :XK_G :NoSymbol)
  102. (#x23 :XK_H :NoSymbol)
  103. (#x24 :XK_J :NoSymbol)
  104. (#x25 :XK_K :NoSymbol)
  105. (#x26 :XK_L :NoSymbol)
  106. (#x27 :XK_semicolon :XK_colon)
  107. (#x28 :XK_quoteright :XK_quotedbl)
  108. (#x29 :XK_quoteleft :XK_asciitilde)
  109. (#x2a :XK_Shift_L :NoSymbol)
  110. (#x2b :XK_backslash :XK_bar)
  111. (#x2c :XK_Z :NoSymbol)
  112. (#x2d :XK_X :NoSymbol)
  113. (#x2e :XK_C :NoSymbol)
  114. (#x2f :XK_V :NoSymbol)
  115. (#x30 :XK_B :NoSymbol)
  116. (#x31 :XK_N :NoSymbol)
  117. (#x32 :XK_M :NoSymbol)
  118. (#x33 :XK_comma :XK_less)
  119. (#x34 :XK_period :XK_greater)
  120. (#x35 :XK_slash :XK_question)
  121. (#x36 :XK_Shift_R :NoSymbol)
  122. (#x37 :XK_KP_Multiply :NoSymbol)
  123. (#x38 :XK_Alt_L :XK_Meta_L)
  124. (#x39 :XK_space :NoSymbol)
  125. (#x3a :XK_Caps_Lock :NoSymbol)
  126. (#x3b :XK_F1 :NoSymbol)
  127. (#x3c :XK_F2 :NoSymbol)
  128. (#x3d :XK_F3 :NoSymbol)
  129. (#x3e :XK_F4 :NoSymbol)
  130. (#x3f :XK_F5 :NoSymbol)
  131. (#x40 :XK_F6 :NoSymbol)
  132. (#x41 :XK_F7 :NoSymbol)
  133. (#x42 :XK_F8 :NoSymbol)
  134. (#x43 :XK_F9 :NoSymbol)
  135. (#x44 :XK_F10 :NoSymbol)
  136. (#x45 :XK_Num_Lock :NoSymbol)
  137. (#x46 :XK_Scroll_Lock :NoSymbol)
  138. (#x47 :XK_KP_Home :XK_KP_7)
  139. (#x48 :XK_KP_Up :XK_KP_8)
  140. (#x49 :XK_KP_Prior :XK_KP_9)
  141. (#x4a :XK_KP_Subtract :NoSymbol)
  142. (#x4b :XK_KP_Left :XK_KP_4)
  143. (#x4c :XK_KP_Begin :XK_KP_5)
  144. (#x4d :XK_KP_Right :XK_KP_6)
  145. (#x4e :XK_KP_Add :NoSymbol)
  146. (#x4f :XK_KP_End :XK_KP_1)
  147. (#x50 :XK_KP_Down :XK_KP_2)
  148. (#x51 :XK_KP_Next :XK_KP_3)
  149. (#x52 :XK_KP_Insert :XK_KP_0)
  150. (#x53 :XK_KP_Delete :XK_KP_Decimal)
  151. (#x54 :NoSymbol :NoSymbol)
  152. (#x55 :XK_F13 :NoSymbol)
  153. (#x56 :XK_less :XK_greater)
  154. (#x57 :XK_F11 :NoSymbol)
  155. (#x58 :XK_F12 :NoSymbol)
  156. (#x59 :XK_F14 :NoSymbol)
  157. (#x5a :XK_F15 :NoSymbol)
  158. (#x5b :XK_F16 :NoSymbol)
  159. (#x5c :XK_F17 :NoSymbol)
  160. (#x5d :XK_F18 :NoSymbol)
  161. (#x5e :XK_F19 :NoSymbol)
  162. (#x5f :XK_F20 :NoSymbol)
  163. (#x60 :XK_KP_Enter :NoSymbol)
  164. (#x61 :XK_Control_R :NoSymbol)
  165. (#x62 :XK_KP_Divide :NoSymbol)
  166. (#x63 :XK_Print :XK_Sys_Req)
  167. (#x64 :XK_Alt_R :XK_Meta_R)
  168. (#x65 :NoSymbol :NoSymbol)
  169. (#x66 :XK_Home :NoSymbol)
  170. (#x67 :XK_Up :NoSymbol)
  171. (#x68 :XK_Prior :NoSymbol)
  172. (#x69 :XK_Left :NoSymbol)
  173. (#x6a :XK_Right :NoSymbol)
  174. (#x6b :XK_End :NoSymbol)
  175. (#x6c :XK_Down :NoSymbol)
  176. (#x6d :XK_Next :NoSymbol)
  177. (#x6e :XK_Insert :NoSymbol)
  178. (#x6f :XK_Delete :NoSymbol)
  179. (#x70 :NoSymbol :NoSymbol)
  180. (#x71 :NoSymbol :NoSymbol)
  181. (#x72 :NoSymbol :NoSymbol)
  182. (#x73 :NoSymbol :NoSymbol)
  183. (#x74 :NoSymbol :NoSymbol)
  184. (#x75 :XK_KP_Equal :NoSymbol)
  185. (#x76 :NoSymbol :NoSymbol)
  186. (#x77 :NoSymbol :NoSymbol)
  187. (#x78 :XK_F21 :NoSymbol)
  188. (#x79 :XK_F22 :NoSymbol)
  189. (#x7a :XK_F23 :NoSymbol)
  190. (#x7b :XK_F24 :NoSymbol)
  191. (#x7c :XK_KP_Separator :NoSymbol)
  192. (#x7d :XK_Meta_L :NoSymbol)
  193. (#x7e :XK_Meta_R :NoSymbol)
  194. (#x7f :XK_Multi_key :NoSymbol)
  195. (#x80 :NoSymbol :NoSymbol)
  196. (#x81 :NoSymbol :NoSymbol)
  197. (#x82 :NoSymbol :NoSymbol)
  198. (#x83 :NoSymbol :NoSymbol)
  199. (#x84 :NoSymbol :NoSymbol)
  200. (#x85 :NoSymbol :NoSymbol)
  201. (#x86 :NoSymbol :NoSymbol)
  202. (#x87 :NoSymbol :NoSymbol)
  203. (#x88 :NoSymbol :NoSymbol)
  204. (#x89 :NoSymbol :NoSymbol)
  205. (#x8a :NoSymbol :NoSymbol)
  206. (#x8b :NoSymbol :NoSymbol)
  207. (#x8c :NoSymbol :NoSymbol)
  208. (#x8d :NoSymbol :NoSymbol)
  209. (#x8e :NoSymbol :NoSymbol)
  210. (#x8f :NoSymbol :NoSymbol)
  211. (#x90 :NoSymbol :NoSymbol)
  212. (#x91 :NoSymbol :NoSymbol)
  213. (#x92 :NoSymbol :NoSymbol)
  214. (#x93 :NoSymbol :NoSymbol)
  215. (#x94 :NoSymbol :NoSymbol)
  216. (#x95 :NoSymbol :NoSymbol)
  217. (#x96 :NoSymbol :NoSymbol)
  218. (#x97 :NoSymbol :NoSymbol)
  219. (#x98 :NoSymbol :NoSymbol)
  220. (#x99 :NoSymbol :NoSymbol)
  221. (#x9a :NoSymbol :NoSymbol)
  222. (#x9b :NoSymbol :NoSymbol)
  223. (#x9c :NoSymbol :NoSymbol)
  224. (#x9d :NoSymbol :NoSymbol)
  225. (#x9e :NoSymbol :NoSymbol)
  226. (#x9f :NoSymbol :NoSymbol)
  227. (#xa0 :NoSymbol :NoSymbol)
  228. (#xa1 :NoSymbol :NoSymbol)
  229. (#xa2 :NoSymbol :NoSymbol)
  230. (#xa3 :NoSymbol :NoSymbol)
  231. (#xa4 :NoSymbol :NoSymbol)
  232. (#xa5 :NoSymbol :NoSymbol)
  233. (#xa6 :NoSymbol :NoSymbol)
  234. (#xa7 :NoSymbol :NoSymbol)
  235. (#xa8 :NoSymbol :NoSymbol)
  236. (#xa9 :NoSymbol :NoSymbol)
  237. (#xaa :NoSymbol :NoSymbol)
  238. (#xab :NoSymbol :NoSymbol)
  239. (#xac :NoSymbol :NoSymbol)
  240. (#xad :NoSymbol :NoSymbol)
  241. (#xae :NoSymbol :NoSymbol)
  242. (#xaf :NoSymbol :NoSymbol)
  243. (#xb0 :NoSymbol :NoSymbol)
  244. (#xb1 :NoSymbol :NoSymbol)
  245. (#xb2 :NoSymbol :NoSymbol)
  246. (#xb3 :NoSymbol :NoSymbol)
  247. (#xb4 :NoSymbol :NoSymbol)
  248. (#xb5 :NoSymbol :NoSymbol)
  249. (#xb6 :NoSymbol :NoSymbol)
  250. (#xb7 :NoSymbol :NoSymbol)
  251. (#xb8 :NoSymbol :NoSymbol)
  252. (#xb9 :NoSymbol :NoSymbol)
  253. (#xba :NoSymbol :NoSymbol)
  254. (#xbb :NoSymbol :NoSymbol)
  255. (#xbc :NoSymbol :NoSymbol)
  256. (#xbd :NoSymbol :NoSymbol)
  257. (#xbe :NoSymbol :NoSymbol)
  258. (#xbf :NoSymbol :NoSymbol)
  259. (#xc0 :NoSymbol :NoSymbol)
  260. (#xc1 :NoSymbol :NoSymbol)
  261. (#xc2 :NoSymbol :NoSymbol)
  262. (#xc3 :NoSymbol :NoSymbol)
  263. (#xc4 :NoSymbol :NoSymbol)
  264. (#xc5 :NoSymbol :NoSymbol)
  265. (#xc6 :NoSymbol :NoSymbol)
  266. (#xc7 :NoSymbol :NoSymbol)
  267. (#xc8 :NoSymbol :NoSymbol)
  268. (#xc9 :NoSymbol :NoSymbol)
  269. (#xca :NoSymbol :NoSymbol)
  270. (#xcb :NoSymbol :NoSymbol)
  271. (#xcc :NoSymbol :NoSymbol)
  272. (#xcd :NoSymbol :NoSymbol)
  273. (#xce :NoSymbol :NoSymbol)
  274. (#xcf :NoSymbol :NoSymbol)
  275. (#xd0 :NoSymbol :NoSymbol)
  276. (#xd1 :NoSymbol :NoSymbol)
  277. (#xd2 :NoSymbol :NoSymbol)
  278. (#xd3 :NoSymbol :NoSymbol)
  279. (#xd4 :NoSymbol :NoSymbol)
  280. (#xd5 :NoSymbol :NoSymbol)
  281. (#xd6 :NoSymbol :NoSymbol)
  282. (#xd7 :NoSymbol :NoSymbol)
  283. (#xd8 :NoSymbol :NoSymbol)
  284. (#xd9 :NoSymbol :NoSymbol)
  285. (#xda :NoSymbol :NoSymbol)
  286. (#xdb :NoSymbol :NoSymbol)
  287. (#xdc :NoSymbol :NoSymbol)
  288. (#xdd :NoSymbol :NoSymbol)
  289. (#xde :NoSymbol :NoSymbol)
  290. (#xdf :NoSymbol :NoSymbol)
  291. (#xe0 :NoSymbol :NoSymbol)
  292. (#xe1 :NoSymbol :NoSymbol)
  293. (#xe2 :NoSymbol :NoSymbol)
  294. (#xe3 :NoSymbol :NoSymbol)
  295. (#xe4 :NoSymbol :NoSymbol)
  296. (#xe5 :NoSymbol :NoSymbol)
  297. (#xe6 :NoSymbol :NoSymbol)
  298. (#xe7 :NoSymbol :NoSymbol)
  299. (#xe8 :NoSymbol :NoSymbol)
  300. (#xe9 :NoSymbol :NoSymbol)
  301. (#xea :NoSymbol :NoSymbol)
  302. (#xeb :NoSymbol :NoSymbol)
  303. (#xec :NoSymbol :NoSymbol)
  304. (#xed :NoSymbol :NoSymbol)
  305. (#xee :NoSymbol :NoSymbol)
  306. (#xef :NoSymbol :NoSymbol)
  307. (#xf0 :NoSymbol :NoSymbol)
  308. (#xf1 :NoSymbol :NoSymbol)
  309. (#xf2 :NoSymbol :NoSymbol)
  310. (#xf3 :NoSymbol :NoSymbol)
  311. (#xf4 :NoSymbol :NoSymbol)
  312. (#xf5 :NoSymbol :NoSymbol)
  313. (#xf6 :NoSymbol :NoSymbol)
  314. (#xf7 :NoSymbol :NoSymbol)
  315. ))
  316. (defconstant +keysyms+
  317. '(
  318. (:NoSymbol #x00000000)
  319. (:XK_VoidSymbol #xffffff)
  320. (:XK_BackSpace #xff08)
  321. (:XK_Tab #xff09)
  322. (:XK_Linefeed #xff0a)
  323. (:XK_Clear #xff0b)
  324. (:XK_Return #xff0d)
  325. (:XK_Pause #xff13)
  326. (:XK_Scroll_Lock #xff14)
  327. (:XK_Sys_Req #xff15)
  328. (:XK_Escape #xff1b)
  329. (:XK_Delete #xffff)
  330. (:XK_Multi_key #xff20)
  331. (:XK_Codeinput #xff37)
  332. (:XK_SingleCandidate #xff3c)
  333. (:XK_MultipleCandidate #xff3d)
  334. (:XK_PreviousCandidate #xff3e)
  335. (:XK_Kanji #xff21)
  336. (:XK_Muhenkan #xff22)
  337. (:XK_Henkan_Mode #xff23)
  338. (:XK_Henkan #xff23)
  339. (:XK_Romaji #xff24)
  340. (:XK_Hiragana #xff25)
  341. (:XK_Katakana #xff26)
  342. (:XK_Hiragana_Katakana #xff27)
  343. (:XK_Zenkaku #xff28)
  344. (:XK_Hankaku #xff29)
  345. (:XK_Zenkaku_Hankaku #xff2a)
  346. (:XK_Touroku #xff2b)
  347. (:XK_Massyo #xff2c)
  348. (:XK_Kana_Lock #xff2d)
  349. (:XK_Kana_Shift #xff2e)
  350. (:XK_Eisu_Shift #xff2f)
  351. (:XK_Eisu_toggle #xff30)
  352. (:XK_Kanji_Bangou #xff37)
  353. (:XK_Zen_Koho #xff3d)
  354. (:XK_Mae_Koho #xff3e)
  355. (:XK_Home #xff50)
  356. (:XK_Left #xff51)
  357. (:XK_Up #xff52)
  358. (:XK_Right #xff53)
  359. (:XK_Down #xff54)
  360. (:XK_Prior #xff55)
  361. (:XK_Page_Up #xff55)
  362. (:XK_Next #xff56)
  363. (:XK_Page_Down #xff56)
  364. (:XK_End #xff57)
  365. (:XK_Begin #xff58)
  366. (:XK_Select #xff60)
  367. (:XK_Print #xff61)
  368. (:XK_Execute #xff62)
  369. (:XK_Insert #xff63)
  370. (:XK_Undo #xff65)
  371. (:XK_Redo #xff66)
  372. (:XK_Menu #xff67)
  373. (:XK_Find #xff68)
  374. (:XK_Cancel #xff69)
  375. (:XK_Help #xff6a)
  376. (:XK_Break #xff6b)
  377. (:XK_Mode_switch #xff7e)
  378. (:XK_script_switch #xff7e)
  379. (:XK_Num_Lock #xff7f)
  380. (:XK_KP_Space #xff80)
  381. (:XK_KP_Tab #xff89)
  382. (:XK_KP_Enter #xff8d)
  383. (:XK_KP_F1 #xff91)
  384. (:XK_KP_F2 #xff92)
  385. (:XK_KP_F3 #xff93)
  386. (:XK_KP_F4 #xff94)
  387. (:XK_KP_Home #xff95)
  388. (:XK_KP_Left #xff96)
  389. (:XK_KP_Up #xff97)
  390. (:XK_KP_Right #xff98)
  391. (:XK_KP_Down #xff99)
  392. (:XK_KP_Prior #xff9a)
  393. (:XK_KP_Page_Up #xff9a)
  394. (:XK_KP_Next #xff9b)
  395. (:XK_KP_Page_Down #xff9b)
  396. (:XK_KP_End #xff9c)
  397. (:XK_KP_Begin #xff9d)
  398. (:XK_KP_Insert #xff9e)
  399. (:XK_KP_Delete #xff9f)
  400. (:XK_KP_Equal #xffbd)
  401. (:XK_KP_Multiply #xffaa)
  402. (:XK_KP_Add #xffab)
  403. (:XK_KP_Separator #xffac)
  404. (:XK_KP_Subtract #xffad)
  405. (:XK_KP_Decimal #xffae)
  406. (:XK_KP_Divide #xffaf)
  407. (:XK_KP_0 #xffb0)
  408. (:XK_KP_1 #xffb1)
  409. (:XK_KP_2 #xffb2)
  410. (:XK_KP_3 #xffb3)
  411. (:XK_KP_4 #xffb4)
  412. (:XK_KP_5 #xffb5)
  413. (:XK_KP_6 #xffb6)
  414. (:XK_KP_7 #xffb7)
  415. (:XK_KP_8 #xffb8)
  416. (:XK_KP_9 #xffb9)
  417. (:XK_F1 #xffbe)
  418. (:XK_F2 #xffbf)
  419. (:XK_F3 #xffc0)
  420. (:XK_F4 #xffc1)
  421. (:XK_F5 #xffc2)
  422. (:XK_F6 #xffc3)
  423. (:XK_F7 #xffc4)
  424. (:XK_F8 #xffc5)
  425. (:XK_F9 #xffc6)
  426. (:XK_F10 #xffc7)
  427. (:XK_F11 #xffc8)
  428. (:XK_L1 #xffc8)
  429. (:XK_F12 #xffc9)
  430. (:XK_L2 #xffc9)
  431. (:XK_F13 #xffca)
  432. (:XK_L3 #xffca)
  433. (:XK_F14 #xffcb)
  434. (:XK_L4 #xffcb)
  435. (:XK_F15 #xffcc)
  436. (:XK_L5 #xffcc)
  437. (:XK_F16 #xffcd)
  438. (:XK_L6 #xffcd)
  439. (:XK_F17 #xffce)
  440. (:XK_L7 #xffce)
  441. (:XK_F18 #xffcf)
  442. (:XK_L8 #xffcf)
  443. (:XK_F19 #xffd0)
  444. (:XK_L9 #xffd0)
  445. (:XK_F20 #xffd1)
  446. (:XK_L10 #xffd1)
  447. (:XK_F21 #xffd2)
  448. (:XK_R1 #xffd2)
  449. (:XK_F22 #xffd3)
  450. (:XK_R2 #xffd3)
  451. (:XK_F23 #xffd4)
  452. (:XK_R3 #xffd4)
  453. (:XK_F24 #xffd5)
  454. (:XK_R4 #xffd5)
  455. (:XK_F25 #xffd6)
  456. (:XK_R5 #xffd6)
  457. (:XK_F26 #xffd7)
  458. (:XK_R6 #xffd7)
  459. (:XK_F27 #xffd8)
  460. (:XK_R7 #xffd8)
  461. (:XK_F28 #xffd9)
  462. (:XK_R8 #xffd9)
  463. (:XK_F29 #xffda)
  464. (:XK_R9 #xffda)
  465. (:XK_F30 #xffdb)
  466. (:XK_R10 #xffdb)
  467. (:XK_F31 #xffdc)
  468. (:XK_R11 #xffdc)
  469. (:XK_F32 #xffdd)
  470. (:XK_R12 #xffdd)
  471. (:XK_F33 #xffde)
  472. (:XK_R13 #xffde)
  473. (:XK_F34 #xffdf)
  474. (:XK_R14 #xffdf)
  475. (:XK_F35 #xffe0)
  476. (:XK_R15 #xffe0)
  477. (:XK_Shift_L #xffe1)
  478. (:XK_Shift_R #xffe2)
  479. (:XK_Control_L #xffe3)
  480. (:XK_Control_R #xffe4)
  481. (:XK_Caps_Lock #xffe5)
  482. (:XK_Shift_Lock #xffe6)
  483. (:XK_Meta_L #xffe7)
  484. (:XK_Meta_R #xffe8)
  485. (:XK_Alt_L #xffe9)
  486. (:XK_Alt_R #xffea)
  487. (:XK_Super_L #xffeb)
  488. (:XK_Super_R #xffec)
  489. (:XK_Hyper_L #xffed)
  490. (:XK_Hyper_R #xffee)
  491. (:XK_ISO_Lock #xfe01)
  492. (:XK_ISO_Level2_Latch #xfe02)
  493. (:XK_ISO_Level3_Shift #xfe03)
  494. (:XK_ISO_Level3_Latch #xfe04)
  495. (:XK_ISO_Level3_Lock #xfe05)
  496. (:XK_ISO_Level5_Shift #xfe11)
  497. (:XK_ISO_Level5_Latch #xfe12)
  498. (:XK_ISO_Level5_Lock #xfe13)
  499. (:XK_ISO_Group_Shift #xff7e)
  500. (:XK_ISO_Group_Latch #xfe06)
  501. (:XK_ISO_Group_Lock #xfe07)
  502. (:XK_ISO_Next_Group #xfe08)
  503. (:XK_ISO_Next_Group_Lock #xfe09)
  504. (:XK_ISO_Prev_Group #xfe0a)
  505. (:XK_ISO_Prev_Group_Lock #xfe0b)
  506. (:XK_ISO_First_Group #xfe0c)
  507. (:XK_ISO_First_Group_Lock #xfe0d)
  508. (:XK_ISO_Last_Group #xfe0e)
  509. (:XK_ISO_Last_Group_Lock #xfe0f)
  510. (:XK_ISO_Left_Tab #xfe20)
  511. (:XK_ISO_Move_Line_Up #xfe21)
  512. (:XK_ISO_Move_Line_Down #xfe22)
  513. (:XK_ISO_Partial_Line_Up #xfe23)
  514. (:XK_ISO_Partial_Line_Down #xfe24)
  515. (:XK_ISO_Partial_Space_Left #xfe25)
  516. (:XK_ISO_Partial_Space_Right #xfe26)
  517. (:XK_ISO_Set_Margin_Left #xfe27)
  518. (:XK_ISO_Set_Margin_Right #xfe28)
  519. (:XK_ISO_Release_Margin_Left #xfe29)
  520. (:XK_ISO_Release_Margin_Right #xfe2a)
  521. (:XK_ISO_Release_Both_Margins #xfe2b)
  522. (:XK_ISO_Fast_Cursor_Left #xfe2c)
  523. (:XK_ISO_Fast_Cursor_Right #xfe2d)
  524. (:XK_ISO_Fast_Cursor_Up #xfe2e)
  525. (:XK_ISO_Fast_Cursor_Down #xfe2f)
  526. (:XK_ISO_Continuous_Underline #xfe30)
  527. (:XK_ISO_Discontinuous_Underline #xfe31)
  528. (:XK_ISO_Emphasize #xfe32)
  529. (:XK_ISO_Center_Object #xfe33)
  530. (:XK_ISO_Enter #xfe34)
  531. (:XK_dead_grave #xfe50)
  532. (:XK_dead_acute #xfe51)
  533. (:XK_dead_circumflex #xfe52)
  534. (:XK_dead_tilde #xfe53)
  535. (:XK_dead_perispomeni #xfe53)
  536. (:XK_dead_macron #xfe54)
  537. (:XK_dead_breve #xfe55)
  538. (:XK_dead_abovedot #xfe56)
  539. (:XK_dead_diaeresis #xfe57)
  540. (:XK_dead_abovering #xfe58)
  541. (:XK_dead_doubleacute #xfe59)
  542. (:XK_dead_caron #xfe5a)
  543. (:XK_dead_cedilla #xfe5b)
  544. (:XK_dead_ogonek #xfe5c)
  545. (:XK_dead_iota #xfe5d)
  546. (:XK_dead_voiced_sound #xfe5e)
  547. (:XK_dead_semivoiced_sound #xfe5f)
  548. (:XK_dead_belowdot #xfe60)
  549. (:XK_dead_hook #xfe61)
  550. (:XK_dead_horn #xfe62)
  551. (:XK_dead_stroke #xfe63)
  552. (:XK_dead_abovecomma #xfe64)
  553. (:XK_dead_psili #xfe64)
  554. (:XK_dead_abovereversedcomma #xfe65)
  555. (:XK_dead_dasia #xfe65)
  556. (:XK_dead_doublegrave #xfe66)
  557. (:XK_dead_belowring #xfe67)
  558. (:XK_dead_belowmacron #xfe68)
  559. (:XK_dead_belowcircumflex #xfe69)
  560. (:XK_dead_belowtilde #xfe6a)
  561. (:XK_dead_belowbreve #xfe6b)
  562. (:XK_dead_belowdiaeresis #xfe6c)
  563. (:XK_dead_invertedbreve #xfe6d)
  564. (:XK_dead_belowcomma #xfe6e)
  565. (:XK_dead_currency #xfe6f)
  566. (:XK_dead_a #xfe80)
  567. (:XK_dead_A #xfe81)
  568. (:XK_dead_e #xfe82)
  569. (:XK_dead_E #xfe83)
  570. (:XK_dead_i #xfe84)
  571. (:XK_dead_I #xfe85)
  572. (:XK_dead_o #xfe86)
  573. (:XK_dead_O #xfe87)
  574. (:XK_dead_u #xfe88)
  575. (:XK_dead_U #xfe89)
  576. (:XK_dead_small_schwa #xfe8a)
  577. (:XK_dead_capital_schwa #xfe8b)
  578. (:XK_First_Virtual_Screen #xfed0)
  579. (:XK_Prev_Virtual_Screen #xfed1)
  580. (:XK_Next_Virtual_Screen #xfed2)
  581. (:XK_Last_Virtual_Screen #xfed4)
  582. (:XK_Terminate_Server #xfed5)
  583. (:XK_AccessX_Enable #xfe70)
  584. (:XK_AccessX_Feedback_Enable #xfe71)
  585. (:XK_RepeatKeys_Enable #xfe72)
  586. (:XK_SlowKeys_Enable #xfe73)
  587. (:XK_BounceKeys_Enable #xfe74)
  588. (:XK_StickyKeys_Enable #xfe75)
  589. (:XK_MouseKeys_Enable #xfe76)
  590. (:XK_MouseKeys_Accel_Enable #xfe77)
  591. (:XK_Overlay1_Enable #xfe78)
  592. (:XK_Overlay2_Enable #xfe79)
  593. (:XK_AudibleBell_Enable #xfe7a)
  594. (:XK_Pointer_Left #xfee0)
  595. (:XK_Pointer_Right #xfee1)
  596. (:XK_Pointer_Up #xfee2)
  597. (:XK_Pointer_Down #xfee3)
  598. (:XK_Pointer_UpLeft #xfee4)
  599. (:XK_Pointer_UpRight #xfee5)
  600. (:XK_Pointer_DownLeft #xfee6)
  601. (:XK_Pointer_DownRight #xfee7)
  602. (:XK_Pointer_Button_Dflt #xfee8)
  603. (:XK_Pointer_Button1 #xfee9)
  604. (:XK_Pointer_Button2 #xfeea)
  605. (:XK_Pointer_Button3 #xfeeb)
  606. (:XK_Pointer_Button4 #xfeec)
  607. (:XK_Pointer_Button5 #xfeed)
  608. (:XK_Pointer_DblClick_Dflt #xfeee)
  609. (:XK_Pointer_DblClick1 #xfeef)
  610. (:XK_Pointer_DblClick2 #xfef0)
  611. (:XK_Pointer_DblClick3 #xfef1)
  612. (:XK_Pointer_DblClick4 #xfef2)
  613. (:XK_Pointer_DblClick5 #xfef3)
  614. (:XK_Pointer_Drag_Dflt #xfef4)
  615. (:XK_Pointer_Drag1 #xfef5)
  616. (:XK_Pointer_Drag2 #xfef6)
  617. (:XK_Pointer_Drag3 #xfef7)
  618. (:XK_Pointer_Drag4 #xfef8)
  619. (:XK_Pointer_Drag5 #xfefd)
  620. (:XK_Pointer_EnableKeys #xfef9)
  621. (:XK_Pointer_Accelerate #xfefa)
  622. (:XK_Pointer_DfltBtnNext #xfefb)
  623. (:XK_Pointer_DfltBtnPrev #xfefc)
  624. (:XK_3270_Duplicate #xfd01)
  625. (:XK_3270_FieldMark #xfd02)
  626. (:XK_3270_Right2 #xfd03)
  627. (:XK_3270_Left2 #xfd04)
  628. (:XK_3270_BackTab #xfd05)
  629. (:XK_3270_EraseEOF #xfd06)
  630. (:XK_3270_EraseInput #xfd07)
  631. (:XK_3270_Reset #xfd08)
  632. (:XK_3270_Quit #xfd09)
  633. (:XK_3270_PA1 #xfd0a)
  634. (:XK_3270_PA2 #xfd0b)
  635. (:XK_3270_PA3 #xfd0c)
  636. (:XK_3270_Test #xfd0d)
  637. (:XK_3270_Attn #xfd0e)
  638. (:XK_3270_CursorBlink #xfd0f)
  639. (:XK_3270_AltCursor #xfd10)
  640. (:XK_3270_KeyClick #xfd11)
  641. (:XK_3270_Jump #xfd12)
  642. (:XK_3270_Ident #xfd13)
  643. (:XK_3270_Rule #xfd14)
  644. (:XK_3270_Copy #xfd15)
  645. (:XK_3270_Play #xfd16)
  646. (:XK_3270_Setup #xfd17)
  647. (:XK_3270_Record #xfd18)
  648. (:XK_3270_ChangeScreen #xfd19)
  649. (:XK_3270_DeleteWord #xfd1a)
  650. (:XK_3270_ExSelect #xfd1b)
  651. (:XK_3270_CursorSelect #xfd1c)
  652. (:XK_3270_PrintScreen #xfd1d)
  653. (:XK_3270_Enter #xfd1e)
  654. (:XK_space #x0020)
  655. (:XK_exclam #x0021)
  656. (:XK_quotedbl #x0022)
  657. (:XK_numbersign #x0023)
  658. (:XK_dollar #x0024)
  659. (:XK_percent #x0025)
  660. (:XK_ampersand #x0026)
  661. (:XK_apostrophe #x0027)
  662. (:XK_quoteright #x0027)
  663. (:XK_parenleft #x0028)
  664. (:XK_parenright #x0029)
  665. (:XK_asterisk #x002a)
  666. (:XK_plus #x002b)
  667. (:XK_comma #x002c)
  668. (:XK_minus #x002d)
  669. (:XK_period #x002e)
  670. (:XK_slash #x002f)
  671. (:XK_0 #x0030)
  672. (:XK_1 #x0031)
  673. (:XK_2 #x0032)
  674. (:XK_3 #x0033)
  675. (:XK_4 #x0034)
  676. (:XK_5 #x0035)
  677. (:XK_6 #x0036)
  678. (:XK_7 #x0037)
  679. (:XK_8 #x0038)
  680. (:XK_9 #x0039)
  681. (:XK_colon #x003a)
  682. (:XK_semicolon #x003b)
  683. (:XK_less #x003c)
  684. (:XK_equal #x003d)
  685. (:XK_greater #x003e)
  686. (:XK_question #x003f)
  687. (:XK_at #x0040)
  688. (:XK_A #x0041)
  689. (:XK_B #x0042)
  690. (:XK_C #x0043)
  691. (:XK_D #x0044)
  692. (:XK_E #x0045)
  693. (:XK_F #x0046)
  694. (:XK_G #x0047)
  695. (:XK_H #x0048)
  696. (:XK_I #x0049)
  697. (:XK_J #x004a)
  698. (:XK_K #x004b)
  699. (:XK_L #x004c)
  700. (:XK_M #x004d)
  701. (:XK_N #x004e)
  702. (:XK_O #x004f)
  703. (:XK_P #x0050)
  704. (:XK_Q #x0051)
  705. (:XK_R #x0052)
  706. (:XK_S #x0053)
  707. (:XK_T #x0054)
  708. (:XK_U #x0055)
  709. (:XK_V #x0056)
  710. (:XK_W #x0057)
  711. (:XK_X #x0058)
  712. (:XK_Y #x0059)
  713. (:XK_Z #x005a)
  714. (:XK_bracketleft #x005b)
  715. (:XK_backslash #x005c)
  716. (:XK_bracketright #x005d)
  717. (:XK_asciicircum #x005e)
  718. (:XK_underscore #x005f)
  719. (:XK_grave #x0060)
  720. (:XK_quoteleft #x0060)
  721. (:XK_a #x0061)
  722. (:XK_b #x0062)
  723. (:XK_c #x0063)
  724. (:XK_d #x0064)
  725. (:XK_e #x0065)
  726. (:XK_f #x0066)
  727. (:XK_g #x0067)
  728. (:XK_h #x0068)
  729. (:XK_i #x0069)
  730. (:XK_j #x006a)
  731. (:XK_k #x006b)
  732. (:XK_l #x006c)
  733. (:XK_m #x006d)
  734. (:XK_n #x006e)
  735. (:XK_o #x006f)
  736. (:XK_p #x0070)
  737. (:XK_q #x0071)
  738. (:XK_r #x0072)
  739. (:XK_s #x0073)
  740. (:XK_t #x0074)
  741. (:XK_u #x0075)
  742. (:XK_v #x0076)
  743. (:XK_w #x0077)
  744. (:XK_x #x0078)
  745. (:XK_y #x0079)
  746. (:XK_z #x007a)
  747. (:XK_braceleft #x007b)
  748. (:XK_bar #x007c)
  749. (:XK_braceright #x007d)
  750. (:XK_asciitilde #x007e)
  751. (:XK_nobreakspace #x00a0)
  752. (:XK_exclamdown #x00a1)
  753. (:XK_cent #x00a2)
  754. (:XK_sterling #x00a3)
  755. (:XK_currency #x00a4)
  756. (:XK_yen #x00a5)
  757. (:XK_brokenbar #x00a6)
  758. (:XK_section #x00a7)
  759. (:XK_diaeresis #x00a8)
  760. (:XK_copyright #x00a9)
  761. (:XK_ordfeminine #x00aa)
  762. (:XK_guillemotleft #x00ab)
  763. (:XK_notsign #x00ac)
  764. (:XK_hyphen #x00ad)
  765. (:XK_registered #x00ae)
  766. (:XK_macron #x00af)
  767. (:XK_degree #x00b0)
  768. (:XK_plusminus #x00b1)
  769. (:XK_twosuperior #x00b2)
  770. (:XK_threesuperior #x00b3)
  771. (:XK_acute #x00b4)
  772. (:XK_mu #x00b5)
  773. (:XK_paragraph #x00b6)
  774. (:XK_periodcentered #x00b7)
  775. (:XK_cedilla #x00b8)
  776. (:XK_onesuperior #x00b9)
  777. (:XK_masculine #x00ba)
  778. (:XK_guillemotright #x00bb)
  779. (:XK_onequarter #x00bc)
  780. (:XK_onehalf #x00bd)
  781. (:XK_threequarters #x00be)
  782. (:XK_questiondown #x00bf)
  783. (:XK_Agrave #x00c0)
  784. (:XK_Aacute #x00c1)
  785. (:XK_Acircumflex #x00c2)
  786. (:XK_Atilde #x00c3)
  787. (:XK_Adiaeresis #x00c4)
  788. (:XK_Aring #x00c5)
  789. (:XK_AE #x00c6)
  790. (:XK_Ccedilla #x00c7)
  791. (:XK_Egrave #x00c8)
  792. (:XK_Eacute #x00c9)
  793. (:XK_Ecircumflex #x00ca)
  794. (:XK_Ediaeresis #x00cb)
  795. (:XK_Igrave #x00cc)
  796. (:XK_Iacute #x00cd)
  797. (:XK_Icircumflex #x00ce)
  798. (:XK_Idiaeresis #x00cf)
  799. (:XK_ETH #x00d0)
  800. (:XK_Eth #x00d0)
  801. (:XK_Ntilde #x00d1)
  802. (:XK_Ograve #x00d2)
  803. (:XK_Oacute #x00d3)
  804. (:XK_Ocircumflex #x00d4)
  805. (:XK_Otilde #x00d5)
  806. (:XK_Odiaeresis #x00d6)
  807. (:XK_multiply #x00d7)
  808. (:XK_Oslash #x00d8)
  809. (:XK_Ooblique #x00d8)
  810. (:XK_Ugrave #x00d9)
  811. (:XK_Uacute #x00da)
  812. (:XK_Ucircumflex #x00db)
  813. (:XK_Udiaeresis #x00dc)
  814. (:XK_Yacute #x00dd)
  815. (:XK_THORN #x00de)
  816. (:XK_Thorn #x00de)
  817. (:XK_ssharp #x00df)
  818. (:XK_agrave #x00e0)
  819. (:XK_aacute #x00e1)
  820. (:XK_acircumflex #x00e2)
  821. (:XK_atilde #x00e3)
  822. (:XK_adiaeresis #x00e4)
  823. (:XK_aring #x00e5)
  824. (:XK_ae #x00e6)
  825. (:XK_ccedilla #x00e7)
  826. (:XK_egrave #x00e8)
  827. (:XK_eacute #x00e9)
  828. (:XK_ecircumflex #x00ea)
  829. (:XK_ediaeresis #x00eb)
  830. (:XK_igrave #x00ec)
  831. (:XK_iacute #x00ed)
  832. (:XK_icircumflex #x00ee)
  833. (:XK_idiaeresis #x00ef)
  834. (:XK_eth #x00f0)
  835. (:XK_ntilde #x00f1)
  836. (:XK_ograve #x00f2)
  837. (:XK_oacute #x00f3)
  838. (:XK_ocircumflex #x00f4)
  839. (:XK_otilde #x00f5)
  840. (:XK_odiaeresis #x00f6)
  841. (:XK_division #x00f7)
  842. (:XK_oslash #x00f8)
  843. (:XK_ooblique #x00f8)
  844. (:XK_ugrave #x00f9)
  845. (:XK_uacute #x00fa)
  846. (:XK_ucircumflex #x00fb)
  847. (:XK_udiaeresis #x00fc)
  848. (:XK_yacute #x00fd)
  849. (:XK_thorn #x00fe)
  850. (:XK_ydiaeresis #x00ff)
  851. (:XK_Aogonek #x01a1)
  852. (:XK_breve #x01a2)
  853. (:XK_Lstroke #x01a3)
  854. (:XK_Lcaron #x01a5)
  855. (:XK_Sacute #x01a6)
  856. (:XK_Scaron #x01a9)
  857. (:XK_Scedilla #x01aa)
  858. (:XK_Tcaron #x01ab)
  859. (:XK_Zacute #x01ac)
  860. (:XK_Zcaron #x01ae)
  861. (:XK_Zabovedot #x01af)
  862. (:XK_aogonek #x01b1)
  863. (:XK_ogonek #x01b2)
  864. (:XK_lstroke #x01b3)
  865. (:XK_lcaron #x01b5)
  866. (:XK_sacute #x01b6)
  867. (:XK_caron #x01b7)
  868. (:XK_scaron #x01b9)
  869. (:XK_scedilla #x01ba)
  870. (:XK_tcaron #x01bb)
  871. (:XK_zacute #x01bc)
  872. (:XK_doubleacute #x01bd)
  873. (:XK_zcaron #x01be)
  874. (:XK_zabovedot #x01bf)
  875. (:XK_Racute #x01c0)
  876. (:XK_Abreve #x01c3)
  877. (:XK_Lacute #x01c5)
  878. (:XK_Cacute #x01c6)
  879. (:XK_Ccaron #x01c8)
  880. (:XK_Eogonek #x01ca)
  881. (:XK_Ecaron #x01cc)
  882. (:XK_Dcaron #x01cf)
  883. (:XK_Dstroke #x01d0)
  884. (:XK_Nacute #x01d1)
  885. (:XK_Ncaron #x01d2)
  886. (:XK_Odoubleacute #x01d5)
  887. (:XK_Rcaron #x01d8)
  888. (:XK_Uring #x01d9)
  889. (:XK_Udoubleacute #x01db)
  890. (:XK_Tcedilla #x01de)
  891. (:XK_racute #x01e0)
  892. (:XK_abreve #x01e3)
  893. (:XK_lacute #x01e5)
  894. (:XK_cacute #x01e6)
  895. (:XK_ccaron #x01e8)
  896. (:XK_eogonek #x01ea)
  897. (:XK_ecaron #x01ec)
  898. (:XK_dcaron #x01ef)
  899. (:XK_dstroke #x01f0)
  900. (:XK_nacute #x01f1)
  901. (:XK_ncaron #x01f2)
  902. (:XK_odoubleacute #x01f5)
  903. (:XK_udoubleacute #x01fb)
  904. (:XK_rcaron #x01f8)
  905. (:XK_uring #x01f9)
  906. (:XK_tcedilla #x01fe)
  907. (:XK_abovedot #x01ff)
  908. (:XK_Hstroke #x02a1)
  909. (:XK_Hcircumflex #x02a6)
  910. (:XK_Iabovedot #x02a9)
  911. (:XK_Gbreve #x02ab)
  912. (:XK_Jcircumflex #x02ac)
  913. (:XK_hstroke #x02b1)
  914. (:XK_hcircumflex #x02b6)
  915. (:XK_idotless #x02b9)
  916. (:XK_gbreve #x02bb)
  917. (:XK_jcircumflex #x02bc)
  918. (:XK_Cabovedot #x02c5)
  919. (:XK_Ccircumflex #x02c6)
  920. (:XK_Gabovedot #x02d5)
  921. (:XK_Gcircumflex #x02d8)
  922. (:XK_Ubreve #x02dd)
  923. (:XK_Scircumflex #x02de)
  924. (:XK_cabovedot #x02e5)
  925. (:XK_ccircumflex #x02e6)
  926. (:XK_gabovedot #x02f5)
  927. (:XK_gcircumflex #x02f8)
  928. (:XK_ubreve #x02fd)
  929. (:XK_scircumflex #x02fe)
  930. (:XK_kra #x03a2)
  931. (:XK_kappa #x03a2)
  932. (:XK_Rcedilla #x03a3)
  933. (:XK_Itilde #x03a5)
  934. (:XK_Lcedilla #x03a6)
  935. (:XK_Emacron #x03aa)
  936. (:XK_Gcedilla #x03ab)
  937. (:XK_Tslash #x03ac)
  938. (:XK_rcedilla #x03b3)
  939. (:XK_itilde #x03b5)
  940. (:XK_lcedilla #x03b6)
  941. (:XK_emacron #x03ba)
  942. (:XK_gcedilla #x03bb)
  943. (:XK_tslash #x03bc)
  944. (:XK_ENG #x03bd)
  945. (:XK_eng #x03bf)
  946. (:XK_Amacron #x03c0)
  947. (:XK_Iogonek #x03c7)
  948. (:XK_Eabovedot #x03cc)
  949. (:XK_Imacron #x03cf)
  950. (:XK_Ncedilla #x03d1)
  951. (:XK_Omacron #x03d2)
  952. (:XK_Kcedilla #x03d3)
  953. (:XK_Uogonek #x03d9)
  954. (:XK_Utilde #x03dd)
  955. (:XK_Umacron #x03de)
  956. (:XK_amacron #x03e0)
  957. (:XK_iogonek #x03e7)
  958. (:XK_eabovedot #x03ec)
  959. (:XK_imacron #x03ef)
  960. (:XK_ncedilla #x03f1)
  961. (:XK_omacron #x03f2)
  962. (:XK_kcedilla #x03f3)
  963. (:XK_uogonek #x03f9)
  964. (:XK_utilde #x03fd)
  965. (:XK_umacron #x03fe)
  966. (:XK_Babovedot #x1001e02)
  967. (:XK_babovedot #x1001e03)
  968. (:XK_Dabovedot #x1001e0a)
  969. (:XK_Wgrave #x1001e80)
  970. (:XK_Wacute #x1001e82)
  971. (:XK_dabovedot #x1001e0b)
  972. (:XK_Ygrave #x1001ef2)
  973. (:XK_Fabovedot #x1001e1e)
  974. (:XK_fabovedot #x1001e1f)
  975. (:XK_Mabovedot #x1001e40)
  976. (:XK_mabovedot #x1001e41)
  977. (:XK_Pabovedot #x1001e56)
  978. (:XK_wgrave #x1001e81)
  979. (:XK_pabovedot #x1001e57)
  980. (:XK_wacute #x1001e83)
  981. (:XK_Sabovedot #x1001e60)
  982. (:XK_ygrave #x1001ef3)
  983. (:XK_Wdiaeresis #x1001e84)
  984. (:XK_wdiaeresis #x1001e85)
  985. (:XK_sabovedot #x1001e61)
  986. (:XK_Wcircumflex #x1000174)
  987. (:XK_Tabovedot #x1001e6a)
  988. (:XK_Ycircumflex #x1000176)
  989. (:XK_wcircumflex #x1000175)
  990. (:XK_tabovedot #x1001e6b)
  991. (:XK_ycircumflex #x1000177)
  992. (:XK_OE #x13bc)
  993. (:XK_oe #x13bd)
  994. (:XK_Ydiaeresis #x13be)
  995. (:XK_overline #x047e)
  996. (:XK_leftradical #x08a1)
  997. (:XK_topleftradical #x08a2)
  998. (:XK_horizconnector #x08a3)
  999. (:XK_topintegral #x08a4)
  1000. (:XK_botintegral #x08a5)
  1001. (:XK_vertconnector #x08a6)
  1002. (:XK_topleftsqbracket #x08a7)
  1003. (:XK_botleftsqbracket #x08a8)
  1004. (:XK_toprightsqbracket #x08a9)
  1005. (:XK_botrightsqbracket #x08aa)
  1006. (:XK_topleftparens #x08ab)
  1007. (:XK_botleftparens #x08ac)
  1008. (:XK_toprightparens #x08ad)
  1009. (:XK_botrightparens #x08ae)
  1010. (:XK_leftmiddlecurlybrace #x08af)
  1011. (:XK_rightmiddlecurlybrace #x08b0)
  1012. (:XK_topleftsummation #x08b1)
  1013. (:XK_botleftsummation #x08b2)
  1014. (:XK_topvertsummationconnector #x08b3)
  1015. (:XK_botvertsummationconnector #x08b4)
  1016. (:XK_toprightsummation #x08b5)
  1017. (:XK_botrightsummation #x08b6)
  1018. (:XK_rightmiddlesummation #x08b7)
  1019. (:XK_lessthanequal #x08bc)
  1020. (:XK_notequal #x08bd)
  1021. (:XK_greaterthanequal #x08be)
  1022. (:XK_integral #x08bf)
  1023. (:XK_therefore #x08c0)
  1024. (:XK_variation #x08c1)
  1025. (:XK_infinity #x08c2)
  1026. (:XK_nabla #x08c5)
  1027. (:XK_approximate #x08c8)
  1028. (:XK_similarequal #x08c9)
  1029. (:XK_ifonlyif #x08cd)
  1030. (:XK_implies #x08ce)
  1031. (:XK_identical #x08cf)
  1032. (:XK_radical #x08d6)
  1033. (:XK_includedin #x08da)
  1034. (:XK_includes #x08db)
  1035. (:XK_intersection #x08dc)
  1036. (:XK_union #x08dd)
  1037. (:XK_logicaland #x08de)
  1038. (:XK_logicalor #x08df)
  1039. (:XK_partialderivative #x08ef)
  1040. (:XK_function #x08f6)
  1041. (:XK_leftarrow #x08fb)
  1042. (:XK_uparrow #x08fc)
  1043. (:XK_rightarrow #x08fd)
  1044. (:XK_downarrow #x08fe)
  1045. (:XK_blank #x09df)
  1046. (:XK_soliddiamond #x09e0)
  1047. (:XK_checkerboard #x09e1)
  1048. (:XK_ht #x09e2)
  1049. (:XK_ff #x09e3)
  1050. (:XK_cr #x09e4)
  1051. (:XK_lf #x09e5)
  1052. (:XK_nl #x09e8)
  1053. (:XK_vt #x09e9)
  1054. (:XK_lowrightcorner #x09ea)
  1055. (:XK_uprightcorner #x09eb)
  1056. (:XK_upleftcorner #x09ec)
  1057. (:XK_lowleftcorner #x09ed)
  1058. (:XK_crossinglines #x09ee)
  1059. (:XK_horizlinescan1 #x09ef)
  1060. (:XK_horizlinescan3 #x09f0)
  1061. (:XK_horizlinescan5 #x09f1)
  1062. (:XK_horizlinescan7 #x09f2)
  1063. (:XK_horizlinescan9 #x09f3)
  1064. (:XK_leftt #x09f4)
  1065. (:XK_rightt #x09f5)
  1066. (:XK_bott #x09f6)
  1067. (:XK_topt #x09f7)
  1068. (:XK_vertbar #x09f8)
  1069. (:XK_emspace #x0aa1)
  1070. (:XK_enspace #x0aa2)
  1071. (:XK_em3space #x0aa3)
  1072. (:XK_em4space #x0aa4)
  1073. (:XK_digitspace #x0aa5)
  1074. (:XK_punctspace #x0aa6)
  1075. (:XK_thinspace #x0aa7)
  1076. (:XK_hairspace #x0aa8)
  1077. (:XK_emdash #x0aa9)
  1078. (:XK_endash #x0aaa)
  1079. (:XK_signifblank #x0aac)
  1080. (:XK_ellipsis #x0aae)
  1081. (:XK_doubbaselinedot #x0aaf)
  1082. (:XK_onethird #x0ab0)
  1083. (:XK_twothirds #x0ab1)
  1084. (:XK_onefifth #x0ab2)
  1085. (:XK_twofifths #x0ab3)
  1086. (:XK_threefifths #x0ab4)
  1087. (:XK_fourfifths #x0ab5)
  1088. (:XK_onesixth #x0ab6)
  1089. (:XK_fivesixths #x0ab7)
  1090. (:XK_careof #x0ab8)
  1091. (:XK_figdash #x0abb)
  1092. (:XK_leftanglebracket #x0abc)
  1093. (:XK_decimalpoint #x0abd)
  1094. (:XK_rightanglebracket #x0abe)
  1095. (:XK_marker #x0abf)
  1096. (:XK_oneeighth #x0ac3)
  1097. (:XK_threeeighths #x0ac4)
  1098. (:XK_fiveeighths #x0ac5)
  1099. (:XK_seveneighths #x0ac6)
  1100. (:XK_trademark #x0ac9)
  1101. (:XK_signaturemark #x0aca)
  1102. (:XK_trademarkincircle #x0acb)
  1103. (:XK_leftopentriangle #x0acc)
  1104. (:XK_rightopentriangle #x0acd)
  1105. (:XK_emopencircle #x0ace)
  1106. (:XK_emopenrectangle #x0acf)
  1107. (:XK_leftsinglequotemark #x0ad0)
  1108. (:XK_rightsinglequotemark #x0ad1)
  1109. (:XK_leftdoublequotemark #x0ad2)
  1110. (:XK_rightdoublequotemark #x0ad3)
  1111. (:XK_prescription #x0ad4)
  1112. (:XK_minutes #x0ad6)
  1113. (:XK_seconds #x0ad7)
  1114. (:XK_latincross #x0ad9)
  1115. (:XK_hexagram #x0ada)
  1116. (:XK_filledrectbullet #x0adb)
  1117. (:XK_filledlefttribullet #x0adc)
  1118. (:XK_filledrighttribullet #x0add)
  1119. (:XK_emfilledcircle #x0ade)
  1120. (:XK_emfilledrect #x0adf)
  1121. (:XK_enopencircbullet #x0ae0)
  1122. (:XK_enopensquarebullet #x0ae1)
  1123. (:XK_openrectbullet #x0ae2)
  1124. (:XK_opentribulletup #x0ae3)
  1125. (:XK_opentribulletdown #x0ae4)
  1126. (:XK_openstar #x0ae5)
  1127. (:XK_enfilledcircbullet #x0ae6)
  1128. (:XK_enfilledsqbullet #x0ae7)
  1129. (:XK_filledtribulletup #x0ae8)
  1130. (:XK_filledtribulletdown #x0ae9)
  1131. (:XK_leftpointer #x0aea)
  1132. (:XK_rightpointer #x0aeb)
  1133. (:XK_club #x0aec)
  1134. (:XK_diamond #x0aed)
  1135. (:XK_heart #x0aee)
  1136. (:XK_maltesecross #x0af0)
  1137. (:XK_dagger #x0af1)
  1138. (:XK_doubledagger #x0af2)
  1139. (:XK_checkmark #x0af3)
  1140. (:XK_ballotcross #x0af4)
  1141. (:XK_musicalsharp #x0af5)
  1142. (:XK_musicalflat #x0af6)
  1143. (:XK_malesymbol #x0af7)
  1144. (:XK_femalesymbol #x0af8)
  1145. (:XK_telephone #x0af9)
  1146. (:XK_telephonerecorder #x0afa)
  1147. (:XK_phonographcopyright #x0afb)
  1148. (:XK_caret #x0afc)
  1149. (:XK_singlelowquotemark #x0afd)
  1150. (:XK_doublelowquotemark #x0afe)
  1151. (:XK_cursor #x0aff)
  1152. (:XK_leftcaret #x0ba3)
  1153. (:XK_rightcaret #x0ba6)
  1154. (:XK_downcaret #x0ba8)
  1155. (:XK_upcaret #x0ba9)
  1156. (:XK_overbar #x0bc0)
  1157. (:XK_downtack #x0bc2)
  1158. (:XK_upshoe #x0bc3)
  1159. (:XK_downstile #x0bc4)
  1160. (:XK_underbar #x0bc6)
  1161. (:XK_jot #x0bca)
  1162. (:XK_quad #x0bcc)
  1163. (:XK_uptack #x0bce)
  1164. (:XK_circle #x0bcf)
  1165. (:XK_upstile #x0bd3)
  1166. (:XK_downshoe #x0bd6)
  1167. (:XK_rightshoe #x0bd8)
  1168. (:XK_leftshoe #x0bda)
  1169. (:XK_lefttack #x0bdc)
  1170. (:XK_righttack #x0bfc)
  1171. (:XK_EcuSign #x10020a0)
  1172. (:XK_ColonSign #x10020a1)
  1173. (:XK_CruzeiroSign #x10020a2)
  1174. (:XK_FFrancSign #x10020a3)
  1175. (:XK_LiraSign #x10020a4)
  1176. (:XK_MillSign #x10020a5)
  1177. (:XK_NairaSign #x10020a6)
  1178. (:XK_PesetaSign #x10020a7)
  1179. (:XK_RupeeSign #x10020a8)
  1180. (:XK_WonSign #x10020a9)
  1181. (:XK_NewSheqelSign #x10020aa)
  1182. (:XK_DongSign #x10020ab)
  1183. (:XK_EuroSign #x20ac)
  1184. (:XK_zerosuperior #x1002070)
  1185. (:XK_foursuperior #x1002074)
  1186. (:XK_fivesuperior #x1002075)
  1187. (:XK_sixsuperior #x1002076)
  1188. (:XK_sevensuperior #x1002077)
  1189. (:XK_eightsuperior #x1002078)
  1190. (:XK_ninesuperior #x1002079)
  1191. (:XK_zerosubscript #x1002080)
  1192. (:XK_onesubscript #x1002081)
  1193. (:XK_twosubscript #x1002082)
  1194. (:XK_threesubscript #x1002083)
  1195. (:XK_foursubscript #x1002084)
  1196. (:XK_fivesubscript #x1002085)
  1197. (:XK_sixsubscript #x1002086)
  1198. (:XK_sevensubscript #x1002087)
  1199. (:XK_eightsubscript #x1002088)
  1200. (:XK_ninesubscript #x1002089)
  1201. (:XK_partdifferential #x1002202)
  1202. (:XK_emptyset #x1002205)
  1203. (:XK_elementof #x1002208)
  1204. (:XK_notelementof #x1002209)
  1205. (:XK_containsas #x100220B)
  1206. (:XK_squareroot #x100221A)
  1207. (:XK_cuberoot #x100221B)
  1208. (:XK_fourthroot #x100221C)
  1209. (:XK_dintegral #x100222C)
  1210. (:XK_tintegral #x100222D)
  1211. (:XK_because #x1002235)
  1212. (:XK_approxeq #x1002248)
  1213. (:XK_notapproxeq #x1002247)
  1214. (:XK_notidentical #x1002262)
  1215. (:XK_stricteq #x1002263)
  1216. ))
  1217. (defconstant +scancode-to-keysyms+
  1218. (mapcar #'(lambda (scancode-and-keys)
  1219. (destructuring-bind (scancode k1 k2)
  1220. scancode-and-keys
  1221. (list (+ 8 scancode)
  1222. (second (assoc k1 +keysyms+))
  1223. (second (assoc k2 +keysyms+)))))
  1224. +scancode-to-keys+))
  1225. (defconstant +default-modifier-keysyms+
  1226. '((:Shift :XK_Shift_L :XK_Shift_R)
  1227. (:Lock :XK_Caps_Lock)
  1228. (:Control :XK_Control_L :XK_Control_R)
  1229. (:Mod1)
  1230. (:Mod2)
  1231. (:Mod3)
  1232. (:Mod4)
  1233. (:Mod5)))
  1234. (defconstant +default-modifier-keycodes+
  1235. (mapcar #'(lambda (item)
  1236. (destructuring-bind (modifier &rest keysyms)
  1237. item
  1238. (list modifier
  1239. (mapcar #'(lambda (keysym)
  1240. (+ 8 (first (find keysym
  1241. +scancode-to-keys+
  1242. :key #'second))))
  1243. keysyms))))
  1244. +default-modifier-keysyms+))
  1245. (defconstant +button-codes+
  1246. '((#x110 1 :Button1)
  1247. (#x111 2 :Button2)
  1248. (#x112 3 :Button3)
  1249. (#x113 4 :Button4)
  1250. (#x114 5 :Button5)))
  1251. #|
  1252. #define BTN_LEFT 0x110
  1253. #define BTN_RIGHT 0x111
  1254. #define BTN_MIDDLE 0x112
  1255. #define BTN_SIDE 0x113
  1256. #define BTN_EXTRA 0x114
  1257. |#