Mightty

Settings

Mightty has a settings screen that runs in a terminal tab, and a plain-text config file behind it. You can use either: the screen writes to the file, and Mightty applies the file whenever it changes.

The settings screen

Press ⌘, to open the settings in a new tab. Settings are grouped into sections, and each one shows its current value and a description.

KeyAction
↑ ↓Move through the list.
TabGo to the next section.
/Search.
↩Edit the setting. An on/off setting switches straight away.
dRestore the default.
tChoose a theme.
eOpen the config file in your editor.

When a setting accepts one of a fixed set of values, Mightty completes the value as you type and shows the rest of the first match in grey. Press → or Tab to accept it, or ↑ ↓ to choose another.

The theme picker and the font settings open a list that you can filter by typing. Mightty previews each choice on the settings tab as you move to it. Press ↩ to keep the choice or Esc to go back to the previous one. The font list shows monospaced fonts first; press Tab to show every font.

Settings that can be given more than once, such as font-family, are edited in the config file. Press e to open it.

The same screen runs in any terminal with mightty config.

The config file

Settings are stored in ~/.config/mightty/config, or in $XDG_CONFIG_HOME/mightty/config if that variable is set. Each line has the form name = value. A # starts a comment.

font-family = JetBrains Mono
font-size = 13
theme = Catppuccin Mocha
macos-titlebar-style = tabs

Mightty checks the file once a second and applies it when it changes, so a change saved from any editor takes effect within a second. The settings screen changes individual lines and leaves your comments and the order of the file as they are.

Mightty → Open Config File opens the file in a new tab, in the editor named by $VISUAL or $EDITOR. It creates the file first if it doesn't exist.

Settings use Ghostty's names wherever they mean the same thing, so many lines from a Ghostty config work unchanged. If Mightty doesn't understand a line, it reports the line number and applies the rest of the file.

To split your settings across files, use config-file = PATH. Mightty reads that file at the point where the line appears.

Flags

Any setting can also be given as a command-line flag. A flag overrides the config file.

mightty --font-size=16 --window-width=120 -e htop

--config-file=PATH reads another file after the default one.

Every setting

Colours

window-colorspace

srgb or display-p3: the colour space colours and images are taken to be in, as in Ghostty; display-p3 shows them more saturated on a wide-gamut display

srgb display-p3 Default srgb

theme

Colours from themes/NAME in the config directory, or a path; light:NAME,dark:NAME follows macOS's appearance

NAME

background

Default background

COLOR Default #1e1e1e

foreground

Default text colour

COLOR Default #d8d8d8

cursor-color

Cursor (default: the text colour under it)

COLOR

cursor-text

