Karabiner-Elements complex ruleset to make using Mac OS more sane by enabling common keyboard functionality used in Linux and Windows.
Copy and paste the following URL into your browser window and Karabiner-Elements should ask to install the file:
karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/rux616/karabiner-windows-mode/master/windows_shortcuts.json
First, a note about how these shortcuts are named in Karabiner-Elements. They follow the convention
Key (Modifiers, if any) [Special notes, if any]
so they should be easy(ish) to understand. Contact me if you have improvement suggestions.
Due to Terminal and iTerm2 being terminal emulators, they should receive raw inputs and handle them themselves. To that end, almost all shortcuts no longer apply to these applications. As such, the notes will no longer specify that the specific shortcut does not apply to Terminal/iTerm2 as that is now the default state. Instead, they will note when a shortcut still applies even in the terminal emulator applications.
Input Key | Input Modifier(s) | Output Key | Output Modifier(s) | Notes |
---|---|---|---|---|
Home | Left Arrow | Command | ||
Home | Ctrl | Up Arrow | Command | |
Home | Shift | Left Arrow | Command+Shift | |
Home | Ctrl+Shift | Up Arrow | Command+Shift | |
End | Right Arrow | Command | ||
End | Ctrl | Down Arrow | Command | |
End | Shift | Right Arrow | Command+Shift | |
End | Ctrl+Shift | Down Arrow | Command+Shift | |
Left Arrow | Ctrl | Left Arrow | Option | |
Left Arrow | Ctrl+Shift | Left Arrow | Option+Shift | |
Right Arrow | Ctrl | Right Arrow | Option | |
Right Arrow | Ctrl+Shift | Right Arrow | Option+Shift |
Input Key | Input Modifier(s) | Output Key | Output Modifier(s) | Notes |
---|---|---|---|---|
Backspace | Ctrl | Backspace | Option | |
Delete | Ctrl | Delete | Option |
Input Key | Input Modifier(s) | Output Key | Output Modifier(s) | Notes |
---|---|---|---|---|
A | Ctrl | A | Command | |
B | Ctrl | B | Command | |
C | Ctrl | C | Command | |
C | Ctrl+Shift | C | Command | Only applies to Terminal/iTerm2. |
F | Ctrl | F | Command | |
I | Ctrl | I | Command | |
L | Win | (Shell Command) | Use only 1 Win+L shortcut. Invokes Login Window. Turn on Fast User Switching first. Executes /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend . Works in Terminal/iTerm2. |
|
L | Win | Power | Control+Shift | Use only 1 Win+L shortcut. Invokes Lock Screen. Note that the screen doesn't always fully lock right away. Works in Terminal/iTerm2. |
L | Alt+Ctrl | (Shell Command) | Use only 1 Alt+Ctrl+L shortcut. Invokes Login Window. Turn on Fast User Switching first. Executes /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend . Works in Terminal/iTerm2. |
|
L | Alt+Ctrl | Power | Control+Shift | Use only 1 Alt+Ctrl+L shortcut. Invokes Lock Screen. Note that the screen doesn't always fully lock right away. Works in Terminal/iTerm2. |
N | Ctrl | N | Command | |
O | Ctrl | O | Command | |
P | Ctrl | P | Command | |
R | Ctrl | R | Command | |
S | Ctrl | S | Command | |
T | Ctrl | T | Command | |
U | Ctrl | U | Command | |
V | Ctrl | V | Command | |
V | Ctrl+Shift | V | Command | Only applies to Terminal/iTerm2. |
W | Ctrl | W | Command | |
X | Ctrl | X | Command | |
Y | Ctrl | Y | Command | |
Z | Ctrl | Z | Command |
Input Key | Input Modifier(s) | Output Key | Output Modifier(s) | Notes |
---|---|---|---|---|
/ | Ctrl | / | Command | Works in Terminal/iTerm2. |
Input Key | Input Modifier(s) | Output Key | Output Modifier(s) | Notes |
---|---|---|---|---|
F1 | / | Command+Shift | ||
F3 | G | Command | ||
F4 | Alt | Q | Command | Works in Terminal/iTerm2. |
- @TechnicallyDifficult for coming up with the initial json file
- @alvaro1728 for creating the current json file and for asking the question that got this whole thing started
- @tezeko for Karabiner-Elements
- @lsissoko for Ctrl+R and Ctrl+W additions
- Karabiner-Elements (Homepage) (GitHub)