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.