Настройка Ghostty: полный гайд от установки до конфига

Пошаговая настройка Ghostty: установка, шрифты, темы, сплиты, quick terminal, SSH и готовый конфиг для копирования.

Настройка Ghostty: полный гайд от установки до конфига
TL;DR: Настроим Ghostty с нуля — от установки до рабочего конфига с темами, шрифтами, сплитами, quick terminal и SSH. В конце — мой готовый конфиг, который можно скопировать и сразу использовать.

Ghostty из коробки работает нормально. Но когда я начал ковырять конфиг, понял, что там куча полезного, о чём не догадаешься без документации. Собрал всё в одном месте — чтобы тебе не пришлось.

Что понадобится

Шаг 1. Установка

На macOS через Homebrew:

brew install --cask ghostty

На Arch Linux:

pacman -S ghostty

На Fedora через COPR:

dnf copr enable scottames/ghostty
dnf install ghostty

На других дистрибутивах — проверь официальную страницу загрузки. Для Ubuntu есть .deb-пакеты через сторонний установщик.

Если хочешь bleeding edge — есть ghostty@tip:

brew install --cask ghostty@tip

Это версия, которая следует за HEAD ветки. Обновляется чаще, но может быть менее стабильной.

Шаг 2. Создаём конфиг

Открой Ghostty и создай файл конфигурации:

mkdir -p ~/.config/ghostty
touch ~/.config/ghostty/config

На macOS Ghostty также смотрит в ~/Library/Application Support/com.mitchellh.ghostty/config, но ~/.config/ghostty/config работает на обеих платформах — советую использовать его.

Формат конфига максимально простой — ключ = значение, по одному параметру на строку:

# Это комментарий
font-size = 14
background-opacity = 0.95

Перезагрузить конфиг без перезапуска: Cmd+Shift+, на macOS или Ctrl+Shift+, на Linux.

Если хочешь увидеть все доступные параметры с документацией:

ghostty +show-config --default --docs

Выведет полный конфиг с комментариями — полезно для знакомства.

Шаг 3. Шрифт

Ghostty идёт со встроенным JetBrains Mono — если тебя устраивает, можно ничего не менять. Но если хочешь другой:

font-family = "Fira Code"
font-size = 13

Для Nerd Fonts (иконки в терминале для oh-my-zsh, starship, powerlevel10k):

font-family = "JetBrainsMono Nerd Font"
font-size = 13

Можно задать несколько фолбеков — если глиф не найден в первом шрифте, Ghostty возьмёт из второго:

font-family = "Fira Code"
font-family = "Noto Color Emoji"

Лигатуры включены по умолчанию. Если хочешь отключить:

font-feature = -calt
font-feature = -liga

На macOS шрифт может выглядеть слишком тонким на обычных (не Retina) экранах. Исправляется одним параметром:

font-thicken = true

Шаг 4. Тема и цвета

Ghostty поставляется с сотнями встроенных тем. Посмотреть список:

ghostty +list-themes

Поставить тему:

theme = Catppuccin Mocha

А вот штука, ради которой одной стоит попробовать Ghostty — автопереключение темы:

theme = dark:Catppuccin Mocha,light:Catppuccin Latte

Переключил macOS на светлый режим — терминал посветлел. Обратно на тёмный — потемнел. Без перезапуска.

Прозрачность

background-opacity = 0.95
background-blur = 20

background-blur размывает то, что за окном — выглядит красиво, но на macOS требует перезапуска Ghostty после изменения background-opacity.

Своя тема

Если хочешь создать свою цветовую схему, создай файл в ~/.config/ghostty/themes/:

touch ~/.config/ghostty/themes/my-dark

Внутри — обычный конфиг, только с цветами:

background = #1a1b26
foreground = #c0caf5
cursor-color = #f2d5cf
selection-background = #626880
selection-foreground = #c6d0f5
palette = 0=#1a1b26
palette = 1=#f7768e
palette = 2=#9ece6a
palette = 3=#e0af68
palette = 4=#7aa2f7
palette = 5=#bb9af7
palette = 6=#7dcfff
palette = 7=#a9b1d6
palette = 8=#414868
palette = 9=#f7768e
palette = 10=#9ece6a
palette = 11=#e0af68
palette = 12=#7aa2f7
palette = 13=#bb9af7
palette = 14=#7dcfff
palette = 15=#c0caf5