Text under a block cursor (default: the cell's background)

COLOR

selection-background

Background of selected text

COLOR Default #3e4451

selection-foreground

Selected text (default: unchanged)

COLOR

search-foreground

Text of search matches

COLOR Default #1e1e1e

search-background

Background of search matches

COLOR Default #e5c07b

search-selected-foreground

Text of the selected search match

COLOR Default #1e1e1e

search-selected-background

Background of the selected search match

COLOR Default #ff8c32

palette

Palette entry N (0-255); repeat for more entries

N=COLOR One a line; repeat it for more

Font

font-family

Font family; repeat for fallbacks, tried in order (an empty value clears the list)

NAME Default Menlo

font-family-bold

Family for bold text (default: the font-family's bold, or made from it)

NAME

font-family-italic

Family for italic text

NAME

font-family-bold-italic

Family for bold italic text

NAME

font-feature

OpenType feature: ss01 or +ss01 on, -calt off, cv01=2 an alternate; repeat for more (an empty value clears them)

FEATURE One a line; repeat it for more

font-variation

Variable font axis for regular text, such as wght=450; repeat for more axes (empty clears)

AXIS=VALUE One a line; repeat it for more

font-variation-bold

Variable font axis for bold text

AXIS=VALUE One a line; repeat it for more

font-variation-italic

Variable font axis for italic text

AXIS=VALUE One a line; repeat it for more

font-variation-bold-italic

Variable font axis for bold italic text

AXIS=VALUE One a line; repeat it for more

font-size

Font size

POINTS Default 14

font-ligatures

Draw the font's ligatures, such as -> and != as arrows and signs, in fonts that have them

true false Default true

font-backend

coretext or mightty: who draws glyphs (mightty: our own rasterizer, TrueType fonts; for testing)

coretext mightty Default coretext

grapheme-width

unicode or legacy: unicode draws emoji written with VS16 (❤️) two cells wide, as Ghostty and kitty do; legacy keeps them one, as shells count them, so command lines with them redraw cleanly

unicode legacy Default unicode

adjust-cell-width

Make cells wider or narrower than the font says: points (1, -1) or a percentage (10%)

POINTS|N% Default 0

adjust-cell-height

Make cells taller or shorter than the font says, for more space between lines: points or a percentage

POINTS|N% Default 0

Window

window-width

Width of new windows, in cells

COLUMNS Default 100

window-height

Height of new windows, in cells

ROWS Default 30

window-vsync

Show frames only at a display refresh; false is lower latency but may tear

true false Default true

window-save-state

default, never or always: reopen windows, tabs and splits in their directories (default: unless "Close windows when quitting an application" is on in System Settings)

default never always Default default

background-opacity

Opacity of the default background; below 1 the desktop shows through

0-1 Default 1

background-blur

Blur behind a translucent background: true, false or a radius in points

true false Default 0

window-padding-x

Space left and right of the text

POINTS Default 6

window-padding-y

Space above and below the text

POINTS Default 6

cursor-style

block, bar, underline or block_hollow, unless the program picks one

block bar underline block_hollow Default block

Blink the cursor (default: only when the program asks)

true false

unfocused-split-opacity

Dim panes keys aren't going to, when a window has several

0.15-1 Default 0.7

macos-titlebar-style

native, transparent (in the terminal's background colour), tabs (tabs in the title bar) or hidden (none, the window dragged by its top padding; tabs, if any, at the top), as in Ghostty

native transparent tabs hidden Default native

scrollbar

system or never: system shows macOS's overlay scrollbar at a pane's right edge while scrolling through history, to drag or click, as in Ghostty

system never Default system

General

scrollback-lines

Lines kept above the screen

LINES Default 10000

undo-timeout

How long a closed tab or pane keeps running, hidden, so undo (⌘Z) brings it back as it was: 5s, 500ms, 1m; 0 for never, as in Ghostty. Reopening (⌘⇧T) works after, with new shells

TIME Default 5000ms

confirm-close-surface

true, false or always: ask before closing a pane, window or mightty (true: only while a command or agent runs in it)

true false always Default true

command

Run this shell command line in the first window instead of a login shell

LINE

working-directory

Working directory of the first window (default: home)

DIR

Behaviour

macos-auto-secure-input

Turn on Secure Keyboard Entry while a program reads a password (input not echoed), so other apps can't read the keys, as in Ghostty

true false Default true

clipboard-read

allow, ask or deny: programs reading the clipboard (OSC 52)

allow ask deny Default ask

clipboard-write

allow, ask or deny: programs setting the clipboard (OSC 52), as vim, tmux and ssh sessions do to copy

allow ask deny Default allow

copy-on-select

Copy text to the clipboard as soon as it's selected (true or clipboard)

true false clipboard Default false

clipboard-paste-protection

Ask before pasting text with line breaks a shell would run at once, or with control characters

true false Default true

mouse-hide-while-typing

Hide the mouse pointer while typing, until it moves

true false Default false

password-mask

Show a * for each character typed at a password prompt (a program reading a line without echoing it, as sudo and ssh do), drawn at the cursor by mightty only, so typing can be seen to work

true false Default true

mouse-scroll-multiplier

Scroll this many times as far as the wheel or trackpad says (0.01 to 10000)

N Default 1

Keys

macos-option-as-alt

true, false, left or right: Option keys that act as Alt instead of typing characters (default: true on US layouts, else false)

true false left right

keybind

Bind keys to an action, as in Ghostty: cmd+shift+t=new_tab, ctrl+k=unbind, or clear to drop every binding; repeat for more

TRIGGER=ACTION One a line; repeat it for more

Bell

bell-features

What a bell does, as in Ghostty: a comma list of system (the alert sound), audio (bell-audio-path), attention (bounce the Dock icon while in the background), title (🔔 on the title until the pane is typed in or looked at) and border (flash the pane's edge); no-NAME turns one off. Default: system,title

system audio attention title border no-system no-audio no-attention no-title no-border Default system,no-audio,no-attention,title,no-border

bell-audio-path

A sound file a bell plays with bell-features audio (any format macOS plays: aiff, wav, mp3, m4a)

PATH

Quick terminal

quick-terminal-position

top, bottom, left, right or center: where the quick terminal (toggle_quick_terminal) appears, as in Ghostty

top bottom left right center Default top

quick-terminal-size

How far the quick terminal comes in from its edge, then how much of the edge it runs along (all of it when left out): a percentage of the screen (40%) or points (500px), as in Ghostty; centred, its width then height

SIZE[,SIZE] Default 40%

quick-terminal-autohide

Hide the quick terminal when another window or app takes the keys

true false Default true