[PATCH] qemu-keymap: fix altgr modifier lookup for newer xkeyboard-config

Dietmar Maurer posted 1 patch 3 days, 7 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260408091459.4001711-1-dietmar@proxmox.com
qemu-keymap.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] qemu-keymap: fix altgr modifier lookup for newer xkeyboard-config
Posted by Dietmar Maurer 3 days, 7 hours ago
xkeyboard-config 2.37 removed the "AltGr" virtual modifier in favor
of mapping upper groups directly to Mod5. Since then,
xkb_keymap_mod_get_index(map, "AltGr") returns XKB_MOD_INVALID, so
AltGr-based keysyms were never generated.

See: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/473f9bc32f9ba869829cc0d06a75cd1f2560aa60

Try "AltGr" first, and fall back to "Mod5" for compatibility with
both old and new xkeyboard-config versions.

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
---
 qemu-keymap.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/qemu-keymap.c b/qemu-keymap.c
index 1c081db287..d4dccf456e 100644
--- a/qemu-keymap.c
+++ b/qemu-keymap.c
@@ -230,6 +230,9 @@ int main(int argc, char *argv[])
     shift = get_mod(map, "Shift");
     ctrl = get_mod(map, "Control");
     altgr = get_mod(map, "AltGr");
+    if (!altgr) {
+        altgr = get_mod(map, "Mod5");
+    }
     numlock = get_mod(map, "NumLock");
 
     state = xkb_state_new(map);
-- 
2.47.3
Re: [PATCH] qemu-keymap: fix altgr modifier lookup for newer xkeyboard-config
Posted by Philippe Mathieu-Daudé 2 days, 7 hours ago
On 8/4/26 11:14, Dietmar Maurer wrote:
> xkeyboard-config 2.37 removed the "AltGr" virtual modifier in favor
> of mapping upper groups directly to Mod5. Since then,
> xkb_keymap_mod_get_index(map, "AltGr") returns XKB_MOD_INVALID, so
> AltGr-based keysyms were never generated.
> 
> See: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/473f9bc32f9ba869829cc0d06a75cd1f2560aa60
> 
> Try "AltGr" first, and fall back to "Mod5" for compatibility with
> both old and new xkeyboard-config versions.
> 
> Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
> ---
>   qemu-keymap.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/qemu-keymap.c b/qemu-keymap.c
> index 1c081db287..d4dccf456e 100644
> --- a/qemu-keymap.c
> +++ b/qemu-keymap.c
> @@ -230,6 +230,9 @@ int main(int argc, char *argv[])
>       shift = get_mod(map, "Shift");
>       ctrl = get_mod(map, "Control");
>       altgr = get_mod(map, "AltGr");
> +    if (!altgr) {
> +        altgr = get_mod(map, "Mod5");
> +    }
>       numlock = get_mod(map, "NumLock");
>   
>       state = xkb_state_new(map);

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>