All of lore.kernel.org
 help / color / mirror / Atom feed
* [REPORT]: lenovo laptop FN keys depressed indefinitely
@ 2026-11-15 14:17 Shehriyar Qureshi
  0 siblings, 0 replies; only message in thread
From: Shehriyar Qureshi @ 2026-11-15 14:17 UTC (permalink / raw)
  To: linux-input; +Cc: dmitry.torokhov

Hello, I've noticed a weird keyboard behaviour related to function keys with Fn key on my laptop.

There seem to be related bug reports on bugzilla, and seem to be related to Lenovo laptops.

Somewhat related bug: https://bugzilla.kernel.org/show_bug.cgi?id=220689

Reproduce steps:
1. Press and hold Fn key
2. Press and hold a function key briefly (volume keys f1-f4) in my test
3. Release Fn key first
4. Release function key

This flow causes the "Fn+F__" key to not emit a "release" event, and pretends as if it is
depressed indefinitely.

This causes weird behaviour like having to press Fn+F__ again and when releasing it that time, it
registers the "release" event. Another weird result is volume going up or down infinitely as
desktop environment thinks "KEY_VOLUMEDOWN" is being held pressed.

Notes
=====

- When the reproduce steps are performed, if I press Fn+F__ key again, no event emits. When I release
it, the "release" event gets emitted. I can then use the key again.


evtest
======

Command: sudo evtest /dev/input/event4

Test involves using F2 key, Fn+F2 is volume down.

First output is when I press and release quickly, F2 is not registered, KEY_VOLUMEDOWN is never
released.

Second output is releasing after being pressed for a short while. In that case, F2 gets registered
and released, but similar to first ouptut, KEY_VOLUMEDOWN never registers release.

Output
======

Input driver version is 1.0.1
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab83
Input device name: "AT Translated Set 2 keyboard"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    ...
    Event code 28 (KEY_ENTER)
    Event code 29 (KEY_LEFTCTRL)
    ...
    Event code 59 (KEY_F1)
    Event code 60 (KEY_F2)
    Event code 61 (KEY_F3)
    Event code 62 (KEY_F4)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    ...
    Event code 143 (KEY_WAKEUP)
    ...
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
  Event type 17 (EV_LED)
    Event code 0 (LED_NUML) state 0
    Event code 1 (LED_CAPSL) state 0
    Event code 2 (LED_SCROLLL) state 0
Key repeat handling:
  Repeat type 20 (EV_REP)
    Repeat code 0 (REP_DELAY)
      Value    250
    Repeat code 1 (REP_PERIOD)
      Value     33
Properties:
Testing ... (interrupt to exit)
Event: time 1794746296.253899, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c
Event: time 1794746296.253899, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1794746296.253899, -------------- SYN_REPORT ------------
Event: time 1794746297.498438, type 4 (EV_MSC), code 4 (MSC_SCAN), value e3
Event: time 1794746297.498438, type 1 (EV_KEY), code 143 (KEY_WAKEUP), value 1
Event: time 1794746297.498438, -------------- SYN_REPORT ------------
Event: time 1794746297.653019, type 4 (EV_MSC), code 4 (MSC_SCAN), value ae
Event: time 1794746297.653019, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1
Event: time 1794746297.653019, -------------- SYN_REPORT ------------
Event: time 1794746297.771531, type 4 (EV_MSC), code 4 (MSC_SCAN), value e3
Event: time 1794746297.771531, type 1 (EV_KEY), code 143 (KEY_WAKEUP), value 0
Event: time 1794746297.771531, -------------- SYN_REPORT ------------
Event: time 1794746297.817435, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3c
Event: time 1794746297.817435, -------------- SYN_REPORT ------------
Event: time 1794746301.453571, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1794746301.453571, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1794746301.453571, -------------- SYN_REPORT ------------
Event: time 1794746301.502108, type 4 (EV_MSC), code 4 (MSC_SCAN), value 2e
Event: time 1794746301.502108, type 1 (EV_KEY), code 46 (KEY_C), value 1
Event: time 1794746301.502108, -------------- SYN_REPORT ------------

The above output is when i release the key quickly. If I hold Fn+F__ down for a while, I get

Event: time 1794746690.784458, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c
Event: time 1794746690.784458, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1794746690.784458, -------------- SYN_REPORT ------------
Event: time 1794746694.681139, type 4 (EV_MSC), code 4 (MSC_SCAN), value e3
Event: time 1794746694.681139, type 1 (EV_KEY), code 143 (KEY_WAKEUP), value 1
Event: time 1794746694.681139, -------------- SYN_REPORT ------------
Event: time 1794746694.905681, type 4 (EV_MSC), code 4 (MSC_SCAN), value ae
Event: time 1794746694.905681, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1
Event: time 1794746694.905681, -------------- SYN_REPORT ------------
Event: time 1794746695.049700, type 4 (EV_MSC), code 4 (MSC_SCAN), value e3
Event: time 1794746695.049700, type 1 (EV_KEY), code 143 (KEY_WAKEUP), value 0
Event: time 1794746695.049700, -------------- SYN_REPORT ------------
Event: time 1794746695.161552, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3c
Event: time 1794746695.161552, type 1 (EV_KEY), code 60 (KEY_F2), value 1
Event: time 1794746695.161552, -------------- SYN_REPORT ------------
Event: time 1794746695.190177, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3c
Event: time 1794746695.190177, -------------- SYN_REPORT ------------
Event: time 1794746695.220520, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3c
Event: time 1794746695.220520, -------------- SYN_REPORT ------------
Event: time 1794746695.250893, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3c
Event: time 1794746695.250893, -------------- SYN_REPORT ------------
Event: time 1794746695.256962, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3c
Event: time 1794746695.256962, type 1 (EV_KEY), code 60 (KEY_F2), value 0
Event: time 1794746695.256962, -------------- SYN_REPORT ------------
Event: time 1794746697.588690, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1794746697.588690, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1794746697.588690, -------------- SYN_REPORT ------------
Event: time 1794746697.778538, type 4 (EV_MSC), code 4 (MSC_SCAN), value 2e
Event: time 1794746697.778538, type 1 (EV_KEY), code 46 (KEY_C), value 1
Event: time 1794746697.778538, -------------- SYN_REPORT ------------

Notice Fn+F2 sent KEY_VOLUMEDOWN, after a while when I release Fn (KEY_WAKEUP), it sees it
be released, and then the already pressed F2 key gets emitted as pressed.

When I then release F2, it registers release of F2, but KEY_VOLUMEDOWN never registered
release event.

libinput
========

Device:                  AT Translated Set 2 keyboard
Kernel:                  /dev/input/event4
Id:                      serial:0001:0001
Group:                   7
Seat:                    seat0, default
Capabilities:            keyboard
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             n/a
Nat.scrolling:           n/a
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Machine details
===============

Thinkpad T14s Gen 2a (20XG)
Arch Linux 7.3.4-arch1-2
KDE Plasma 6.8.2

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-11-15 14:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-15 14:17 [REPORT]: lenovo laptop FN keys depressed indefinitely Shehriyar Qureshi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.