Hello! I just received my 13th Gen Framework 13 today, and so far am incredibly pleased with both the system and the resources available online.
However, I’ve come across the same issue as in this thread: Fn lock broken. Didn’t want to revive a dead thread which is marked as solved and is for a different gen CPU (that thread seems to focus on 11th gen Intel CPUs, but I have a 13th gen Intel CPU), so I’m creating this new thread.
The issue is that the function keys interact weirdly with fn lock. As described in the other post, when fn lock is enabled, pressing a function key correctly sends the appropriate command (e.g play/pause, or volume up/down) and pressing fn + a function key correctly sends the appropriate F-key (e.g F5 or F11). However, when fn lock is disabled (toggle with fn+escape), I cannot get the key to send the appropriate F-key whether fn is pressed or not.
For example for the following sequence of key presses (starting with fn lock enabled):
1 - F5
2 - Fn + F5
3 - Fn + Escape
4 - F5
5 - Fn + F5
I would expect to see Play/Pause, followed by F5 (then toggle fn lock, but this does not appear as a key press), followed by F5, followed by Play/Pause.
However, using evtest to record what the system receives:
Event: time 1714856296.644310, type 4 (EV_MSC), code 4 (MSC_SCAN), value a2
Event: time 1714856296.644310, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1714856296.644310, -------------- SYN_REPORT ------------
Event: time 1714856296.690826, type 4 (EV_MSC), code 4 (MSC_SCAN), value a2
Event: time 1714856296.690826, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1714856296.690826, -------------- SYN_REPORT ------------
Event: time 1714856297.027071, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3f
Event: time 1714856297.027071, type 1 (EV_KEY), code 63 (KEY_F5), value 1
Event: time 1714856297.027071, -------------- SYN_REPORT ------------
Event: time 1714856297.095002, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3f
Event: time 1714856297.095002, type 1 (EV_KEY), code 63 (KEY_F5), value 0
Event: time 1714856297.095002, -------------- SYN_REPORT ------------
Event: time 1714856298.363619, type 4 (EV_MSC), code 4 (MSC_SCAN), value a2
Event: time 1714856298.363619, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1714856298.363619, -------------- SYN_REPORT ------------
Event: time 1714856298.429039, type 4 (EV_MSC), code 4 (MSC_SCAN), value a2
Event: time 1714856298.429039, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1714856298.429039, -------------- SYN_REPORT ------------
Event: time 1714856298.702649, type 4 (EV_MSC), code 4 (MSC_SCAN), value a2
Event: time 1714856298.702649, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1714856298.702649, -------------- SYN_REPORT ------------
Event: time 1714856298.761264, type 4 (EV_MSC), code 4 (MSC_SCAN), value a2
Event: time 1714856298.761264, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1714856298.761264, -------------- SYN_REPORT ------------
The actual received sequence is Play/Pause, F5, Play/Pause, Play/Pause.
I first noticed this on a plain Arch Linux installation under Sway, and have tried the solutions listed in the thread I linked earlier, as well as trying on Ubuntu with the fixes to no avail. The things I tried:
- Using a different DE (tried Gnome and KDE Plasma)
- Using a different display server (switched to Xorg from Wayland, tried Gnome and Plasma again)
echo "blacklist cros_ec_lpcs" | sudo tee -a /etc/modprobe.d/no_cros_ec.conf
, as suggested in the linked threadblacklist hid_sensor_hub
, which was also suggested in the linked thread- Switching to LTS kernel, trying all of the above again
- Switching distros to Ubuntu 24.04, first trying with no changes, and then again with
blacklist cros_ec_lpcs
All to no avail.
Please let me know if I can provide any more details/test anything on my system that might get us closer to a solution