Key bindings
Key bindings are set in the config file with keybind lines, in the same format Ghostty uses. Each line binds one key to one action:
keybind = cmd+shift+t=new_tab
keybind = ctrl+shift+h=text:echo hello\r
keybind = cmd+k=unbind
keybind = global:ctrl+grave_accent=toggle_quick_terminal
The menus and the command palette show the first key bound to each action.
Writing a key
A key is written as zero or more modifiers followed by the key itself, joined with +. The modifiers are cmd, ctrl, alt and shift.
The key is either the character it types without modifiers, such as t, [ or =, or one of these names:
| Keys | Names |
|---|---|
| Editing | enter or return, tab, space, escape, backspace, delete |
| Navigation | up, down, left, right, home, end, page_up, page_down |
| Function keys | f1 to f12 |
| Punctuation | plus, minus, equal, comma, period, slash, backslash, semicolon, apostrophe, left_bracket, right_bracket, grave_accent |
Removing a binding
keybind = cmd+k=unbindremoves the binding for that key. The key is then passed to the program running in the pane.keybind = clearremoves every binding, including the defaults.
Global keys
A key that starts with global: works in any app, not only when Mightty is in front. Global keys don't need Accessibility permission from macOS.
Every action
| Action | Key | What it does |
|---|---|---|
new_window | ⌘N | A new window, its shell where the current one is |
new_tab | ⌘T | A new tab, its shell where the current one is |
new_split:right | ⌘D | Splits the pane, the new one to the right |
new_split:down | ⇧⌘D | Splits the pane, the new one below |
close_surface | ⌘W | Closes the pane, or its tab or window with its last pane |
close_window | ⇧⌘W | Closes the window |
minimize_window | ⌘M | Minimizes the window |
quit | ⌘Q | Quits Mightty |
copy_to_clipboard | ⌘C | Copies the selection |
paste_from_clipboard | ⌘V | Pastes, asking first when it could run commands |
start_search | ⌘F | Finds text in the pane and its history |
navigate_search:next | ⌘G | The next match (or previous) |
goto_split:next | ⌘] | The next pane (or previous) |
goto_split:left | ⌥⌘← | The pane to the left (or right, up, down) |
resize_split:left,10 | ⌃⌘← | Moves the nearest divider, in points |
toggle_split_zoom | ⇧⌘↩ | The pane alone fills the window, or not |
equalize_splits | ⌃⌘= | Shares the window evenly between its panes |
goto_tab:1 | ⌘1 | Tab N, from 1 |
previous_tab | ⇧⌘[ | The tab to the left |
next_tab | ⇧⌘] | The tab to the right |
last_tab | ⌘9 | The last tab |
move_tab_to_new_window | The tab out into a window of its own | |
close_other_tabs | Closes the window's other tabs | |
undo | ⌘Z | Brings back the last tab, pane or window closed, still running, within undo-timeout |
reopen_closed | ⇧⌘T | Reopens the last tab, pane or window closed, running still or with new shells |
prompt_surface_title | A title for the pane, shown in its tab and window | |
jump_to_attention | ⇧⌘A | The pane that has waited longest for you |
toggle_command_palette | ⇧⌘P | Every action by name, filtered as you type |
toggle_quick_terminal | A terminal that drops from the top of the screen, over any app | |
toggle_secure_input | Secure Keyboard Entry: other apps can't read what you type | |
open_settings | ⌘, | The settings, in a window of their own |
open_config | The config file in your $EDITOR, in a new tab | |
reload_config | ⇧⌘, | Applies the config file now |
increase_font_size:1 | ⌘= | A bigger font in the pane, by points (or smaller) |
reset_font_size | ⌘0 | The pane's font back to font-size |
clear_screen | ⌘K | Clears history and the screen above the prompt |
scroll_to_top | ⌘↖ | To the top of the history |
scroll_to_bottom | ⌘↘ | Back to the prompt |
scroll_page_up | ⌘⇞ | A page up the history |
scroll_page_down | ⌘⇟ | A page down the history |
text:hello\n | Sends text to the program (\n, \r, \t, \e, \xHH) | |
csi:2J | Sends ESC [ and the text | |
esc:d | Sends ESC and the text | |
ignore | The key does nothing, not even reach the program |