This question already has an answer here:

I am a programmer, I need to use arrows keys a lot, so can I remap these keys to other keys?

I have downloaded the karabiner, however, I cannot define the complex modifications rules myself, karabiner only provide default rules. Yet, I want some new rule, like arrow up can be triggered by fn + i.

marked as duplicate by Allan, Ɱark Ƭ, Glorfindel Oct 4 '18 at 8:08

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • You can also use Emacs shortcuts like CTRL⌃ + f,b,n,p (right, left, down, up respectively) – Mateusz Szlosek Nov 13 '17 at 20:44
  • Thank you for your advice, however, I prefer to use fn + j (left), fn + i (up), fn + l (right), fn + k (down). – Tianbo Nov 13 '17 at 20:52

As you are a programmer you won't have any difficulty in editing Karabiner-Elements Complex Modifications yourself.

They are to be found at: ~/.config/karabiner/karabiner.json and can even be edited or expanded with BBEdit (or TextEdit). Here's an example how I configured my own arrow key(s):

{ "description": "Up_arrow to Page_up",
  "manipulators": [
                   { "from": { "key_code": "up_arrow",
                               "modifiers": {
                                     "mandatory": ["left_control"] }
                     "to":   [ { "key_code": "page_up" } ],
                     "type": "basic"

Here's the JSON Reference Manual: https://pqrs.org/osx/karabiner/json.html

Not the answer you're looking for? Browse other questions tagged .