After two years of efforts and a $300k donation to the Zig Software Foundation, Mitchell Hashimoto has just announced the availability of version 1.0 of his Ghostty terminal emulator. He wanted Ghostty to be fast, feature-rich, and native on MacOS and Linux. I couldn’t find on the documentation a list of default key bindings for MacOS so here it is, plus some more stuff that I used extracted from the documentation. We don’t see any new terminal emulator often, so I urge you to try it out.

macos description
⌘D split right
⇧⌘D split down
⌘ t create tab
⌘=, ⌘-, ⌘0 increase, decrease, reset font size
⌘[ , ⌘] select previous, next Split
⌥⌘ ↑, ↓, →, ← select above, below, left, right
⌃⌘ ↑, ↓, →, ←, = move divider up, down, right, left or equalize
⌘↵ Toggle fullscreen
⇧⌘↵ Zoom/Dezoom Split
⌥ click moves the cursor to the click location
⌘, edit configuration
⇧⌘, reload configuration

CLI examples

Ghostty can also be run on the command line to perform various actions

 ghostty +list-themes [currently: Solarized Dark Higher Contrast]
 ghostty +list-fonts
 ghostty +show-config --default --docs

Installation

on MacOS

brew install --cask ghostty

on Archlinux

pacman -S ghostty

FAQ

Configure SSH to fall back to a known terminfo entry

# .ssh/config
Host example.com
  SetEnv TERM=xterm-256color

But it would be wiser to use instead such a one liner to get all of Ghostty features

infocmp -x | ssh YOUR-SERVER -- tic -x -

My Current (light) configuration

Ghostty is advertised as a zero config terminal, I just have the following lines

# app
theme = Solarized Dark Higher Contrast
fullscreen = true
macos-titlebar-style = transparent

# window
window-padding-balance = true
window-padding-x = 4
window-padding-y = 4
window-save-state = always
focus-follows-mouse = true
unfocused-split-opacity = 0.5

# font
font-family = Monaspace Neon
font-size = 16
font-thicken = true
bold-is-bright = true

# other
clipboard-read = allow
clipboard-write = allow
copy-on-select = clipboard
shell-integration-features = cursor,sudo,no-title
mouse-hide-while-typing = true