]> git.ipfire.org Git - thirdparty/plymouth.git/commit
Fix keymap and capslock icon on displays on second GPU
authorHans de Goede <hansg@kernel.org>
Wed, 2 Jul 2025 07:31:21 +0000 (09:31 +0200)
committerHans de Goede <hansg@kernel.org>
Mon, 14 Jul 2025 09:21:48 +0000 (11:21 +0200)
commit29e5112d300bcc16a0c9dac5d133dc4f579a4c81
tree23b877a320c9cf02146b319fc828d9b6e45b1ec2
parent177e2468bda3dc8b4b3684ce9310895f89575039
Fix keymap and capslock icon on displays on second GPU

The keymap and capslock code in src/plugins/renderers/drm/plugin.c relies
on the terminal passed to backend_create() to get the keymap and current
capslock state (when not using evdev input because of e.g. no XKBLAYOUT
in /etc/vconsole.conf which is the default in at least Fedora).

When 2 GPUs which both have displays attached are used only the first
one gets passed the local_console_terminal as terminal (it is considered
the terminal owner and e.g. listens for keypresses). This leads to keymap
and capslock icons not being shown on displays attached to the second GPU.

To fix this add a second ply_terminal_t argument to backend_create() called
local_console_terminal, which will pass the local_console_terminal to both
drm plugin instances. And modify the drm plugin capslock and keymap code to
use this instead of the normal terminal argument which will be NULL on
the second GPU.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2375854
Signed-off-by: Hans de Goede <hansg@kernel.org>
src/libply-splash-core/ply-device-manager.c
src/libply-splash-core/ply-renderer-plugin.h
src/libply-splash-core/ply-renderer.c
src/libply-splash-core/ply-renderer.h
src/plugins/renderers/drm/plugin.c
src/plugins/renderers/frame-buffer/plugin.c
src/plugins/renderers/x11/plugin.c