Hi all - after upgrading from 24.04 to 26.04, the play/pause key on my Microsoft Natural Ergonomic Keyboard 4000 stopped working. They worked fine under 24.04.
Hardware
Microsoft Natural Ergonomic Keyboard 4000 (USB, 045e:00db)
Troubleshooting done
I traced the issue through the full input stack:
- evtest - the key registers correctly at the kernel level as
KEY_PLAYPAUSE (164), scancodec00cd, on/dev/input/event5 - libinput - also sees the key fine on event5
- hwdb -
KEYBOARD_KEY_c00cd=playpauseis present in udevadm info output after manually adding a rule, confirming the mapping is correct - XKB -
<I172>→XF86AudioPlayexists in/usr/share/X11/xkb/symbols/inetat line 143 - xkbcli interactive-wayland - shows nothing when the key is pressed, meaning the key never reaches the XKB/Wayland layer
- Budgie Control Center → Keyboard → Sound and Media — all media shortcuts show as Disabled, and the Set Shortcut dialog does not capture the key when pressed
- labwc rc.xml keybinds for
XF86AudioPlayetc. - do not fire (tested with notify-send)
Suspected cause
The keyboard exposes two input interfaces. The media keys come through /dev/input/event5, which has both keyboard and pointer capabilities. My suspicion is that labwc is treating event5 as a pointer device and routing its events through a different pipeline, bypassing keyboard binding entirely. This would explain why the key is visible to evtest and libinput but invisible to xkbcli and labwc keybinds.
This was not an issue under 24.04, which used X11/Xorg where input handling worked differently.
Questions
- Is this a known labwc issue with combo keyboard+pointer devices?
- Is there a supported way in 26.04 to bind keys that don’t reach the XKB layer?
- Should this be reported upstream to the labwc project?
Happy to provide any additional debug output. Thanks!