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
sudo udevadm -d hwdb --update sudo udevadm -d control --reload sudo udevadm trigger
Congrats, your keyboard is now treating
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:
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
PPPS: Another way to debug keyboard is by using
libinput (part of
sudo libinput debug-events --show-keycodes
PPPPS: And yes, you can remap other keys too.
F1 is my second "favorite", close after