Skip to content

Instantly share code, notes, and snippets.

@odenak
Last active April 6, 2023 22:40
Show Gist options
  • Save odenak/8a01f2e6b2ac52cba13b10b6270567e7 to your computer and use it in GitHub Desktop.
Save odenak/8a01f2e6b2ac52cba13b10b6270567e7 to your computer and use it in GitHub Desktop.
Karabiner Fn + HJKL / IJKL / WASD / ESDF as arrow keys
<?xml version="1.0"?>
<root>
<item>
<name>F19 to Fn</name>
<appendix>You can use Seil to map CapsLock to F19 (keycode 80)</appendix>
<identifier>private.f19_to_fn</name>
<autogen> __KeyToKey__ KeyCode::F19, KeyCode::FN </autogen>
</item>
<item>
<name>Fn + HJKL as arrows</name>
<appendix>Vim style</appendix>
<identifier>private.fn_and_hjkl_as_arrows</name>
<autogen> __KeyToKey__ KeyCode::K, ModifierFlag::FN, KeyCode::CURSOR_UP </autogen>
<autogen> __KeyToKey__ KeyCode::H, ModifierFlag::FN, KeyCode::CURSOR_LEFT </autogen>
<autogen> __KeyToKey__ KeyCode::J, ModifierFlag::FN, KeyCode::CURSOR_DOWN </autogen>
<autogen> __KeyToKey__ KeyCode::L, ModifierFlag::FN, KeyCode::CURSOR_RIGHT </autogen>
</item>
<item>
<name>Fn + IJKL as arrows</name>
<identifier>private.fn_and_ijkl_as_arrows</name>
<autogen> __KeyToKey__ KeyCode::I, ModifierFlag::FN, KeyCode::CURSOR_UP </autogen>
<autogen> __KeyToKey__ KeyCode::J, ModifierFlag::FN, KeyCode::CURSOR_LEFT </autogen>
<autogen> __KeyToKey__ KeyCode::K, ModifierFlag::FN, KeyCode::CURSOR_DOWN </autogen>
<autogen> __KeyToKey__ KeyCode::L, ModifierFlag::FN, KeyCode::CURSOR_RIGHT </autogen>
</item>
<item>
<name>Fn + WASD as arrows</name>
<identifier>private.fn_and_wasd_as_arrows</name>
<autogen> __KeyToKey__ KeyCode::W, ModifierFlag::FN, KeyCode::CURSOR_UP </autogen>
<autogen> __KeyToKey__ KeyCode::A, ModifierFlag::FN, KeyCode::CURSOR_LEFT </autogen>
<autogen> __KeyToKey__ KeyCode::S, ModifierFlag::FN, KeyCode::CURSOR_DOWN </autogen>
<autogen> __KeyToKey__ KeyCode::D, ModifierFlag::FN, KeyCode::CURSOR_RIGHT </autogen>
</item>
<item>
<name>Fn + ESDF as arrows</name>
<identifier>private.fn_and_esdf_as_arrows</name>
<autogen> __KeyToKey__ KeyCode::E, ModifierFlag::FN, KeyCode::CURSOR_UP </autogen>
<autogen> __KeyToKey__ KeyCode::S, ModifierFlag::FN, KeyCode::CURSOR_LEFT </autogen>
<autogen> __KeyToKey__ KeyCode::D, ModifierFlag::FN, KeyCode::CURSOR_DOWN </autogen>
<autogen> __KeyToKey__ KeyCode::F, ModifierFlag::FN, KeyCode::CURSOR_RIGHT </autogen>
</item>
</root>
@odenak
Copy link
Author

odenak commented Jun 9, 2016

How to using Fn+keys as arrow keys

Currently supporting Fn + IKJL, HJKL, WASD or ESDF

Install Karabiner

brew install Caskroom/cask/karabiner

Copy the contents of this private.xml into your custom Karabiner private.xml located at

~/Library/Application Support/Karabiner/private.xml

Open Karabiner. Click Reload XML and enable the style you want
image

Optionally you can map CapsLock as Fn:

brew install Caskroom/cask/seil

Open Seil. Map CapLock to Fn (keycode 63)
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment