- Access control and escape on the home row
- Navigate (up/down/left/right) via the home row
- Navigate to previous/next word via the home row
- Arrange windows via the home row
- Enable other commonly-used actions on or near the home row
- Format text as Markdown
- Launch commonly-used apps via global keyboard shortcuts
- And more...
By repurposing the anachronistic caps lock key, we can make control and escape accessible via the home row.
- Tap caps lock for escape
- Hold caps lock for control
📣 Shout-out to @arbelt and @jasoncodes for the implementation. ⚡️🍻🌟
To activate, push the s and d keys simultaneously and hold them down. Now you're in (S)uper (D)uper Mode. It's like a secret keyboard inside your keyboard. (Whoa.) It's optimized for keeping you on the home row, or very close to it. Now you can:
- Use h / j / k / l for left/down/up/right respectively
- Use a for option (AKA alt)
- Use f for command
- Use space for shift
- Use a + j / k for page down / page up
- Use i / o to move to the previous/next tab
- Use u / p to go to the first/last tab (in most apps)
- Use a + h / l to move to previous/next word (in most apps)
📣 Shout-out to Karabiner's Simultaneous vi Mode for providing the inspiration for (S)uper (D)uper Mode. ⌨:neckbeard:✨
Quickly arrange and resize windows in common configurations, using keyboard shortcuts that are on or near the home row.
Use control + s to turn on Window Layout Mode. Then, use any shortcut below to make windows do your bidding. For example, to send the window left, hit control + s, and then hit h.
- Use h to send window left (left two thirds of screen)
- Use j to send window down (bottom half of screen)
- Use k to send window up (top half of screen)
- Use l to send window right (right third of screen)
- Use shift + h to send window to left 40% of screen
- Use shift + l to send window to right 60% of screen
- Use i to send window to upper left quarter of screen
- Use o to send window to upper right quarter of screen
- Use , to send window to lower left quarter of screen
- Use . to send window to lower right quarter of screen
- Use space to send window to center of screen
- Use enter to resize window to fill the screen
- Use n to send window to the next monitor
- Use ← to send window to the space on the left (if there is one)
- Use → to send window to the space on the right (if there is one)
- Use shift + ← to send window to the monitor on the left (if there is one)
- Use shift + → to send window to the monitor on the right (if there is one)
- Use control + s to exit Window Layout Mode without moving any windows
Perform common Markdown-formatting tasks anywhere that you're editing text (e.g., in a GitHub comment, in your editor, in your email client).
Use control + m to turn on Markdown Mode. Then, use any shortcut below to perform an action. For example, to format the selected text as bold in Markdown, hit control + m, and then b.
-
Use b to wrap the currently-selected text in double asterisks ("B" for "Bold")
Example:
**selection**
-
Use c to wrap the currently-selected text in backticks ("C" for "Code")
Example:
`selection`
-
Use i to wrap the currently-selected text in single asterisks ("I" for "Italic")
Example:
*selection*
-
Use s to wrap the currently-selected text in double tildes ("S" for "Strikethrough")
Example:
~~selection~~
-
Use l to convert the currently-selected text to an inline link, using a URL from the clipboard ("L" for "Link")
Example:
[selection](clipboard)
-
Use control + m to exit Markdown Mode without performing any actions
macOS doesn't have a native hyper key. But thanks to Karabiner-Elements, we can create our own. In this setup, we'll use the right option key as our hyper key.
With a new modifier key defined, we open a whole world of possibilities. I find it especially useful for providing global shortcuts for launching apps.
Hyper Mode ships with the default keybindings below, but you'll likely want to personalize this setup. See hammerspoon/hyper-apps-defaults.lua
for instructions on configuring shortcuts to launch your most commonly-used apps.
- hyper + a to open iTunes ("A" for "Apple Music")
- hyper + b to open Firefox ("B" for "Browser")
- hyper + c to open Calendar ("C" for "Calendar")
- hyper + d to open Chrome ("D" for "Dev Browser")
- hyper + f to open Finder ("F" for "Finder")
- hyper + m to open Messages ("M" for "Messages")
- hyper + n to open Notes ("N" for "Notes")
- hyper + s to open Sublime ("S" for "Sublime")
- hyper + t to open iTerm2 ("T" for "Terminal")
- hyper + v to open Visual Studio Code ("V" for "VS Code")
- Use control + - (dash) to split iTerm2 panes horizontally
- Use control + | (pipe) split iTerm2 panes vertically
- Use control + h / j / k / l to move left/down/up/right by one pane in iTerm2
- Use control + f toggle full-pane mode for split iTerm2 panes
- Use control + u to delete to the start of the line
- Use control + ; to delete to the end of the line
- Use option + h / l to delete the previous/next word
This setup is honed and tested with the following dependencies.
- macOS Sierra, 10.12
- Karabiner-Elements 0.91.7
- Hammerspoon 0.9.52
- Hammerspoon undocumented spaces extention
-
Grab the bits
git clone https://github.com/jasonrudolph/keyboard.git ~/.keyboard cd ~/.keyboard script/setup
-
Enable accessibility to allow Hammerspoon to do its thing [screenshot]