This technique creates three special keys on your mac keyboard. Initially people might start with just one special key, hyper, and later add others.
|
---: | :--- | :---
tab | tap | normal tab
tab | hold | hyper (shift–ctrl–alt–cmd) — less often used
caps lock | tap | access alfred
caps lock | hold | hyper2 (shift–ctrl–cmd) — most often used as it is in the home row
left shift | tap | access alfred snippets
left shift | hold | normal shift
Alfred and keyboardmaestro can be used easily without this, but rebinding three "helper" keys speeds access to shortcuts, applications, macros etc. Caps lock is taken over entirely, while tab and left shift retain their normal usage but are also given an additional property.
Keyboardmaestro is application–aware enough to know when you invoke it within applications, and has options to set shortcuts this way. Thus we can use two discrete levels of shortcuts: one general level, which is the same when activated from any application (hyper2+key), and a second application–specific level, which is unique to each application or set of applications (hyper+key).
You could also separate the usage of hyper2, for example, by combination of letters and numbers — combine hyper2 with letters for applications etc., combine hyper2 with numbers for specific files.
Here we also use Alfred as a shortcut "menu" for those shortcuts which we don't want to commit to memory as a hyper2+shortcut; that is, we activate alfred using caps lock (tap), the type a few letters (e.g. for screen saver, activate alfred, type scr).
Oddly enough, hyper+w, hyper+v, hyper+z, hyper+x do not work on my dvorak keyboard layout, because a dvorak v = . and w = , and z = / and these combinations are reserved for sysdiagnose and stackshot (programmer utilities within the operating system)
An additional bonus of this method is that your hands can stay on the "home row" more, and your left little finger gets more of a workout!
here's the code
<?xml version="1.0"?>
<root>
<item>
<name>F19 to F19</name>
<appendix>(F19 hold to Hyper2 (ctrl+shift+cmd) + F19 Only, send F19)</appendix>
<identifier>private.f192f19_cmdshiftctrl</identifier>
<autogen>
--KeyOverlaidModifier--
KeyCode::F19,
KeyCode::COMMAND_L,
ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::F19,
</autogen>
</item>
<item>
<name>Shift_L to Shift_L</name>
<appendix>(Shift_L hold to Shift_L + Shift_L Only, send F18)</appendix>
<identifier>private.shiftl2shiftl_f18</identifier>
<autogen>
--KeyOverlaidModifier--
KeyCode::SHIFT_L,
KeyCode::SHIFT_L,
KeyCode::F18,
</autogen>
</item>
<item>
<name>Tab to Tab</name>
<appendix>(Tab tap to Tab + Tab hold send Hyper (ctrl+shift+cmd+opt))</appendix>
<identifier>private.tab2tab_cmdoptshiftctrl</identifier>
<autogen>
--KeyOverlaidModifier--
KeyCode::TAB,
KeyCode::COMMAND_L,
ModifierFlag::SHIFT_L |
ModifierFlag::OPTION_L | ModifierFlag::CONTROL_L,
KeyCode::TAB,
</autogen>
</item>
</root>