I created a custom keyboard layout in xkb format to simulate arrow keys and put it in /usr/share/X11/xkb/symbols/custom:
xkb_symbols { name[Group1]= "English (US) with Caps mod"; key <ESC> { [ Escape, asciitilde, grave ] }; key <INS> { [ Insert, Insert, Caps_Lock ] }; key <TAB> { [ Tab, ISO_Left_Tab, Menu ] }; key <AC06> { [ h, H, Left ] }; key <AC07> { [ j, J, Down ] }; key <AC08> { [ k, K, Up ] }; key <AC09> { [ l, L, Right ] }; }; After activating it with: setxkbmap -layout custom -option lv3:caps_switch it works as expected, except for on annoyance: Although I can use Caps+{H,J,K,L} to navigate via the simulated arrow keys, it is not possible to combine it with other modifiers.
For example, the combinations Super+Caps+{H,J,K,L} or Ctrl+Shift+Caps+{H,J,K,L}) just don't work and I have to use the regular arrow keys for those.
Is there a way to get this working or is this a limitation of xkb?