From 25e5612ca3f87949b79a6d569ee04d70ab8d687f Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:33:35 +0000 Subject: [PATCH] Add Colemak keyboard definition files Colemak is unusual in that it doesn't have a Caps Lock key. This means we don't need to generate capslock sections in the keymap file. We add a flag to the keymap file [General] section to indicate these sections are missing. A change is also made to the way the Dvorak keymap file (00010409) is generated, for consistency with Colemak. --- genkeymap/dump-keymaps.sh | 8 +- genkeymap/genkeymap.c | 41 ++- instfiles/Makefile.am | 1 + instfiles/km-00010409.toml | 5 +- instfiles/km-00060409.toml | 520 +++++++++++++++++++++++++++++++++++++ xrdp/xrdp_keyboard.ini | 3 + 6 files changed, 573 insertions(+), 5 deletions(-) create mode 100644 instfiles/km-00060409.toml diff --git a/genkeymap/dump-keymaps.sh b/genkeymap/dump-keymaps.sh index 155cbaf0..6248530d 100755 --- a/genkeymap/dump-keymaps.sh +++ b/genkeymap/dump-keymaps.sh @@ -18,7 +18,10 @@ kbgen() desc="$2" os="$3" shift 3 - setxkbmap "$@" + if ! setxkbmap "$@"; then + echo "Failed to run setxkbmap $*" >&2 + return 1 + fi ./xrdp-genkeymap \ -c "Description: $desc" \ -c "Operating system: $os" \ @@ -68,7 +71,8 @@ fi kbgen 0406 "da-DK" "$os" -model pc105 -layout dk kbgen 0407 "de-DE" "$os" -model pc104 -layout de kbgen 0409 "en-US" "$os" -model pc104 -layout us -kbgen 10409 "en-US" "$os" -model pc104 -layout dvorak +kbgen 10409 "en-US" "$os" -model pc104 -layout us -variant dvorak +kbgen 60409 "en-US" "$os" -model pc104 -layout us -variant colemak kbgen 040a "es-ES_tradnl" "$os" -model pc105 -layout es kbgen 040b "fi-FI" "$os" -model pc105 -layout 'fi' kbgen 040c "fr-FR" "$os" -model pc105 -layout fr diff --git a/genkeymap/genkeymap.c b/genkeymap/genkeymap.c index badc75aa..9f0095dd 100644 --- a/genkeymap/genkeymap.c +++ b/genkeymap/genkeymap.c @@ -317,6 +317,34 @@ output_file_section(FILE *outf, } +/*****************************************************************************/ +/** + * Determine is caps-lock is supported. Some layouts (e.g. Colemak) do not + * support this key. + * + * @param dpy X display + * @reurn boolean + */ +static int +is_caps_lock_supported(Display *dpy) +{ + char dummy[4]; + KeySym ks; + XKeyPressedEvent e = + { + .type = KeyPress, + .serial = 16, + .send_event = True, + .display = dpy, + .state = 0, + .keycode = scancode_to_x11_keycode(SCANCODE_CAPS_KEY), + .same_screen = True + }; + + (void)XLookupString(&e, dummy, sizeof(dummy), &ks, NULL); + return (ks == XK_Caps_Lock || ks == XK_Eisu_toggle); +} + /*****************************************************************************/ /** * Main @@ -345,6 +373,7 @@ int main(int argc, char **argv) const char *keycode_set = NULL; struct kbd_info *kbd_info = NULL; int status = 1; + int caps_lock_supported; setlocale(LC_CTYPE, ""); if (strrchr(argv[0], '/') != NULL) @@ -418,6 +447,8 @@ int main(int argc, char **argv) goto finish; } + caps_lock_supported = is_caps_lock_supported(dpy); + fprintf(outf, "# Created by %s V" PACKAGE_VERSION "\n# Key code set: %s\n", programname, keycode_set); @@ -430,10 +461,18 @@ int main(int argc, char **argv) } fprintf(outf, "\n[General]\nversion=" KEYMAP_FILE_FORMAT_VERSION "\n"); + fprintf(outf, "caps_lock_supported=%s\n", + (caps_lock_supported) ? "true" : "false"); for (idx = 0; idx < NUM_STATES; idx++) /* Sections and states */ { - output_file_section(outf, dpy, sections[idx], states[idx]); + int mod_state = states[idx]; + if (!caps_lock_supported && ((mod_state & 2) != 0)) + { + // Skip this section as it's for caps lock + continue; + } + output_file_section(outf, dpy, sections[idx], mod_state); } status = 0; // Successful run diff --git a/instfiles/Makefile.am b/instfiles/Makefile.am index 9fd5d3d5..5c7f4279 100644 --- a/instfiles/Makefile.am +++ b/instfiles/Makefile.am @@ -51,6 +51,7 @@ dist_startscript_DATA = \ km-00000816.toml \ km-0000100c.toml \ km-00010409.toml \ + km-00060409.toml \ km-19360409.toml # diff --git a/instfiles/km-00010409.toml b/instfiles/km-00010409.toml index 654a26f0..30f8d52d 100644 --- a/instfiles/km-00010409.toml +++ b/instfiles/km-00010409.toml @@ -1,11 +1,12 @@ # Created by xrdp-genkeymap V0.10.80 # Key code set: evdev+aliases(qwerty) -# setxkbmap -rules evdev -model pc104 -layout dvorak +# setxkbmap -rules evdev -model pc104 -layout us -variant dvorak # Description: en-US -# Operating system: Ubuntu 22.04.4 LTS +# Operating system: Ubuntu 22.04.5 LTS [General] version=2 +caps_lock_supported=true [noshift] 01="65307:U+001B" # Escape diff --git a/instfiles/km-00060409.toml b/instfiles/km-00060409.toml new file mode 100644 index 00000000..edef50b3 --- /dev/null +++ b/instfiles/km-00060409.toml @@ -0,0 +1,520 @@ +# Created by xrdp-genkeymap V0.10.80 +# Key code set: evdev+aliases(qwerty) +# setxkbmap -rules evdev -model pc104 -layout us -variant colemak +# Description: en-US +# Operating system: Ubuntu 22.04.5 LTS + +[General] +version=2 +caps_lock_supported=false + +[noshift] +01="65307:U+001B" # Escape +02="49:U+0031" # 1 +03="50:U+0032" # 2 +04="51:U+0033" # 3 +05="52:U+0034" # 4 +06="53:U+0035" # 5 +07="54:U+0036" # 6 +08="55:U+0037" # 7 +09="56:U+0038" # 8 +0A="57:U+0039" # 9 +0B="48:U+0030" # 0 +0C="45:U+002D" # minus +0D="61:U+003D" # equal +0E="65288:U+0008" # BackSpace +0F="65289:U+0009" # Tab +10="113:U+0071" # q +11="119:U+0077" # w +12="102:U+0066" # f +13="112:U+0070" # p +14="103:U+0067" # g +15="106:U+006A" # j +16="108:U+006C" # l +17="117:U+0075" # u +18="121:U+0079" # y +19="59:U+003B" # semicolon +1A="91:U+005B" # bracketleft +1B="93:U+005D" # bracketright +1C="65293:U+000D" # Return +1D="65507" # Control_L +1E="97:U+0061" # a +1F="114:U+0072" # r +20="115:U+0073" # s +21="116:U+0074" # t +22="100:U+0064" # d +23="104:U+0068" # h +24="110:U+006E" # n +25="101:U+0065" # e +26="105:U+0069" # i +27="111:U+006F" # o +28="39:U+0027" # apostrophe +29="96:U+0060" # grave +2A="65505" # Shift_L +2B="92:U+005C" # backslash +2C="122:U+007A" # z +2D="120:U+0078" # x +2E="99:U+0063" # c +2F="118:U+0076" # v +30="98:U+0062" # b +31="107:U+006B" # k +32="109:U+006D" # m +33="44:U+002C" # comma +34="46:U+002E" # period +35="47:U+002F" # slash +36="65506" # Shift_R +37="65450:U+002A" # KP_Multiply +38="65513" # Alt_L +39="32:U+0020" # space +3A="65288:U+0008" # BackSpace +3B="65470" # F1 +3C="65471" # F2 +3D="65472" # F3 +3E="65473" # F4 +3F="65474" # F5 +40="65475" # F6 +41="65476" # F7 +42="65477" # F8 +43="65478" # F9 +44="65479" # F10 +45="65407" # Num_Lock +46="65300" # Scroll_Lock +47="65429" # KP_Home +48="65431" # KP_Up +49="65434" # KP_Prior +4A="65453:U+002D" # KP_Subtract +4B="65430" # KP_Left +4C="65437" # KP_Begin +4D="65432" # KP_Right +4E="65451:U+002B" # KP_Add +4F="65436" # KP_End +50="65433" # KP_Down +51="65435" # KP_Next +52="65438" # KP_Insert +53="65439" # KP_Delete +56="45:U+002D" # minus +57="65480" # F11 +58="65481" # F12 +70="65319" # Hiragana_Katakana +79="65315" # Henkan_Mode +7B="65314" # Muhenkan +7E="65454:U+002E" # KP_Decimal +E0_10="269025046" # XF86AudioPrev +E0_19="269025047" # XF86AudioNext +E0_1C="65421:U+000D" # KP_Enter +E0_1D="65508" # Control_R +E0_20="269025042" # XF86AudioMute +E0_21="269025053" # XF86Calculator +E0_22="269025044" # XF86AudioPlay +E0_24="269025045" # XF86AudioStop +E0_2E="269025041" # XF86AudioLowerVolume +E0_30="269025043" # XF86AudioRaiseVolume +E0_32="269025048" # XF86HomePage +E0_35="65455:U+002F" # KP_Divide +E0_37="65377" # Print +E0_38="65027" # ISO_Level3_Shift +E0_47="65360" # Home +E0_48="65362" # Up +E0_49="65365" # Prior +E0_4B="65361" # Left +E0_4D="65363" # Right +E0_4F="65367" # End +E0_50="65364" # Down +E0_51="65366" # Next +E0_52="65379" # Insert +E0_53="65535:U+007F" # Delete +E0_5B="65515" # Super_L +E0_5C="65516" # Super_R +E0_5D="65383" # Menu +E0_65="269025051" # XF86Search +E0_66="269025072" # XF86Favorites +E0_6B="269025075" # XF86MyComputer +E0_6C="269025049" # XF86Mail +E1_1D="65299" # Pause + +[shift] +01="65307:U+001B" # Escape +02="33:U+0021" # exclam +03="64:U+0040" # at +04="35:U+0023" # numbersign +05="36:U+0024" # dollar +06="37:U+0025" # percent +07="94:U+005E" # asciicircum +08="38:U+0026" # ampersand +09="42:U+002A" # asterisk +0A="40:U+0028" # parenleft +0B="41:U+0029" # parenright +0C="95:U+005F" # underscore +0D="43:U+002B" # plus +0E="65288:U+0008" # BackSpace +0F="65056" # ISO_Left_Tab +10="81:U+0051" # Q +11="87:U+0057" # W +12="70:U+0046" # F +13="80:U+0050" # P +14="71:U+0047" # G +15="74:U+004A" # J +16="76:U+004C" # L +17="85:U+0055" # U +18="89:U+0059" # Y +19="58:U+003A" # colon +1A="123:U+007B" # braceleft +1B="125:U+007D" # braceright +1C="65293:U+000D" # Return +1D="65507" # Control_L +1E="65:U+0041" # A +1F="82:U+0052" # R +20="83:U+0053" # S +21="84:U+0054" # T +22="68:U+0044" # D +23="72:U+0048" # H +24="78:U+004E" # N +25="69:U+0045" # E +26="73:U+0049" # I +27="79:U+004F" # O +28="34:U+0022" # quotedbl +29="126:U+007E" # asciitilde +2A="65505" # Shift_L +2B="124:U+007C" # bar +2C="90:U+005A" # Z +2D="88:U+0058" # X +2E="67:U+0043" # C +2F="86:U+0056" # V +30="66:U+0042" # B +31="75:U+004B" # K +32="77:U+004D" # M +33="60:U+003C" # less +34="62:U+003E" # greater +35="63:U+003F" # question +36="65506" # Shift_R +37="65450:U+002A" # KP_Multiply +38="65511" # Meta_L +39="32:U+0020" # space +3A="65288:U+0008" # BackSpace +3B="65470" # F1 +3C="65471" # F2 +3D="65472" # F3 +3E="65473" # F4 +3F="65474" # F5 +40="65475" # F6 +41="65476" # F7 +42="65477" # F8 +43="65478" # F9 +44="65479" # F10 +45="65407" # Num_Lock +46="65300" # Scroll_Lock +47="65429" # KP_Home +48="65431" # KP_Up +49="65434" # KP_Prior +4A="65453:U+002D" # KP_Subtract +4B="65430" # KP_Left +4C="65437" # KP_Begin +4D="65432" # KP_Right +4E="65451:U+002B" # KP_Add +4F="65436" # KP_End +50="65433" # KP_Down +51="65435" # KP_Next +52="65438" # KP_Insert +53="65439" # KP_Delete +56="95:U+005F" # underscore +57="65480" # F11 +58="65481" # F12 +70="65319" # Hiragana_Katakana +79="65315" # Henkan_Mode +7B="65314" # Muhenkan +7E="65454:U+002E" # KP_Decimal +E0_10="269025046" # XF86AudioPrev +E0_19="269025047" # XF86AudioNext +E0_1C="65421:U+000D" # KP_Enter +E0_1D="65508" # Control_R +E0_20="269025042" # XF86AudioMute +E0_21="269025053" # XF86Calculator +E0_22="269025073" # XF86AudioPause +E0_24="269025068" # XF86Eject +E0_2E="269025041" # XF86AudioLowerVolume +E0_30="269025043" # XF86AudioRaiseVolume +E0_32="269025048" # XF86HomePage +E0_35="65455:U+002F" # KP_Divide +E0_37="65377" # Print +E0_38="65027" # ISO_Level3_Shift +E0_47="65360" # Home +E0_48="65362" # Up +E0_49="65365" # Prior +E0_4B="65361" # Left +E0_4D="65363" # Right +E0_4F="65367" # End +E0_50="65364" # Down +E0_51="65366" # Next +E0_52="65379" # Insert +E0_53="65535:U+007F" # Delete +E0_5B="65515" # Super_L +E0_5C="65516" # Super_R +E0_5D="65383" # Menu +E0_65="269025051" # XF86Search +E0_66="269025072" # XF86Favorites +E0_6B="269025075" # XF86MyComputer +E0_6C="269025049" # XF86Mail +E1_1D="65299" # Pause + +[altgr] +01="65307:U+001B" # Escape +02="161:U+00A1" # exclamdown +03="186:U+00BA" # masculine +04="170:U+00AA" # ordfeminine +05="162:U+00A2" # cent +06="8364:U+20AC" # EuroSign +07="689:U+0127" # hstroke +08="240:U+00F0" # eth +09="254:U+00FE" # thorn +0A="2768:U+2018" # leftsinglequotemark +0B="2769:U+2019" # rightsinglequotemark +0C="2730:U+2013" # endash +0D="215:U+00D7" # multiply +0E="65288:U+0008" # BackSpace +0F="65289:U+0009" # Tab +10="228:U+00E4" # adiaeresis +11="229:U+00E5" # aring +12="227:U+00E3" # atilde +13="248:U+00F8" # oslash +14="65116:U+02DB" # dead_ogonek +15="496:U+0111" # dstroke +16="435:U+0142" # lstroke +17="250:U+00FA" # uacute +18="252:U+00FC" # udiaeresis +19="246:U+00F6" # odiaeresis +1A="171:U+00AB" # guillemotleft +1B="187:U+00BB" # guillemotright +1C="65293:U+000D" # Return +1D="65507" # Control_L +1E="225:U+00E1" # aacute +1F="65104:U+0060" # dead_grave +20="223:U+00DF" # ssharp +21="65105:U+00B4" # dead_acute +22="65111:U+00A8" # dead_diaeresis +23="65114:U+02C7" # dead_caron +24="241:U+00F1" # ntilde +25="233:U+00E9" # eacute +26="237:U+00ED" # iacute +27="243:U+00F3" # oacute +28="245:U+00F5" # otilde +29="65107:U+007E" # dead_tilde +2A="65505" # Shift_L +2B="126:U+007E" # asciitilde +2C="230:U+00E6" # ae +2D="65106:U+005E" # dead_circumflex +2E="231:U+00E7" # ccedilla +2F="5053:U+0153" # oe +30="65109:U+02D8" # dead_breve +31="65112:U+00B0" # dead_abovering +32="65108:U+00AF" # dead_macron +33="65115:U+00B8" # dead_cedilla +34="65110:U+02D9" # dead_abovedot +35="191:U+00BF" # questiondown +36="65506" # Shift_R +37="65450:U+002A" # KP_Multiply +38="65513" # Alt_L +39="32:U+0020" # space +3A="65288:U+0008" # BackSpace +3B="65470" # F1 +3C="65471" # F2 +3D="65472" # F3 +3E="65473" # F4 +3F="65474" # F5 +40="65475" # F6 +41="65476" # F7 +42="65477" # F8 +43="65478" # F9 +44="65479" # F10 +45="65407" # Num_Lock +46="65300" # Scroll_Lock +47="65429" # KP_Home +48="65431" # KP_Up +49="65434" # KP_Prior +4A="65453:U+002D" # KP_Subtract +4B="65430" # KP_Left +4C="65437" # KP_Begin +4D="65432" # KP_Right +4E="65451:U+002B" # KP_Add +4F="65436" # KP_End +50="65433" # KP_Down +51="65435" # KP_Next +52="65438" # KP_Insert +53="65439" # KP_Delete +56="2730:U+2013" # endash +57="65480" # F11 +58="65481" # F12 +70="65319" # Hiragana_Katakana +79="65315" # Henkan_Mode +7B="65314" # Muhenkan +7E="65454:U+002E" # KP_Decimal +E0_10="269025046" # XF86AudioPrev +E0_19="269025047" # XF86AudioNext +E0_1C="65421:U+000D" # KP_Enter +E0_1D="65508" # Control_R +E0_20="269025042" # XF86AudioMute +E0_21="269025053" # XF86Calculator +E0_22="269025044" # XF86AudioPlay +E0_24="269025045" # XF86AudioStop +E0_2E="269025041" # XF86AudioLowerVolume +E0_30="269025043" # XF86AudioRaiseVolume +E0_32="269025048" # XF86HomePage +E0_35="65455:U+002F" # KP_Divide +E0_37="65377" # Print +E0_38="65027" # ISO_Level3_Shift +E0_47="65360" # Home +E0_48="65362" # Up +E0_49="65365" # Prior +E0_4B="65361" # Left +E0_4D="65363" # Right +E0_4F="65367" # End +E0_50="65364" # Down +E0_51="65366" # Next +E0_52="65379" # Insert +E0_53="65535:U+007F" # Delete +E0_5B="65515" # Super_L +E0_5C="65516" # Super_R +E0_5D="65383" # Menu +E0_65="269025051" # XF86Search +E0_66="269025072" # XF86Favorites +E0_6B="269025075" # XF86MyComputer +E0_6C="269025049" # XF86Mail +E1_1D="65299" # Pause + +[shiftaltgr] +01="65307:U+001B" # Escape +02="185:U+00B9" # onesuperior +03="178:U+00B2" # twosuperior +04="179:U+00B3" # threesuperior +05="163:U+00A3" # sterling +06="165:U+00A5" # yen +07="673:U+0126" # Hstroke +08="208:U+00D0" # ETH +09="222:U+00DE" # THORN +0A="2770:U+201C" # leftdoublequotemark +0B="2771:U+201D" # rightdoublequotemark +0C="2729:U+2014" # emdash +0D="247:U+00F7" # division +0E="65288:U+0008" # BackSpace +0F="65056" # ISO_Left_Tab +10="196:U+00C4" # Adiaeresis +11="197:U+00C5" # Aring +12="195:U+00C3" # Atilde +13="216:U+00D8" # Oslash +14="126:U+007E" # asciitilde +15="464:U+0110" # Dstroke +16="419:U+0141" # Lstroke +17="218:U+00DA" # Uacute +18="220:U+00DC" # Udiaeresis +19="214:U+00D6" # Odiaeresis +1A="16785465:U+2039" # U2039 +1B="16785466:U+203A" # U203A +1C="65293:U+000D" # Return +1D="65507" # Control_L +1E="193:U+00C1" # Aacute +1F="126:U+007E" # asciitilde +20="16785054:U+1E9E" # U1E9E +21="65113:U+02DD" # dead_doubleacute +22="126:U+007E" # asciitilde +23="126:U+007E" # asciitilde +24="209:U+00D1" # Ntilde +25="201:U+00C9" # Eacute +26="205:U+00CD" # Iacute +27="211:U+00D3" # Oacute +28="213:U+00D5" # Otilde +29="126:U+007E" # asciitilde +2A="65505" # Shift_L +2B="126:U+007E" # asciitilde +2C="198:U+00C6" # AE +2D="126:U+007E" # asciitilde +2E="199:U+00C7" # Ccedilla +2F="5052:U+0152" # OE +30="126:U+007E" # asciitilde +31="126:U+007E" # asciitilde +32="126:U+007E" # asciitilde +33="126:U+007E" # asciitilde +34="126:U+007E" # asciitilde +35="126:U+007E" # asciitilde +36="65506" # Shift_R +37="65450:U+002A" # KP_Multiply +38="65511" # Meta_L +39="160:U+00A0" # nobreakspace +3A="65288:U+0008" # BackSpace +3B="65470" # F1 +3C="65471" # F2 +3D="65472" # F3 +3E="65473" # F4 +3F="65474" # F5 +40="65475" # F6 +41="65476" # F7 +42="65477" # F8 +43="65478" # F9 +44="65479" # F10 +45="65407" # Num_Lock +46="65300" # Scroll_Lock +47="65429" # KP_Home +48="65431" # KP_Up +49="65434" # KP_Prior +4A="65453:U+002D" # KP_Subtract +4B="65430" # KP_Left +4C="65437" # KP_Begin +4D="65432" # KP_Right +4E="65451:U+002B" # KP_Add +4F="65436" # KP_End +50="65433" # KP_Down +51="65435" # KP_Next +52="65438" # KP_Insert +53="65439" # KP_Delete +56="2729:U+2014" # emdash +57="65480" # F11 +58="65481" # F12 +70="65319" # Hiragana_Katakana +79="65315" # Henkan_Mode +7B="65314" # Muhenkan +7E="65454:U+002E" # KP_Decimal +E0_10="269025046" # XF86AudioPrev +E0_19="269025047" # XF86AudioNext +E0_1C="65421:U+000D" # KP_Enter +E0_1D="65508" # Control_R +E0_20="269025042" # XF86AudioMute +E0_21="269025053" # XF86Calculator +E0_22="269025073" # XF86AudioPause +E0_24="269025068" # XF86Eject +E0_2E="269025041" # XF86AudioLowerVolume +E0_30="269025043" # XF86AudioRaiseVolume +E0_32="269025048" # XF86HomePage +E0_35="65455:U+002F" # KP_Divide +E0_37="65377" # Print +E0_38="65027" # ISO_Level3_Shift +E0_47="65360" # Home +E0_48="65362" # Up +E0_49="65365" # Prior +E0_4B="65361" # Left +E0_4D="65363" # Right +E0_4F="65367" # End +E0_50="65364" # Down +E0_51="65366" # Next +E0_52="65379" # Insert +E0_53="65535:U+007F" # Delete +E0_5B="65515" # Super_L +E0_5C="65516" # Super_R +E0_5D="65383" # Menu +E0_65="269025051" # XF86Search +E0_66="269025072" # XF86Favorites +E0_6B="269025075" # XF86MyComputer +E0_6C="269025049" # XF86Mail +E1_1D="65299" # Pause + +[numlock] +47="65463:U+0037" # KP_7 +48="65464:U+0038" # KP_8 +49="65465:U+0039" # KP_9 +4A="65453:U+002D" # KP_Subtract +4B="65460:U+0034" # KP_4 +4C="65461:U+0035" # KP_5 +4D="65462:U+0036" # KP_6 +4E="65451:U+002B" # KP_Add +4F="65457:U+0031" # KP_1 +50="65458:U+0032" # KP_2 +51="65459:U+0033" # KP_3 +52="65456:U+0030" # KP_0 +53="65454:U+002E" # KP_Decimal diff --git a/xrdp/xrdp_keyboard.ini b/xrdp/xrdp_keyboard.ini index b7aa3496..70d3a235 100644 --- a/xrdp/xrdp_keyboard.ini +++ b/xrdp/xrdp_keyboard.ini @@ -58,6 +58,7 @@ layouts_map=default_layouts_map [default_rdp_layouts] rdp_layout_us=0x00000409 +rdp_layout_us_colemak=0x00060409 rdp_layout_us_dvorak=0x00010409 rdp_layout_us_dvp=0x19360409 rdp_layout_dk=0x00000406 @@ -86,6 +87,7 @@ rdp_layout_pt=0x00000816 ; = [default_layouts_map] rdp_layout_us=us +rdp_layout_us_colemak=us(colemak) rdp_layout_us_dvorak=us(dvorak) rdp_layout_us_dvp=us(dvp) rdp_layout_dk=dk @@ -125,6 +127,7 @@ layouts_map=default_layouts_map [rdp_layouts_map_mac] rdp_layout_us=us +rdp_layout_us_colemak=us(colemak) rdp_layout_us_dvorak=us(dvorak) rdp_layout_us_dvp=us(dvp) rdp_layout_dk=dk