I’m macbook user and have programable keyboard where I use Fn + I , J , K , L instead of arrow keys. This way is more ergonomic as you don’t need to move your hand if you need use arrows.

Sometimes I work without external keyboard and it’s a pain if I type or proramming a lot and then I need to move my hand to arrows.

Fortunetely Mac OS have amazing application which is called Karabiner where you able to remap any keys or key sequence (even Fn keys sequence).

Instalation

Install Karabiner Elements

Open the config qwerty or dvorak and select import

Go to Complex Modifications tab and Add corespondent rules

So here are my layout that makes ⌥ + I , J , K , L as arrows along with some usefull stuff:

Word navigation

⌥ + u to ⌥ + ←

+ to + ⌥ + o to ⌥ + →

+ to + ⌥ + ⇧ + u to ⌥ + ⇧ + ←

+ + to + + ⌥ + ⇧ + o to ⌥ + ⇧ + →

Change ⌥ (or ⇧) + h/; to Home and End

⌥ + h to ⌘ + ←

+ to + ⌥ + ; to ⌘ + →

+ to + ⌥ + ⇧ + h to ⌘ + ⇧ + ←

+ + to + + ⌥ + ⇧ + ; to ⌘ + ⇧ + →

Change ⌥ (or ⇧) + i/j/k/l to Arrows

⌥ + ⇧ + j to ⇧ + ←

+ + to + ⌥ + ⇧ + l to ⇧ + →

+ + to + ⌥ + ⇧ + i to ⇧ + ↑

+ + to + ⌥ + ⇧ + k to ⇧ + ↓

+ + to + ⌥ + j to ←

+ to ⌥ + k to ↓

+ to ⌥ + i to ↑

+ to ⌥ + l to →

Change Fn + to copy

Fn + z to ⌘ + z

+ to + Fn + x to ⌘ + x

+ to + Fn + c to ⌘ + c

+ to + Fn + v to ⌘ + v

+ to + Fn + a to ⌘ + a

+ to + Fn + w to ⌘ + w

⌥ + 0 to Ctrl + c (for iTerm)

⌥ + 0 to ⌃ + i

PS: Here are some topics that inspired me ijkl and ergoemacs