YaLTeR / niri

A scrollable-tiling Wayland compositor.
https://matrix.to/#/#niri:matrix.org
GNU General Public License v3.0
3.58k stars 105 forks source link

Key bindings not working for the numeric keypad #493

Closed fversaci closed 3 months ago

fversaci commented 3 months ago

Hi! I'm attempting to assign a key bind to the keys on the numeric keypad, but it doesn't appear to be functioning. Am I doing something wrong? For instance: Mod+KP_1 { focus-workspace 1; }

Thanks!

System Information

YaLTeR commented 3 months ago

Indeed. Not sure, need to look into it

fversaci commented 3 months ago

It seems it only accepts the non-numerical variants of the key-names, whatever the numlock state. The following does work:

Mod+KP_End { focus-workspace 1; }
Mod+KP_Down { focus-workspace 2; }
Mod+KP_Next { focus-workspace 3; }
Mod+KP_Left { focus-workspace 4; }
Mod+KP_Begin { focus-workspace 5; }
Mod+KP_Right { focus-workspace 6; }
Mod+KP_Home { focus-workspace 7; }
Mod+KP_Up { focus-workspace 8; }
Mod+KP_Prior { focus-workspace 9; }

Might be related to this issue? https://github.com/hyprwm/Hyprland/issues/2682

YaLTeR commented 3 months ago

Yeah, looks like the same thing

CloudyChris commented 2 months ago

I understand the fact that you can make it "work" with KP_End and so on, but that's hardly "completed". It still feels like a big issue, because what if I want to have different behavior depending on the state of NumLock. For example, I wanna do $mod, KP_1, workspace, 1 and use KP_End to go to the last workspace or do something else... it still very much is an issue

YaLTeR commented 2 months ago

It might be an xkbcommon issue more so than compositors'

CloudyChris commented 2 months ago

It might be an xkbcommon issue more so than compositors'

Both xev and wev correctly identify KP_1 through 9, and the header file the Hyprland wiki points to for symbols (the long list of #define XKB_KEY_<key_code>) includes separate defines for KP_End and KP_1, however, they do have the same scancode (87), so if a table is made to reduce everything to scancodes, then yes, that would cause the issue. I'd have to look at the hyprland's implementation of xkbcommon to be sure, but as it's half past midnight here, I will do it tomorrow.