Ghostty 1.4: ускорение, меньше RAM и потеря Ubuntu 24.04

Терминальный эмулятор Ghostty, созданный соучредителем HashiCorp Митчеллом Хашимото, выпустил версию 1.4. Проект реализует GPU-ускорение и сохраняет нативный вид на каждой платформе: на Linux приложение использует GTK, на macOS — Swift. По заявлению разработчиков, у Ghostty миллионы ежедневных пользователей, а многие другие терминалы уже перешли на libghostty-vt — библиотеку виртуального терминала на C. В релизе 1.4 участвовали более 170 контрибьюторов, а за ним стоит свыше 2800 коммитов.

Ubuntu 24.04 LTS больше не подходит для нативных сборок

Главное ограничение новой версии: Ghostty 1.4 требует GTK 4.18 и libadwaita 1.7. Если загружены более старые библиотеки, приложение завершается при старте. Именно поэтому Ubuntu 24.04 LTS не может запускать нативные сборки Ghostty 1.4 — в ней нет нужных зависимостей. Разработчики советуют пользователям такой системы брать более старую сборку Ghostty, чтобы терминал продолжал работать.

Что изменилось на Linux

Главное улучшение касается рендеринга. После некоторых изменений в upstream-проектах текст при дробном масштабировании (например, 125% или 150%) стал размытым — теперь он снова чёткий. Пересобранный рендерер с тройной буферизацией должен сократить разрывы изображения.

Появилась возможность перетаскивания разделённых окон: сплит можно бросить на любое другое окно, даже в другой вкладке или другом окне, причём запущенные процессы и рабочий каталог переезжают вместе с ним. На macOS эта функция была ещё с версии 1.3.

Глобальные горячие клавиши на Wayland теперь используют протокол vicinae-hotkey-v1 в композиторах вроде Hyprland 0.56 и новее, а в остальных случаях идут через портал рабочего стола. Это должно улучшить поведение горячих клавиш в разных Wayland-композиторах. Размытие фона заработало в Niri, а новая команда +toggle-quick-terminal помогает оконным менеджерам, которые не умеют регистрировать глобальные сочетания клавиш.

В GTK-приложении переработали несколько сочетаний клавиш:

  • Ctrl+Shift+PageUp и Ctrl+Shift+PageDown перемещают текущую вкладку вбок;
  • Ctrl+Shift+Arrow-Up и Ctrl+Shift+Arrow-Down переключают между предыдущим и следующим приглашением — раньше это делалось только действием jump_to_prompt.

Значение clipboard у параметра copy-on-select теперь ведёт себя иначе; тем, кто полагался на старое поведение, рекомендуют перейти на both. Прокрутка за пределами экрана сжимается, пока терминал простаивает, — экономия памяти оценивается в 70–90%. Благодаря этому лимит прокрутки по умолчанию подняли с 10 МБ до 50 МБ.

Полная поддержка протокола Kitty и команда +ssh

Ghostty теперь реализует протокол Kitty graphics целиком; проект утверждает, что кроме самого Kitty этого не сделал ни один терминал. Появилась команда ghostty +ssh, которая заменяет ssh и перед подключением устанавливает terminfo Ghostty на удалённый хост.

Закрыто десять проблем безопасности, четыре из них затрагивали только macOS. Остальные включают пробел в защите от вставки и специально названный каталог, который мог заставить интеграцию с zsh отправлять escape-последовательности, в том числе незаметно заменяющие содержимое буфера обмена.

Пользователи macOS получили поддержку macOS 27, а на старых машинах сохраняется macOS 13 — её оставят до будущего релиза, когда проект от неё откажется. На Windows разработчики решили убрать поддержку GUI из дорожной карты и направляют нижестоящие проекты к libghostty и libghostty-vt, которые уже собраны для Windows.

Как получить Ghostty 1.4

Официальные бинарники проект выпускает только для macOS. В Linux дистрибутивы собирают Ghostty сами: он есть в Arch Linux, NixOS, Alpine Linux, Gentoo, openSUSE и Ubuntu 26.04. Существуют и сборки от сообщества — DEB, AppImage и Snap, но разработчики рекомендуют собирать из исходников. Сделать это можно из архива с исходным кодом командой zig build; нужные шаги описаны в руководстве по сборке.

Если в парке есть машины на Ubuntu 24.04 LTS, обновление до Ghostty 1.4 через нативную сборку не пройдёт — либо оставайтесь на прежней версии, либо переносите рабочие места на более свежий выпуск. О том, как выглядит переход, мы писали в материале про Ubuntu 26.04.1 LTS и установочные образы. А тем, кто всё ещё держит X11-сессию, будет полезен обзор проектов, которые не дают X11 умереть.

Частые вопросы

Кого касается потеря поддержки Ubuntu 24.04 LTS?

Тех, кто ставит Ghostty из нативной сборки на Ubuntu 24.04 LTS: приложение завершится при старте из-за старых GTK 4.18 и libadwaita 1.7. Разработчики предлагают использовать более старую сборку Ghostty.

Почему Ghostty 1.4 требует новые библиотеки?

Приложение собрано под GTK 4.18 и libadwaita 1.7, и при загрузке более старых версий происходит выход при запуске. Это ограничение самой сборки, а не ошибка настройки.

Насколько меньше памяти стал занимать терминал?

Сжатие прокрутки за пределами экрана во время простоя даёт экономию от 70% до 90%. За счёт этого лимит прокрутки по умолчанию вырос с 10 МБ до 50 МБ.

Что делать, если я привык к старому поведению copy-on-select?

Значение clipboard у copy-on-select теперь работает иначе. Тем, кто полагался на прежнее поведение, рекомендуют переключиться на значение both.

Как перетаскивать разделённые окна?

Сплит можно бросить на любое другое окно, включая окна в другой вкладке, вместе с запущенными процессами и рабочим каталогом. На macOS такая возможность была с версии 1.3.

Какие дистрибутивы уже включают Ghostty?

Arch Linux, NixOS, Alpine Linux, Gentoo, openSUSE и Ubuntu 26.04. Кроме того, есть сборки от сообщества — DEB, AppImage и Snap, но разработчики советуют собирать из исходников.

Как собрать Ghostty 1.4 самостоятельно?

Из архива с исходным кодом сборка запускается командой zig build. Пошаговые инструкции есть в руководстве по сборке проекта.

Будет ли Ghostty с графическим интерфейсом на Windows?

Нет: проект убрал поддержку GUI из дорожной карты. Нижестоящим проектам предлагают libghostty и libghostty-vt, которые уже собраны для Windows.

Что за проблема безопасности с zsh?

Одна из исправленных проблем связана со специально названным каталогом, который мог заставить интеграцию с zsh отправлять escape-последовательности, в том числе незаметно заменяющие буфер обмена. Всего закрыто десять проблем, четыре из них затрагивали только macOS.

Источник: itsfoss.com