I'm currently using KeyRemap4MacBook:
<autogen>__KeyToKey__ KeyCode::CONTROL_R, KeyCode::VK_MODIFIER_EXTRA1</autogen>
<autogen>__KeyToKey__ KeyCode::F11, KeyCode::VK_OPEN_URL_Safari</autogen>
<autogen>__KeyToKey__ KeyCode::I, ModifierFlag::EXTRA1, KeyCode::VK_OPEN_URL_iTunes</autogen>
__KeyToKey__ KeyCode::CONTROL_R, KeyCode::VK_MODIFIER_EXTRA1 maps the right control (which is under a thumb on my keyboard) to an extra modifier key.
If you have the Powerpack for Alfred 2, you can create a workflow like this:
Hotkeys have a short delay by default, but you can reduce it by changing the trigger behavior:
Other applications that support assigning shortcuts to opening applications:
Another option is to assign keyboard shortcuts to shell commands like
open -a TextEdit. Specifying the full path (like
open /Applications/TextEdit.app/) is not any faster.
I also used AppleScripts like this at one point:
tell application "TextEdit"
reopen -- open a new default window if there are no open windows
activate -- make the application frontmost
The scripts were blocked until the application finishes opening, so they seemed somewhat less responsive when I ran them with FastScripts. If for example there are two TextEdit windows open, the
activate command raises both of them, but
open -a only raises one of them.
You can also create Automator services like this:
They are currently not really usable though. There is a bug in 10.7 and 10.8 where the keyboard shortcuts for Automator services don't always work until you hover over the services menu from the menu bar. There is also a relatively long (maybe 0.1-1 s) delay before services are run, and the keyboard shortcuts for services don't work when an application that doesn't have a services menu is frontmost.