vigilem-support 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/lib/vigilem/ffi.rb +19 -0
  3. data/lib/vigilem/ffi/array_pointer_sync.rb +382 -0
  4. data/lib/vigilem/ffi/struct.rb +54 -0
  5. data/lib/vigilem/ffi/utils.rb +240 -0
  6. data/lib/vigilem/ffi/utils/struct.rb +93 -0
  7. data/lib/vigilem/support.rb +31 -0
  8. data/lib/vigilem/support/core_ext.rb +13 -0
  9. data/lib/vigilem/support/core_ext/debug_puts.rb +5 -0
  10. data/lib/vigilem/support/core_ext/enumerable.rb +25 -0
  11. data/lib/vigilem/support/key_map.rb +323 -0
  12. data/lib/vigilem/support/key_map_info.rb +85 -0
  13. data/lib/vigilem/support/lazy_simple_delegator.rb +81 -0
  14. data/lib/vigilem/support/max_size_error.rb +17 -0
  15. data/lib/vigilem/support/metadata.rb +13 -0
  16. data/lib/vigilem/support/obj_space.rb +28 -0
  17. data/lib/vigilem/support/patch/cucumber/c_lexer.rb +30 -0
  18. data/lib/vigilem/support/patch/ffi/pointer.rb +19 -0
  19. data/lib/vigilem/support/size_error.rb +6 -0
  20. data/lib/vigilem/support/sys.rb +5 -0
  21. data/lib/vigilem/support/system.rb +92 -0
  22. data/lib/vigilem/support/transmutable_hash.rb +206 -0
  23. data/lib/vigilem/support/utils.rb +224 -0
  24. data/lib/vigilem/support/version.rb +5 -0
  25. data/spec/spec_helper.rb +9 -0
  26. data/spec/vigilem/ffi/array_pointer_sync_spec.rb +728 -0
  27. data/spec/vigilem/ffi/struct_spec.rb +22 -0
  28. data/spec/vigilem/ffi/utils/struct_spec.rb +79 -0
  29. data/spec/vigilem/ffi/utils_spec.rb +240 -0
  30. data/spec/vigilem/support/core_ext/enumerable_spec.rb +38 -0
  31. data/spec/vigilem/support/data/cached.kmap +130 -0
  32. data/spec/vigilem/support/data/cached_UTF-8_del.kmap +142 -0
  33. data/spec/vigilem/support/data/cached_short.kmap +38 -0
  34. data/spec/vigilem/support/data/dump_keys_short.kmap +128 -0
  35. data/spec/vigilem/support/key_map_spec.rb +767 -0
  36. data/spec/vigilem/support/lazy_simple_delegator_spec.rb +77 -0
  37. data/spec/vigilem/support/obj_space_spec.rb +47 -0
  38. data/spec/vigilem/support/sys_spec.rb +21 -0
  39. data/spec/vigilem/support/system_spec.rb +31 -0
  40. data/spec/vigilem/support/transmutable_hash_spec.rb +175 -0
  41. data/spec/vigilem/support/utils_spec.rb +214 -0
  42. metadata +240 -0
