Different keyboard layouts on different laptops bring different annoyances. But there is one key that annoys me on any keyboard: CAPS LOCK. There is literally no reason for that key to exist. And yes, I am using literally appropriately here. The only appropriate action is to get rid of it.
If you're running any systemd-enabled Linux distribution that is easy enough. My approach is as follows:
echo -e "evdev:atkbd:*\n KEYBOARD_KEY_3a=f15" \
| sudo tee /etc/udev/hwdb.d/42-nocapslock.hwdb
To apply, either reboot the system or reload with udevadm
:
sudo udevadm -d hwdb --update
sudo udevadm -d control --reload
sudo udevadm trigger
Congrats, your keyboard is now treating CapsLock
as F15
(aka the highest F
key you can assign keyboard shortcuts too in Gnome settings). Of course, you can select and other key of your liking. For that, you can take a look at SystemD GitHub for ideas. Of course, setting it to nothing (i.e. reserved
) is a valid choice as well.
PS: If you want to limit change to just your laptop (e.g. if you're propagating changes via Ansible and you don't want to touch your desktop), you can check content of /sys/class/dmi/id/modalias
for your computer IDs. Then you can limit your input appropriately. For example, limiting change to my Framework 13 laptop would look something like this:
evdev:atkbd:dmi:bvn*:bvr*:bd*:br*:svnFramework:*
KEYBOARD_KEY_3a=f20
PPS: In case Caps Lock
is not 3a
key on your computer, you might need to adjust files appropriately. To figure out which key it is, run evtest
. When you press Caps Lock
, you'll get something like this:
-------------- SYN_REPORT ------------
type 4 (EV_MSC), code 4 (MSC_SCAN), value 3a
type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Value you want is after MSC_SCAN
.
PPPS: Another way to debug keyboard is by using libinput
(part of libinput-tools package
):
sudo libinput debug-events --show-keycodes
PPPPS: And yes, you can remap other keys too. F1
is my second "favorite", close after Caps Lock
.