Solution 2 (probably better)
I was happy with solution 1, until I realized I couldn't use the key bindings in IntelliJ, which is a big bummer. Eventually I figured out that I could just use xmodmap and xcape to do the job, while still being able to use them in IntelliJ!
- Step 1 (mapping caps_lock + hjkl): Create a file (say "
~/.xmodmap") with the following content:
keycode 66 = Mode_switch keysym h = h H Left keysym l = l L Right keysym k = k K Up keysym j = j J Down keysym u = u U Prior keysym i = i I Home keysym o = o O End keysym p = p P Next
Feel free to skip the last 4 lines. I pasted them because they might be useful to you as well. In fact I'm really hoping to get the caps_lock enhancement working in Linux.
Step 2 (caps_lock as escape): Run
xcape -e 'Mode_switch=Escape'.
Step 3 (optional): To avoid manually applying the keybindings, put the above 2 commands into your /etc/profile.