Skip to content

Modifier keys not working on some keys #3295

Description

@OreoLamp

Hyprland Version

Hyprland, built from branch main at commit 84f8f4d dirty (keybinds: warp cursor to correct window in moveWindowOutOfGroup (3290)). Tag: v0.29.1-68-g84f8f4d7 flags: (if any)

Bug or Regression?

Bug

Description

Modifier keys do not work with some keys, specifically the < and ' keys.
I am using a Finnish layout pc105 keyboard, and this bug is hardware-specific, verified that all works as expected (no bugs) on another Finnish pc105 layout keyboard.
Specific keyboard model: Kingston HyperX Alloy FPS Mechanical Gaming Keyboard
Attaching a part of a wev log that shows what happens in Hyprland, essentially, the modifier keys show normal pressed events, but when the < or ' keys are pressed with the modifier key, the modifier key does not show up as pressed despite there not being an event to lift the modifier key.
This behavior seems to happen only in Hyprland (although I would love to test this in more environments to help debug this), as Sway does not have this issue (at least for me). I have however encountered similar behavior in Fedora KDE, although there this only seemed to effect qt-based applications.
This bug currently makes Hyprland effectively unusable for me, as I cannot type '*', '|', or '>', which are rather inconvenient symbols to be missing while using the terminal.

How to reproduce

Plug my keyboard in (bug is hardware-specific xd)
Open a terminal in Hyprland
Press shift + <
Expected behavior: A '*' character appears
Observed behavior: A '<' character appears

Crash reports, logs, images, videos

wev_output.txt
wl_keyboard.txt

The important part in wev_output.txt is here, the rest is just there to demonstrate that other keys work properly

[14:     wl_keyboard] key: serial: 2118; time: 1656855; key: 50; state: 1 (pressed)
                      sym: Shift_L      (65505), utf8: ''
[14:     wl_keyboard] modifiers: serial: 0; group: 0
                      depressed: 00000001: Shift 
                      latched: 00000000
                      locked: 00000000
[14:     wl_keyboard] keymap: format: 1 (xkb v1), size: 64893
[14:     wl_keyboard] repeat_info: rate: 25 keys/sec; delay: 600 ms
[14:     wl_keyboard] modifiers: serial: 0; group: 0
                      depressed: 00000000
                      latched: 00000000
                      locked: 00000000
[14:     wl_keyboard] key: serial: 2121; time: 1657115; key: 94; state: 1 (pressed)
                      sym: less         (60), utf8: '<'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstaleNot much going on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions