GitHub
Expand/Collapse All

Modifier Keys

Post left_ctrl when return_or_enter is hold.
Post escape if caps is pressed alone, left_ctrl otherwise
Map left_ctrl to caps_lock.
Change caps_lock key to command+control+option+shift. (Post escape key when pressed alone)
Change caps_lock key to command+control+option+shift. (Use shift+caps_lock as caps_lock)
Change caps_lock to control if pressed with other keys, to escape if pressed alone.
Post escape if left_control is pressed alone.
Post return_or_enter if right_control is pressed alone.
Change left_shift to caps_lock if pressed alone
Change right_shift to caps_lock if pressed alone
Toggle caps_lock by pressing left_shift + right_shift at the same time
Post caps_lock if escape is pressed alone.
Press left_shift alone produces F12
Press left_control alone produces F13
Press left_command alone produces F14
Press left_option alone produces F15
Press right_control alone produces F16
Press right_command alone produces F17
Press right_alt alone produces F18
Change shift + delete to forward delete
Change Command_R + Command_L to escape only if pressed at the same time.
Post Escape if Command_R is pressed alone.
Change left_control + letter to left_command + letter
Change fn + letter to left_control + letter

Emulation Modes

Change fn + I/J/K/L to Arrow Keys
Vi Mode [S as Trigger Key]
Vi Mode [D as Trigger Key] (recommended)

Moving Around

Trigger Key + H/J/K/L Arrow Keys
Trigger Key + F Fn
Trigger Key + F + H/J/K/L Home / Page Down / Page Up / End
Trigger Key + 0/4 Go to Start/End of the Line

Selecting Text (Visual Mode)

Trigger Key + V + H/J/K/L Select Text
Trigger Key + V + 0/4 Select Until Start/End of the Line
Trigger Key + V + B/W Select Until Start/End of the Word
Trigger Key + V + Open/Close Bracket Select Until Start/End of the Paragraph
  • You can use either S or D as the trigger key
  • Currently, S doesn’t work very well when typing fast
  • Since dh-, dj-, dk- and dl- words are rare, using D instead of S will produce less trigger errors
Change Control+h/j/k/l to Arrows
Change Left Option+h/j/k/l to Arrows
Emacs key bindings [control+keys] (rev 6)
Emacs key bindings [option+keys] (rev 4)

Key Bindings (control+keys)