@@ -0,0 +1,142 @@
1
+ keymaps 0-127
2
+ keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
3
+ keycode 2 = U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol
4
+ keycode 3 = U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0040 nul nul nul nul Meta_two Meta_at Meta_two Meta_at Meta_nul Meta_nul Meta_nul Meta_nul
5
+ keycode 4 = U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0033 U+0023 U+0033 U+0023 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_three Meta_numbersign Meta_three Meta_numbersign VoidSymbol VoidSymbol VoidSymbol VoidSymbol
6
+ keycode 5 = U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0034 U+0024 U+0034 U+0024 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_four Meta_dollar Meta_four Meta_dollar VoidSymbol VoidSymbol VoidSymbol VoidSymbol
7
+ keycode 6 = U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0035 U+0025 U+0035 U+0025 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_five Meta_percent Meta_five Meta_percent VoidSymbol VoidSymbol VoidSymbol VoidSymbol
8
+ keycode 7 = U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum
9
+ keycode 8 = U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0037 U+0026 U+0037 U+0026 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_seven Meta_ampersand Meta_seven Meta_ampersand VoidSymbol VoidSymbol VoidSymbol VoidSymbol
10
+ keycode 9 = U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0038 U+002a U+0038 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_eight Meta_asterisk Meta_eight Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol
11
+ keycode 10 = U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0028 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_parenleft VoidSymbol VoidSymbol VoidSymbol VoidSymbol
12
+ keycode 11 = U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0029 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_parenright VoidSymbol VoidSymbol VoidSymbol VoidSymbol
13
+ keycode 12 = U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore
14
+ keycode 13 = U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+002b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_plus VoidSymbol VoidSymbol VoidSymbol VoidSymbol
15
+ keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
16
+ keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
17
+ keycode 16 = +U+0071 +U+0051 +U+0071 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q
18
+ keycode 17 = +U+0077 +U+0057 +U+0077 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w
19
+ keycode 18 = +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e
20
+ keycode 19 = +U+0072 +U+0052 +U+0072 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r
21
+ keycode 20 = +U+0074 +U+0054 +U+0074 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t
22
+ keycode 21 = +U+0079 +U+0059 +U+0079 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y
23
+ keycode 22 = +U+0075 +U+0055 +U+0075 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u
24
+ keycode 23 = +U+0069 +U+0049 +U+0069 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab
25
+ keycode 24 = +U+006f +U+004f +U+006f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o
26
+ keycode 25 = +U+0070 +U+0050 +U+0070 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p
27
+ keycode 26 = U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape
28
+ keycode 27 = U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright
29
+ keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m
30
+ keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control
31
+ keycode 30 = +U+0061 +U+0041 +U+0061 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a
32
+ keycode 31 = +U+0073 +U+0053 +U+0073 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s
33
+ keycode 32 = +U+0064 +U+0044 +U+0064 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d
34
+ keycode 33 = +U+0066 +U+0046 +U+0066 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f
35
+ keycode 34 = +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g
36
+ keycode 35 = +U+0068 +U+0048 +U+0068 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
37
+ keycode 36 = +U+006a +U+004a +U+006a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed
38
+ keycode 37 = +U+006b +U+004b +U+006b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_K Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k
39
+ keycode 38 = +U+006c +U+004c +U+006c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l
40
+ keycode 39 = U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol
41
+ keycode 40 = U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0027 U+0022 U+0027 U+0022 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol
42
+ keycode 41 = U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+0060 U+007e U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_grave Meta_asciitilde Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum
43
+ keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift
44
+ keycode 43 = U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash
45
+ keycode 44 = +U+007a +U+005a +U+007a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z
46
+ keycode 45 = +U+0078 +U+0058 +U+0078 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x
47
+ keycode 46 = +U+0063 +U+0043 +U+0063 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c
48
+ keycode 47 = +U+0076 +U+0056 +U+0076 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v
49
+ keycode 48 = +U+0062 +U+0042 +U+0062 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b
50
+ keycode 49 = +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n
51
+ keycode 50 = +U+006d +U+004d +U+006d +U+004d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+004d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+004d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+004d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+006d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+006d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+006d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+006d Return Return Return Return Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m
52
+ keycode 51 = U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+003c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol
53
+ keycode 52 = U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+002e U+003e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose
54
+ keycode 53 = U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+003f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete
55
+ keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift
56
+ keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply
57
+ keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
58
+ keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul
59
+ keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock
60
+ keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1
61
+ keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2
62
+ keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3
63
+ keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4
64
+ keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5
65
+ keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6
66
+ keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7
67
+ keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8
68
+ keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9
69
+ keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10
70
+ keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock
71
+ keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock
72
+ keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7
73
+ keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8
74
+ keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9
75
+ keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract
76
+ keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4
77
+ keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5
78
+ keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6
79
+ keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add
80
+ keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1
81
+ keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2
82
+ keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3
83
+ keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0
84
+ keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period
85
+ keycode 84 = Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console
86
+ keycode 86 = U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+003c U+003e U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_less Meta_greater Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash
87
+ keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11
88
+ keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12
89
+ keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home
90
+ keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up
91
+ keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior
92
+ keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left
93
+ keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right
94
+ keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End
95
+ keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down
96
+ keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next
97
+ keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert
98
+ keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove
99
+ keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter
100
+ keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control
101
+ keycode 119 = Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Pause Pause Pause Pause
102
+ keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash
103
+ keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide
104
+ keycode 100 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
105
+ keycode 101 = Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break
106
+ keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
107
+ keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
108
+ keycode 127 = VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
109
+ keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period
110
+ strings as usual
111
+ # The content of this file will be appended to the keyboard layout.
112
+ # The following is an example how to make Alt+j switch to to the next
113
+ # console and Alt+k switch to the previous console.
114
+
115
+ # Uncomment the following lines for Linux. Notice that everything is
116
+ # replicated for all possible values of the modifiers shiftl, shiftr
117
+ # and ctrll (shiftl and shiftr are used for groups 1..4 of XKB and
118
+ # ctrll is used to fix the broken CapsLock when Linux console is in
119
+ # Unicode mode).
120
+
121
+ # alt keycode 36 = Incr_Console
122
+ # shiftl alt keycode 36 = Incr_Console
123
+ # shiftr alt keycode 36 = Incr_Console
124
+ # shiftr shiftl alt keycode 36 = Incr_Console
125
+ # ctrll alt keycode 36 = Incr_Console
126
+ # ctrll shiftl alt keycode 36 = Incr_Console
127
+ # ctrll shiftr alt keycode 36 = Incr_Console
128
+ # ctrll shiftr shiftl alt keycode 36 = Incr_Console
129
+ #
130
+ # alt keycode 37 = Decr_Console
131
+ # shiftl alt keycode 37 = Decr_Console
132
+ # shiftr alt keycode 37 = Decr_Console
133
+ # shiftr shiftl alt keycode 37 = Decr_Console
134
+ # ctrll alt keycode 37 = Decr_Console
135
+ # ctrll shiftl alt keycode 37 = Decr_Console
136
+ # ctrll shiftr alt keycode 37 = Decr_Console
137
+ # ctrll shiftr shiftl alt keycode 37 = Decr_Console
138
+
139
+ # For the same result on FreeBSD uncomment the following lines:
140
+
141
+ # 036 'j' 'J' nl nl nscr nscr nl nl C
142
+ # 037 'k' 'K' vt vt pscr pscr nl nl C
@@ -0,0 +1,38 @@
1
+ keymaps 0-127
2
+ keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
3
+ keycode 2 = U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0021 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol
4
+ keycode 10 = U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol
5
+ keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period
6
+ strings as usual
7
+ # The content of this file will be appended to the keyboard layout.
8
+ # The following is an example how to make Alt+j switch to to the next
9
+ # console and Alt+k switch to the previous console.
10
+
11
+ # Uncomment the following lines for Linux. Notice that everything is
12
+ # replicated for all possible values of the modifiers shiftl, shiftr
13
+ # and ctrll (shiftl and shiftr are used for groups 1..4 of XKB and
14
+ # ctrll is used to fix the broken CapsLock when Linux console is in
15
+ # Unicode mode).
16
+
17
+ # alt keycode 36 = Incr_Console
18
+ # shiftl alt keycode 36 = Incr_Console
19
+ # shiftr alt keycode 36 = Incr_Console
20
+ # shiftr shiftl alt keycode 36 = Incr_Console
21
+ # ctrll alt keycode 36 = Incr_Console
22
+ # ctrll shiftl alt keycode 36 = Incr_Console
23
+ # ctrll shiftr alt keycode 36 = Incr_Console
24
+ # ctrll shiftr shiftl alt keycode 36 = Incr_Console
25
+ #
26
+ # alt keycode 37 = Decr_Console
27
+ # shiftl alt keycode 37 = Decr_Console
28
+ # shiftr alt keycode 37 = Decr_Console
29
+ # shiftr shiftl alt keycode 37 = Decr_Console
30
+ # ctrll alt keycode 37 = Decr_Console
31
+ # ctrll shiftl alt keycode 37 = Decr_Console
32
+ # ctrll shiftr alt keycode 37 = Decr_Console
33
+ # ctrll shiftr shiftl alt keycode 37 = Decr_Console
34
+
35
+ # For the same result on FreeBSD uncomment the following lines:
36
+
37
+ # 036 'j' 'J' nl nl nscr nscr nl nl C
38
+ # 037 'k' 'K' vt vt pscr pscr nl nl C
@@ -0,0 +1,128 @@
1
+ keymaps 0-127
2
+ keycode 1 = Escape
3
+ alt keycode 1 = Meta_Escape
4
+ shift alt keycode 1 = Meta_Escape
5
+ altgr alt keycode 1 = Meta_Escape
6
+ shift altgr alt keycode 1 = Meta_Escape
7
+ control alt keycode 1 = Meta_Escape
8
+ shift control alt keycode 1 = Meta_Escape
9
+ altgr control alt keycode 1 = Meta_Escape
10
+ shift altgr control alt keycode 1 = Meta_Escape
11
+ alt shiftl keycode 1 = Meta_Escape
12
+ shift alt shiftl keycode 1 = Meta_Escape
13
+ altgr alt shiftl keycode 1 = Meta_Escape
14
+ shift altgr alt shiftl keycode 1 = Meta_Escape
15
+ control alt shiftl keycode 1 = Meta_Escape
16
+ shift control alt shiftl keycode 1 = Meta_Escape
17
+ altgr control alt shiftl keycode 1 = Meta_Escape
18
+ shift altgr control alt shiftl keycode 1 = Meta_Escape
19
+ alt shiftr keycode 1 = Meta_Escape
20
+ shift alt shiftr keycode 1 = Meta_Escape
21
+ altgr alt shiftr keycode 1 = Meta_Escape
22
+ shift altgr alt shiftr keycode 1 = Meta_Escape
23
+ control alt shiftr keycode 1 = Meta_Escape
24
+ shift control alt shiftr keycode 1 = Meta_Escape
25
+ altgr control alt shiftr keycode 1 = Meta_Escape
26
+ shift altgr control alt shiftr keycode 1 = Meta_Escape
27
+ alt shiftl shiftr keycode 1 = Meta_Escape
28
+ shift alt shiftl shiftr keycode 1 = Meta_Escape
29
+ altgr alt shiftl shiftr keycode 1 = Meta_Escape
30
+ shift altgr alt shiftl shiftr keycode 1 = Meta_Escape
31
+ control alt shiftl shiftr keycode 1 = Meta_Escape
32
+ shift control alt shiftl shiftr keycode 1 = Meta_Escape
33
+ altgr control alt shiftl shiftr keycode 1 = Meta_Escape
34
+ shift altgr control alt shiftl shiftr keycode 1 = Meta_Escape
35
+ alt ctrll keycode 1 = Meta_Escape
36
+ shift alt ctrll keycode 1 = Meta_Escape
37
+ altgr alt ctrll keycode 1 = Meta_Escape
38
+ shift altgr alt ctrll keycode 1 = Meta_Escape
39
+ control alt ctrll keycode 1 = Meta_Escape
40
+ shift control alt ctrll keycode 1 = Meta_Escape
41
+ altgr control alt ctrll keycode 1 = Meta_Escape
42
+ shift altgr control alt ctrll keycode 1 = Meta_Escape
43
+ alt shiftl ctrll keycode 1 = Meta_Escape
44
+ shift alt shiftl ctrll keycode 1 = Meta_Escape
45
+ altgr alt shiftl ctrll keycode 1 = Meta_Escape
46
+ shift altgr alt shiftl ctrll keycode 1 = Meta_Escape
47
+ control alt shiftl ctrll keycode 1 = Meta_Escape
48
+ shift control alt shiftl ctrll keycode 1 = Meta_Escape
49
+ altgr control alt shiftl ctrll keycode 1 = Meta_Escape
50
+ shift altgr control alt shiftl ctrll keycode 1 = Meta_Escape
51
+ alt shiftr ctrll keycode 1 = Meta_Escape
52
+ shift alt shiftr ctrll keycode 1 = Meta_Escape
53
+ altgr alt shiftr ctrll keycode 1 = Meta_Escape
54
+ shift altgr alt shiftr ctrll keycode 1 = Meta_Escape
55
+ control alt shiftr ctrll keycode 1 = Meta_Escape
56
+ shift control alt shiftr ctrll keycode 1 = Meta_Escape
57
+ altgr control alt shiftr ctrll keycode 1 = Meta_Escape
58
+ shift altgr control alt shiftr ctrll keycode 1 = Meta_Escape
59
+ alt shiftl shiftr ctrll keycode 1 = Meta_Escape
60
+ shift alt shiftl shiftr ctrll keycode 1 = Meta_Escape
61
+ altgr alt shiftl shiftr ctrll keycode 1 = Meta_Escape
62
+ shift altgr alt shiftl shiftr ctrll keycode 1 = Meta_Escape
63
+ control alt shiftl shiftr ctrll keycode 1 = Meta_Escape
64
+ shift control alt shiftl shiftr ctrll keycode 1 = Meta_Escape
65
+ altgr control alt shiftl shiftr ctrll keycode 1 = Meta_Escape
66
+ shift altgr control alt shiftl shiftr ctrll keycode 1 = Meta_Escape
67
+ keycode 2 = one exclam one one
68
+ alt keycode 2 = Meta_one
69
+ shift alt keycode 2 = Meta_exclam
70
+ altgr alt keycode 2 = Meta_one
71
+ shift altgr alt keycode 2 = Meta_one
72
+ shiftl keycode 2 = one
73
+ shift shiftl keycode 2 = exclam
74
+ altgr shiftl keycode 2 = one
75
+ shift altgr shiftl keycode 2 = one
76
+ alt shiftl keycode 2 = Meta_one
77
+ shift alt shiftl keycode 2 = Meta_exclam
78
+ altgr alt shiftl keycode 2 = Meta_one
79
+ shift altgr alt shiftl keycode 2 = Meta_one
80
+ shiftr keycode 2 = one
81
+ shift shiftr keycode 2 = exclam
82
+ altgr shiftr keycode 2 = one
83
+ shift altgr shiftr keycode 2 = one
84
+ alt shiftr keycode 2 = Meta_one
85
+ shift alt shiftr keycode 2 = Meta_exclam
86
+ altgr alt shiftr keycode 2 = Meta_one
87
+ shift altgr alt shiftr keycode 2 = Meta_one
88
+ shiftl shiftr keycode 2 = one
89
+ shift shiftl shiftr keycode 2 = exclam
90
+ altgr shiftl shiftr keycode 2 = one
91
+ shift altgr shiftl shiftr keycode 2 = one
92
+ alt shiftl shiftr keycode 2 = Meta_one
93
+ shift alt shiftl shiftr keycode 2 = Meta_exclam
94
+ altgr alt shiftl shiftr keycode 2 = Meta_one
95
+ shift altgr alt shiftl shiftr keycode 2 = Meta_one
96
+ ctrll keycode 2 = one
97
+ shift ctrll keycode 2 = exclam
98
+ altgr ctrll keycode 2 = one
99
+ shift altgr ctrll keycode 2 = one
100
+ alt ctrll keycode 2 = Meta_one
101
+ shift alt ctrll keycode 2 = Meta_exclam
102
+ altgr alt ctrll keycode 2 = Meta_one
103
+ shift altgr alt ctrll keycode 2 = Meta_one
104
+ shiftl ctrll keycode 2 = one
105
+ shift shiftl ctrll keycode 2 = exclam
106
+ altgr shiftl ctrll keycode 2 = one
107
+ shift altgr shiftl ctrll keycode 2 = one
108
+ alt shiftl ctrll keycode 2 = Meta_one
109
+ shift alt shiftl ctrll keycode 2 = Meta_exclam
110
+ altgr alt shiftl ctrll keycode 2 = Meta_one
111
+ shift altgr alt shiftl ctrll keycode 2 = Meta_one
112
+ shiftr ctrll keycode 2 = one
113
+ shift shiftr ctrll keycode 2 = exclam
114
+ altgr shiftr ctrll keycode 2 = one
115
+ shift altgr shiftr ctrll keycode 2 = one
116
+ alt shiftr ctrll keycode 2 = Meta_one
117
+ shift alt shiftr ctrll keycode 2 = Meta_exclam
118
+ altgr alt shiftr ctrll keycode 2 = Meta_one
119
+ shift altgr alt shiftr ctrll keycode 2 = Meta_one
120
+ shiftl shiftr ctrll keycode 2 = one
121
+ shift shiftl shiftr ctrll keycode 2 = exclam
122
+ altgr shiftl shiftr ctrll keycode 2 = one
123
+ shift altgr shiftl shiftr ctrll keycode 2 = one
124
+ alt shiftl shiftr ctrll keycode 2 = Meta_one
125
+ shift alt shiftl shiftr ctrll keycode 2 = Meta_exclam
126
+ altgr alt shiftl shiftr ctrll keycode 2 = Meta_one
127
+ shift altgr alt shiftl shiftr ctrll keycode 2 = Meta_one
128
+ keycode 121 = KP_Period
@@ -0,0 +1,767 @@
1
+ require 'spec_helper'
2
+
3
+ require 'vigilem/support/key_map'
4
+
5
+ describe Vigilem::Support::KeyMap do
6
+
7
+ let(:cached_short_path) { File.expand_path('data/cached_short.kmap', File.dirname(__FILE__)) }
8
+ let(:dump_keys_short_path) { File.expand_path('data/dump_keys_short.kmap', File.dirname(__FILE__)) }
9
+
10
+ let(:dump_keys_lines) do
11
+ ['keymaps 0-127',
12
+ 'keycode 1 = Escape',
13
+ ' alt keycode 1 = Meta_Escape',
14
+ ' shift alt keycode 1 = Meta_Escape',
15
+ 'keycode 2 = one exclam one one',
16
+ ' alt keycode 2 = Meta_one',
17
+ ' shift alt keycode 2 = Meta_exclam',
18
+ ' altgr alt keycode 2 = Meta_one']
19
+ end
20
+
21
+ =begin @todo
22
+ let(:dump_keys_lines) do
23
+ ['keymaps 0-127',
24
+ 'keycode 1 = 0x001b',
25
+ ' alt keycode 1 = 0x081b',
26
+ ' shift alt keycode 1 = 0x081b',
27
+ 'keycode 2 = 0x0031 0x0021 0x0031 0x0031',
28
+ ' alt keycode 2 = 0x0831',
29
+ ' shift alt keycode 2 = 0x0821',
30
+ ' altgr alt keycode 2 = 0x0831']
31
+ end
32
+ =end
33
+
34
+ let(:cached_lines) do
35
+ ['keymaps 0-127',
36
+ 'keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape',
37
+ 'keycode 10 = U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol']
38
+ end
39
+
40
+ let(:cached_line) { 'keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape' }
41
+
42
+ let(:dump_keys_line1) { 'keycode 2 = one exclam one one' }
43
+ let(:dump_keys_line2) { 'alt keycode 2 = Meta_one' }
44
+
45
+ describe 'util #class_methods' do
46
+
47
+ describe '::modifier_combination' do
48
+ it 'finds the modifier combination that fits into 121' do
49
+ expect(described_class.modifier_combination(121)).to eql(["shift", "alt", "shiftl", "shiftr", "ctrll"])
50
+ end
51
+ it 'finds the modifier combination that fits into 7' do
52
+ expect(described_class.modifier_combination(7)).to eql(["shift", "altgr", "control"])
53
+ end
54
+ end
55
+ end
56
+
57
+ describe 'parsing instance_methods' do
58
+
59
+ describe '#parse_keymap_spec' do
60
+ it 'will convert the keymap spec to an array of Integers and Ranges' do
61
+ subject.parse_keymap_spec('keymaps 0-127')
62
+ expect(subject.spec).to eql([0..127])
63
+ end
64
+ end
65
+
66
+ context 'requiring parsed spec' do
67
+
68
+ subject do
69
+ km = described_class.new('VoidSymbol')
70
+ km.parse_keymap_spec('keymaps 0-127')
71
+ km
72
+ end
73
+
74
+ describe '#build_hash_from_full_table_line and ::build_hash_from_full_table_line' do
75
+
76
+ let(:keycode) { cached_line.split('=').first.delete(' ') }
77
+
78
+ let(:right_side) { cached_line.split('=').last.split(/\s/)[1..-1] }
79
+
80
+ let(:result) { {"keycode1"=>"Escape", ["shift", "keycode1"]=>"Escape",
81
+ ["altgr", "keycode1"]=>"Escape", ["shift", "altgr", "keycode1"]=>"Escape",
82
+ ["control", "keycode1"]=>"Escape", ["shift", "control", "keycode1"]=>"Escape",
83
+ ["altgr", "control", "keycode1"]=>"Escape", ["shift", "altgr", "control", "keycode1"]=>"Escape", ["alt", "keycode1"]=>"Meta_Escape",
84
+ ["shift", "alt", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "keycode1"]=>"Meta_Escape",
85
+ ["control", "alt", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "keycode1"]=>"Meta_Escape",
86
+ ["altgr", "control", "alt", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "keycode1"]=>"Meta_Escape",
87
+ ["shiftl", "keycode1"]=>"Escape", ["shift", "shiftl", "keycode1"]=>"Escape", ["altgr", "shiftl", "keycode1"]=>"Escape",
88
+ ["shift", "altgr", "shiftl", "keycode1"]=>"Escape", ["control", "shiftl", "keycode1"]=>"Escape",
89
+ ["shift", "control", "shiftl", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "keycode1"]=>"Escape",
90
+ ["shift", "altgr", "control", "shiftl", "keycode1"]=>"Escape", ["alt", "shiftl", "keycode1"]=>"Meta_Escape",
91
+ ["shift", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
92
+ ["shift", "altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
93
+ ["shift", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
94
+ ["shift", "altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["shiftr", "keycode1"]=>"Escape",
95
+ ["shift", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "shiftr", "keycode1"]=>"Escape",
96
+ ["control", "shiftr", "keycode1"]=>"Escape", ["shift", "control", "shiftr", "keycode1"]=>"Escape", ["altgr", "control", "shiftr", "keycode1"]=>"Escape",
97
+ ["shift", "altgr", "control", "shiftr", "keycode1"]=>"Escape", ["alt", "shiftr", "keycode1"]=>"Meta_Escape",
98
+ ["shift", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
99
+ ["shift", "altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
100
+ ["shift", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
101
+ ["shift", "altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shiftl", "shiftr", "keycode1"]=>"Escape",
102
+ ["shift", "shiftl", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "keycode1"]=>"Escape",
103
+ ["shift", "altgr", "shiftl", "shiftr", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "keycode1"]=>"Escape",
104
+ ["shift", "control","shiftl", "shiftr", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape",
105
+ ["shift", "altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
106
+ ["shift", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
107
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
108
+ ["shift", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
109
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["ctrll", "keycode1"]=>"Escape", ["shift", "ctrll", "keycode1"]=>"Escape",
110
+ ["altgr", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "ctrll", "keycode1"]=>"Escape", ["control", "ctrll", "keycode1"]=>"Escape",
111
+ ["shift", "control", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "control", "ctrll", "keycode1"]=>"Escape",
112
+ ["alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
113
+ ["shift", "altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
114
+ ["shift", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
115
+ ["shift", "altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "ctrll", "keycode1"]=>"Escape",
116
+ ["shift", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "shiftl", "ctrll", "keycode1"]=>"Escape",
117
+ ["control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["shift", "control", "shiftl", "ctrll", "keycode1"]=>"Escape",
118
+ ["altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape",
119
+ ["alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
120
+ ["altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
121
+ ["control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
122
+ ["altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
123
+ ["shiftr", "ctrll", "keycode1"]=>"Escape", ["shift", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftr", "ctrll", "keycode1"]=>"Escape",
124
+ ["shift", "altgr", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftr", "ctrll", "keycode1"]=>"Escape",
125
+ ["shift", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape",
126
+ ["shift", "altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
127
+ ["shift", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
128
+ ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
129
+ ["shift", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
130
+ ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
131
+ ["shift", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
132
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
133
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
134
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr","ctrll", "keycode1"]=>"Meta_Escape",
135
+ ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
136
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll","keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
137
+ ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
138
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape"}}
139
+
140
+ context 'class_method' do
141
+ it 'converts the right side of a keymap into a hash' do
142
+ expect(described_class.build_hash_from_full_table_line(right_side, keycode)).to eql(result)
143
+ end
144
+ end
145
+ context 'instance_method' do
146
+ it 'converts the right side of a keymap into a hash' do
147
+ subject.build_hash_from_full_table_line(right_side, keycode)
148
+ expect(subject).to eql(result)
149
+ end
150
+ end
151
+ end
152
+
153
+ describe '#parse_expression_block' do
154
+
155
+ it 'converts a cached expresssion block into TransmutableHash' do
156
+ subject.parse_expression_block(cached_line)
157
+ expect(subject).to eql({"keycode1"=>"Escape", ["shift", "keycode1"]=>"Escape", ["altgr", "keycode1"]=>"Escape",
158
+ ["shift", "altgr", "keycode1"]=>"Escape", ["control", "keycode1"]=>"Escape", ["shift", "control", "keycode1"]=>"Escape",
159
+ ["altgr", "control", "keycode1"]=>"Escape", ["shift", "altgr", "control", "keycode1"]=>"Escape",
160
+ ["alt", "keycode1"]=>"Meta_Escape",["shift", "alt", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "keycode1"]=>"Meta_Escape",
161
+ ["shift", "altgr", "alt", "keycode1"]=>"Meta_Escape", ["control", "alt", "keycode1"]=>"Meta_Escape",
162
+ ["shift", "control", "alt", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "keycode1"]=>"Meta_Escape",
163
+ ["shift", "altgr", "control", "alt", "keycode1"]=>"Meta_Escape", ["shiftl", "keycode1"]=>"Escape",
164
+ ["shift", "shiftl", "keycode1"]=>"Escape", ["altgr", "shiftl", "keycode1"]=>"Escape",
165
+ ["shift", "altgr", "shiftl", "keycode1"]=>"Escape", ["control", "shiftl", "keycode1"]=>"Escape",
166
+ ["shift", "control", "shiftl", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "keycode1"]=>"Escape",
167
+ ["shift", "altgr", "control", "shiftl", "keycode1"]=>"Escape", ["alt", "shiftl", "keycode1"]=>"Meta_Escape",
168
+ ["shift", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
169
+ ["shift", "altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
170
+ ["shift", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
171
+ ["shift", "altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["shiftr", "keycode1"]=>"Escape",
172
+ ["shift", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "shiftr", "keycode1"]=>"Escape",
173
+ ["control", "shiftr", "keycode1"]=>"Escape", ["shift", "control", "shiftr", "keycode1"]=>"Escape",
174
+ ["altgr", "control", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftr", "keycode1"]=>"Escape",
175
+ ["alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
176
+ ["altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
177
+ ["control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
178
+ ["altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
179
+ ["shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "shiftl", "shiftr", "keycode1"]=>"Escape",
180
+ ["altgr", "shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "shiftl", "shiftr", "keycode1"]=>"Escape",
181
+ ["control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "control","shiftl", "shiftr", "keycode1"]=>"Escape",
182
+ ["altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape",
183
+ ["alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
184
+ ["altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
185
+ ["control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
186
+ ["altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
187
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["ctrll", "keycode1"]=>"Escape",
188
+ ["shift", "ctrll", "keycode1"]=>"Escape", ["altgr", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "ctrll", "keycode1"]=>"Escape",
189
+ ["control", "ctrll", "keycode1"]=>"Escape", ["shift", "control", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "ctrll", "keycode1"]=>"Escape",
190
+ ["shift", "altgr", "control", "ctrll", "keycode1"]=>"Escape", ["alt", "ctrll", "keycode1"]=>"Meta_Escape",
191
+ ["shift", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
192
+ ["shift", "altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
193
+ ["shift", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
194
+ ["shift", "altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "ctrll", "keycode1"]=>"Escape",
195
+ ["shift", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "ctrll", "keycode1"]=>"Escape",
196
+ ["shift", "altgr", "shiftl", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "ctrll", "keycode1"]=>"Escape",
197
+ ["shift", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape",
198
+ ["shift", "altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
199
+ ["shift", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
200
+ ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
201
+ ["shift", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
202
+ ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftr", "ctrll", "keycode1"]=>"Escape",
203
+ ["shift", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftr", "ctrll", "keycode1"]=>"Escape",
204
+ ["shift", "altgr", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftr", "ctrll", "keycode1"]=>"Escape",
205
+ ["shift", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape",
206
+ ["shift", "altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
207
+ ["shift", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
208
+ ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
209
+ ["shift", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
210
+ ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
211
+ ["shift", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
212
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
213
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
214
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr","ctrll", "keycode1"]=>"Meta_Escape",
215
+ ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
216
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll","keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
217
+ ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
218
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape"})
219
+ end
220
+
221
+ it 'converts a dump_keys line with multiple post keysyms into TransmutableHash' do
222
+ subject.parse_expression_block(dump_keys_line1)
223
+ expect(subject).to eql({"keycode2"=>"one", ["shift", "keycode2"]=>"exclam", ["altgr", "keycode2"]=>"one", ["shift", "altgr", "keycode2"]=>"one"})
224
+ end
225
+
226
+ it 'converts a dump_keys line with pre keysyms into TransmutableHash' do
227
+ subject.parse_expression_block(dump_keys_line2)
228
+ expect(subject).to eql({["alt", "keycode2"] =>"Meta_one"})
229
+ end
230
+ end
231
+
232
+ describe '#parse_keymap_expressions' do
233
+
234
+ it 'parses multiple keymap expressions' do
235
+ subject.parse_keymap_expressions(*cached_lines)
236
+ expect(subject).to eql({"keycode1"=>"Escape", ["shift", "keycode1"]=>"Escape", ["altgr", "keycode1"]=>"Escape", ["shift", "altgr", "keycode1"]=>"Escape",
237
+ ["control", "keycode1"]=>"Escape", ["shift", "control", "keycode1"]=>"Escape", ["altgr", "control", "keycode1"]=>"Escape",
238
+ ["shift", "altgr", "control", "keycode1"]=>"Escape", ["alt", "keycode1"]=>"Meta_Escape", ["shift", "alt", "keycode1"]=>"Meta_Escape",
239
+ ["altgr", "alt", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "keycode1"]=>"Meta_Escape", ["control", "alt", "keycode1"]=>"Meta_Escape",
240
+ ["shift", "control", "alt", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "keycode1"]=>"Meta_Escape",
241
+ ["shift", "altgr", "control", "alt", "keycode1"]=>"Meta_Escape", ["shiftl", "keycode1"]=>"Escape", ["shift", "shiftl", "keycode1"]=>"Escape",
242
+ ["altgr", "shiftl", "keycode1"]=>"Escape", ["shift", "altgr", "shiftl", "keycode1"]=>"Escape", ["control", "shiftl", "keycode1"]=>"Escape",
243
+ ["shift", "control", "shiftl", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "keycode1"]=>"Escape",
244
+ ["shift", "altgr", "control", "shiftl", "keycode1"]=>"Escape", ["alt", "shiftl", "keycode1"]=>"Meta_Escape",
245
+ ["shift", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
246
+ ["shift", "altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
247
+ ["shift", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
248
+ ["shift", "altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["shiftr", "keycode1"]=>"Escape", ["shift", "shiftr", "keycode1"]=>"Escape",
249
+ ["altgr", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "shiftr", "keycode1"]=>"Escape", ["control", "shiftr", "keycode1"]=>"Escape",
250
+ ["shift", "control", "shiftr", "keycode1"]=>"Escape", ["altgr", "control", "shiftr", "keycode1"]=>"Escape",
251
+ ["shift", "altgr", "control", "shiftr", "keycode1"]=>"Escape", ["alt", "shiftr", "keycode1"]=>"Meta_Escape",
252
+ ["shift", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
253
+ ["shift", "altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
254
+ ["shift", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
255
+ ["shift", "altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shiftl", "shiftr", "keycode1"]=>"Escape",
256
+ ["shift", "shiftl", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "keycode1"]=>"Escape",
257
+ ["shift", "altgr", "shiftl", "shiftr", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "keycode1"]=>"Escape",
258
+ ["shift", "control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape",
259
+ ["shift", "altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
260
+ ["shift", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
261
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr","keycode1"]=>"Meta_Escape",
262
+ ["shift", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
263
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["ctrll", "keycode1"]=>"Escape", ["shift", "ctrll", "keycode1"]=>"Escape",
264
+ ["altgr", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "ctrll", "keycode1"]=>"Escape", ["control", "ctrll", "keycode1"]=>"Escape",
265
+ ["shift", "control", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "ctrll", "keycode1"]=>"Escape",
266
+ ["shift", "altgr", "control", "ctrll", "keycode1"]=>"Escape", ["alt", "ctrll", "keycode1"]=>"Meta_Escape",
267
+ ["shift", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
268
+ ["shift", "altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
269
+ ["shift", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
270
+ ["shift", "altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "ctrll", "keycode1"]=>"Escape",
271
+ ["shift", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "ctrll", "keycode1"]=>"Escape",
272
+ ["shift", "altgr", "shiftl", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "ctrll", "keycode1"]=>"Escape",
273
+ ["shift", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape",
274
+ ["shift", "altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
275
+ ["shift", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
276
+ ["shift", "altgr", "alt", "shiftl","ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
277
+ ["shift", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
278
+ ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftr", "ctrll", "keycode1"]=>"Escape",
279
+ ["shift", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftr", "ctrll", "keycode1"]=>"Escape",
280
+ ["shift", "altgr", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftr", "ctrll", "keycode1"]=>"Escape",
281
+ ["shift", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape",
282
+ ["shift", "altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
283
+ ["shift", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
284
+ ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
285
+ ["shift", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
286
+ ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
287
+ ["shift", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
288
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
289
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
290
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
291
+ ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
292
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
293
+ ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
294
+ ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
295
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
296
+ "keycode10"=>"U+0039", ["shift", "keycode10"]=>"U+0028", ["altgr", "keycode10"]=>"U+0039", ["shift", "altgr", "keycode10"]=>"U+0039",
297
+ ["control", "keycode10"]=>"VoidSymbol", ["shift", "control", "keycode10"]=>"VoidSymbol", ["altgr", "control", "keycode10"]=>"VoidSymbol",
298
+ ["shift", "altgr", "control", "keycode10"]=>"VoidSymbol", ["alt", "keycode10"]=>"Meta_nine", ["shift", "alt", "keycode10"]=>"Meta_parenleft",
299
+ ["altgr", "alt", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "keycode10"]=>"Meta_nine", ["control", "alt", "keycode10"]=>"VoidSymbol",
300
+ ["shift", "control", "alt", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "keycode10"]=>"VoidSymbol",
301
+ ["shift", "altgr", "control", "alt", "keycode10"]=>"VoidSymbol", ["shiftl", "keycode10"]=>"U+0039", ["shift", "shiftl", "keycode10"]=>"U+0028",
302
+ ["altgr", "shiftl", "keycode10"]=>"U+0039", ["shift", "altgr", "shiftl", "keycode10"]=>"U+0039", ["control", "shiftl", "keycode10"]=>"VoidSymbol",
303
+ ["shift", "control", "shiftl", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "keycode10"]=>"VoidSymbol",
304
+ ["shift", "altgr", "control", "shiftl", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "keycode10"]=>"Meta_nine",
305
+ ["shift", "alt", "shiftl", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "keycode10"]=>"Meta_nine",
306
+ ["shift", "altgr", "alt", "shiftl", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "keycode10"]=>"VoidSymbol",
307
+ ["shift", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol",
308
+ ["shift", "altgr", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol", ["shiftr", "keycode10"]=>"U+0039", ["shift", "shiftr", "keycode10"]=>"U+0028",
309
+ ["altgr", "shiftr", "keycode10"]=>"U+0039", ["shift", "altgr", "shiftr", "keycode10"]=>"U+0039", ["control", "shiftr", "keycode10"]=>"VoidSymbol",
310
+ ["shift", "control", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftr", "keycode10"]=>"VoidSymbol",
311
+ ["shift", "altgr", "control", "shiftr", "keycode10"]=>"VoidSymbol", ["alt", "shiftr", "keycode10"]=>"Meta_nine",
312
+ ["shift", "alt", "shiftr", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftr", "keycode10"]=>"Meta_nine",
313
+ ["shift", "altgr", "alt", "shiftr", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftr", "keycode10"]=>"VoidSymbol",
314
+ ["shift", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol",
315
+ ["shift", "altgr", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol", ["shiftl", "shiftr", "keycode10"]=>"U+0039",
316
+ ["shift", "shiftl", "shiftr", "keycode10"]=>"U+0028", ["altgr", "shiftl", "shiftr", "keycode10"]=>"U+0039",
317
+ ["shift", "altgr", "shiftl", "shiftr", "keycode10"]=>"U+0039", ["control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
318
+ ["shift", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
319
+ ["shift", "altgr", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine",
320
+ ["shift", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine",
321
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
322
+ ["shift", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
323
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["ctrll", "keycode10"]=>"U+0039", ["shift", "ctrll", "keycode10"]=>"U+0028",
324
+ ["altgr", "ctrll", "keycode10"]=>"U+0039", ["shift", "altgr", "ctrll", "keycode10"]=>"U+0039", ["control", "ctrll", "keycode10"]=>"VoidSymbol",
325
+ ["shift", "control", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "ctrll", "keycode10"]=>"VoidSymbol",
326
+ ["shift", "altgr", "control", "ctrll", "keycode10"]=>"VoidSymbol", ["alt", "ctrll", "keycode10"]=>"Meta_nine",
327
+ ["shift", "alt", "ctrll", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "ctrll", "keycode10"]=>"Meta_nine",
328
+ ["shift", "altgr", "alt", "ctrll", "keycode10"]=>"Meta_nine", ["control", "alt", "ctrll", "keycode10"]=>"VoidSymbol",
329
+ ["shift", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol",
330
+ ["shift", "altgr", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol", ["shiftl", "ctrll", "keycode10"]=>"U+0039",
331
+ ["shift", "shiftl", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftl", "ctrll", "keycode10"]=>"U+0039",
332
+ ["shift", "altgr", "shiftl", "ctrll", "keycode10"]=>"U+0039", ["control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
333
+ ["shift", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
334
+ ["shift", "altgr", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine",
335
+ ["shift", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine",
336
+ ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
337
+ ["shift", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
338
+ ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["shiftr", "ctrll", "keycode10"]=>"U+0039",
339
+ ["shift", "shiftr", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftr", "ctrll", "keycode10"]=>"U+0039",
340
+ ["shift", "altgr", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
341
+ ["shift", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
342
+ ["shift", "altgr", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
343
+ ["shift", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
344
+ ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
345
+ ["shift", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
346
+ ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039",
347
+ ["shift", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039",
348
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
349
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
350
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
351
+ ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
352
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["control", "alt","shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
353
+ ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
354
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol"})
355
+ end
356
+ end
357
+
358
+ end
359
+ end #requiring
360
+
361
+ describe 'parsing class methods' do
362
+
363
+ describe '::load_string' do
364
+
365
+ let(:cached_str) { cached_lines.join("\n") + "\n" }
366
+ let(:dump_keys_str) { dump_keys_lines.join("\n") + "\n" }
367
+
368
+ it 'converts cached_lines of a cache file into KeyMap class' do
369
+ arg = described_class.load_string(cached_str)
370
+ expect(arg).to eql({"keycode1"=>"Escape", ["shift", "keycode1"]=>"Escape", ["altgr", "keycode1"]=>"Escape",
371
+ ["shift", "altgr", "keycode1"]=>"Escape", ["control", "keycode1"]=>"Escape", ["shift", "control", "keycode1"]=>"Escape",
372
+ ["altgr", "control", "keycode1"]=>"Escape", ["shift", "altgr", "control", "keycode1"]=>"Escape", ["alt", "keycode1"]=>"Meta_Escape",
373
+ ["shift", "alt", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "keycode1"]=>"Meta_Escape",
374
+ ["control", "alt", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "keycode1"]=>"Meta_Escape",
375
+ ["altgr", "control", "alt", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "keycode1"]=>"Meta_Escape",
376
+ ["shiftl", "keycode1"]=>"Escape", ["shift", "shiftl", "keycode1"]=>"Escape", ["altgr", "shiftl", "keycode1"]=>"Escape",
377
+ ["shift", "altgr", "shiftl", "keycode1"]=>"Escape", ["control", "shiftl", "keycode1"]=>"Escape",
378
+ ["shift", "control", "shiftl", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "keycode1"]=>"Escape",
379
+ ["shift", "altgr", "control", "shiftl", "keycode1"]=>"Escape", ["alt", "shiftl", "keycode1"]=>"Meta_Escape",
380
+ ["shift", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
381
+ ["shift", "altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
382
+ ["shift", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
383
+ ["shift", "altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["shiftr", "keycode1"]=>"Escape",
384
+ ["shift", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "shiftr", "keycode1"]=>"Escape",
385
+ ["control", "shiftr", "keycode1"]=>"Escape", ["shift", "control", "shiftr", "keycode1"]=>"Escape",
386
+ ["altgr", "control", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftr", "keycode1"]=>"Escape",
387
+ ["alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
388
+ ["altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
389
+ ["control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
390
+ ["altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
391
+ ["shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "shiftl", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "keycode1"]=>"Escape",
392
+ ["shift", "altgr", "shiftl", "shiftr", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "keycode1"]=>"Escape",
393
+ ["shift", "control","shiftl", "shiftr", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape",
394
+ ["shift", "altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
395
+ ["shift", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
396
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
397
+ ["shift", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
398
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["ctrll", "keycode1"]=>"Escape",
399
+ ["shift", "ctrll", "keycode1"]=>"Escape", ["altgr", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "ctrll", "keycode1"]=>"Escape",
400
+ ["control", "ctrll", "keycode1"]=>"Escape", ["shift", "control", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "ctrll", "keycode1"]=>"Escape",
401
+ ["shift", "altgr", "control", "ctrll", "keycode1"]=>"Escape", ["alt", "ctrll", "keycode1"]=>"Meta_Escape",
402
+ ["shift", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
403
+ ["shift", "altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
404
+ ["shift", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
405
+ ["shift", "altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "ctrll", "keycode1"]=>"Escape",
406
+ ["shift", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "ctrll", "keycode1"]=>"Escape",
407
+ ["shift", "altgr", "shiftl", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "ctrll", "keycode1"]=>"Escape",
408
+ ["shift", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape",
409
+ ["shift", "altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
410
+ ["shift", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
411
+ ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
412
+ ["shift", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
413
+ ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftr", "ctrll", "keycode1"]=>"Escape",
414
+ ["shift", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftr", "ctrll", "keycode1"]=>"Escape",
415
+ ["shift", "altgr", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftr", "ctrll", "keycode1"]=>"Escape",
416
+ ["shift", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape",
417
+ ["shift", "altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
418
+ ["shift", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
419
+ ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
420
+ ["shift", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
421
+ ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
422
+ ["shift", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
423
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
424
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
425
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr","ctrll", "keycode1"]=>"Meta_Escape",
426
+ ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
427
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll","keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
428
+ ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
429
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", "keycode10"=>"U+0039", ["shift", "keycode10"]=>"U+0028",
430
+ ["altgr", "keycode10"]=>"U+0039", ["shift", "altgr", "keycode10"]=>"U+0039", ["control", "keycode10"]=>"VoidSymbol", ["shift", "control", "keycode10"]=>"VoidSymbol",
431
+ ["altgr", "control", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "keycode10"]=>"VoidSymbol", ["alt", "keycode10"]=>"Meta_nine",
432
+ ["shift", "alt", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "keycode10"]=>"Meta_nine",
433
+ ["control", "alt", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "keycode10"]=>"VoidSymbol",
434
+ ["shift", "altgr", "control", "alt", "keycode10"]=>"VoidSymbol", ["shiftl", "keycode10"]=>"U+0039", ["shift", "shiftl", "keycode10"]=>"U+0028",
435
+ ["altgr", "shiftl", "keycode10"]=>"U+0039", ["shift", "altgr", "shiftl", "keycode10"]=>"U+0039", ["control", "shiftl", "keycode10"]=>"VoidSymbol",
436
+ ["shift", "control", "shiftl", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "keycode10"]=>"VoidSymbol",
437
+ ["shift", "altgr", "control", "shiftl", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "keycode10"]=>"Meta_nine",["shift", "alt", "shiftl", "keycode10"]=>"Meta_parenleft",
438
+ ["altgr", "alt", "shiftl", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "shiftl", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "keycode10"]=>"VoidSymbol",
439
+ ["shift", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol",
440
+ ["shift", "altgr", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol", ["shiftr", "keycode10"]=>"U+0039", ["shift", "shiftr", "keycode10"]=>"U+0028",
441
+ ["altgr", "shiftr", "keycode10"]=>"U+0039", ["shift", "altgr", "shiftr", "keycode10"]=>"U+0039", ["control", "shiftr", "keycode10"]=>"VoidSymbol",
442
+ ["shift", "control", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftr", "keycode10"]=>"VoidSymbol",
443
+ ["shift", "altgr", "control", "shiftr", "keycode10"]=>"VoidSymbol", ["alt", "shiftr", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftr", "keycode10"]=>"Meta_parenleft",
444
+ ["altgr", "alt", "shiftr", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "shiftr", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftr", "keycode10"]=>"VoidSymbol",
445
+ ["shift", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol",
446
+ ["shift", "altgr", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol", ["shiftl", "shiftr", "keycode10"]=>"U+0039", ["shift", "shiftl", "shiftr", "keycode10"]=>"U+0028",
447
+ ["altgr", "shiftl", "shiftr", "keycode10"]=>"U+0039", ["shift", "altgr", "shiftl", "shiftr", "keycode10"]=>"U+0039", ["control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
448
+ ["shift", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
449
+ ["shift", "altgr", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine",
450
+ ["shift", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine",
451
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
452
+ ["shift", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
453
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["ctrll", "keycode10"]=>"U+0039", ["shift", "ctrll", "keycode10"]=>"U+0028",
454
+ ["altgr", "ctrll", "keycode10"]=>"U+0039", ["shift", "altgr", "ctrll", "keycode10"]=>"U+0039", ["control", "ctrll", "keycode10"]=>"VoidSymbol",
455
+ ["shift", "control", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "ctrll", "keycode10"]=>"VoidSymbol",
456
+ ["shift", "altgr", "control", "ctrll", "keycode10"]=>"VoidSymbol", ["alt", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "alt", "ctrll", "keycode10"]=>"Meta_parenleft",
457
+ ["altgr", "alt", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "ctrll", "keycode10"]=>"Meta_nine",
458
+ ["control", "alt", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol",
459
+ ["altgr", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol",
460
+ ["shiftl", "ctrll", "keycode10"]=>"U+0039", ["shift", "shiftl", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftl", "ctrll", "keycode10"]=>"U+0039",
461
+ ["shift", "altgr", "shiftl", "ctrll", "keycode10"]=>"U+0039", ["control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
462
+ ["shift", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
463
+ ["shift", "altgr", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine",
464
+ ["shift", "alt", "shiftl","ctrll", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine",
465
+ ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
466
+ ["shift", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
467
+ ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["shiftr", "ctrll", "keycode10"]=>"U+0039",
468
+ ["shift", "shiftr", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["shift", "altgr", "shiftr", "ctrll", "keycode10"]=>"U+0039",
469
+ ["control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
470
+ ["altgr", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
471
+ ["alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_parenleft",
472
+ ["altgr", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
473
+ ["control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
474
+ ["altgr", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
475
+ ["shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["shift", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0028",
476
+ ["altgr", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039",
477
+ ["control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
478
+ ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
479
+ ["alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_parenleft",
480
+ ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
481
+ ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
482
+ ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol"})
483
+ end
484
+
485
+ it 'converts cached_lines of a dumpkeys output into KeyMap class' do
486
+ arg = described_class.load_string(dump_keys_str)
487
+ expect(arg).to eql({"keycode1"=>"Escape", ["alt", "keycode1"]=>"Meta_Escape", ["shift", "alt", "keycode1"]=>"Meta_Escape",
488
+ "keycode2"=>"one", ["shift", "keycode2"]=>"exclam", ["altgr", "keycode2"]=>"one", ["shift", "altgr", "keycode2"]=>"one",
489
+ ["alt", "keycode2"]=>"Meta_one", ["shift", "alt", "keycode2"]=>"Meta_exclam", ["altgr", "alt", "keycode2"]=>"Meta_one"})
490
+ end
491
+ end
492
+
493
+ describe '::load_file' do
494
+ it 'parses out a file to KeyMap object' do
495
+ expect(described_class.load_file(cached_short_path)).to eql({"keycode1"=>"Escape", ["shift", "keycode1"]=>"Escape", ["altgr", "keycode1"]=>"Escape",
496
+ ["shift", "altgr", "keycode1"]=>"Escape", ["control", "keycode1"]=>"Escape", ["shift", "control", "keycode1"]=>"Escape",
497
+ ["altgr", "control", "keycode1"]=>"Escape", ["shift", "altgr", "control", "keycode1"]=>"Escape", ["alt", "keycode1"]=>"Meta_Escape",["shift", "alt", "keycode1"]=>"Meta_Escape",
498
+ ["altgr", "alt", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "keycode1"]=>"Meta_Escape", ["control", "alt", "keycode1"]=>"Meta_Escape",
499
+ ["shift", "control", "alt", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "keycode1"]=>"Meta_Escape",
500
+ ["shiftl", "keycode1"]=>"Escape", ["shift", "shiftl", "keycode1"]=>"Escape", ["altgr", "shiftl", "keycode1"]=>"Escape",
501
+ ["shift", "altgr", "shiftl", "keycode1"]=>"Escape", ["control", "shiftl", "keycode1"]=>"Escape", ["shift", "control", "shiftl", "keycode1"]=>"Escape",
502
+ ["altgr", "control", "shiftl", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftl", "keycode1"]=>"Escape", ["alt", "shiftl", "keycode1"]=>"Meta_Escape",
503
+ ["shift", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
504
+ ["control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
505
+ ["altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftl", "keycode1"]=>"Meta_Escape",
506
+ ["shiftr", "keycode1"]=>"Escape", ["shift", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftr", "keycode1"]=>"Escape",
507
+ ["shift", "altgr", "shiftr", "keycode1"]=>"Escape", ["control", "shiftr", "keycode1"]=>"Escape", ["shift", "control", "shiftr", "keycode1"]=>"Escape",
508
+ ["altgr", "control", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftr", "keycode1"]=>"Escape", ["alt", "shiftr", "keycode1"]=>"Meta_Escape",
509
+ ["shift", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
510
+ ["control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
511
+ ["altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftr", "keycode1"]=>"Meta_Escape",
512
+ ["shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "shiftl", "shiftr", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "keycode1"]=>"Escape",
513
+ ["shift", "altgr", "shiftl", "shiftr", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "control","shiftl", "shiftr", "keycode1"]=>"Escape",
514
+ ["altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftl", "shiftr", "keycode1"]=>"Escape",
515
+ ["alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
516
+ ["altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
517
+ ["control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
518
+ ["altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode1"]=>"Meta_Escape",
519
+ ["ctrll", "keycode1"]=>"Escape", ["shift", "ctrll", "keycode1"]=>"Escape", ["altgr", "ctrll", "keycode1"]=>"Escape",
520
+ ["shift", "altgr", "ctrll", "keycode1"]=>"Escape", ["control", "ctrll", "keycode1"]=>"Escape", ["shift", "control", "ctrll", "keycode1"]=>"Escape",
521
+ ["altgr", "control", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "control", "ctrll", "keycode1"]=>"Escape", ["alt", "ctrll", "keycode1"]=>"Meta_Escape",
522
+ ["shift", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
523
+ ["control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
524
+ ["altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "ctrll", "keycode1"]=>"Meta_Escape",
525
+ ["shiftl", "ctrll", "keycode1"]=>"Escape", ["shift", "shiftl", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "ctrll", "keycode1"]=>"Escape",
526
+ ["shift", "altgr", "shiftl", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["shift", "control", "shiftl", "ctrll", "keycode1"]=>"Escape",
527
+ ["altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftl", "ctrll", "keycode1"]=>"Escape",
528
+ ["alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
529
+ ["altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
530
+ ["control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
531
+ ["altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode1"]=>"Meta_Escape",
532
+ ["shiftr", "ctrll", "keycode1"]=>"Escape", ["shift", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftr", "ctrll", "keycode1"]=>"Escape",
533
+ ["shift", "altgr", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["shift", "control", "shiftr", "ctrll", "keycode1"]=>"Escape",
534
+ ["altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape", ["shift", "altgr", "control", "shiftr", "ctrll", "keycode1"]=>"Escape",
535
+ ["alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
536
+ ["altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
537
+ ["control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
538
+ ["altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
539
+ ["shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["shift", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
540
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
541
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape",
542
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Escape", ["alt", "shiftl", "shiftr","ctrll", "keycode1"]=>"Meta_Escape",
543
+ ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
544
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll","keycode1"]=>"Meta_Escape", ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
545
+ ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape",
546
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode1"]=>"Meta_Escape", "keycode2"=>"U+0031", ["shift", "keycode2"]=>"U+0021", ["altgr", "keycode2"]=>"U+0031",
547
+ ["shift", "altgr", "keycode2"]=>"U+0021", ["control", "keycode2"]=>"VoidSymbol", ["shift", "control", "keycode2"]=>"VoidSymbol",
548
+ ["altgr", "control", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "keycode2"]=>"VoidSymbol", ["alt", "keycode2"]=>"Meta_one",
549
+ ["shift", "alt", "keycode2"]=>"Meta_exclam", ["altgr", "alt", "keycode2"]=>"Meta_one", ["shift", "altgr", "alt", "keycode2"]=>"Meta_exclam",
550
+ ["control", "alt", "keycode2"]=>"VoidSymbol", ["shift", "control", "alt", "keycode2"]=>"VoidSymbol", ["altgr", "control", "alt", "keycode2"]=>"VoidSymbol",
551
+ ["shift", "altgr", "control", "alt", "keycode2"]=>"VoidSymbol", ["shiftl", "keycode2"]=>"U+0031", ["shift", "shiftl", "keycode2"]=>"U+0021",
552
+ ["altgr", "shiftl", "keycode2"]=>"U+0031", ["shift", "altgr", "shiftl", "keycode2"]=>"U+0021", ["control", "shiftl", "keycode2"]=>"VoidSymbol",
553
+ ["shift", "control", "shiftl", "keycode2"]=>"VoidSymbol", ["altgr", "control", "shiftl", "keycode2"]=>"VoidSymbol", ["shift", "altgr","control", "shiftl", "keycode2"]=>"VoidSymbol",
554
+ ["alt", "shiftl", "keycode2"]=>"Meta_one", ["shift", "alt", "shiftl", "keycode2"]=>"Meta_exclam", ["altgr", "alt", "shiftl", "keycode2"]=>"Meta_one",
555
+ ["shift", "altgr", "alt", "shiftl", "keycode2"]=>"Meta_exclam", ["control", "alt", "shiftl", "keycode2"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "keycode2"]=>"VoidSymbol",
556
+ ["altgr", "control", "alt", "shiftl", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl", "keycode2"]=>"VoidSymbol",
557
+ ["shiftr", "keycode2"]=>"U+0031", ["shift", "shiftr", "keycode2"]=>"U+0021", ["altgr", "shiftr", "keycode2"]=>"U+0031",
558
+ ["shift", "altgr", "shiftr", "keycode2"]=>"U+0021", ["control", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "control", "shiftr", "keycode2"]=>"VoidSymbol",
559
+ ["altgr", "control", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftr", "keycode2"]=>"VoidSymbol",
560
+ ["alt", "shiftr", "keycode2"]=>"Meta_one", ["shift", "alt", "shiftr", "keycode2"]=>"Meta_exclam", ["altgr", "alt", "shiftr", "keycode2"]=>"Meta_one",
561
+ ["shift", "altgr", "alt", "shiftr", "keycode2"]=>"Meta_exclam", ["control", "alt", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "control", "alt", "shiftr", "keycode2"]=>"VoidSymbol",
562
+ ["altgr", "control", "alt", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftr", "keycode2"]=>"VoidSymbol",
563
+ ["shiftl", "shiftr", "keycode2"]=>"U+0031", ["shift", "shiftl", "shiftr", "keycode2"]=>"U+0021", ["altgr", "shiftl", "shiftr", "keycode2"]=>"U+0031",
564
+ ["shift","altgr", "shiftl", "shiftr", "keycode2"]=>"U+0021", ["control", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "control", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol",
565
+ ["altgr", "control", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol",
566
+ ["alt", "shiftl", "shiftr", "keycode2"]=>"Meta_one", ["shift", "alt", "shiftl", "shiftr", "keycode2"]=>"Meta_exclam",
567
+ ["altgr", "alt", "shiftl", "shiftr", "keycode2"]=>"Meta_one", ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode2"]=>"Meta_exclam",
568
+ ["control", "alt", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol",
569
+ ["altgr", "control", "alt", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode2"]=>"VoidSymbol",
570
+ ["ctrll", "keycode2"]=>"U+0031", ["shift", "ctrll", "keycode2"]=>"U+0021", ["altgr", "ctrll", "keycode2"]=>"U+0031",
571
+ ["shift", "altgr", "ctrll", "keycode2"]=>"U+0021", ["control", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "control", "ctrll", "keycode2"]=>"VoidSymbol",
572
+ ["altgr", "control", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "ctrll", "keycode2"]=>"VoidSymbol",
573
+ ["alt", "ctrll", "keycode2"]=>"Meta_one", ["shift", "alt", "ctrll", "keycode2"]=>"Meta_exclam", ["altgr", "alt", "ctrll", "keycode2"]=>"Meta_one",
574
+ ["shift", "altgr","alt", "ctrll", "keycode2"]=>"Meta_exclam", ["control", "alt", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "control","alt", "ctrll", "keycode2"]=>"VoidSymbol",
575
+ ["altgr", "control", "alt", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "ctrll", "keycode2"]=>"VoidSymbol",
576
+ ["shiftl", "ctrll", "keycode2"]=>"U+0031", ["shift", "shiftl", "ctrll", "keycode2"]=>"U+0021", ["altgr", "shiftl", "ctrll", "keycode2"]=>"U+0031",
577
+ ["shift", "altgr", "shiftl", "ctrll", "keycode2"]=>"U+0021", ["control", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "control", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol",
578
+ ["altgr", "control", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol",
579
+ ["alt", "shiftl", "ctrll", "keycode2"]=>"Meta_one", ["shift", "alt", "shiftl", "ctrll", "keycode2"]=>"Meta_exclam",
580
+ ["altgr", "alt", "shiftl", "ctrll", "keycode2"]=>"Meta_one", ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode2"]=>"Meta_exclam",
581
+ ["control", "alt", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol",
582
+ ["altgr", "control", "alt", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode2"]=>"VoidSymbol",
583
+ ["shiftr", "ctrll", "keycode2"]=>"U+0031", ["shift", "shiftr", "ctrll", "keycode2"]=>"U+0021", ["altgr", "shiftr", "ctrll", "keycode2"]=>"U+0031",
584
+ ["shift", "altgr", "shiftr", "ctrll", "keycode2"]=>"U+0021", ["control", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "control", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol",
585
+ ["altgr", "control", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol",
586
+ ["alt", "shiftr", "ctrll", "keycode2"]=>"Meta_one", ["shift", "alt", "shiftr", "ctrll", "keycode2"]=>"Meta_exclam",
587
+ ["altgr", "alt", "shiftr", "ctrll", "keycode2"]=>"Meta_one", ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode2"]=>"Meta_exclam",
588
+ ["control", "alt", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "control", "alt", "shiftr", "ctrll","keycode2"]=>"VoidSymbol",
589
+ ["altgr", "control", "alt", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "altgr","control", "alt", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol",
590
+ ["shiftl", "shiftr", "ctrll", "keycode2"]=>"U+0031", ["shift", "shiftl", "shiftr", "ctrll", "keycode2"]=>"U+0021", ["altgr", "shiftl", "shiftr", "ctrll", "keycode2"]=>"U+0031",
591
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode2"]=>"U+0021", ["control", "shiftl", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol",
592
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol",
593
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["alt", "shiftl", "shiftr", "ctrll", "keycode2"]=>"Meta_one", ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode2"]=>"Meta_exclam",
594
+ ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode2"]=>"Meta_one", ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode2"]=>"Meta_exclam",
595
+ ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol",
596
+ ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode2"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl","shiftr", "ctrll", "keycode2"]=>"VoidSymbol", "keycode10"=>"U+0039",
597
+ ["shift", "keycode10"]=>"U+0028", ["altgr", "keycode10"]=>"U+0039", ["shift", "altgr", "keycode10"]=>"U+0039",
598
+ ["control", "keycode10"]=>"VoidSymbol", ["shift", "control", "keycode10"]=>"VoidSymbol", ["altgr", "control", "keycode10"]=>"VoidSymbol",
599
+ ["shift", "altgr", "control", "keycode10"]=>"VoidSymbol", ["alt", "keycode10"]=>"Meta_nine", ["shift", "alt", "keycode10"]=>"Meta_parenleft",
600
+ ["altgr", "alt", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "keycode10"]=>"Meta_nine", ["control", "alt", "keycode10"]=>"VoidSymbol",
601
+ ["shift", "control", "alt", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "keycode10"]=>"VoidSymbol",
602
+ ["shiftl", "keycode10"]=>"U+0039", ["shift", "shiftl", "keycode10"]=>"U+0028", ["altgr", "shiftl", "keycode10"]=>"U+0039",
603
+ ["shift", "altgr", "shiftl", "keycode10"]=>"U+0039", ["control", "shiftl", "keycode10"]=>"VoidSymbol", ["shift", "control", "shiftl", "keycode10"]=>"VoidSymbol",
604
+ ["altgr", "control", "shiftl", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftl", "keycode10"]=>"VoidSymbol",
605
+ ["alt", "shiftl", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftl", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "keycode10"]=>"Meta_nine",
606
+ ["shift", "altgr", "alt", "shiftl", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol",
607
+ ["altgr", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl", "keycode10"]=>"VoidSymbol",
608
+ ["shiftr", "keycode10"]=>"U+0039", ["shift", "shiftr", "keycode10"]=>"U+0028", ["altgr", "shiftr", "keycode10"]=>"U+0039",
609
+ ["shift", "altgr", "shiftr", "keycode10"]=>"U+0039", ["control", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "control", "shiftr", "keycode10"]=>"VoidSymbol",
610
+ ["altgr", "control", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftr", "keycode10"]=>"VoidSymbol",
611
+ ["alt", "shiftr", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftr", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftr", "keycode10"]=>"Meta_nine",
612
+ ["shift", "altgr", "alt", "shiftr", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol",
613
+ ["altgr", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftr", "keycode10"]=>"VoidSymbol",
614
+ ["shiftl", "shiftr", "keycode10"]=>"U+0039", ["shift", "shiftl","shiftr", "keycode10"]=>"U+0028", ["altgr", "shiftl", "shiftr", "keycode10"]=>"U+0039",
615
+ ["shift", "altgr", "shiftl", "shiftr", "keycode10"]=>"U+0039", ["control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
616
+ ["altgr", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
617
+ ["alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_parenleft",
618
+ ["altgr", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode10"]=>"Meta_nine",
619
+ ["control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
620
+ ["altgr", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode10"]=>"VoidSymbol",
621
+ ["ctrll", "keycode10"]=>"U+0039", ["shift", "ctrll", "keycode10"]=>"U+0028", ["altgr", "ctrll", "keycode10"]=>"U+0039",
622
+ ["shift", "altgr", "ctrll", "keycode10"]=>"U+0039", ["control", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "ctrll", "keycode10"]=>"VoidSymbol",
623
+ ["altgr", "control", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "ctrll", "keycode10"]=>"VoidSymbol",
624
+ ["alt", "ctrll", "keycode10"]=>"Meta_nine",["shift", "alt", "ctrll", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "ctrll", "keycode10"]=>"Meta_nine",["shift", "altgr", "alt", "ctrll", "keycode10"]=>"Meta_nine",
625
+ ["control", "alt", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol",
626
+ ["altgr", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "ctrll", "keycode10"]=>"VoidSymbol",
627
+ ["shiftl", "ctrll", "keycode10"]=>"U+0039", ["shift", "shiftl", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftl", "ctrll", "keycode10"]=>"U+0039",
628
+ ["shift", "altgr", "shiftl", "ctrll", "keycode10"]=>"U+0039", ["control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
629
+ ["altgr", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",["shift", "altgr", "control", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
630
+ ["alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_parenleft",
631
+ ["altgr", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode10"]=>"Meta_nine",
632
+ ["control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
633
+ ["altgr", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftl", "ctrll", "keycode10"]=>"VoidSymbol",
634
+ ["shiftr", "ctrll", "keycode10"]=>"U+0039", ["shift", "shiftr", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftr", "ctrll", "keycode10"]=>"U+0039",
635
+ ["shift", "altgr", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
636
+ ["altgr", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
637
+ ["alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_parenleft",
638
+ ["altgr", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
639
+ ["control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
640
+ ["altgr", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
641
+ ["shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["shift", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0028", ["altgr", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039",
642
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode10"]=>"U+0039", ["control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
643
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
644
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
645
+ ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_parenleft", ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine",
646
+ ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"Meta_nine", ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
647
+ ["shift", "control", "alt","shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol",
648
+ ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode10"]=>"VoidSymbol", "keycode121"=>"KP_Period", ["shift", "keycode121"]=>"KP_Period", ["altgr", "keycode121"]=>"KP_Period",
649
+ ["shift", "altgr", "keycode121"]=>"KP_Period", ["control", "keycode121"]=>"KP_Period", ["shift", "control", "keycode121"]=>"KP_Period",
650
+ ["altgr", "control", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "keycode121"]=>"KP_Period", ["alt", "keycode121"]=>"KP_Period",
651
+ ["shift", "alt", "keycode121"]=>"KP_Period", ["altgr", "alt", "keycode121"]=>"KP_Period", ["shift", "altgr", "alt", "keycode121"]=>"KP_Period",
652
+ ["control", "alt", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "keycode121"]=>"KP_Period", ["altgr", "control", "alt", "keycode121"]=>"KP_Period",
653
+ ["shift", "altgr", "control", "alt", "keycode121"]=>"KP_Period", ["shiftl", "keycode121"]=>"KP_Period", ["shift", "shiftl", "keycode121"]=>"KP_Period",
654
+ ["altgr", "shiftl", "keycode121"]=>"KP_Period", ["shift", "altgr", "shiftl", "keycode121"]=>"KP_Period", ["control", "shiftl","keycode121"]=>"KP_Period",
655
+ ["shift", "control", "shiftl", "keycode121"]=>"KP_Period", ["altgr", "control", "shiftl", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "shiftl", "keycode121"]=>"KP_Period",
656
+ ["alt", "shiftl", "keycode121"]=>"KP_Period", ["shift", "alt", "shiftl", "keycode121"]=>"KP_Period", ["altgr", "alt", "shiftl", "keycode121"]=>"KP_Period",
657
+ ["shift", "altgr", "alt", "shiftl", "keycode121"]=>"KP_Period", ["control", "alt", "shiftl", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "shiftl", "keycode121"]=>"KP_Period",
658
+ ["altgr", "control", "alt", "shiftl", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "alt", "shiftl", "keycode121"]=>"KP_Period",
659
+ ["shiftr", "keycode121"]=>"KP_Period", ["shift", "shiftr", "keycode121"]=>"KP_Period", ["altgr", "shiftr", "keycode121"]=>"KP_Period",
660
+ ["shift", "altgr", "shiftr", "keycode121"]=>"KP_Period", ["control", "shiftr", "keycode121"]=>"KP_Period", ["shift", "control", "shiftr", "keycode121"]=>"KP_Period",
661
+ ["altgr", "control", "shiftr", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "shiftr", "keycode121"]=>"KP_Period",
662
+ ["alt", "shiftr", "keycode121"]=>"KP_Period", ["shift", "alt", "shiftr", "keycode121"]=>"KP_Period", ["altgr", "alt", "shiftr", "keycode121"]=>"KP_Period",
663
+ ["shift", "altgr", "alt", "shiftr", "keycode121"]=>"KP_Period", ["control", "alt", "shiftr", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "shiftr", "keycode121"]=>"KP_Period",
664
+ ["altgr", "control", "alt", "shiftr", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "alt", "shiftr", "keycode121"]=>"KP_Period",
665
+ ["shiftl", "shiftr", "keycode121"]=>"KP_Period", ["shift", "shiftl", "shiftr", "keycode121"]=>"KP_Period", ["altgr", "shiftl", "shiftr", "keycode121"]=>"KP_Period",
666
+ ["shift", "altgr", "shiftl", "shiftr", "keycode121"]=>"KP_Period", ["control", "shiftl", "shiftr", "keycode121"]=>"KP_Period", ["shift", "control", "shiftl", "shiftr", "keycode121"]=>"KP_Period",
667
+ ["altgr", "control", "shiftl", "shiftr", "keycode121"]=>"KP_Period",["shift", "altgr", "control", "shiftl", "shiftr", "keycode121"]=>"KP_Period",
668
+ ["alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period", ["shift", "alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period",
669
+ ["altgr", "alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period", ["shift", "altgr", "alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period",
670
+ ["control", "alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period",
671
+ ["altgr", "control", "alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "keycode121"]=>"KP_Period",
672
+ ["ctrll", "keycode121"]=>"KP_Period", ["shift", "ctrll", "keycode121"]=>"KP_Period", ["altgr", "ctrll", "keycode121"]=>"KP_Period",
673
+ ["shift", "altgr", "ctrll", "keycode121"]=>"KP_Period", ["control", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "ctrll", "keycode121"]=>"KP_Period",
674
+ ["altgr", "control", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "ctrll", "keycode121"]=>"KP_Period",
675
+ ["alt", "ctrll", "keycode121"]=>"KP_Period", ["shift", "alt", "ctrll", "keycode121"]=>"KP_Period", ["altgr", "alt", "ctrll", "keycode121"]=>"KP_Period",
676
+ ["shift", "altgr", "alt", "ctrll", "keycode121"]=>"KP_Period", ["control", "alt", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "ctrll", "keycode121"]=>"KP_Period",
677
+ ["altgr", "control", "alt", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "alt", "ctrll", "keycode121"]=>"KP_Period",
678
+ ["shiftl", "ctrll", "keycode121"]=>"KP_Period", ["shift", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["altgr", "shiftl", "ctrll", "keycode121"]=>"KP_Period",
679
+ ["shift", "altgr", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["control", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "shiftl", "ctrll", "keycode121"]=>"KP_Period",
680
+ ["altgr", "control", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "shiftl", "ctrll", "keycode121"]=>"KP_Period",
681
+ ["alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["shift", "alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period",
682
+ ["altgr", "alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period",
683
+ ["control", "alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period",
684
+ ["altgr", "control", "alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period", ["shift","altgr", "control", "alt", "shiftl", "ctrll", "keycode121"]=>"KP_Period",
685
+ ["shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["altgr", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
686
+ ["shift", "altgr", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["control", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
687
+ ["altgr", "control", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
688
+ ["alt", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "alt", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
689
+ ["altgr", "alt", "shiftr","ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "alt", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
690
+ ["control", "alt", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
691
+ ["altgr", "control", "alt", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "alt", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
692
+ ["shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
693
+ ["altgr", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
694
+ ["control", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
695
+ ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
696
+ ["alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
697
+ ["altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
698
+ ["control", "alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period",
699
+ ["altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period", ["shift", "altgr", "control", "alt", "shiftl", "shiftr", "ctrll", "keycode121"]=>"KP_Period"})
700
+ end
701
+ end
702
+ end
703
+
704
+ context 'instance_methods after loaded file' do
705
+
706
+ context 'cached' do
707
+ subject { described_class.load_file(cached_short_path) }
708
+
709
+ describe '#left_side' do
710
+ it 'returns the keycode for that key combination' do
711
+ #puts subject.inspect
712
+ expect(subject.left_side('Escape')).to eql(["keycode1", ["shift", "keycode1"], ["altgr", "keycode1"],
713
+ ["shift", "altgr", "keycode1"], ["control","keycode1"], ["shift", "control", "keycode1"], ["altgr", "control", "keycode1"],
714
+ ["shift", "altgr", "control", "keycode1"], ["shiftl", "keycode1"], ["shift", "shiftl", "keycode1"],
715
+ ["altgr", "shiftl", "keycode1"], ["shift", "altgr", "shiftl", "keycode1"], ["control", "shiftl", "keycode1"],
716
+ ["shift", "control", "shiftl", "keycode1"], ["altgr", "control", "shiftl", "keycode1"],
717
+ ["shift", "altgr", "control", "shiftl", "keycode1"], ["shiftr", "keycode1"], ["shift", "shiftr", "keycode1"],
718
+ ["altgr", "shiftr", "keycode1"], ["shift", "altgr", "shiftr", "keycode1"], ["control", "shiftr", "keycode1"],
719
+ ["shift", "control", "shiftr", "keycode1"], ["altgr", "control", "shiftr", "keycode1"],
720
+ ["shift", "altgr", "control", "shiftr", "keycode1"], ["shiftl", "shiftr", "keycode1"],
721
+ ["shift", "shiftl", "shiftr", "keycode1"], ["altgr", "shiftl", "shiftr", "keycode1"],
722
+ ["shift", "altgr", "shiftl", "shiftr", "keycode1"], ["control", "shiftl", "shiftr", "keycode1"],
723
+ ["shift", "control", "shiftl", "shiftr", "keycode1"], ["altgr", "control", "shiftl", "shiftr", "keycode1"],
724
+ ["shift", "altgr", "control", "shiftl", "shiftr", "keycode1"], ["ctrll", "keycode1"], ["shift", "ctrll", "keycode1"],
725
+ ["altgr", "ctrll", "keycode1"], ["shift", "altgr", "ctrll", "keycode1"], ["control", "ctrll", "keycode1"],
726
+ ["shift", "control", "ctrll","keycode1"], ["altgr", "control", "ctrll", "keycode1"],
727
+ ["shift", "altgr", "control", "ctrll", "keycode1"], ["shiftl", "ctrll", "keycode1"],
728
+ ["shift", "shiftl", "ctrll", "keycode1"], ["altgr", "shiftl", "ctrll", "keycode1"],
729
+ ["shift", "altgr", "shiftl", "ctrll", "keycode1"], ["control", "shiftl", "ctrll", "keycode1"],
730
+ ["shift", "control", "shiftl", "ctrll","keycode1"], ["altgr", "control", "shiftl", "ctrll", "keycode1"],
731
+ ["shift", "altgr", "control", "shiftl", "ctrll", "keycode1"], ["shiftr", "ctrll", "keycode1"],
732
+ ["shift", "shiftr", "ctrll", "keycode1"], ["altgr", "shiftr", "ctrll", "keycode1"],
733
+ ["shift", "altgr", "shiftr", "ctrll", "keycode1"], ["control", "shiftr", "ctrll", "keycode1"],
734
+ ["shift", "control", "shiftr", "ctrll", "keycode1"], ["altgr", "control", "shiftr", "ctrll", "keycode1"],
735
+ ["shift", "altgr", "control", "shiftr", "ctrll", "keycode1"], ["shiftl", "shiftr", "ctrll", "keycode1"],
736
+ ["shift", "shiftl", "shiftr", "ctrll", "keycode1"], ["altgr", "shiftl", "shiftr", "ctrll", "keycode1"],
737
+ ["shift", "altgr", "shiftl", "shiftr", "ctrll", "keycode1"], ["control", "shiftl", "shiftr", "ctrll", "keycode1"],
738
+ ["shift", "control", "shiftl", "shiftr", "ctrll", "keycode1"],
739
+ ["altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"],
740
+ ["shift", "altgr", "control", "shiftl", "shiftr", "ctrll", "keycode1"]])
741
+ end
742
+ end
743
+
744
+ describe '#right_side' do
745
+ it 'returns the the different combinations of keys that could have produced this keysym' do
746
+ expect(subject.right_side('keycode121')).to eql('KP_Period')
747
+ end
748
+ end
749
+ end
750
+
751
+ context 'dump_keys' do
752
+ subject { described_class.load_file(dump_keys_short_path) }
753
+
754
+ describe '#left_side' do
755
+ it 'returns the keycode for that key combination' do
756
+ expect(subject.left_side('Escape')).to eql('keycode1')
757
+ end
758
+ end
759
+ describe '#right_side' do
760
+ it 'returns the the different combinations of keys that could have produced this keysym' do
761
+ expect(subject.right_side('keycode121')).to eql('KP_Period')
762
+ end
763
+ end
764
+ end
765
+
766
+ end
767
+ end