I’ve recently switched to a very minimalist Arch Linux setup using BSPWM (from Windows) and it’s been quite the learning experience (I might write another blog post about this when I get the time to reflect on things). So far, I’be been enjoying it a lot!
For the past few months I’ve been using vim (even when I was on Windows, through WSL), however I never remapped my Caps Lock key to act as an Esc as so many people advised me to do. The other day I decided to give it a shot, here I’m just going to document how I did the remapping (for my own future reference).
I did the remapping using
setxkbmap. For the available options with “caps”, I looked here:
grep "caps" /usr/share/X11/xkb/rules/xorg.lst
Which gave me the following options:
[omitted for brevity] ... caps:swapescape Swap Esc and Caps Lock caps:escape Make Caps Lock an additional Esc caps:escape_shifted_capslock Make Caps Lock an additional Esc, but Shift + Caps Lock is the regular Caps Lock caps:backspace Make Caps Lock an additional Backspace caps:super Make Caps Lock an additional Super caps:hyper Make Caps Lock an additional Hyper caps:menu Make Caps Lock an additional Menu key caps:numlock Make Caps Lock an additional Num Lock caps:ctrl_modifier Make Caps Lock an additional Ctrl caps:none Caps Lock is disabled compose:caps Caps Lock compose:caps-altgr 3rd level of Caps Lock shift:breaks_caps Shift cancels Caps Lock shift:both_capslock Both Shift together enable Caps Lock shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it ... [omitted for brevity]
The first option I was interested in was
caps:escape, because I would like my Caps Lock key to act as an additonal Esc rather than switch them around.
The second option I was looking at was
shift:both_capslock, because I’m one of those people that still uses Caps Lock and this option give me the ability to toggle it by pressing down on both shift keys, perfect!
xinit instead of any login managers, so all I had to do was modify my
.xinitrc to include the remapping just before I execute my window manager (BSPWM, in my case):
# Make Caps Lock an additional Esc and both Shift Keys toggle Caps Lock setxkbmap -option caps:escape,shift:both_capslock & # Start the window manager (BSPWM) exec bspwm
Now, I can press both shift keys to toggle Caps Lock and Caps Lock acts as an additional Esc (much better for vim ergonomics).
You can check my dotfiles, if you’re interested in more details on my setup.