There’s another odd little issue that’s developed on my HP Probook. The F8 button doubles as a microphone mute button. It has a little light that comes on when the mic is muted.
It’s been working flawlessly until I installed a bunch of updates the other day. Now pressing F8 to mute/unmute has no effect.
The light still goes on/off if I mute/unmute in Fedora’s settings, and F8 still works as F8. It just doesn’t mute anymore. Any ideas why?
Usually there is a “fn” (function) key that you hold to toggle whether the function keys work as normal function keys (F1 - F12) or as “media” keys (play/pause, mute, etc.). Which is the default behavior (what happens if you don’t hold the fn key down) is often configurable in the BIOS/firmware.
I think I found the setting you mean, on my bios it’s called “launch hot keys without fn key press”. When it’s disabled it’s like fn lock is on, when it’s enabled the F-keys default to being media keys as usual, and when it’s set to auto they default to media keys as usual.
On all of these options I cannot use F8 to mute. The other media keys always work as expected and F8 still works as a function key. It just doesn’t do anything when it’s supposed to mute/unmute. Screenkey shows that the F8 key isn’t registered at all when it’s acting as a media button, it only registers when it’s acting as a function button.
Just to verify that the OS is seeing the keypress and that it is not a problem with the keyboard, try running sudo libinput debug-events. You should see output similar to the following when you press the mute key:
Yes, gnome/workstation. The gsettings command you showed gives me the same output, with the exception of the first one (mic-mute) that lists the custom shortcut I added via settings as a workaround (ctrl + f8).
Libinput’s help says it puts the output of debug_events in ‘stdout’, but when I put in ‘libinput stdout’ it says ‘libinput: stdout is not installed’. What am I doing wrong?
I haven’t tried going back to an older kernel. Would I do that by booting to the grub menu and selecting one of the versions it shows you there?
Yes. Try that first and if it still doesn’t work, then go back to trying to verify that the keypresses are being registered.
As for the libinput problem, I’m not sure what is happening there, but wev should work as an alternative. Use sudo dnf install wev to install it (it is a small program [~35KB]). You can then run it just by entering wev (it doesn’t need sudo). When you press the mute button while wev is running you should see the following:
At least for testing, I’d try removing/resetting that custom shortcut. I’m not sure that the Ctrl modifier actually works with the function keys. If not, then Ctrl-F8 would have the same keycode as just F8 and that might be what is “masking” the normal mute function.
Hmm, -1 is the sort of thing that can show up in a programming error (it is a signed int with all the bits set). But if that is showing up with libinput, I think the bug must be pretty low-level (either in libinput itself or in your system’s firmware). Was libinput updated recently? You might try downgrading it just to see if that is where the problem is coming from. Try running sudo dnf downgrade libinput and rebooting your PC. You can always re-upgrade it if that isn’t where the problem is.
Another thing you might try is updating your system’s firmware. Sometimes things can get a little out-of-sync between the firmware and the Linux drivers.
Maybe it could be a defect in the keyboard. Is this a built-in keyboard or is it something you could easily swap out and test another? Trying a Live image might be another option to try to narrow down where the problem is.
P.S. I’m going to sign off for a while. Good luck.
I tried booting from the Fedora 40 Live USB I used to install Fedora on this laptop, and…It worked! The mute button behaved as expected.
After I got back to my normal install I tried downgrading libinput , but nothing changed. I tried the debug thing again and it showed the same results as before, so I’ve updated it again.
When you say I could try updating my firmware, do you mean getting drivers from the HP website? Or is there something I can do within Linux beyond the updates that it finds automatically? HP only offers Windows drivers on their site.
Sometimes the BIOS updates are available as efi executables (or more often they are efi executables embedded in self-extracting exe archives). Sometimes you can extract the efi executable that updates the firmware from the exe or iso with something like 7-zip, copy the efi to your EFI System Partition, and manually run it either from your current BIOS menu or by booting something like shellx64.efi (provided as Shell.efi in the edk2-ovmf package; copy it to $BOOT/shellx64.efi) and running it from the EFI shell command line. But all of that is quite a bit of a hassle for something that may not pay off.
This is getting a bit out of my depth, but if you want to dig into it, I think this is the file that is responsible for many of the keyboard key mappings.
You might try digging through the change history of that file and see if there is anything that might have affected your keyboard.
For example, something like thismight have broken your keyboard’s mute key if you happen to have a MICRO-STAR keyboard:
...
While at it, use "unknown" instead of "reserved" to mute keys, to avoid
the "atkbd serio0: Unknown key pressed" flood in dmesg.
...
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
- KEYBOARD_KEY_e4=reserved
+ KEYBOARD_KEY_e4=unknown
+ KEYBOARD_KEY_e2=unknown
+ KEYBOARD_KEY_f6=unknown
But that commit is probably too old to be responsible for something that recently changed on your system.
I ma facing the same issue but only on Gnome Xorg, I guess since gnome is not installed by default anymore one of the deps that make these shortcuts work is not working as expected.
Note: all other button (+/- sound/brightness) work as expected
Interestingly, nothing is logged either when pressing fn+F5 (keyboard backlight), but keyboard backlight changes.
The other fn+Fx keys work as expected (sound/brigthness increase/decrease, muting sound…)
gnome+dell latitude 5320