From 95a5cfb6f17ebac692d0937fc3fc301d3259dda2 Mon Sep 17 00:00:00 2001 From: Dmitry Bilunov Date: Wed, 16 Dec 2015 17:37:52 +0300 Subject: [PATCH] Do not hardcode scancodes that change isolinux boot params We have a "skipfuelmenu" variable in virtualbox scripts, which allows to skip "fuelmenu" step during the installation procedure. This option is enabled by default. Currently, we have a hardcoded variable $boot_line, which contains scan codes, passed by VirtualBox into isolinux on an emulated keyboard. We should generate these scancodes from a user specified line instead of hardcoding them. Partial-Bug: 1525967 Change-Id: Ia2419b5e2eaa4b30cd2876112d7c080abbebcba5 --- actions/master-node-create-and-install.sh | 6 +- dumpkeys.cache | 1348 +++++++++++++++++++++ functions/translate.sh | 84 ++ 3 files changed, 1436 insertions(+), 2 deletions(-) create mode 100644 dumpkeys.cache create mode 100644 functions/translate.sh diff --git a/actions/master-node-create-and-install.sh b/actions/master-node-create-and-install.sh index 33b5b1c..29d5ec8 100755 --- a/actions/master-node-create-and-install.sh +++ b/actions/master-node-create-and-install.sh @@ -24,6 +24,7 @@ source ./config.sh source ./functions/vm.sh source ./functions/network.sh source ./functions/product.sh +source ./functions/translate.sh # Create master node for the product # Get variables "host_nic_name" for the master node @@ -49,8 +50,9 @@ if [ ${headless} -eq 1 ]; then fi if [ "$skipfuelmenu" = "yes" ]; then - # " vmlinuz initrd=initrd.img biosdevname=0 ks=cdrom:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=no" line is coded - boot_line=" 39 b9 2f af 32 b2 26 a6 17 97 31 b1 16 96 2c ac 39 b9 17 97 31 b1 17 97 14 94 13 93 20 a0 0d 8d 17 97 31 b1 17 97 14 94 13 93 20 a0 34 b4 17 97 32 b2 22 a2 39 b9 30 b0 17 97 18 98 1f 9f 20 a0 12 92 2f af 31 b1 1e 9e 32 b2 12 92 0d 8d 0b 8b 39 b9 25 a5 1f 9f 0d 8d 2e ae 20 a0 13 93 18 98 32 b2 2a 27 a7 aa 35 b5 25 a5 1f 9f 34 b4 2e ae 21 a1 22 a2 39 b9 17 97 19 99 0d 8d 02 82 0b 8b 34 b4 03 83 0b 8b 34 b4 0b 8b 34 b4 03 83 39 b9 22 a2 11 91 0d 8d 02 82 0b 8b 34 b4 03 83 0b 8b 34 b4 0b 8b 34 b4 02 82 39 b9 20 a0 31 b1 1f 9f 02 82 0d 8d 02 82 0b 8b 34 b4 03 83 0b 8b 34 b4 0b 8b 34 b4 02 82 39 b9 31 b1 12 92 14 94 32 b2 1e 9e 1f 9f 25 a5 0d 8d 03 83 06 86 06 86 34 b4 03 83 06 86 06 86 34 b4 03 83 06 86 06 86 34 b4 0b 8b 39 b9 23 a3 18 98 1f 9f 14 94 31 b1 1e 9e 32 b2 12 92 0d 8d 21 a1 16 96 12 92 26 a6 34 b4 20 a0 18 98 32 b2 1e 9e 17 97 31 b1 34 b4 14 94 26 a6 20 a0 39 b9 1f 9f 23 a3 18 98 11 91 32 b2 12 92 31 b1 16 96 0d 8d 31 b1 18 98 1c 9c" + cmdline="$(grep 'append initrd' ../iso/isolinux/isolinux.cfg -m1 2> /dev/null | sed -e 's/^[ ]*append//')" + cmdline="${cmdline:- initrd=initrd.img net.ifnames=0 biosdevname=0 ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: dns1=10.20.0.1 selinux=0}" + boot_line="$(translate "$cmdline showmenu=no"$'\n')" fi # Start virtual machine with the master node diff --git a/dumpkeys.cache b/dumpkeys.cache new file mode 100644 index 0000000..1f7de9b --- /dev/null +++ b/dumpkeys.cache @@ -0,0 +1,1348 @@ +keymaps 0-255 +keycode 1 = Escape Escape Escape + control keycode 1 = Escape + shift control keycode 1 = Escape + altgr control keycode 1 = Escape + alt keycode 1 = Meta_Escape + shift alt keycode 1 = Meta_Escape + control alt keycode 1 = Meta_Escape +keycode 2 = one exclam + alt keycode 2 = Meta_one + shift alt keycode 2 = Meta_exclam +keycode 3 = two at at + control keycode 3 = nul + shift control keycode 3 = nul + alt keycode 3 = Meta_two + shift alt keycode 3 = Meta_at + control alt keycode 3 = Meta_nul +keycode 4 = three numbersign + control keycode 4 = Escape + alt keycode 4 = Meta_three + shift alt keycode 4 = Meta_numbersign +keycode 5 = four dollar dollar + control keycode 5 = Control_backslash + alt keycode 5 = Meta_four + shift alt keycode 5 = Meta_dollar + control alt keycode 5 = Meta_Control_backslash +keycode 6 = five percent + control keycode 6 = Control_bracketright + alt keycode 6 = Meta_five + shift alt keycode 6 = Meta_percent +keycode 7 = six asciicircum + control keycode 7 = Control_asciicircum + alt keycode 7 = Meta_six + shift alt keycode 7 = Meta_asciicircum +keycode 8 = seven ampersand braceleft + control keycode 8 = Control_underscore + alt keycode 8 = Meta_seven + shift alt keycode 8 = Meta_ampersand + control alt keycode 8 = Meta_Control_underscore +keycode 9 = eight asterisk bracketleft + control keycode 9 = Delete + alt keycode 9 = Meta_eight + shift alt keycode 9 = Meta_asterisk + control alt keycode 9 = Meta_Delete +keycode 10 = nine parenleft bracketright + alt keycode 10 = Meta_nine + shift alt keycode 10 = Meta_parenleft +keycode 11 = zero parenright braceright + alt keycode 11 = Meta_zero + shift alt keycode 11 = Meta_parenright +keycode 12 = minus underscore backslash + control keycode 12 = Control_underscore + shift control keycode 12 = Control_underscore + alt keycode 12 = Meta_minus + shift alt keycode 12 = Meta_underscore + control alt keycode 12 = Meta_Control_underscore +keycode 13 = equal plus + alt keycode 13 = Meta_equal + shift alt keycode 13 = Meta_plus +keycode 14 = Delete Delete Delete + control keycode 14 = Delete + shift control keycode 14 = Delete + altgr control keycode 14 = Delete + alt keycode 14 = Meta_Delete + shift alt keycode 14 = Meta_Delete + control alt keycode 14 = Meta_Delete +keycode 15 = Tab Meta_Tab Tab + control keycode 15 = Tab + shift control keycode 15 = Tab + altgr control keycode 15 = Tab + alt keycode 15 = Meta_Tab + shift alt keycode 15 = Tab + control alt keycode 15 = Meta_Tab +keycode 16 = +q +Q +q + control keycode 16 = Control_q + shift control keycode 16 = Control_q + altgr control keycode 16 = Control_q + alt keycode 16 = Meta_q + shift alt keycode 16 = Meta_Q + control alt keycode 16 = Meta_Control_q +keycode 17 = +w +W +w + control keycode 17 = Control_w + shift control keycode 17 = Control_w + altgr control keycode 17 = Control_w + alt keycode 17 = Meta_w + shift alt keycode 17 = Meta_W + control alt keycode 17 = Meta_Control_w +keycode 18 = +e +E +e + control keycode 18 = Control_e + shift control keycode 18 = Control_e + altgr control keycode 18 = Control_e + alt keycode 18 = Meta_e + shift alt keycode 18 = Meta_E + control alt keycode 18 = Meta_Control_e +keycode 19 = +r +R +r + control keycode 19 = Control_r + shift control keycode 19 = Control_r + altgr control keycode 19 = Control_r + alt keycode 19 = Meta_r + shift alt keycode 19 = Meta_R + control alt keycode 19 = Meta_Control_r +keycode 20 = +t +T +t + control keycode 20 = Control_t + shift control keycode 20 = Control_t + altgr control keycode 20 = Control_t + alt keycode 20 = Meta_t + shift alt keycode 20 = Meta_T + control alt keycode 20 = Meta_Control_t +keycode 21 = +y +Y +y + control keycode 21 = Control_y + shift control keycode 21 = Control_y + altgr control keycode 21 = Control_y + alt keycode 21 = Meta_y + shift alt keycode 21 = Meta_Y + control alt keycode 21 = Meta_Control_y +keycode 22 = +u +U +u + control keycode 22 = Control_u + shift control keycode 22 = Control_u + altgr control keycode 22 = Control_u + alt keycode 22 = Meta_u + shift alt keycode 22 = Meta_U + control alt keycode 22 = Meta_Control_u +keycode 23 = +i +I +i + control keycode 23 = Tab + shift control keycode 23 = Tab + altgr control keycode 23 = Tab + alt keycode 23 = Meta_i + shift alt keycode 23 = Meta_I + control alt keycode 23 = Meta_Tab +keycode 24 = +o +O +o + control keycode 24 = Control_o + shift control keycode 24 = Control_o + altgr control keycode 24 = Control_o + alt keycode 24 = Meta_o + shift alt keycode 24 = Meta_O + control alt keycode 24 = Meta_Control_o +keycode 25 = +p +P +p + control keycode 25 = Control_p + shift control keycode 25 = Control_p + altgr control keycode 25 = Control_p + alt keycode 25 = Meta_p + shift alt keycode 25 = Meta_P + control alt keycode 25 = Meta_Control_p +keycode 26 = bracketleft braceleft + control keycode 26 = Escape + alt keycode 26 = Meta_bracketleft + shift alt keycode 26 = Meta_braceleft +keycode 27 = bracketright braceright asciitilde + control keycode 27 = Control_bracketright + alt keycode 27 = Meta_bracketright + shift alt keycode 27 = Meta_braceright + control alt keycode 27 = Meta_Control_bracketright +keycode 28 = Return Return Return + control keycode 28 = Return + shift control keycode 28 = Return + altgr control keycode 28 = Return + alt keycode 28 = Meta_Control_m + shift alt keycode 28 = Return + control alt keycode 28 = Return +keycode 29 = Control Control Control + control keycode 29 = Control + shift control keycode 29 = Control + altgr control keycode 29 = Control + alt keycode 29 = Control + shift alt keycode 29 = Control + control alt keycode 29 = Control +keycode 30 = +a +A +a + control keycode 30 = Control_a + shift control keycode 30 = Control_a + altgr control keycode 30 = Control_a + alt keycode 30 = Meta_a + shift alt keycode 30 = Meta_A + control alt keycode 30 = Meta_Control_a +keycode 31 = +s +S +s + control keycode 31 = Control_s + shift control keycode 31 = Control_s + altgr control keycode 31 = Control_s + alt keycode 31 = Meta_s + shift alt keycode 31 = Meta_S + control alt keycode 31 = Meta_Control_s +keycode 32 = +d +D +d + control keycode 32 = Control_d + shift control keycode 32 = Control_d + altgr control keycode 32 = Control_d + alt keycode 32 = Meta_d + shift alt keycode 32 = Meta_D + control alt keycode 32 = Meta_Control_d +keycode 33 = +f +F +f + control keycode 33 = Control_f + shift control keycode 33 = Control_f + altgr control keycode 33 = Control_f + alt keycode 33 = Meta_f + shift alt keycode 33 = Meta_F + control alt keycode 33 = Meta_Control_f +keycode 34 = +g +G +g + control keycode 34 = Control_g + shift control keycode 34 = Control_g + altgr control keycode 34 = Control_g + alt keycode 34 = Meta_g + shift alt keycode 34 = Meta_G + control alt keycode 34 = Meta_Control_g +keycode 35 = +h +H +h + control keycode 35 = BackSpace + shift control keycode 35 = BackSpace + altgr control keycode 35 = BackSpace + alt keycode 35 = Meta_h + shift alt keycode 35 = Meta_H + control alt keycode 35 = Meta_BackSpace +keycode 36 = +j +J +j + control keycode 36 = Linefeed + shift control keycode 36 = Linefeed + altgr control keycode 36 = Linefeed + alt keycode 36 = Meta_j + shift alt keycode 36 = Meta_J + control alt keycode 36 = Meta_Linefeed +keycode 37 = +k +K +k + control keycode 37 = Control_k + shift control keycode 37 = Control_k + altgr control keycode 37 = Control_k + alt keycode 37 = Meta_k + shift alt keycode 37 = Meta_K + control alt keycode 37 = Meta_Control_k +keycode 38 = +l +L +l + control keycode 38 = Control_l + shift control keycode 38 = Control_l + altgr control keycode 38 = Control_l + alt keycode 38 = Meta_l + shift alt keycode 38 = Meta_L + control alt keycode 38 = Meta_Control_l +keycode 39 = semicolon colon + alt keycode 39 = Meta_semicolon + shift alt keycode 39 = Meta_colon +keycode 40 = apostrophe quotedbl + control keycode 40 = Control_g + alt keycode 40 = Meta_apostrophe + shift alt keycode 40 = Meta_quotedbl +keycode 41 = grave asciitilde + control keycode 41 = nul + alt keycode 41 = Meta_grave + shift alt keycode 41 = Meta_asciitilde +keycode 42 = Shift Shift Shift + control keycode 42 = Shift + shift control keycode 42 = Shift + altgr control keycode 42 = Shift + alt keycode 42 = Shift + shift alt keycode 42 = Shift + control alt keycode 42 = Shift +keycode 43 = backslash bar + control keycode 43 = Control_backslash + alt keycode 43 = Meta_backslash + shift alt keycode 43 = Meta_bar +keycode 44 = +z +Z +z + control keycode 44 = Control_z + shift control keycode 44 = Control_z + altgr control keycode 44 = Control_z + alt keycode 44 = Meta_z + shift alt keycode 44 = Meta_Z + control alt keycode 44 = Meta_Control_z +keycode 45 = +x +X +x + control keycode 45 = Control_x + shift control keycode 45 = Control_x + altgr control keycode 45 = Control_x + alt keycode 45 = Meta_x + shift alt keycode 45 = Meta_X + control alt keycode 45 = Meta_Control_x +keycode 46 = +c +C + control keycode 46 = Control_c + shift control keycode 46 = Control_c + altgr control keycode 46 = Control_c + alt keycode 46 = Meta_c + shift alt keycode 46 = Meta_C + control alt keycode 46 = Meta_Control_c +keycode 47 = +v +V +v + control keycode 47 = Control_v + shift control keycode 47 = Control_v + altgr control keycode 47 = Control_v + alt keycode 47 = Meta_v + shift alt keycode 47 = Meta_V + control alt keycode 47 = Meta_Control_v +keycode 48 = +b +B +b + control keycode 48 = Control_b + shift control keycode 48 = Control_b + altgr control keycode 48 = Control_b + alt keycode 48 = Meta_b + shift alt keycode 48 = Meta_B + control alt keycode 48 = Meta_Control_b +keycode 49 = +n +N +n + control keycode 49 = Control_n + shift control keycode 49 = Control_n + altgr control keycode 49 = Control_n + alt keycode 49 = Meta_n + shift alt keycode 49 = Meta_N + control alt keycode 49 = Meta_Control_n +keycode 50 = +m +M +m + control keycode 50 = Control_m + shift control keycode 50 = Control_m + altgr control keycode 50 = Control_m + alt keycode 50 = Meta_m + shift alt keycode 50 = Meta_M + control alt keycode 50 = Meta_Control_m +keycode 51 = comma less + alt keycode 51 = Meta_comma + shift alt keycode 51 = Meta_less +keycode 52 = period greater + alt keycode 52 = Meta_period + shift alt keycode 52 = Meta_greater +keycode 53 = slash question + control keycode 53 = Control_underscore + shift control keycode 53 = Delete + alt keycode 53 = Meta_slash + shift alt keycode 53 = Meta_question +keycode 54 = Shift Shift Shift + control keycode 54 = Shift + shift control keycode 54 = Shift + altgr control keycode 54 = Shift + alt keycode 54 = Shift + shift alt keycode 54 = Shift + control alt keycode 54 = Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C + control keycode 55 = KP_Multiply + shift control keycode 55 = KP_Multiply + altgr control keycode 55 = KP_Multiply + alt keycode 55 = KP_Multiply + shift alt keycode 55 = KP_Multiply + control alt keycode 55 = KP_Multiply +keycode 56 = Alt Alt Alt + control keycode 56 = Alt + shift control keycode 56 = Alt + altgr control keycode 56 = Alt + alt keycode 56 = Alt + shift alt keycode 56 = Alt + control alt keycode 56 = Alt +keycode 57 = space space space + control keycode 57 = nul + shift control keycode 57 = space + altgr control keycode 57 = space + alt keycode 57 = Meta_space + shift alt keycode 57 = Meta_space + control alt keycode 57 = Meta_nul +keycode 58 = Caps_Lock Caps_Lock Caps_Lock + control keycode 58 = Caps_Lock + shift control keycode 58 = Caps_Lock + altgr control keycode 58 = Caps_Lock + alt keycode 58 = Caps_Lock + shift alt keycode 58 = Caps_Lock + control alt keycode 58 = Caps_Lock +keycode 59 = F1 F13 Console_13 + control keycode 59 = F25 + alt keycode 59 = Console_1 + control alt keycode 59 = Console_1 +keycode 60 = F2 F14 Console_14 + control keycode 60 = F26 + alt keycode 60 = Console_2 + control alt keycode 60 = Console_2 +keycode 61 = F3 F15 Console_15 + control keycode 61 = F27 + alt keycode 61 = Console_3 + control alt keycode 61 = Console_3 +keycode 62 = F4 F16 Console_16 + control keycode 62 = F28 + alt keycode 62 = Console_4 + control alt keycode 62 = Console_4 +keycode 63 = F5 F17 Console_17 + control keycode 63 = F29 + alt keycode 63 = Console_5 + control alt keycode 63 = Console_5 +keycode 64 = F6 F18 Console_18 + control keycode 64 = F30 + alt keycode 64 = Console_6 + control alt keycode 64 = Console_6 +keycode 65 = F7 F19 Console_19 + control keycode 65 = F31 + alt keycode 65 = Console_7 + control alt keycode 65 = Console_7 +keycode 66 = F8 F20 Console_20 + control keycode 66 = F32 + alt keycode 66 = Console_8 + control alt keycode 66 = Console_8 +keycode 67 = F9 F21 Console_21 + control keycode 67 = F33 + alt keycode 67 = Console_9 + control alt keycode 67 = Console_9 +keycode 68 = F10 F22 Console_22 + control keycode 68 = F34 + alt keycode 68 = Console_10 + control alt keycode 68 = Console_10 +keycode 69 = Num_Lock Num_Lock Hex_A + control keycode 69 = Num_Lock + shift control keycode 69 = Num_Lock + altgr control keycode 69 = Num_Lock + alt keycode 69 = Num_Lock + shift alt keycode 69 = Num_Lock + control alt keycode 69 = Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers + control keycode 70 = Show_State + alt keycode 70 = Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 + control keycode 71 = KP_7 + shift control keycode 71 = KP_7 + altgr control keycode 71 = KP_7 + alt keycode 71 = Ascii_7 + shift alt keycode 71 = KP_7 + control alt keycode 71 = KP_7 +keycode 72 = KP_8 KP_8 Hex_8 + control keycode 72 = KP_8 + shift control keycode 72 = KP_8 + altgr control keycode 72 = KP_8 + alt keycode 72 = Ascii_8 + shift alt keycode 72 = KP_8 + control alt keycode 72 = KP_8 +keycode 73 = KP_9 KP_9 Hex_9 + control keycode 73 = KP_9 + shift control keycode 73 = KP_9 + altgr control keycode 73 = KP_9 + alt keycode 73 = Ascii_9 + shift alt keycode 73 = KP_9 + control alt keycode 73 = KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D + control keycode 74 = KP_Subtract + shift control keycode 74 = KP_Subtract + altgr control keycode 74 = KP_Subtract + alt keycode 74 = KP_Subtract + shift alt keycode 74 = KP_Subtract + control alt keycode 74 = KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 + control keycode 75 = KP_4 + shift control keycode 75 = KP_4 + altgr control keycode 75 = KP_4 + alt keycode 75 = Ascii_4 + shift alt keycode 75 = KP_4 + control alt keycode 75 = KP_4 +keycode 76 = KP_5 KP_5 Hex_5 + control keycode 76 = KP_5 + shift control keycode 76 = KP_5 + altgr control keycode 76 = KP_5 + alt keycode 76 = Ascii_5 + shift alt keycode 76 = KP_5 + control alt keycode 76 = KP_5 +keycode 77 = KP_6 KP_6 Hex_6 + control keycode 77 = KP_6 + shift control keycode 77 = KP_6 + altgr control keycode 77 = KP_6 + alt keycode 77 = Ascii_6 + shift alt keycode 77 = KP_6 + control alt keycode 77 = KP_6 +keycode 78 = KP_Add KP_Add Hex_E + control keycode 78 = KP_Add + shift control keycode 78 = KP_Add + altgr control keycode 78 = KP_Add + alt keycode 78 = KP_Add + shift alt keycode 78 = KP_Add + control alt keycode 78 = KP_Add +keycode 79 = KP_1 KP_1 Hex_1 + control keycode 79 = KP_1 + shift control keycode 79 = KP_1 + altgr control keycode 79 = KP_1 + alt keycode 79 = Ascii_1 + shift alt keycode 79 = KP_1 + control alt keycode 79 = KP_1 +keycode 80 = KP_2 KP_2 Hex_2 + control keycode 80 = KP_2 + shift control keycode 80 = KP_2 + altgr control keycode 80 = KP_2 + alt keycode 80 = Ascii_2 + shift alt keycode 80 = KP_2 + control alt keycode 80 = KP_2 +keycode 81 = KP_3 KP_3 Hex_3 + control keycode 81 = KP_3 + shift control keycode 81 = KP_3 + altgr control keycode 81 = KP_3 + alt keycode 81 = Ascii_3 + shift alt keycode 81 = KP_3 + control alt keycode 81 = KP_3 +keycode 82 = KP_0 KP_0 Hex_0 + control keycode 82 = KP_0 + shift control keycode 82 = KP_0 + altgr control keycode 82 = KP_0 + alt keycode 82 = Ascii_0 + shift alt keycode 82 = KP_0 + control alt keycode 82 = KP_0 +keycode 83 = KP_Period KP_Period KP_Period + control keycode 83 = KP_Period + shift control keycode 83 = KP_Period + altgr control keycode 83 = Boot + alt keycode 83 = KP_Period + shift alt keycode 83 = KP_Period + control alt keycode 83 = Boot +keycode 84 = Last_Console Last_Console Last_Console + control keycode 84 = Last_Console + shift control keycode 84 = Last_Console + altgr control keycode 84 = Last_Console + alt keycode 84 = Last_Console + shift alt keycode 84 = Last_Console + control alt keycode 84 = Last_Console +keycode 86 = less greater bar + alt keycode 86 = Meta_less + shift alt keycode 86 = Meta_greater +keycode 87 = F11 F23 Console_23 + control keycode 87 = F35 + alt keycode 87 = Console_11 + control alt keycode 87 = Console_11 +keycode 88 = F12 F24 Console_24 + control keycode 88 = F36 + alt keycode 88 = Console_12 + control alt keycode 88 = Console_12 +keycode 96 = KP_Enter KP_Enter Hex_F + control keycode 96 = KP_Enter + shift control keycode 96 = KP_Enter + altgr control keycode 96 = KP_Enter + alt keycode 96 = KP_Enter + shift alt keycode 96 = KP_Enter + control alt keycode 96 = KP_Enter +keycode 97 = Control Control Control + control keycode 97 = Control + shift control keycode 97 = Control + altgr control keycode 97 = Control + alt keycode 97 = Control + shift alt keycode 97 = Control + control alt keycode 97 = Control +keycode 98 = KP_Divide KP_Divide Hex_B + control keycode 98 = KP_Divide + shift control keycode 98 = KP_Divide + altgr control keycode 98 = KP_Divide + alt keycode 98 = KP_Divide + shift alt keycode 98 = KP_Divide + control alt keycode 98 = KP_Divide +keycode 99 = Compose Compose Compose + control keycode 99 = Control_backslash + shift control keycode 99 = Compose + altgr control keycode 99 = Compose + alt keycode 99 = Control_backslash + shift alt keycode 99 = Compose + control alt keycode 99 = Meta_Control_backslash +keycode 100 = AltGr AltGr AltGr + control keycode 100 = AltGr + shift control keycode 100 = AltGr + altgr control keycode 100 = AltGr + alt keycode 100 = Compose + shift alt keycode 100 = AltGr + control alt keycode 100 = AltGr +keycode 101 = Break Break Break + control keycode 101 = Break + shift control keycode 101 = Break + altgr control keycode 101 = Break + alt keycode 101 = Break + shift alt keycode 101 = Break + control alt keycode 101 = Break +keycode 102 = Find Find Find + control keycode 102 = Find + shift control keycode 102 = Find + altgr control keycode 102 = Find + alt keycode 102 = Find + shift alt keycode 102 = Find + control alt keycode 102 = Find +keycode 103 = Up Up Up + control keycode 103 = Up + shift control keycode 103 = Up + altgr control keycode 103 = Up + alt keycode 103 = KeyboardSignal + shift alt keycode 103 = Up + control alt keycode 103 = Up +keycode 104 = Prior Scroll_Backward Prior + control keycode 104 = Prior + shift control keycode 104 = Prior + altgr control keycode 104 = Prior + alt keycode 104 = Prior + shift alt keycode 104 = Prior + control alt keycode 104 = Prior +keycode 105 = Left Left Left + control keycode 105 = Left + shift control keycode 105 = Left + altgr control keycode 105 = Left + alt keycode 105 = Decr_Console + shift alt keycode 105 = Left + control alt keycode 105 = Left +keycode 106 = Right Right Right + control keycode 106 = Right + shift control keycode 106 = Right + altgr control keycode 106 = Right + alt keycode 106 = Incr_Console + shift alt keycode 106 = Right + control alt keycode 106 = Right +keycode 107 = Select Select Select + control keycode 107 = Select + shift control keycode 107 = Select + altgr control keycode 107 = Select + alt keycode 107 = Select + shift alt keycode 107 = Select + control alt keycode 107 = Select +keycode 108 = Down Down Down + control keycode 108 = Down + shift control keycode 108 = Down + altgr control keycode 108 = Down + alt keycode 108 = Down + shift alt keycode 108 = Down + control alt keycode 108 = Down +keycode 109 = Next Scroll_Forward Next + control keycode 109 = Next + shift control keycode 109 = Next + altgr control keycode 109 = Next + alt keycode 109 = Next + shift alt keycode 109 = Next + control alt keycode 109 = Next +keycode 110 = Insert Insert Insert + control keycode 110 = Insert + shift control keycode 110 = Insert + altgr control keycode 110 = Insert + alt keycode 110 = Insert + shift alt keycode 110 = Insert + control alt keycode 110 = Insert +keycode 111 = Remove Remove Remove + control keycode 111 = Remove + shift control keycode 111 = Remove + altgr control keycode 111 = Boot + alt keycode 111 = Remove + shift alt keycode 111 = Remove + control alt keycode 111 = Boot +keycode 112 = Macro Macro Macro + control keycode 112 = Macro + shift control keycode 112 = Macro + alt keycode 112 = Macro + control alt keycode 112 = Macro +keycode 113 = F13 F13 F13 + control keycode 113 = F13 + shift control keycode 113 = F13 + alt keycode 113 = F13 + control alt keycode 113 = F13 +keycode 114 = F14 F14 F14 + control keycode 114 = F14 + shift control keycode 114 = F14 + alt keycode 114 = F14 + control alt keycode 114 = F14 +keycode 115 = Help Help Help + control keycode 115 = Help + shift control keycode 115 = Help + alt keycode 115 = Help + control alt keycode 115 = Help +keycode 116 = Do Do Do + control keycode 116 = Do + shift control keycode 116 = Do + alt keycode 116 = Do + control alt keycode 116 = Do +keycode 117 = F17 F17 F17 + control keycode 117 = F17 + shift control keycode 117 = F17 + alt keycode 117 = F17 + control alt keycode 117 = F17 +keycode 118 = KP_MinPlus KP_MinPlus KP_MinPlus + control keycode 118 = KP_MinPlus + shift control keycode 118 = KP_MinPlus + alt keycode 118 = KP_MinPlus + control alt keycode 118 = KP_MinPlus +keycode 119 = Pause Pause Pause + control keycode 119 = Pause + shift control keycode 119 = Pause + altgr control keycode 119 = Pause + alt keycode 119 = Pause + shift alt keycode 119 = Pause + control alt keycode 119 = Pause +keycode 125 = Decr_Console Decr_Console Decr_Console + control keycode 125 = Decr_Console + shift control keycode 125 = Decr_Console + altgr control keycode 125 = Decr_Console + alt keycode 125 = Decr_Console + shift alt keycode 125 = Decr_Console + control alt keycode 125 = Decr_Console +keycode 126 = Incr_Console Incr_Console Incr_Console + control keycode 126 = Incr_Console + shift control keycode 126 = Incr_Console + altgr control keycode 126 = Incr_Console + alt keycode 126 = Incr_Console + shift alt keycode 126 = Incr_Console + control alt keycode 126 = Incr_Console +keycode 127 = Last_Console Last_Console Last_Console + control keycode 127 = Last_Console + shift control keycode 127 = Last_Console + altgr control keycode 127 = Last_Console + alt keycode 127 = Last_Console + shift alt keycode 127 = Last_Console + control alt keycode 127 = Last_Console +keycode 128 = nul nul nul + control keycode 128 = nul + shift control keycode 128 = nul + alt keycode 128 = nul + control alt keycode 128 = nul +keycode 129 = nul nul nul + control keycode 129 = nul + shift control keycode 129 = nul + alt keycode 129 = nul + control alt keycode 129 = nul +keycode 130 = nul nul nul + control keycode 130 = nul + shift control keycode 130 = nul + alt keycode 130 = nul + control alt keycode 130 = nul +keycode 131 = nul nul nul + control keycode 131 = nul + shift control keycode 131 = nul + alt keycode 131 = nul + control alt keycode 131 = nul +keycode 132 = nul nul nul + control keycode 132 = nul + shift control keycode 132 = nul + alt keycode 132 = nul + control alt keycode 132 = nul +keycode 133 = nul nul nul + control keycode 133 = nul + shift control keycode 133 = nul + alt keycode 133 = nul + control alt keycode 133 = nul +keycode 134 = nul nul nul + control keycode 134 = nul + shift control keycode 134 = nul + alt keycode 134 = nul + control alt keycode 134 = nul +keycode 135 = nul nul nul + control keycode 135 = nul + shift control keycode 135 = nul + alt keycode 135 = nul + control alt keycode 135 = nul +keycode 136 = nul nul nul + control keycode 136 = nul + shift control keycode 136 = nul + alt keycode 136 = nul + control alt keycode 136 = nul +keycode 137 = nul nul nul + control keycode 137 = nul + shift control keycode 137 = nul + alt keycode 137 = nul + control alt keycode 137 = nul +keycode 138 = nul nul nul + control keycode 138 = nul + shift control keycode 138 = nul + alt keycode 138 = nul + control alt keycode 138 = nul +keycode 139 = nul nul nul + control keycode 139 = nul + shift control keycode 139 = nul + alt keycode 139 = nul + control alt keycode 139 = nul +keycode 140 = nul nul nul + control keycode 140 = nul + shift control keycode 140 = nul + alt keycode 140 = nul + control alt keycode 140 = nul +keycode 141 = nul nul nul + control keycode 141 = nul + shift control keycode 141 = nul + alt keycode 141 = nul + control alt keycode 141 = nul +keycode 142 = nul nul nul + control keycode 142 = nul + shift control keycode 142 = nul + alt keycode 142 = nul + control alt keycode 142 = nul +keycode 143 = nul nul nul + control keycode 143 = nul + shift control keycode 143 = nul + alt keycode 143 = nul + control alt keycode 143 = nul +keycode 144 = nul nul nul + control keycode 144 = nul + shift control keycode 144 = nul + alt keycode 144 = nul + control alt keycode 144 = nul +keycode 145 = nul nul nul + control keycode 145 = nul + shift control keycode 145 = nul + alt keycode 145 = nul + control alt keycode 145 = nul +keycode 146 = nul nul nul + control keycode 146 = nul + shift control keycode 146 = nul + alt keycode 146 = nul + control alt keycode 146 = nul +keycode 147 = nul nul nul + control keycode 147 = nul + shift control keycode 147 = nul + alt keycode 147 = nul + control alt keycode 147 = nul +keycode 148 = nul nul nul + control keycode 148 = nul + shift control keycode 148 = nul + alt keycode 148 = nul + control alt keycode 148 = nul +keycode 149 = nul nul nul + control keycode 149 = nul + shift control keycode 149 = nul + alt keycode 149 = nul + control alt keycode 149 = nul +keycode 150 = nul nul nul + control keycode 150 = nul + shift control keycode 150 = nul + alt keycode 150 = nul + control alt keycode 150 = nul +keycode 151 = nul nul nul + control keycode 151 = nul + shift control keycode 151 = nul + alt keycode 151 = nul + control alt keycode 151 = nul +keycode 152 = nul nul nul + control keycode 152 = nul + shift control keycode 152 = nul + alt keycode 152 = nul + control alt keycode 152 = nul +keycode 153 = nul nul nul + control keycode 153 = nul + shift control keycode 153 = nul + alt keycode 153 = nul + control alt keycode 153 = nul +keycode 154 = nul nul nul + control keycode 154 = nul + shift control keycode 154 = nul + alt keycode 154 = nul + control alt keycode 154 = nul +keycode 155 = nul nul nul + control keycode 155 = nul + shift control keycode 155 = nul + alt keycode 155 = nul + control alt keycode 155 = nul +keycode 156 = nul nul nul + control keycode 156 = nul + shift control keycode 156 = nul + alt keycode 156 = nul + control alt keycode 156 = nul +keycode 157 = nul nul nul + control keycode 157 = nul + shift control keycode 157 = nul + alt keycode 157 = nul + control alt keycode 157 = nul +keycode 158 = nul nul nul + control keycode 158 = nul + shift control keycode 158 = nul + alt keycode 158 = nul + control alt keycode 158 = nul +keycode 159 = nul nul nul + control keycode 159 = nul + shift control keycode 159 = nul + alt keycode 159 = nul + control alt keycode 159 = nul +keycode 160 = nul nul nul + control keycode 160 = nul + shift control keycode 160 = nul + alt keycode 160 = nul + control alt keycode 160 = nul +keycode 161 = nul nul nul + control keycode 161 = nul + shift control keycode 161 = nul + alt keycode 161 = nul + control alt keycode 161 = nul +keycode 162 = nul nul nul + control keycode 162 = nul + shift control keycode 162 = nul + alt keycode 162 = nul + control alt keycode 162 = nul +keycode 163 = nul nul nul + control keycode 163 = nul + shift control keycode 163 = nul + alt keycode 163 = nul + control alt keycode 163 = nul +keycode 164 = nul nul nul + control keycode 164 = nul + shift control keycode 164 = nul + alt keycode 164 = nul + control alt keycode 164 = nul +keycode 165 = nul nul nul + control keycode 165 = nul + shift control keycode 165 = nul + alt keycode 165 = nul + control alt keycode 165 = nul +keycode 166 = nul nul nul + control keycode 166 = nul + shift control keycode 166 = nul + alt keycode 166 = nul + control alt keycode 166 = nul +keycode 167 = nul nul nul + control keycode 167 = nul + shift control keycode 167 = nul + alt keycode 167 = nul + control alt keycode 167 = nul +keycode 168 = nul nul nul + control keycode 168 = nul + shift control keycode 168 = nul + alt keycode 168 = nul + control alt keycode 168 = nul +keycode 169 = nul nul nul + control keycode 169 = nul + shift control keycode 169 = nul + alt keycode 169 = nul + control alt keycode 169 = nul +keycode 170 = nul nul nul + control keycode 170 = nul + shift control keycode 170 = nul + alt keycode 170 = nul + control alt keycode 170 = nul +keycode 171 = nul nul nul + control keycode 171 = nul + shift control keycode 171 = nul + alt keycode 171 = nul + control alt keycode 171 = nul +keycode 172 = nul nul nul + control keycode 172 = nul + shift control keycode 172 = nul + alt keycode 172 = nul + control alt keycode 172 = nul +keycode 173 = nul nul nul + control keycode 173 = nul + shift control keycode 173 = nul + alt keycode 173 = nul + control alt keycode 173 = nul +keycode 174 = nul nul nul + control keycode 174 = nul + shift control keycode 174 = nul + alt keycode 174 = nul + control alt keycode 174 = nul +keycode 175 = nul nul nul + control keycode 175 = nul + shift control keycode 175 = nul + alt keycode 175 = nul + control alt keycode 175 = nul +keycode 176 = nul nul nul + control keycode 176 = nul + shift control keycode 176 = nul + alt keycode 176 = nul + control alt keycode 176 = nul +keycode 177 = nul nul nul + control keycode 177 = nul + shift control keycode 177 = nul + alt keycode 177 = nul + control alt keycode 177 = nul +keycode 178 = nul nul nul + control keycode 178 = nul + shift control keycode 178 = nul + alt keycode 178 = nul + control alt keycode 178 = nul +keycode 179 = nul nul nul + control keycode 179 = nul + shift control keycode 179 = nul + alt keycode 179 = nul + control alt keycode 179 = nul +keycode 180 = nul nul nul + control keycode 180 = nul + shift control keycode 180 = nul + alt keycode 180 = nul + control alt keycode 180 = nul +keycode 181 = nul nul nul + control keycode 181 = nul + shift control keycode 181 = nul + alt keycode 181 = nul + control alt keycode 181 = nul +keycode 182 = nul nul nul + control keycode 182 = nul + shift control keycode 182 = nul + alt keycode 182 = nul + control alt keycode 182 = nul +keycode 183 = nul nul nul + control keycode 183 = nul + shift control keycode 183 = nul + alt keycode 183 = nul + control alt keycode 183 = nul +keycode 184 = nul nul nul + control keycode 184 = nul + shift control keycode 184 = nul + alt keycode 184 = nul + control alt keycode 184 = nul +keycode 185 = nul nul nul + control keycode 185 = nul + shift control keycode 185 = nul + alt keycode 185 = nul + control alt keycode 185 = nul +keycode 186 = nul nul nul + control keycode 186 = nul + shift control keycode 186 = nul + alt keycode 186 = nul + control alt keycode 186 = nul +keycode 187 = nul nul nul + control keycode 187 = nul + shift control keycode 187 = nul + alt keycode 187 = nul + control alt keycode 187 = nul +keycode 188 = nul nul nul + control keycode 188 = nul + shift control keycode 188 = nul + alt keycode 188 = nul + control alt keycode 188 = nul +keycode 189 = nul nul nul + control keycode 189 = nul + shift control keycode 189 = nul + alt keycode 189 = nul + control alt keycode 189 = nul +keycode 190 = nul nul nul + control keycode 190 = nul + shift control keycode 190 = nul + alt keycode 190 = nul + control alt keycode 190 = nul +keycode 191 = nul nul nul + control keycode 191 = nul + shift control keycode 191 = nul + alt keycode 191 = nul + control alt keycode 191 = nul +keycode 192 = nul nul nul + control keycode 192 = nul + shift control keycode 192 = nul + alt keycode 192 = nul + control alt keycode 192 = nul +keycode 193 = nul nul nul + control keycode 193 = nul + shift control keycode 193 = nul + alt keycode 193 = nul + control alt keycode 193 = nul +keycode 194 = nul nul nul + control keycode 194 = nul + shift control keycode 194 = nul + alt keycode 194 = nul + control alt keycode 194 = nul +keycode 195 = nul nul nul + control keycode 195 = nul + shift control keycode 195 = nul + alt keycode 195 = nul + control alt keycode 195 = nul +keycode 196 = nul nul nul + control keycode 196 = nul + shift control keycode 196 = nul + alt keycode 196 = nul + control alt keycode 196 = nul +keycode 197 = nul nul nul + control keycode 197 = nul + shift control keycode 197 = nul + alt keycode 197 = nul + control alt keycode 197 = nul +keycode 198 = nul nul nul + control keycode 198 = nul + shift control keycode 198 = nul + alt keycode 198 = nul + control alt keycode 198 = nul +keycode 199 = nul nul nul + control keycode 199 = nul + shift control keycode 199 = nul + alt keycode 199 = nul + control alt keycode 199 = nul +keycode 200 = nul nul nul + control keycode 200 = nul + shift control keycode 200 = nul + alt keycode 200 = nul + control alt keycode 200 = nul +keycode 201 = nul nul nul + control keycode 201 = nul + shift control keycode 201 = nul + alt keycode 201 = nul + control alt keycode 201 = nul +keycode 202 = nul nul nul + control keycode 202 = nul + shift control keycode 202 = nul + alt keycode 202 = nul + control alt keycode 202 = nul +keycode 203 = nul nul nul + control keycode 203 = nul + shift control keycode 203 = nul + alt keycode 203 = nul + control alt keycode 203 = nul +keycode 204 = nul nul nul + control keycode 204 = nul + shift control keycode 204 = nul + alt keycode 204 = nul + control alt keycode 204 = nul +keycode 205 = nul nul nul + control keycode 205 = nul + shift control keycode 205 = nul + alt keycode 205 = nul + control alt keycode 205 = nul +keycode 206 = nul nul nul + control keycode 206 = nul + shift control keycode 206 = nul + alt keycode 206 = nul + control alt keycode 206 = nul +keycode 207 = nul nul nul + control keycode 207 = nul + shift control keycode 207 = nul + alt keycode 207 = nul + control alt keycode 207 = nul +keycode 208 = nul nul nul + control keycode 208 = nul + shift control keycode 208 = nul + alt keycode 208 = nul + control alt keycode 208 = nul +keycode 209 = nul nul nul + control keycode 209 = nul + shift control keycode 209 = nul + alt keycode 209 = nul + control alt keycode 209 = nul +keycode 210 = nul nul nul + control keycode 210 = nul + shift control keycode 210 = nul + alt keycode 210 = nul + control alt keycode 210 = nul +keycode 211 = nul nul nul + control keycode 211 = nul + shift control keycode 211 = nul + alt keycode 211 = nul + control alt keycode 211 = nul +keycode 212 = nul nul nul + control keycode 212 = nul + shift control keycode 212 = nul + alt keycode 212 = nul + control alt keycode 212 = nul +keycode 213 = nul nul nul + control keycode 213 = nul + shift control keycode 213 = nul + alt keycode 213 = nul + control alt keycode 213 = nul +keycode 214 = nul nul nul + control keycode 214 = nul + shift control keycode 214 = nul + alt keycode 214 = nul + control alt keycode 214 = nul +keycode 215 = nul nul nul + control keycode 215 = nul + shift control keycode 215 = nul + alt keycode 215 = nul + control alt keycode 215 = nul +keycode 216 = nul nul nul + control keycode 216 = nul + shift control keycode 216 = nul + alt keycode 216 = nul + control alt keycode 216 = nul +keycode 217 = nul nul nul + control keycode 217 = nul + shift control keycode 217 = nul + alt keycode 217 = nul + control alt keycode 217 = nul +keycode 218 = nul nul nul + control keycode 218 = nul + shift control keycode 218 = nul + alt keycode 218 = nul + control alt keycode 218 = nul +keycode 219 = nul nul nul + control keycode 219 = nul + shift control keycode 219 = nul + alt keycode 219 = nul + control alt keycode 219 = nul +keycode 220 = nul nul nul + control keycode 220 = nul + shift control keycode 220 = nul + alt keycode 220 = nul + control alt keycode 220 = nul +keycode 221 = nul nul nul + control keycode 221 = nul + shift control keycode 221 = nul + alt keycode 221 = nul + control alt keycode 221 = nul +keycode 222 = nul nul nul + control keycode 222 = nul + shift control keycode 222 = nul + alt keycode 222 = nul + control alt keycode 222 = nul +keycode 223 = nul nul nul + control keycode 223 = nul + shift control keycode 223 = nul + alt keycode 223 = nul + control alt keycode 223 = nul +keycode 224 = nul nul nul + control keycode 224 = nul + shift control keycode 224 = nul + alt keycode 224 = nul + control alt keycode 224 = nul +keycode 225 = nul nul nul + control keycode 225 = nul + shift control keycode 225 = nul + alt keycode 225 = nul + control alt keycode 225 = nul +keycode 226 = nul nul nul + control keycode 226 = nul + shift control keycode 226 = nul + alt keycode 226 = nul + control alt keycode 226 = nul +keycode 227 = nul nul nul + control keycode 227 = nul + shift control keycode 227 = nul + alt keycode 227 = nul + control alt keycode 227 = nul +keycode 228 = nul nul nul + control keycode 228 = nul + shift control keycode 228 = nul + alt keycode 228 = nul + control alt keycode 228 = nul +keycode 229 = nul nul nul + control keycode 229 = nul + shift control keycode 229 = nul + alt keycode 229 = nul + control alt keycode 229 = nul +keycode 230 = nul nul nul + control keycode 230 = nul + shift control keycode 230 = nul + alt keycode 230 = nul + control alt keycode 230 = nul +keycode 231 = nul nul nul + control keycode 231 = nul + shift control keycode 231 = nul + alt keycode 231 = nul + control alt keycode 231 = nul +keycode 232 = nul nul nul + control keycode 232 = nul + shift control keycode 232 = nul + alt keycode 232 = nul + control alt keycode 232 = nul +keycode 233 = nul nul nul + control keycode 233 = nul + shift control keycode 233 = nul + alt keycode 233 = nul + control alt keycode 233 = nul +keycode 234 = nul nul nul + control keycode 234 = nul + shift control keycode 234 = nul + alt keycode 234 = nul + control alt keycode 234 = nul +keycode 235 = nul nul nul + control keycode 235 = nul + shift control keycode 235 = nul + alt keycode 235 = nul + control alt keycode 235 = nul +keycode 236 = nul nul nul + control keycode 236 = nul + shift control keycode 236 = nul + alt keycode 236 = nul + control alt keycode 236 = nul +keycode 237 = nul nul nul + control keycode 237 = nul + shift control keycode 237 = nul + alt keycode 237 = nul + control alt keycode 237 = nul +keycode 238 = nul nul nul + control keycode 238 = nul + shift control keycode 238 = nul + alt keycode 238 = nul + control alt keycode 238 = nul +keycode 239 = nul nul nul + control keycode 239 = nul + shift control keycode 239 = nul + alt keycode 239 = nul + control alt keycode 239 = nul +keycode 240 = nul nul nul + control keycode 240 = nul + shift control keycode 240 = nul + alt keycode 240 = nul + control alt keycode 240 = nul +keycode 241 = nul nul nul + control keycode 241 = nul + shift control keycode 241 = nul + alt keycode 241 = nul + control alt keycode 241 = nul +keycode 242 = nul nul nul + control keycode 242 = nul + shift control keycode 242 = nul + alt keycode 242 = nul + control alt keycode 242 = nul +keycode 243 = nul nul nul + control keycode 243 = nul + shift control keycode 243 = nul + alt keycode 243 = nul + control alt keycode 243 = nul +keycode 244 = nul nul nul + control keycode 244 = nul + shift control keycode 244 = nul + alt keycode 244 = nul + control alt keycode 244 = nul +keycode 245 = nul nul nul + control keycode 245 = nul + shift control keycode 245 = nul + alt keycode 245 = nul + control alt keycode 245 = nul +keycode 246 = nul nul nul + control keycode 246 = nul + shift control keycode 246 = nul + alt keycode 246 = nul + control alt keycode 246 = nul +keycode 247 = nul nul nul + control keycode 247 = nul + shift control keycode 247 = nul + alt keycode 247 = nul + control alt keycode 247 = nul +keycode 248 = nul nul nul + control keycode 248 = nul + shift control keycode 248 = nul + alt keycode 248 = nul + control alt keycode 248 = nul +keycode 249 = nul nul nul + control keycode 249 = nul + shift control keycode 249 = nul + alt keycode 249 = nul + control alt keycode 249 = nul +keycode 250 = nul nul nul + control keycode 250 = nul + shift control keycode 250 = nul + alt keycode 250 = nul + control alt keycode 250 = nul +keycode 251 = nul nul nul + control keycode 251 = nul + shift control keycode 251 = nul + alt keycode 251 = nul + control alt keycode 251 = nul +keycode 252 = nul nul nul + control keycode 252 = nul + shift control keycode 252 = nul + alt keycode 252 = nul + control alt keycode 252 = nul +keycode 253 = nul nul nul + control keycode 253 = nul + shift control keycode 253 = nul + alt keycode 253 = nul + control alt keycode 253 = nul +keycode 254 = nul nul nul + control keycode 254 = nul + shift control keycode 254 = nul + alt keycode 254 = nul + control alt keycode 254 = nul +keycode 255 = nul nul nul + control keycode 255 = nul + shift control keycode 255 = nul + alt keycode 255 = nul + control alt keycode 255 = nul +string F1 = "\033[[A" +string F2 = "\033[[B" +string F3 = "\033[[C" +string F4 = "\033[[D" +string F5 = "\033[[E" +string F6 = "\033[17~" +string F7 = "\033[18~" +string F8 = "\033[19~" +string F9 = "\033[20~" +string F10 = "\033[21~" +string F11 = "\033[23~" +string F12 = "\033[24~" +string F13 = "\033[25~" +string F14 = "\033[26~" +string F15 = "\033[28~" +string F16 = "\033[29~" +string F17 = "\033[31~" +string F18 = "\033[32~" +string F19 = "\033[33~" +string F20 = "\033[34~" +string Find = "\033[1~" +string Insert = "\033[2~" +string Remove = "\033[3~" +string Select = "\033[4~" +string Prior = "\033[5~" +string Next = "\033[6~" +string Macro = "\033[M" +string Pause = "\033[P" diff --git a/functions/translate.sh b/functions/translate.sh new file mode 100644 index 0000000..7045ca7 --- /dev/null +++ b/functions/translate.sh @@ -0,0 +1,84 @@ +#!/bin/bash -eu +# AT translated set 2 encoder + +type xxd > /dev/null || exit 1 + +if ! test -f dumpkeys.cache; then + sudo dumpkeys --keys-only > dumpkeys.cache +fi + +# XXX: hardcoded values are generated by: +#make_break_shift="$(eval echo \$at_table_$(echo -n Shift | xxd -ps))" +#make_shift="${make_break_shift% *}" +#break_shift="${make_break_shift#* }" + +make_shift=36 +break_shift=b6 + +map_set() { + # $1 - keycode + # $2 - normal value + # $3 - shifted value + [ "${2}${3}" = "nulnul" ] && return 1 + make=$(printf %02x "$1") + break=$(printf %02x "$(($1 | 128))") + eval "at_table_$(echo -n "${3#+}" | xxd -ps)='$make_shift $make $break $break_shift'" + eval "at_table_$(echo -n "${2#+}" | xxd -ps)='$make $break'" +} + +map_alias() { + # $1,$3,$5,... - names + # $2,$4,$6,... - aliases + while [ -n "$1" -a -n "$2" ]; do + eval "at_table_$(echo -n "${2#+}" | xxd -ps)=\${at_table_$(echo -n "${1#+}" | xxd -ps)}" + shift + shift + done +} + +# at_table_$normal = n +# at_table_$shifted = n +while read keycode n _ normal shifted rest; do + [ "$keycode" = "keycode" ] || continue + map_set "${n}" "${normal}" "${shifted}" +done < dumpkeys.cache + +# Extra mapping +map_alias \ + one 1 exclam '!' \ + two 2 at '@' \ + three 3 numbersign '#' \ + four 4 dollar '$' \ + five 5 percent '%' \ + six 6 asciicircum '^' \ + seven 7 ampersand '&' \ + eight 8 asterisk '*' \ + nine 9 parenleft '(' \ + zero 0 parenright ')' \ + minus '-' underscore '_' \ + equal '=' plus '+' + +map_alias \ + bracketleft '[' braceleft '{' \ + bracketright ']' braceright '}' \ + semicolon ';' colon ':' \ + apostrophe "'" quotedbl '"' \ + grave '`' asciitilde '~' \ + backslash "\\" bar '|' \ + comma ',' less '<' \ + period '.' greater '>' \ + slash '/' question '?' \ + space ' ' Return $'\n' + +translate() { + for t in $(echo -n "$*" | xxd -ps | sed -e 's/../& /g'); do + n="at_table_$t" + v="${!n}" + [ -z "$v" ] && echo "$0: unknown char: '$t'." >&2 + echo -n " ${v}" + done + echo +} + +[ "$(basename "$0")" = "translate.sh" ] && translate " vmlinuz initrd=initrd.img biosdevname=0 ks=cdrom:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=no +"