Потом в основном конфиге: theme = my-dark.

Шаг 5. Окно и titlebar

На macOS мне нравится прозрачный titlebar — терминал выглядит чище:

macos-titlebar-style = transparent
window-padding-x = 8
window-padding-y = 4
window-padding-color = extend

window-padding-color = extend растягивает цвет фона до краёв окна — без белых полос по бокам.

Для полноэкранного режима без рамки (если пользуешься):

macos-non-native-fullscreen = false

Размер окна при запуске (в ячейках):

window-width = 220
window-height = 50

Ghostty запомнит позицию окна между сессиями, если включить:

window-save-state = always

Шаг 6. Сплиты

Сплиты — одна из причин, почему некоторые отказываются от tmux в пользу Ghostty. Настраиваются через keybind:

# Создание сплитов
keybind = ctrl+super+right=new_split:right
keybind = ctrl+super+down=new_split:down
keybind = ctrl+super+left=new_split:left
keybind = ctrl+super+up=new_split:up

# Навигация между сплитами
keybind = alt+super+right=goto_split:right
keybind = alt+super+down=goto_split:bottom
keybind = alt+super+left=goto_split:left
keybind = alt+super+up=goto_split:top

Неактивные панели можно затемнять — помогает видеть, где сейчас фокус:

unfocused-split-opacity = 0.5

Цвет разделителя:

split-divider-color = #3a3b40

Каждый сплит — независимая сессия. Новые сплиты наследуют текущую директорию, если shell integration работает.

Шаг 7. Quick Terminal

Выпадающий терминал в стиле Quake 3 — появляется по хоткею из любого приложения. Я пользуюсь этим постоянно для быстрых команд.

keybind = global:ctrl+grave_accent=toggle_quick_terminal
quick-terminal-position = right
quick-terminal-size = 800px
quick-terminal-animation-duration = 0.2
quick-terminal-autohide = true

global: означает, что хоткей работает из любого приложения, даже когда Ghostty не в фокусе. На macOS для этого нужно разрешение: System Settings → Privacy & Security → Accessibility → добавить Ghostty.

quick-terminal-autohide = true — терминал прячется, когда переключаешь фокус на другое окно. Удобно: нажал хоткей, ввёл команду, кликнул на другое окно — терминал исчез.

На Linux Quick Terminal работает только на Wayland. Если сидишь на X11 — к сожалению, не вариант.

Шаг 8. Shell Integration и SSH

Shell integration подхватывается автоматически для zsh, bash (из Homebrew), fish и elvish. Проверить, что она работает:

echo $GHOSTTY_RESOURCES_DIR

Если путь выводится — всё ок. Что даёт shell integration:

  • Новые вкладки открываются в текущей директории
  • Навигация между промптами: Cmd+Up / Cmd+Down
  • Тройной клик выделяет вывод команды целиком
  • Курсор меняет форму (полоска при вводе, блок в нормальном режиме)

SSH и terminfo

При SSH на удалённый сервер часто вылетает ошибка:

missing or unsuitable terminal: xterm-ghostty

Потому что на сервере нет terminfo для Ghostty. Решается одной строкой в конфиге:

shell-integration-features = cursor,sudo,title,ssh-env,ssh-terminfo

ssh-terminfo автоматически скопирует terminfo при первом подключении к серверу. ssh-env — фолбек: если terminfo не удалось установить, переключит TERM на xterm-256color.

Я рекомендую включать оба. Кэш серверов, куда уже установлен terminfo, можно посмотреть через:

ghostty +ssh-cache

Шаг 9. Keybindings

Помимо сплитов и quick terminal, есть куча полезных хоткеев. Формат:

keybind = модификатор+клавиша=действие

Можно делать последовательности клавиш (leader key):

keybind = ctrl+a>n=new_window
keybind = ctrl+a>t=new_tab

Нажимаешь Ctrl+A, отпускаешь, нажимаешь N — открывается новое окно. Знакомо тем, кто пользуется tmux.

Посмотреть все доступные действия:

ghostty +list-actions

А все текущие привязки:

ghostty +list-keybinds

Шаг 10. Финальные штрихи

Несколько параметров, которые я всегда включаю:

# Спрашивать перед закрытием окна с активным процессом
confirm-close-surface = true

# Прятать курсор мыши при наборе текста
mouse-hide-while-typing = true

# Защита от случайной вставки опасных команд
clipboard-paste-protection = true

# Обрезать пробелы в конце при копировании
clipboard-trim-trailing-spaces = true

# Option = Alt (для тех, кто использует Alt-комбинации в vim/tmux)
macos-option-as-alt = true

# Курсор
cursor-style = bar
cursor-style-blink = false

Результат

Перезагрузи конфиг (Cmd+Shift+,) и проверь, что всё работает. Должна быть тема, прозрачность, сплиты по хоткеям и quick terminal из любого приложения.

Мой полный конфиг, который можно скопировать:

# ~/.config/ghostty/config

# Тема
theme = dark:Catppuccin Mocha,light:Catppuccin Latte

# Шрифт
font-family = "JetBrainsMono Nerd Font"
font-size = 13
font-thicken = true

# Прозрачность
background-opacity = 0.95
background-blur = 20

# Окно
macos-titlebar-style = transparent
macos-option-as-alt = true
window-padding-x = 8
window-padding-y = 4
window-padding-color = extend
window-save-state = always

# Курсор
cursor-style = bar
cursor-style-blink = false

# Сплиты
unfocused-split-opacity = 0.5
keybind = ctrl+super+right=new_split:right
keybind = ctrl+super+down=new_split:down
keybind = ctrl+super+left=new_split:left
keybind = ctrl+super+up=new_split:up
keybind = alt+super+right=goto_split:right
keybind = alt+super+down=goto_split:bottom
keybind = alt+super+left=goto_split:left
keybind = alt+super+up=goto_split:top

# Quick Terminal
keybind = global:ctrl+grave_accent=toggle_quick_terminal
quick-terminal-position = right
quick-terminal-size = 800px
quick-terminal-animation-duration = 0.2
quick-terminal-autohide = true

# Shell integration
shell-integration = detect
shell-integration-fea

Частые ошибки

Шрифт не применяется. Проверь точное название шрифта. Ghostty чувствителен к именам. Если поставил Nerd Font через Homebrew — имя будет "JetBrainsMono Nerd Font", а не "JetBrains Mono Nerd Font" (без пробела перед Mono).

Quick Terminal не работает на macOS. Нужно дать разрешение в System Settings → Privacy & Security → Accessibility. Без него глобальные хоткеи не работают.

SSH ломается — missing terminal: xterm-ghostty. Добавь в конфиг shell-integration-features = ssh-env,ssh-terminfo. Или как быстрый фикс: TERM=xterm-256color ssh user@host.

FAQ

Как полностью сбросить конфиг Ghostty?

Удали или переименуй файл ~/.config/ghostty/config и перезапусти. Ghostty вернётся к дефолтным настройкам — встроенный JetBrains Mono, системная тема.

Где посмотреть все доступные темы Ghostty?

ghostty +list-themes в терминале. Сейчас там сотни тем — Catppuccin, Dracula, Nord, Gruvbox, Tokyo Night и другие. Обновляются еженедельно.

Можно ли использовать Ghostty вместо tmux?

Для простых задач — да. Сплиты и вкладки покрывают базовые сценарии. Но tmux незаменим для SSH-сессий (сессия живёт на сервере) и более сложных раскладок. Можно использовать оба.

Как перенести конфиг Ghostty между Mac и Linux?

Конфиг в ~/.config/ghostty/config работает на обеих платформах. macOS-специфичные параметры (macos-*) на Linux просто игнорируются. Можно держать один конфиг в dotfiles.

Ghostty тормозит с прозрачностью на macOS?

Попробуй убрать background-blur — именно blur создаёт нагрузку. background-opacity без blur работает быстро. Также убедись, что стоит последняя версия — в 1.2.0 оптимизировали рендеринг.

Что ещё почитать