I’m running a relatively new NixOS install on an AMD based Lenovo Z13. I’m using i3 as my window manager. Only some of the multimedia/soft keys which are the alternates of the function keys are recognised.
Specifically, none of the multimedia keys (mute speakers, mute mic, vol up/vol down) send XF events.
The brightness up/down buttons send XF events, but don’t appear to be plumbed through correctly.
The “toggle flight mode” button appears to work correctly end to end.
Relevant configuration snippets:
{
imports =
[
<nixos-hardware/lenovo/thinkpad/z/gen2/z13>
./hardware-configuration.nix
];
...
services.xserver.xkb = {
layout = "gb";
variant = "dvorak";
options = "ctrl:nocaps";
}
Example input seen by xev
when I hit F1 with FnLock off (should be “mute/unmute”):
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Compare that to F5:
KeyPress event, serial 34, synthetic NO, window 0x1000001,
root 0x59d, subw 0x0, time 1529406, (41,1224), root:(1967,1256),
state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x1000001,
root 0x59d, subw 0x0, time 1529406, (41,1224), root:(1967,1256),
state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Two questions:
- What configuration is missing to generate the correct XF86* events?
- What is the correct way to set those up in NixOS?