-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Snipping Tool (XF86SelectiveScreenshot
) and Legion (XF86Favorites
) Fn-keys cease to function
#291
Comments
XF86SelectiveScreenshot
) Fn-key ceases to function
Using In both cases, `evtest` reports:
Of these keys, four are easily testable:
The mic mute ( Hopefully this helps at least a little; please ping me if more testing is needed! |
XF86SelectiveScreenshot
) Fn-key ceases to functionXF86SelectiveScreenshot
) and Legion (XF86Favorites
) Fn-keys cease to function
Random observation: the keys that stop working both have keycodes above 256. Is there any chance this driver is using a |
Very interesting! I am currently not at my PC, but you can try it yourself: Can you give me more details? I guess I might subscribe to too many wmi events that then are not consumed any more by other layers. You can also compile it from source and temporarily load it without installing (very easy; see README). Then press the keys and look at the output of If you are familiar with, then you could out-comment only these lines and compile and load again: { LEGION_WMI_GAMEZONE_GUID, &legion_wmi_context_gamezone },
{ LEGION_WMI_GUID_FAN_EVENT, &legion_wmi_context_a },
{ LEGION_WMI_GUID_FAN2_EVENT, &legion_wmi_context_b },
{ LEGION_WMI_GUID_GAMEZONE_KEY_EVENT, &legion_wmi_context_c },
{ LEGION_WMI_GUID_GAMEZONE_GPU_EVENT, &legion_wmi_context_d },
{ LEGION_WMI_GUID_GAMEZONE_OC_EVENT, &legion_wmi_context_e },
{ LEGION_WMI_GUID_GAMEZONE_TEMP_EVENT, &legion_wmi_context_f },
{ "8FC0DE0C-B4E4-43FD-B0F3-8871711C1294",
&legion_wmi_context_gamezone }, /* Legion 5 */ Then there should be no output in the dmesg log when presssing keys and the keys should work. |
Sure, I can test that! Just a quick note, though, the bug doesn't manifest if the module is simply loaded at runtime — it only appears after rebooting with the module configured to load during boot. Hm, this is interesting. Comparing dmesg logs between loading at boot time versus when the system's already been running for a while, I see exactly one difference. The following line appears during boot-time loading, but not during runtime loading:
I haven't tested with the WMI device IDs commented out yet, so I'll try commenting just that Yep, that did it. I'm not familiar enough with WMI infrastructure to comment on this, but removing the |
I try on my laptop with the module load and unloaded that keys dosent function, but seems that because ideapad-laptop dosen't support that keys on your model (they are not binded correctly as we can see by evtest output): Select the device event number [0-19]: 10
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0
Input device name: "Ideapad extra buttons"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 1 (KEY_ESC)
Event code 138 (KEY_HELP)
Event code 148 (KEY_PROG1)
Event code 149 (KEY_PROG2)
Event code 186 (KEY_F16)
Event code 190 (KEY_F20)
Event code 192 (KEY_F22)
Event code 193 (KEY_F23)
Event code 202 (KEY_PROG3)
Event code 203 (KEY_PROG4)
Event code 212 (KEY_CAMERA)
Event code 227 (KEY_SWITCHVIDEOMODE)
Event code 240 (KEY_UNKNOWN)
Event code 247 (KEY_RFKILL)
Event code 248 (KEY_MICMUTE)
Event code 364 (KEY_FAVORITES)
Event code 445 (?)
Event code 446 (?)
Event code 562 (?)
Event code 634 (?)
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit) The last for keys are |
Well on your model dmesg maps the keys this is the dmesg after pressing the key I said above, but all have the same event: [200082.414212] [T1206382] legion_laptop: Event: legion type: 1; acpi type: 1 (1=integer)
[200088.127112] [T1406707] legion_laptop: Event: legion type: 1; acpi type: 1 (1=integer)
[200093.102772] [T1406707] legion_laptop: Event: legion type: 1; acpi type: 1 (1=integer) Maybe we can add support for the key in the driver? |
Problem Description
After installing the Legion kernel module and rebooting, the "snipping tool" Fn-key shortcut (on the same key as PrtSc) ceases to function. Previously, it would be picked up (by Hyprland) as
XF86SelectiveScreenshot
.This was observed in several places:
XF86SelectiveScreenshot
ceased to functionwev
did not register any events upon pressing the keywshowkeys
, which uses a setuid component to intercept keypresses at a low level, did not register the keypresslenovolegionlinux-dkms-git
) and rebooting restored normal operationThe underlying PrtSc key still functions; only its Fn-layer behavior is broken.
Also, the broken behavior appears only after reboot, not after simply loading the kernel module.
Model and Debug Info
Installation type: DKMS (via AUR package)
Distribution: Arch Linux (fully up-to-date)
Model name: Legion 5 15IMH05H
CPU model: Intel Core i7-10750H
Keyboard backlight: single color with off/medium/bright
Light in lid or logo: no
Light at IO-Ports at back: no
Output of
sudo dmidecode -t system
:Output of
sudo dmidecode -t bios
:Output of
sudo cat /sys/kernel/debug/legion/fancurve
:[Omitted since this isn't a fan-related issue; let me know if you actually need it]
The text was updated successfully, but these errors were encountered: