Skip to main content

Window Size and Position

Initial Window Size

Both window-width and window-height must be set to take effect. If only one is set, it’s ignored.
Not currently. Window size is specified in terminal grid cells. Pixel-based sizing may be added in the future.
Windows smaller than 10 columns by 4 rows are not allowed.
Linux/GTK: Window size doesn’t properly account for window decorations. Grid dimensions won’t exactly match when decorations are enabled. Disable decorations (window-decoration = none) for accurate sizing.

Window Position

Position is relative to the top-left corner of the visible screen area (below the menu bar if visible).✅ Supported
Both window-position-x and window-position-y must be set to take effect.

Maximize and Fullscreen

These settings apply to all new windows, not just the first one.
macOS: fullscreen = true doesn’t work with window-decoration = none (native fullscreen requires decorations).

Window Decorations

Control window chrome (titlebar, borders, etc.):
Only none and auto/true are meaningful:
  • none: Removes titlebar and borders, disables tabs
  • auto/true: Standard macOS window
Use macos-titlebar-style = hidden to hide titlebar while keeping borders.
Toggle decorations at runtime with the toggle_window_decorations keybind action.

Window Padding

Horizontal and Vertical Padding

Excessive padding will squish the grid. Pick reasonable values. Warnings appear in logs for unreasonable values.
Padding changes at runtime only affect new terminals (windows, tabs, splits).

Padding Balance

When viewport dimensions aren’t perfectly divisible by cell size, extra padding exists. This option balances it across all edges instead of leaving it on the right and bottom.

Padding Color

On primary screen applications (not alternate screen like Vim), vertical extension is disabled if:
  • Nearest row has default background color cells
  • Nearest row is a prompt (requires shell integration)
  • Nearest row contains powerline characters
These heuristics prevent ugly powerline artifacts.

Window Behavior

VSync (macOS)

macOS: Out-of-sync rendering can cause kernel panics (macOS 14.4+) and performance issues with external displays over DisplayLink.Set to false only if you need minimal input latency and understand the risks.
Changing window-vsync at runtime only affects new terminals.

Step Resize (macOS)

When enabled, window resizing snaps to grid cell sizes. When disabled, resizes in pixel increments.

Working Directory Inheritance

Inheritance requires shell integration. Without it, the default working-directory is used.

Font Size Inheritance

When false, new windows use the configured font-size.

Window Title

Fixed Title

When set, Ghostty ignores all title change escape sequences from programs.
Reload config with title unset or removed. The next title change escape sequence will be honored, but you may need to restart programs (like Neovim) to trigger it.

Window Subtitle (GTK)

GTK only (since 1.1.0)

Title Font (macOS)

If unset, the system default font is used. Any font available on the system may be used (not limited to monospace).

Tabs

Tab Visibility (GTK)

Currently only supported on Linux (GTK).

Tab Position

Splits

Split Appearance

Preserve Zoom

Control zoom behavior when navigating splits:
By default, any operation changing focus or layout unzooms. With navigation, the zoomed state moves to the newly focused split.Available since 1.3.0.

Resize Overlay

When to Show

Overlay Position

Overlay Duration

Window State

Save and Restore (macOS)

On macOS:
  • Saves state if app is forcibly terminated
  • Saves state if configured systemwide in Settings.app
On Linux: No effect (not implemented).
Changing to never while Ghostty isn’t running prevents restoring state on next launch. Changing from never while not running won’t restore previous state (state only saved on exit).

Window Theme

On macOS with macos-titlebar-style = tabs or transparent, window theme is automatically determined by background luminosity.

Titlebar Colors (GTK)

Linux/GTK-Specific

Application Class

Changing class creates separate Ghostty instances with gtk-single-instance=true. May break .desktop file launching and DBus activation.Must follow GTK ID requirements.

X11 Instance Name

Only affects X11. No effect on Wayland.

macOS-Specific

Titlebar Style

  • native: Standard macOS titlebar matching window theme
  • transparent: Native but transparent, shows background color
  • tabs: Custom titlebar integrating tab bar, matches terminal background
  • hidden: Removes titlebar but keeps rounded corners and borders
tabs style on macOS 13 and below: Saved window state won’t restore tabs correctly. macOS 14+ works fine.
hidden style: Window can’t be dragged by titlebar. Use option+click on resizable frame areas to drag (standard macOS behavior).

Window Buttons (macOS)

No effect when window-decoration = none or macos-titlebar-style = hidden (buttons always hidden).Changing at runtime only affects new windows. Since 1.2.0.

Proxy Icon (macOS)

The proxy icon represents the current working directory. Only visible with native titlebar style.
Changes at runtime apply to all windows, but only take effect after their working directory changes again (e.g., cd to another directory).

Window Shadow (macOS)

With window managers and transparency, false may look better.

Non-Native Fullscreen (macOS)

Important: Tabs do not work in non-native fullscreen mode (titlebar is removed, macOS tabs require it).If you fullscreen a tabbed window, the focused tab goes fullscreen while others remain in a background window.
  • Native: Uses macOS spaces with animations (slower)
  • Non-native: Instant fullscreen without animations (faster)
padded-notch prevents window from being obscured by the notch on applicable devices.

Initial Window

If quit-after-last-window-closed = true and initial-window = false, Ghostty quits after the delay if no window is ever created.

Resources

Appearance

Colors and visual customization

Terminal Behavior

Terminal-specific settings

Keybindings

Window and split navigation keybinds

Shell Integration

Working directory inheritance