https://bugs.kde.org/show_bug.cgi?id=489021
Zachary Freed <theconfuzzledd...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |theconfuzzledd...@gmail.com --- Comment #3 from Zachary Freed <theconfuzzledd...@gmail.com> --- I'm the person implementing the aforementioned auto-type feature in KeepassXC. I've tracked down the source of the issue to the Xkb class in src/waylandintegration.cpp, it seems like the implementer got mixed up between the client and server. The keymap is correctly obtained through the `keyboard_keymap` event, and a state is created from that keymap. At the start of `keycodeFromKeysym`, the layout is attempted to be obtained from the state through calling `xkb_state_serialize_layout`. However, as the desktop portal is acting as a XKB client here, it is supposed to be tracking the state itself, and the `xkb_state_serialize_layout` is for server applications to send the layout to clients. Because the desktop portal is using a default state, without tracking anything, this will always return the first defined layout in the keymap, meaning regardless of what layouts are configured, the first layout in the defined order will determine what keys are pressed to produce a symbol (with obviously terrible results if you use a non qwerty layout). The correct implementation doesn't require an `xkb_state` to be created at all. Rather, the `keyboard_modifiers` event should be implemented, which I believe is called by the display server whenever the group (aka layout) is changed, and that value can then be passed to the rest of the `keycodeFromKeysym` function -- You are receiving this mail because: You are watching all bug changes.