Mightty

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:

KeysNames
Editingenter or return, tab, space, escape, backspace, delete
Navigationup, down, left, right, home, end, page_up, page_down
Function keysf1 to f12
Punctuationplus, minus, equal, comma, period, slash, backslash, semicolon, apostrophe, left_bracket, right_bracket, grave_accent

Removing a binding

  • keybind = cmd+k=unbind removes the binding for that key. The key is then passed to the program running in the pane.
  • keybind = clear removes 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

ActionKeyWhat it does
new_window⌘NA new window, its shell where the current one is
new_tab⌘TA new tab, its shell where the current one is
new_split:right⌘DSplits the pane, the new one to the right
new_split:down⇧⌘DSplits the pane, the new one below
close_surface⌘WCloses the pane, or its tab or window with its last pane
close_window⇧⌘WCloses the window
minimize_window⌘MMinimizes the window
quit⌘QQuits Mightty
copy_to_clipboard⌘CCopies the selection
paste_from_clipboard⌘VPastes, asking first when it could run commands
start_search⌘FFinds text in the pane and its history
navigate_search:next⌘GThe 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⌘1Tab N, from 1
previous_tab⇧⌘[The tab to the left
next_tab⇧⌘]The tab to the right
last_tab⌘9The last tab
move_tab_to_new_windowThe tab out into a window of its own
close_other_tabsCloses the window's other tabs
undo⌘ZBrings back the last tab, pane or window closed, still running, within undo-timeout
reopen_closed⇧⌘TReopens the last tab, pane or window closed, running still or with new shells
prompt_surface_titleA title for the pane, shown in its tab and window
jump_to_attention⇧⌘AThe pane that has waited longest for you
toggle_command_palette⇧⌘PEvery action by name, filtered as you type
toggle_quick_terminalA terminal that drops from the top of the screen, over any app
toggle_secure_inputSecure Keyboard Entry: other apps can't read what you type
open_settings⌘,The settings, in a window of their own
open_configThe 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⌘0The pane's font back to font-size
clear_screen⌘KClears 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\nSends text to the program (\n, \r, \t, \e, \xHH)
csi:2JSends ESC [ and the text
esc:dSends ESC and the text
ignoreThe key does nothing, not even reach the program