So initially I had the following in my ~/.Xmodmap which mapped CapsLock+HJKL to left/down/up/right like in vim:

keycode 66 = Mode_switch
keysym h = h H Left
keysym j = j J Down
keysym k = k K Up
keysym l = l L Right

Everything worked just fine until I finally figured out how to get multi-language support working:

setxkbmap -option 'grp:rctrl_rshift_toggle' -layout us,fr,pt -variant ,azerty,mac

Now it's a little messed up: The CapsLock+HJKL only work in us mode, but not in fr (french) or pt (portuguese).

In fact, with fr mode, it's all reversed: HJKL act as up/down/etc and CapsLock+hjkl show the actual key values.

In pt it's different again...

I just want consistent vim-like navigation using CapsLock as the meta key throughout all languages.

(I know there's a caps:hyper option in setxkbmap and I'm happy to use that if anyone has a solution along that path.)

Note that I'm using Ubuntu 18.10 with i3 as my desktop.


setxkbmap not only alters the alphanumeric keys to the values given in the map; it also resets all other keys to the startup default.

If you have assigned values to CapsLock + HJKL keys, these settings may be lost.

For further information, look at: Configuring keyboards

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.