"This one works for me on Arch. It remaps Caps+hjkl to arrow keys, and Shift+Caps to Caps.
Put the following in ~/.Xmodmap:
! Remap caps lock to special modifier, but still allow shift+caps to toggle caps lock clear lock clear mod5 add lock = Mode_switch keycode 66 = Mode_switch Caps_Lock NoSymbol NoSymbol keycode 43 = h H Left Left keycode 44 = j J Down Down keycode 45 = k K Up Up keycode 46 = l L Right Right
Reboot or set it with xmodmap ~/.Xmodmap
If you get an error like:
X Error of failed request: BadValue (integer parameter out of range for operation)
It probably means that you need to clear something other than mod5 (whatever is currently set to Mode_switch). Check your current modifier mappings with xmodmap."