This issue is driving me crazy!
I have a laptop (HP Elitebook) whose keyboard has a dozen special keys to change screen brightness, speaker volume, turn keyboard backlight on or off, and so on. I commute these keys with a special fn key to type "F1" - "F12". I'm running Mint 20.3, based on Ubuntu 20.04 LTS.
Now yesterday, after a normal reboot, three of those keys ("screen brightness down", "screen brightness up", and "mic mute") started to all mute the mic, and there is no way to set screen brightness anymore.
I first looked into the keyboard layout to see if something was wrong there, but soon realized that those special keys do not belong to the layout. I can change it to whatever I like, it affects all keybindings but those special keys.
I ran sudo showkey -k
followed by Esc - F8 keys as follows (I add the key presses by hand between brackets here for clarity).
$ sudo showkey -k
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
^[keycode 1 press [esc]
keycode 1 release
keycode 125 press [F1]
keycode 25 press
keycode 25 release
keycode 125 release
^[OQkeycode 60 press [F2]
keycode 60 release
keycode 190 press [F3]
keycode 190 release
keycode 190 press [F4]
keycode 190 release
keycode 113 press [F5]
keycode 113 release
keycode 114 press [F6]
keycode 114 release
keycode 115 press [F7]
keycode 115 release
keycode 190 press [F8]
keycode 190 release
keycode 69 press [F9]
keycode 69 release
^Ccaught signal 2, cleaning up...
As you can see, the keys that emit the same code are F3
, F4
, and F8
, i.e. those that increase brightness, decrease brightness, and mute mic... What my computer understands is "mute mic", so I suppose this 190 code is the "normal" code for "mute mic"....
I can also run sudo showkey -a
, but that will only detect fn+F## key presses (i.e., the F1-F12 keys) as follows:
$ sudo showkey -a
Press any keys - Ctrl-D will terminate this program
^[ 27 0033 0x1b [esc]
^[OP 27 0033 0x1b [F1]
79 0117 0x4f
80 0120 0x50
^[OQ 27 0033 0x1b [F2]
79 0117 0x4f
81 0121 0x51
^[OR 27 0033 0x1b [F3]
79 0117 0x4f
82 0122 0x52
^[OS 27 0033 0x1b [F4]
79 0117 0x4f
83 0123 0x53
^[[15~ 27 0033 0x1b [F5]
91 0133 0x5b
49 0061 0x31
53 0065 0x35
126 0176 0x7e
^[[17~ 27 0033 0x1b [F6]
91 0133 0x5b
49 0061 0x31
55 0067 0x37
126 0176 0x7e
^[[18~ 27 0033 0x1b [F7]
91 0133 0x5b
49 0061 0x31
56 0070 0x38
126 0176 0x7e
^[[19~ 27 0033 0x1b [F8]
91 0133 0x5b
49 0061 0x31
57 0071 0x39
126 0176 0x7e
^D 4 0004 0x04 [Ctrl+D]
Does anyone have any clue what I should do here? This seems like a very low level thing to me... Is there any chance that reverting to a previous kernel (I'm running 5.13.0-30-generic) will restore my original key bindings? Any other idea of what I should do? How can I explore this a little more?