control+d forward delete
control+h delete
control+i tab
control+[ escape
control+m return
control+bfnp arrow keys
control+v page down

Key Bindings (option+keys)

option+v page up
option+bf option+arrow keys
option+d option+forward delete
Numeric Keypad Mode [Tab as trigger key]
Numeric Keypad Mode Trigger + right_option to keypad_period
Numeric Keypad Mode Trigger + right_control to keypad_period

Numeric Keypad Mode

Trigger Key + 7 / 8 / 9 / 0 Backspace / = / Slash(/) / *
Trigger Key + U / I / O / P 7 / 8 / 9 / -
Trigger Key + J / K / L / ; 4 / 5 / 6 / +
Trigger Key + M / , / . / Slash(/) 1 / 2 / 3 / Enter
Trigger Key + Space 0

Optional Numeric Period (.) mappings

Trigger Key + right_option .
Trigger Key + right_control .
  • Hold down the trigger key (Tab) then press one of the keys to use a numeric key
  • Press and releasing tab acts as a normal tab key
  • Optionally map right_option or right_control (in case you remapped your right_option) to numeric_period
HHKB Arrow Mode (fn + semicolon/slash/open_bracket/quote to arrow keys, etc)
HHKB Media Key Mode (fn + asdf to Volume down/up/mute, eject)
Map fn + i, o, p to F13, F14, F15.
Map fn + number keys to their corresponding function keys. Only works if 'Use all F1, F2, etc. keys as standard function keys' is set under Function Keys.
Pok3r Volume Controls (fn + sdf to Volume down/up/mute)
Pok3r Media Keys (fn + qwe to Previous Title/Play-Pause/Next)
Pok3r Escape key (grave_accent_and_tilde as Escape and fn + grave_accent_and_tilde as grave_accent_and_tilde)
Home key to the beginning of the line (Control + a)
End key to the end of the line (Control + e)
Home key to the beginning of the sentence (Command + Left). Doesnt work in terminal
End key to the end of the sentence (Command + Right). Doesnt work in terminal
PC-Style Home/End
Option(Alt)+Tab as Switch Application (Command+Tab)
PC-Style Control+Up/Down/Left/Right
PC-Style Copy/Paste/Cut
PC-Style Undo
PC-Style Redo
PC-Style Select-All
PC-Style Save
PC-Style New
PC-Style Reload(F5, Ctrl+R)
PC-Style New Tab
PC-Style Find
PC-Style Open
PC-Style Bold/Italic/Underline(Ctrl+B/I/U)
PC-Style Close Window
PC-Style Lock Screen
PC-Style Screenshot(PrtSc for whole, Shift+PrtSc to select)
PC-Style Quit Application(Alt+F4 to Command+Q)
Control+Shift+Esc Opens Activity Monitor
PC-Style Browser open location (Ctrl+L)
PC-Style Back/Forward (Alt+Left Arrow/Alt+Right Arrow)
PC-Style Browser Zoom (Ctrl+Plus/Minus/0)
Mu Mode Semicolon(;)+J/K/L/I/U/M/O/. to Arrow Left/Down/Right/Up/PageUp/PageDown/Home/End
SpaceFN: Space enables SpaceFN mode (see: https://geekhack.org/index.php?topic=51069.0)
SpaceFN: Space+b to Space (hold to repeat)
SpaceFN: Space+[ijkl] to Up, Left, Down, Right
SpaceFN: Space+[hjkl] to Left, Down, Up, Right
SpaceFN: Space+u to Home, Space+o to End
SpaceFN: Space+h to Page Up, Space+n to Page Down
SpaceFN: Space+p to Print Screen, Space+Open Bracket ([) to Scroll Lock, Space+Close Bracket (]) to Pause, Space+Backspace to Forward Delete, Space+Backslash (\) to Insert
SpaceFN: Backquote (`) to Escape, Space+[1-9] to F[1-9], Space+0 to F10, Space+Hyphen (-) to F11, Space+Equal Sign (=) to F12, Space+e to Escape, Space+m to Backtick (`), Space+Comma to Tilde (~), Space+Slash (/) to Menu
TouchCursor Mode [Space as Trigger Key]

Moving Around

Trigger Key + J/K/I/L Arrow Keys
Trigger Key + U/O/H/N Home / End / Page Up / Page Down
Trigger Key + Y/P/M Insert / Backspace / (Forward) Delete

Application Specific

Swap option and command in Autodesk Maya
Swap command and control
Tmux Prefix Mode [Tab as trigger key]
Tmux Prefix Mode [Fn as trigger key]
Tmux Prefix Mode [caps_lock as trigger key]
Tmux Prefix Mode [escape as trigger key]
Tmux Prefix Mode [ ctrl+B as prefix ]
Tmux Prefix Mode [ ctrl+A as prefix ]
Tmux Prefix Mode [ ctrl+Space as prefix ]

Tmux Prefix Mode

Tmux is a terminal multiplexer that lets you switch easily between several programs in one terminal, detach them, etc. It's very useful but most key bindings require a prefix key combination (default: Ctrl+B). This mode allows you to use a simple [ Modifier + Key ] to trigger a [ Ctrl+B ] [ Key ] sequence.

How to use

  • Choose a trigger key to be used
  • Chooose a prefix to replace (based on your tmux configuration, default is Ctrl+B)
  • Now trigger a tmux command simply using Trigger + Key (eg: Fn+c -> Ctrl+b, c to create a new window)

Note: Keys that are remapped include: a-z, 0-9, comma,slash,period,semicolon,quote,open_bracket,close_bracket

⌘ + ← | Move cursor to line begin
⌘ + → | Move cursor to line end
⌥ + ← | Move cursor one word behind
⌥ + → | Move cursor one word ahead
⌥ + ⌫ | Delete one word
⌥ + ⌦ | Delete one word ahead
⌘ + ⌫ | Delete to line begin
⌘ + ⌦ | Delete to line end
left control + left shift + ` (backtick) - launches a new iTerm2 window with the default profile
left control + left shift + 1 - launches a new Google Chrome window
  • This keybinding is set up to launch new windows of running applications, rather than launching applications themselves. (Launching a running application only brings it to the foreground). This is meant to mimic the launcher keybindings available in Ubuntu.
  • Xcode Visual Studio style (Run, Stop, Build, Step, Breakpoint)
    Remap ESC to Option-ESC in Safari only

    Alternative Keyboard Layouts

    Change caps_lock key to slash.
    Change caps_lock key to backslash.
    Remap keys to use Dvorak keyboard layout
    Remap keys to use Dvorak-CmdQwerty keyboard layout
    Remap keys to use Colemak keyboard layout

    International (Language Specific)

    コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな)
    英数・かなキーを他のキーと組み合わせて押したときに、コマンドキーを送信する。
    コマンドキーをオプションキーに置き換える。
    バッククオートとチルダを割り当てる。
    PC-Style German Alt Gr (Backslash, @, pipe, tilde, brackets)
    Exchange £ shift-3 and # option-3

    Key Specific

    Exchange numbers and symbols (1234567890 and !@#$%^&*())
    Exchange semicolon and colon
    Change alt+spacebar to spacebar
    Change spacebar to left_shift if pressed with other keys (Post spacebar when pressed alone)
    Exchange command + arrow keys with option + arrow keys

    OS Functionality

    Launch apps by right shift+letters.
    • right shift + a: Activity Monitor
    • right shift + d: Dictionary
    • right shift + e: Text Edit
    • right shift + f: Finder
    • right shift + s: Safari
    • right shift + t: Terminal
    Use right_command+;/' to cycle through running applications (like command+tab).
    Use right_command+h/l to switch tabs in an application.
    Use right_command+j/k to switch windows of the foreground application .
    Disable left_command+(tab/shift+tab) (to retrain reflexes using the other manipulators).

    Personal Settings

    Change left_control+1/2/v/q to home/end/page_down/page_up (rev 2)
    Change option+hyphen, option+equal to ----------,==========
    Configurations for apps
    Extra emacs key bindings (rev 4)
    Change tab to command+`
    Launcher Mode v3 (rev 2)

    Launcher Mode v3

    • Change spacebar to left_shift.
    • Enter Launcher Mode by tapping the right_command key while left_shift is pressed.
      (Leave Launcher Mode when the left_shift is released.)
    • Launcher Mode v3 keys
      • tab: Mission Control
      • q: Dictionary
      • f: Finder
      • a: Activity Monitor
      • j: Alfred 3
      • k: Emacs
      • l: iTerm2
      • c: Google Chrome
      • etc.
    Disable command + Q in Safari
    Use right_command + J/K to switch between tabs in applications
    Change right_option to command + option + shift
    • right_option + v → Paste and Match Style
    • Click a link while pressing right_option → Open link in a new window
    Change right_option to shift+control+f13
    Change application to shift+control+f13

    Miscellaneous

    Block left-handed command + left-handed key
    Block left-handed shift + left-handed key
    Block left-handed option + left-handed key
    Block left-handed control + left-handed key
    Block right-handed command + right-handed key
    Block right-handed shift + right-handed key
    Block right-handed option + right-handed key
    Block right-handed control + right-handed key
    Exchange hyphen and underscore
    Exchange underscore and backslash

    Other examples