From 1f14982adde4f97296f84763ab7f79f4db33631e Mon Sep 17 00:00:00 2001 From: James Muehlner Date: Wed, 14 Jun 2023 18:14:14 +0000 Subject: [PATCH] GUACAMOLE-1473: Disable AltGr handling for RDP keyboard layouts that don't support it. --- src/protocols/rdp/Makefile.am | 1 + src/protocols/rdp/keymaps/base.keymap | 1 - src/protocols/rdp/keymaps/base_altgr.keymap | 25 +++++++++++++++++++ src/protocols/rdp/keymaps/cs-cz-qwertz.keymap | 2 +- src/protocols/rdp/keymaps/da_dk_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/de_ch_qwertz.keymap | 2 +- src/protocols/rdp/keymaps/de_de_qwertz.keymap | 2 +- src/protocols/rdp/keymaps/en_gb_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/es_es_qwerty.keymap | 2 +- .../rdp/keymaps/es_latam_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/fr_be_azerty.keymap | 2 +- src/protocols/rdp/keymaps/fr_ca_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/fr_ch_qwertz.keymap | 2 +- src/protocols/rdp/keymaps/fr_fr_azerty.keymap | 2 +- src/protocols/rdp/keymaps/hu_hu_qwertz.keymap | 2 +- src/protocols/rdp/keymaps/it_it_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/no_no_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/pt_br_qwerty.keymap | 4 +-- src/protocols/rdp/keymaps/pt_pt_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/ro_ro_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/sv_se_qwerty.keymap | 2 +- src/protocols/rdp/keymaps/tr_tr_qwerty.keymap | 2 +- 22 files changed, 46 insertions(+), 21 deletions(-) create mode 100644 src/protocols/rdp/keymaps/base_altgr.keymap diff --git a/src/protocols/rdp/Makefile.am b/src/protocols/rdp/Makefile.am index fe7a3fb41..1c393c30d 100644 --- a/src/protocols/rdp/Makefile.am +++ b/src/protocols/rdp/Makefile.am @@ -229,6 +229,7 @@ BUILT_SOURCES = \ rdp_keymaps = \ $(srcdir)/keymaps/base.keymap \ + $(srcdir)/keymaps/base_altgr.keymap \ $(srcdir)/keymaps/failsafe.keymap \ $(srcdir)/keymaps/cs-cz-qwertz.keymap \ $(srcdir)/keymaps/de_de_qwertz.keymap \ diff --git a/src/protocols/rdp/keymaps/base.keymap b/src/protocols/rdp/keymaps/base.keymap index 5b93fab6d..4d6cb01d9 100644 --- a/src/protocols/rdp/keymaps/base.keymap +++ b/src/protocols/rdp/keymaps/base.keymap @@ -84,7 +84,6 @@ map 0x1D ~ 0xffe3 # Control_L map +ext 0x1D ~ 0xffe4 # Control_R map 0x38 ~ 0xffe9 # Alt_L map +ext 0x38 ~ 0xffea # Alt_R -map +ext 0x38 ~ 0xfe03 # AltGr map +ext 0x5B ~ 0xffe7 # Meta_L map +ext 0x5C ~ 0xffe8 # Meta_R map +ext 0x5B ~ 0xffeb # Super_L diff --git a/src/protocols/rdp/keymaps/base_altgr.keymap b/src/protocols/rdp/keymaps/base_altgr.keymap new file mode 100644 index 000000000..5c4691d07 --- /dev/null +++ b/src/protocols/rdp/keymaps/base_altgr.keymap @@ -0,0 +1,25 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +parent "base" +name "base_altgr" + +# Modifiers +map +ext 0x38 ~ 0xfe03 # AltGr + diff --git a/src/protocols/rdp/keymaps/cs-cz-qwertz.keymap b/src/protocols/rdp/keymaps/cs-cz-qwertz.keymap index b9bec804d..e29037bc7 100644 --- a/src/protocols/rdp/keymaps/cs-cz-qwertz.keymap +++ b/src/protocols/rdp/keymaps/cs-cz-qwertz.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "cs-cz-qwertz" freerdp "KBD_CZECH" diff --git a/src/protocols/rdp/keymaps/da_dk_qwerty.keymap b/src/protocols/rdp/keymaps/da_dk_qwerty.keymap index aa6139cf3..0c4bf7eb2 100644 --- a/src/protocols/rdp/keymaps/da_dk_qwerty.keymap +++ b/src/protocols/rdp/keymaps/da_dk_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "da-dk-qwerty" freerdp "KBD_DANISH" diff --git a/src/protocols/rdp/keymaps/de_ch_qwertz.keymap b/src/protocols/rdp/keymaps/de_ch_qwertz.keymap index c4d80c7a3..b86f8c8da 100644 --- a/src/protocols/rdp/keymaps/de_ch_qwertz.keymap +++ b/src/protocols/rdp/keymaps/de_ch_qwertz.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "de-ch-qwertz" freerdp "KBD_SWISS_GERMAN" diff --git a/src/protocols/rdp/keymaps/de_de_qwertz.keymap b/src/protocols/rdp/keymaps/de_de_qwertz.keymap index 787c05595..bc9a373ca 100644 --- a/src/protocols/rdp/keymaps/de_de_qwertz.keymap +++ b/src/protocols/rdp/keymaps/de_de_qwertz.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "de-de-qwertz" freerdp "KBD_GERMAN" diff --git a/src/protocols/rdp/keymaps/en_gb_qwerty.keymap b/src/protocols/rdp/keymaps/en_gb_qwerty.keymap index 9f338983d..acf0edc6e 100644 --- a/src/protocols/rdp/keymaps/en_gb_qwerty.keymap +++ b/src/protocols/rdp/keymaps/en_gb_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "en-gb-qwerty" freerdp "KBD_UNITED_KINGDOM" diff --git a/src/protocols/rdp/keymaps/es_es_qwerty.keymap b/src/protocols/rdp/keymaps/es_es_qwerty.keymap index 93453cff2..66d76e9b1 100644 --- a/src/protocols/rdp/keymaps/es_es_qwerty.keymap +++ b/src/protocols/rdp/keymaps/es_es_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "es-es-qwerty" freerdp "KBD_SPANISH" diff --git a/src/protocols/rdp/keymaps/es_latam_qwerty.keymap b/src/protocols/rdp/keymaps/es_latam_qwerty.keymap index 4c4ee578a..d69acf6bf 100644 --- a/src/protocols/rdp/keymaps/es_latam_qwerty.keymap +++ b/src/protocols/rdp/keymaps/es_latam_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "es-latam-qwerty" freerdp "KBD_LATIN_AMERICAN" diff --git a/src/protocols/rdp/keymaps/fr_be_azerty.keymap b/src/protocols/rdp/keymaps/fr_be_azerty.keymap index 35f637ecd..6899ad87b 100644 --- a/src/protocols/rdp/keymaps/fr_be_azerty.keymap +++ b/src/protocols/rdp/keymaps/fr_be_azerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "fr-be-azerty" freerdp "KBD_BELGIAN_FRENCH" diff --git a/src/protocols/rdp/keymaps/fr_ca_qwerty.keymap b/src/protocols/rdp/keymaps/fr_ca_qwerty.keymap index ee79f822c..da0f4df4a 100644 --- a/src/protocols/rdp/keymaps/fr_ca_qwerty.keymap +++ b/src/protocols/rdp/keymaps/fr_ca_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "fr-ca-qwerty" freerdp "KBD_CANADIAN_FRENCH" diff --git a/src/protocols/rdp/keymaps/fr_ch_qwertz.keymap b/src/protocols/rdp/keymaps/fr_ch_qwertz.keymap index 8864d701f..088355497 100644 --- a/src/protocols/rdp/keymaps/fr_ch_qwertz.keymap +++ b/src/protocols/rdp/keymaps/fr_ch_qwertz.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "fr-ch-qwertz" freerdp "KBD_SWISS_FRENCH" diff --git a/src/protocols/rdp/keymaps/fr_fr_azerty.keymap b/src/protocols/rdp/keymaps/fr_fr_azerty.keymap index 7f4f83271..4d29c4c62 100644 --- a/src/protocols/rdp/keymaps/fr_fr_azerty.keymap +++ b/src/protocols/rdp/keymaps/fr_fr_azerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "fr-fr-azerty" freerdp "KBD_FRENCH" diff --git a/src/protocols/rdp/keymaps/hu_hu_qwertz.keymap b/src/protocols/rdp/keymaps/hu_hu_qwertz.keymap index 211d92c21..858d97af9 100644 --- a/src/protocols/rdp/keymaps/hu_hu_qwertz.keymap +++ b/src/protocols/rdp/keymaps/hu_hu_qwertz.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "hu-hu-qwertz" freerdp "KBD_HUNGARIAN" diff --git a/src/protocols/rdp/keymaps/it_it_qwerty.keymap b/src/protocols/rdp/keymaps/it_it_qwerty.keymap index 54f2172ae..9b58331be 100644 --- a/src/protocols/rdp/keymaps/it_it_qwerty.keymap +++ b/src/protocols/rdp/keymaps/it_it_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "it-it-qwerty" freerdp "KBD_ITALIAN" diff --git a/src/protocols/rdp/keymaps/no_no_qwerty.keymap b/src/protocols/rdp/keymaps/no_no_qwerty.keymap index 5fbc126b0..62fe1a43d 100644 --- a/src/protocols/rdp/keymaps/no_no_qwerty.keymap +++ b/src/protocols/rdp/keymaps/no_no_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "no-no-qwerty" freerdp "KBD_NORWEGIAN" diff --git a/src/protocols/rdp/keymaps/pt_br_qwerty.keymap b/src/protocols/rdp/keymaps/pt_br_qwerty.keymap index e0656e9b3..c513d3802 100644 --- a/src/protocols/rdp/keymaps/pt_br_qwerty.keymap +++ b/src/protocols/rdp/keymaps/pt_br_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "pt-br-qwerty" freerdp "KBD_PORTUGUESE_BRAZILIAN_ABNT2" @@ -64,4 +64,4 @@ map -altgr +shift 0x07 ~ 0xFE57 # Dead diaeresis (umlaut) map -altgr +shift 0x1A ~ 0xFE50 # Dead grave map -altgr -shift 0x1A ~ 0xFE51 # Dead acute map -altgr +shift 0x28 ~ 0xFE52 # Dead circumflex -map -altgr -shift 0x28 ~ 0xFE53 # Dead tilde \ No newline at end of file +map -altgr -shift 0x28 ~ 0xFE53 # Dead tilde diff --git a/src/protocols/rdp/keymaps/pt_pt_qwerty.keymap b/src/protocols/rdp/keymaps/pt_pt_qwerty.keymap index 5bfbee8c0..4703b31c1 100644 --- a/src/protocols/rdp/keymaps/pt_pt_qwerty.keymap +++ b/src/protocols/rdp/keymaps/pt_pt_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "pt-pt-qwerty" freerdp "KBD_PORTUGUESE" diff --git a/src/protocols/rdp/keymaps/ro_ro_qwerty.keymap b/src/protocols/rdp/keymaps/ro_ro_qwerty.keymap index 51996fd00..f66641980 100644 --- a/src/protocols/rdp/keymaps/ro_ro_qwerty.keymap +++ b/src/protocols/rdp/keymaps/ro_ro_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "ro-ro-qwerty" freerdp "KBD_ROMANIAN" diff --git a/src/protocols/rdp/keymaps/sv_se_qwerty.keymap b/src/protocols/rdp/keymaps/sv_se_qwerty.keymap index 6ab8b7a50..1a7ce4a40 100644 --- a/src/protocols/rdp/keymaps/sv_se_qwerty.keymap +++ b/src/protocols/rdp/keymaps/sv_se_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "sv-se-qwerty" freerdp "KBD_SWEDISH" diff --git a/src/protocols/rdp/keymaps/tr_tr_qwerty.keymap b/src/protocols/rdp/keymaps/tr_tr_qwerty.keymap index d46a0fda4..d23d1cdf3 100644 --- a/src/protocols/rdp/keymaps/tr_tr_qwerty.keymap +++ b/src/protocols/rdp/keymaps/tr_tr_qwerty.keymap @@ -17,7 +17,7 @@ # under the License. # -parent "base" +parent "base_altgr" name "tr-tr-qwerty" freerdp "KBD_TURKISH_Q"