HyperIJKL
HyperIJKL = Capslock + ijkl Navigation
Install / Use
/learn @RomanYuldashev/HyperIJKLREADME
HyperIJKL
Yet another one productivity-oriented keyboard keys remapper for macOS.
It is largely based on Vonng's CapsLock Enhancement, but with a twist:
WASD-style navigation instead of Vim-style.
For those who are more accustomed to arrow keys or FPS controls ᗜωᗜ
This set up is tailored specifically to my workflow and has no aim to cover all possible use cases, though it is easily customizable to your preferences if you like the general idea.
Overview
Turn Capslock into a new modifier – Hyper *.
Do stuff without moving your hands away from the keyboard's home row:
-
Navigate and edit text quickly
-
Delete words and lines with a single key press
-
Navigate macOS: desktops, apps and tabs
-
Start and switch active apps
-
Control the mouse pointer, buttons and wheels with a keyboard
-
... and other workflow enhancements
Contents
<details> <summary>Expand</summary>- Prerequisites
- Installation
- Description
- General Key Scheme
- Key Mappings by Layer
- Making HyperIJKL Work on Login Screen
- Modifying HyperIJKL
- Advanced Installation
- About
Prerequisites
-
macOS
Installation
-
Install Karabiner-Elements:
brew install --cask karabiner-elements -
Download the configuration and allow Karabiner to load it;
-
Enable HyperIJKL in Karabiner-Elements:
Karabiner-Elements → Complex Modifications → Add rule → Enable all
-
Enjoy!
Several non-essential HyperIJKL features (marked in Description section) require additional installation steps. See Advanced Installation for instructions.
Description
General
Hold Capslock to activate Hyper * mode.
Press Capslock once to send esc.
Capslock + esc to toggle Capslock mode.
Legend
| * | ⌥ | ⇧ | ⌘ | ␣ |
|:-----:|:------:|:-----:|:-------:|-------|
| Hyper | option | shift | command | space |
Text Navigation
| button / layer | * | * ⌘ | * ⌥ | * ⌥ ⌘ |
|:--------------:|:-----------------------:|:----------------------:|:-----------------:|:----------------------------:|
| i | up | select line up | paragraph up* | select paragraph up* |
| j | left | select character left | word left | select word left |
| k | down | select line down | paragraph down* | select paragraph down* |
| l | right | select character right | word right | select word right |
| u | home | home with selection | line start | select line, cursor home |
| o | end | end with selection | line end | select line, cursor end |
| y | page up | select previous page | document start* | select up to document start* |
| h | page down | select next page | document end* | select up to document end* |
| n | delete left (backspace) | delete line left | delete word left | - |
| m | delete current line | select current line | move line down | - |
| , | delete current word* | select current word* | move line up | - |
| . | delete right (delete) | delete line right | delete word right | - |
| [ | ( | undo | - | - |
| ] | ) | redo | - | - |
| esc | capslock | - | - | - |
* additional set up required. See Advanced Installation.
OS Navigation
Navigate macOS: desktops, windows, tabs, Mission Control and Launchpad.
| button / layer | * ⇧ |
|:--------------:|:-------------------:|
| i | Mission Control |
| j | Launchpad |
| k | previous tab |
| l | next tab |
| u | previous desktop |
| o | next desktop |
| y | fullscreen |
| h | hide current window |
Mouse Navigation
Use keyboard keys to control the mouse pointer, buttons and wheels.
| button / layer | * ⇧ | * ⌥ ⇧ |
|:--------------:|:-------------------:|:-------------------:|
| i | pointer up | wheel up |
| j | pointer left | wheel left |
| k | pointer down | wheel down |
| l | pointer right | wheel right |
| u | left mouse button | left mouse button |
| o | right mouse button | right mouse button |
| h | middle mouse button | middle mouse button |
Left Hand Window Navigation
These shortcuts duplicate some shortcuts from OS Navigation. Their aim is to grant the ability to navigate windows and desktops while using a mouse with your right hand at the same time.
| button / layer | * | * ⌘ |
|:--------------:|:------------:|:----------------:|
| w | next tab | previous tab |
| s | next desktop | previous desktop |
| x | forward | - |
| z | back | - |
Applications
These shortcuts launch applications or switch to a desktop with the said application if it is already running.
* § starts multiple apps that are configured in hyperijkl.yml.
§ is placed on top of a tab on ISO (EU) keyboards,
replace it with ` to get similar results on ANSI (US) keyboards (see Modifying HyperIJKL).
| button / layer | * | * ⌘ | * ⌥ |
|:--------------:|:--------------:|:----------------:|:-----------:|
| e | Outlook | Notes | Thunderbird |
| r | IDEA | VSCode | DBeaver |
| t | iTerm | Activity Monitor | Settings |
| d | Postman | Docker | Lens |
| f | Finder | Forklift | Preview |
| g | KeepassXC | Spotify | IINA |
| c | Telegram | Rocket.Chat | Signal |
| v | Zoom | Microsoft Teams | Skype |
| b | Chrome | Firefox | Safari |
| § | start work env | - | - |
Display Selection
Press * 1 to center the mouse pointer on Display 1. Works with digits from 1 to 4.
| button / layer | * |
|:--------------:|:---------:|
| 1 | display 1 |
| 2 | display 2 |
| 3 | display 3 |
| 4 | display 4 |
Input Source (Language) Selection
| button / layer | * | * ⌘ |
|:--------------:|:--------------------------------:|:------------------------------------:|
| ; | EN | - |
| p | input source (language) 2 | - |
| / | input source (language) 3 | - |
| ␣ | previous input source (language) | next input source (language) in menu |
Press * ; to select EN input source.
* p to select the second input source.
* / to select the third input source.
* ␣ to select the previous input source (like the default ⌥ ␣ in macOS).
* ⌘ ␣ to select the next source in the input menu
(iterates through the full
