Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
92 lines (78 sloc) 12.5 KB
---
title: Improving my custom home row arrow keys and adding my Mac "Hyper" key
categories:
- Technology
tags:
- geekery
- mac
- productivity
status: publish
type: post
published: true
meta:
_sd_is_markdown: '1'
_edit_last: '1'
_thumbnail_id: '991'
_rawhtml_settings: '0,0,0,0'
_su_rich_snippet_type: none
_wpas_done_all: '1'
_social_broadcast_content: >-
a:1:{s:7:"twitter";a:1:{i:9396302;s:102:"New Post: Improving my custom home
row arrow keys and adding my Mac "Hyper" key ~ http://bit.ly/XHn4FX";}}
_wpbitly: 'http://bit.ly/XHn4FX'
_social_notify: '1'
_social_broadcast_meta: 'a:1:{s:7:"twitter";a:1:{i:9396302;a:0:{}}}'
_social_aggregated_ids: 'a:2:{s:7:"twitter";a:0:{}s:8:"facebook";a:0:{}}'
_social_aggregation_log: >-
a:22:{i:1363397833;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363400023;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363401990;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363406172;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363408767;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363412006;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363415885;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363423385;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363438670;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363467765;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363511363;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363598206;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363750625;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363753285;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363756287;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363760667;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363767943;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363783301;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363812325;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363855566;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1363943789;O:8:"stdClass":1:{s:6:"manual";b:0;}i:1364116914;O:8:"stdClass":1:{s:6:"manual";b:0;}}
_social_broadcasted_ids: >-
a:1:{s:7:"twitter";a:1:{i:9396302;a:1:{i:312735357080834048;a:3:{s:7:"message";s:3308:"eyJpZF9zdHIiOiIzMTI3MzUzNTcwODA4MzQwNDgiLCJlbnRpdGllcyI6eyJoYXNodGFncyI6W10sInVzZXJfbWVudGlvbnMiOltdLCJ1cmxzIjpbeyJ1cmwiOiJodHRwOlwvXC90LmNvXC94dDJVMlRlUHhmIiwiaW5kaWNlcyI6WzgyLDEwNF0sImRpc3BsYXlfdXJsIjoiYml0Lmx5XC9YSG40RlgiLCJleHBhbmRlZF91cmwiOiJodHRwOlwvXC9iaXQubHlcL1hIbjRGWCJ9XX0sImdlbyI6bnVsbCwidXNlciI6eyJpc190cmFuc2xhdG9yIjpmYWxzZSwiaWQiOiI5Mzk2MzAyIiwiZW50aXRpZXMiOnsidXJsIjp7InVybHMiOlt7InVybCI6Imh0dHA6XC9cL0V2YW5Mb3ZlbHkuY29tIiwiaW5kaWNlcyI6WzAsMjFdLCJkaXNwbGF5X3VybCI6bnVsbCwiZXhwYW5kZWRfdXJsIjpudWxsfV19LCJkZXNjcmlwdGlvbiI6eyJ1cmxzIjpbXX19LCJmcmllbmRzX2NvdW50Ijo2OTksImxvY2F0aW9uIjoiUG9ydGxhbmQsIE9SIiwicHJvZmlsZV91c2VfYmFja2dyb3VuZF9pbWFnZSI6dHJ1ZSwiZm9sbG93ZXJzX2NvdW50IjoxMTU1LCJjb250cmlidXRvcnNfZW5hYmxlZCI6ZmFsc2UsInByb2ZpbGVfdGV4dF9jb2xvciI6IjMzMzMzMyIsInRpbWVfem9uZSI6IlBhY2lmaWMgVGltZSAoVVMgJiBDYW5hZGEpIiwiaWRfc3RyIjoiOTM5NjMwMiIsImRlZmF1bHRfcHJvZmlsZSI6ZmFsc2UsInV0Y19vZmZzZXQiOi0yODgwMCwiZ2VvX2VuYWJsZWQiOnRydWUsIm5hbWUiOiJFdmFuIExvdmVseSIsImxhbmciOiJlbiIsInByb2ZpbGVfc2lkZWJhcl9ib3JkZXJfY29sb3IiOiIwMDAwMDAiLCJwcm90ZWN0ZWQiOmZhbHNlLCJwcm9maWxlX2Jhbm5lcl91cmwiOiJodHRwczpcL1wvdHdpbWcwLWEuYWthbWFpaGQubmV0XC9wcm9maWxlX2Jhbm5lcnNcLzkzOTYzMDJcLzEzNTU0MjIyNTgiLCJsaXN0ZWRfY291bnQiOjE0OSwiZm9sbG93X3JlcXVlc3Rfc2VudCI6ZmFsc2UsInByb2ZpbGVfYmFja2dyb3VuZF90aWxlIjpmYWxzZSwicHJvZmlsZV9pbWFnZV91cmwiOiJodHRwOlwvXC9hMC50d2ltZy5jb21cL3Byb2ZpbGVfaW1hZ2VzXC8yMzA4NTQxNTg5XC9panhnenN2aHl5bjkzYjBqeG02a19ub3JtYWwuanBlZyIsInByb2ZpbGVfc2lkZWJhcl9maWxsX2NvbG9yIjoiQzBERkVDIiwiY3JlYXRlZF9hdCI6IkZyaSBPY3QgMTIgMDQ6Mjk6MTMgKzAwMDAgMjAwNyIsImZvbGxvd2luZyI6ZmFsc2UsInByb2ZpbGVfYmFja2dyb3VuZF9jb2xvciI6IjAyMjMzMCIsInZlcmlmaWVkIjpmYWxzZSwiZGVmYXVsdF9wcm9maWxlX2ltYWdlIjpmYWxzZSwicHJvZmlsZV9iYWNrZ3JvdW5kX2ltYWdlX3VybF9odHRwcyI6Imh0dHBzOlwvXC90d2ltZzAtYS5ha2FtYWloZC5uZXRcL2ltYWdlc1wvdGhlbWVzXC90aGVtZTE1XC9iZy5wbmciLCJ1cmwiOiJodHRwOlwvXC9FdmFuTG92ZWx5LmNvbSIsInN0YXR1c2VzX2NvdW50Ijo3NTk0LCJmYXZvdXJpdGVzX2NvdW50Ijo3NjIsInByb2ZpbGVfYmFja2dyb3VuZF9pbWFnZV91cmwiOiJodHRwOlwvXC9hMC50d2ltZy5jb21cL2ltYWdlc1wvdGhlbWVzXC90aGVtZTE1XC9iZy5wbmciLCJwcm9maWxlX2ltYWdlX3VybF9odHRwcyI6Imh0dHBzOlwvXC90d2ltZzAtYS5ha2FtYWloZC5uZXRcL3Byb2ZpbGVfaW1hZ2VzXC8yMzA4NTQxNTg5XC9panhnenN2aHl5bjkzYjBqeG02a19ub3JtYWwuanBlZyIsInNjcmVlbl9uYW1lIjoiRXZhbkxvdmVseSIsImRlc2NyaXB0aW9uIjoiV2ViIERlc2lnbmVyLCBGcm9udCBFbmQgI0RydXBhbCBEZXZlbG9wZXIsIFdyaXRlciBvZiBmaW5lIENTUywgQXNodGFuZ2EgI1lvZ2EgVGVhY2hlciwgUGhvdG9ncmFwaGVyLCBEaWdpdGFsIE5vbWFkLCAmIEFsbCBSb3VuZCBOaWNlIEd1eS4gIiwibm90aWZpY2F0aW9ucyI6ZmFsc2UsInByb2ZpbGVfbGlua19jb2xvciI6IjAwODRCNCJ9LCJwbGFjZSI6bnVsbCwiY29vcmRpbmF0ZXMiOm51bGwsInJldHdlZXRfY291bnQiOjAsImluX3JlcGx5X3RvX3VzZXJfaWQiOm51bGwsInJldHdlZXRlZCI6ZmFsc2UsImluX3JlcGx5X3RvX3NjcmVlbl9uYW1lIjpudWxsLCJpbl9yZXBseV90b19zdGF0dXNfaWRfc3RyIjpudWxsLCJpbl9yZXBseV90b19zdGF0dXNfaWQiOm51bGwsInRleHQiOiJOZXcgUG9zdDogSW1wcm92aW5nIG15IGN1c3RvbSBob21lIHJvdyBhcnJvdyBrZXlzIGFuZCBhZGRpbmcgbXkgTWFjIFwiSHlwZXJcIiBrZXkgfiBodHRwOlwvXC90LmNvXC94dDJVMlRlUHhmIiwiaW5fcmVwbHlfdG9fdXNlcl9pZF9zdHIiOm51bGwsImNvbnRyaWJ1dG9ycyI6bnVsbCwidHJ1bmNhdGVkIjpmYWxzZSwic291cmNlIjoiPGEgaHJlZj1cImh0dHBzOlwvXC9zb3ByZXN0by5tYWlsY2hpbXAuY29tXCIgcmVsPVwibm9mb2xsb3dcIj5Tb2NpYWwgUHJveHkgYnkgTWFpbGNoaW1wPFwvYT4iLCJjcmVhdGVkX2F0IjoiU2F0IE1hciAxNiAwMToyMTozNCArMDAwMCAyMDEzIiwiZmF2b3JpdGVkIjpmYWxzZSwiaWQiOiIzMTI3MzUzNTcwODA4MzQwNDgiLCJwb3NzaWJseV9zZW5zaXRpdmUiOmZhbHNlfQ==";s:4:"urls";a:3:{i:0;s:84:"http://www.evanlovely.com/technology/improving-custom-home-row-arrow-keys-mac-hyper/";i:1;s:20:"http://bit.ly/XHn4FX";i:2;s:32:"http://www.evanlovely.com/?p=983";}s:7:"account";O:8:"stdClass":1:{s:4:"user";O:8:"stdClass":39:{s:2:"id";s:7:"9396302";s:6:"id_str";s:7:"9396302";s:4:"name";s:11:"Evan
Lovely";s:11:"screen_name";s:10:"EvanLovely";s:8:"location";s:12:"Portland,
OR";s:3:"url";s:21:"http://EvanLovely.com";s:11:"description";s:142:"Web
Designer, Front End #Drupal Developer, Writer of fine CSS, Ashtanga #Yoga
Teacher, Photographer, Digital Nomad, & All Round Nice Guy.
";s:9:"protected";s:1:"0";s:15:"followers_count";s:4:"1132";s:13:"friends_count";s:3:"688";s:12:"listed_count";s:3:"147";s:10:"created_at";s:30:"Fri
Oct 12 04:29:13 +0000
2007";s:16:"favourites_count";s:3:"753";s:10:"utc_offset";s:6:"-28800";s:9:"time_zone";s:30:"Pacific
Time (US &
Canada)";s:11:"geo_enabled";s:1:"1";s:8:"verified";s:1:"0";s:14:"statuses_count";s:4:"7464";s:4:"lang";s:2:"en";s:6:"status";a:15:{s:10:"created_at";s:30:"Thu
Jan 31 23:24:08 +0000
2013";s:2:"id";s:18:"297123127979302912";s:6:"id_str";s:18:"297123127979302912";s:4:"text";s:45:"@maxticket
Sunday early afternoon sound good?";s:6:"source";s:16:"Tweetbot for
Mac";s:9:"truncated";s:1:"0";s:21:"in_reply_to_status_id";s:18:"297122692040118272";s:25:"in_reply_to_status_id_str";s:18:"297122692040118272";s:19:"in_reply_to_user_id";s:8:"19849443";s:23:"in_reply_to_user_id_str";s:8:"19849443";s:23:"in_reply_to_screen_name";s:9:"maxticket";s:5:"place";a:8:{s:2:"id";s:16:"ac88a4f17a51c7fc";s:3:"url";s:53:"http://api.twitter.com/1/geo/id/ac88a4f17a51c7fc.json";s:10:"place_type";s:4:"city";s:4:"name";s:8:"Portland";s:9:"full_name";s:12:"Portland,
OR";s:12:"country_code";s:2:"US";s:7:"country";s:13:"United
States";s:12:"bounding_box";a:2:{s:4:"type";s:7:"Polygon";s:11:"coordinates";a:1:{i:0;a:4:{i:0;a:2:{i:0;s:11:"-122.836995";i:1;s:9:"45.431985";}i:1;a:2:{i:0;s:11:"-122.471849";i:1;s:9:"45.431985";}i:2;a:2:{i:0;s:11:"-122.471849";i:1;s:9:"45.654424";}i:3;a:2:{i:0;s:11:"-122.836995";i:1;s:9:"45.654424";}}}}}s:13:"retweet_count";s:1:"0";s:9:"favorited";s:1:"0";s:9:"retweeted";s:1:"0";}s:20:"contributors_enabled";s:1:"0";s:13:"is_translator";s:1:"0";s:24:"profile_background_color";s:6:"022330";s:28:"profile_background_image_url";s:48:"http://a0.twimg.com/images/themes/theme15/bg.png";s:34:"profile_background_image_url_https";s:50:"https://si0.twimg.com/images/themes/theme15/bg.png";s:23:"profile_background_tile";s:1:"0";s:17:"profile_image_url";s:78:"http://a0.twimg.com/profile_images/2308541589/ijxgzsvhyyn93b0jxm6k_normal.jpeg";s:23:"profile_image_url_https";s:80:"https://si0.twimg.com/profile_images/2308541589/ijxgzsvhyyn93b0jxm6k_normal.jpeg";s:18:"profile_banner_url";s:56:"https://si0.twimg.com/profile_banners/9396302/1355422258";s:18:"profile_link_color";s:6:"0084B4";s:28:"profile_sidebar_border_color";s:6:"000000";s:26:"profile_sidebar_fill_color";s:6:"C0DFEC";s:18:"profile_text_color";s:6:"333333";s:28:"profile_use_background_image";s:1:"1";s:15:"default_profile";s:1:"0";s:21:"default_profile_image";s:1:"0";s:9:"following";s:1:"0";s:19:"follow_request_sent";s:1:"0";s:13:"notifications";s:1:"0";}}}}}}
date: 2013-03-15T00:00:00.000Z
redirect_from:
- /blog/technology/improving-custom-home-row-arrow-keys-mac-hyper/
- /technology/improving-custom-home-row-arrow-keys-mac-hyper/
---
<p>I've had it set up so I can <a href="http://www.evanlovely.com/technology/setting-up-arrow-keys-on-your-home-row/">use my arrow keys on my home row</a> by holding Caps Lock and using <a href="http://pqrs.org/macosx/keyremap4macbook/index.html.en">KeyRemap4MacBook</a> for a while now, and <strong>love</strong> it, however there were a few things I wanted to improve. In order for it to work, it was telling the system that holding caps lock is like holding control, then you hit I to go up, J to go right, etc. The problem was that I couldn't use keyboard shortcuts that included arrow keys <em>and</em> control. So this setup maps the Caps Lock over to the right control (not the left one), so that the left control will be used like I'd like. Sweet! I even made a Vim version for the <a href="http://ombuweb.com">OMBUers</a> and any others on the Vim camp. And there's a few awesome extras I've got: a better system wide keyboard shortcut modifier, and an easier cancel. Read on!</p>
<h1>Functionality</h1>
<ul>
<li>Holding Caps Lock + keys on your home = arrow keys — then pressing some keys on your home row will result in arrow keys being pressed. Super handy. We like keyboard shortcuts because we don't have to take our hands off the home row of the keyboard to head to the mouse; a similar loss of momentum happens when you leave for the arrow keys &amp; come back. I find it to be a huge productivity booster. You have two arrow layout options:
<ol>
<li>Diamond Keys Style - j/k/l/i moves your cursor left/down/right/up. Same feeling as the real arrow keys. My preference.</li>
<li>Vim Keys - h/j/l/k moves your cursor left/down/right/up. For Vim users; they love it.</li>
</ol></li>
<li>Tapping Caps Lock = Escape — Usually tab is 'ok', where escape is 'cancel'. This puts them much closer together. Only applies to the left shift.</li>
<li>FN — Hyper Key, aka holding all four modifier keys (ctrl, shift, cmd, &amp; option). Allows easy assigning of global keyboard shortcuts as this combo is rarely used. Hat tip to <a href="http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/">Brett Terpstra for the Hyper concept</a>. He used the Caps Lock though. I like FN better.</li>
</ul>
<h1>How to Set It Up</h1>
<ul>
<li>Go to System Preferences > Keyboard > Modifier Keys. Set Caps Lock to No Action. </li>
<li>Install <a href="http://pqrs.org/macosx/keyremap4macbook/pckeyboardhack.html.en">PCKeyboardHack</a>. Set it to map the Caps Lock Key to key code 62 (right control key). Now holding Caps Lock is like holding the right control.</li>
<li>Install <a href="http://pqrs.org/macosx/keyremap4macbook/index.html.en">KeyRemap4MacBook</a>.</li>
<li>Bring in the custom settings I made one of two ways.
<ol>
<li>Clone <a href="https://github.com/EvanLovely/KeyRemap4MacBook">this repo</a> in <code>~/Library/Application Support\</code> so that way you should see this path to the KeyRemap4MacBook settings file: <code>~/Library/Application Support/KeyRemap4MacBook/private.xml</code> </li>
<li>Go to the KeyRemap4MacBook settings under “Misc &amp; Uninstall” and click “Open private.xml” then paste the contents of <a href="https://raw.github.com/EvanLovely/KeyRemap4MacBook/master/private.xml">my private.xml</a> in there. </li>
</ol></li>
<li>Reload the XML on the “Change Key” tab.</li>
<li>Enable the top rules that just appeared; picking between Diamond Style or Vim Style.</li>
</ul>
<hr />
<h2>Optionally get your Caps Lock back</h2>
<p>Search the KeyRemap4MacBook rules for “simultaneous key presses caps lock” and enable the rule that says if you press both shifts at the same time, you gets Caps Lock. Makes sense to me!</p>
<h2>Why I moved Hyper off Caps Lock to FN</h2>
<p>I at first tried using Brett’s Hyper style to use my arrows, but then I couldn't do modifier keys with arrow keys like shift and right to select text. Deal killer for me (sure he has a way around it). So I’m using the absent right control key.</p>
You can’t perform that action at this time.