Вышла новая версия Ghostty — терминального эмулятора с открытым исходным кодом. Ghostty 1.4.0 стала результатом семи месяцев разработки. Среди изменений — повышение производительности в Linux и macOS, улучшенная работа по SSH и возможность менять расположение разделённых областей терминала перетаскиванием.
Приложение, написанное на Zig, получило полную поддержку графического протокола Kitty, включая анимацию и относительное позиционирование изображений. Ghostty стал первым терминалом, помимо Kitty, с полной поддержкой этого протокола. Это пригодится тем, кто использует текстовые интерфейсы или скрипты для отображения изображений в терминале.
Полная поддержка протокола Kitty и меньшее потребление памяти
По словам разработчиков, производительность приложения значительно выросла. В частности, Ghostty 1.4.0 сжимает невидимую часть истории прокрутки, когда терминал бездействует. Благодаря этому использование физической оперативной памяти для больших текстовых историй может снизиться до 90%.
Данные распаковываются при прокрутке истории или использовании поиска по тексту, появившегося в Ghostty 1.3.0.
В GTK-приложении для Linux текст теперь чётко отображается при дробном масштабировании экрана, например 125% и 150%. Это должно решить часто возникавшую проблему размытого текста.
Кроме того, GtkGLArea заменили конвейером рендеринга EGL, который работает в отдельном потоке и передаёт кадры в GTK с помощью DMA-BUF. Для этого нужна системная библиотека EGL. Если видеокарта не поддерживает экспорт DMA-BUF, вместо него используется более медленное копирование с помощью процессора.
Перетаскивание разделённых областей
В GTK-сборке расположение областей терминала внутри вкладки теперь можно менять перетаскиванием. Если вкладка разделена на две или более частей, у каждой появляется специальный маркер: его можно захватить и перетащить область на другую.
Другие изменения
- Добавлена отдельная SSH-обёртка.
- Повышена точность эмуляции терминала.
- Реализована поддержка протокола буфера обмена Kitty.
- Улучшена производительность на разных платформах.
Изменения в Linux
- Уведомления на рабочем столе скрываются, когда терминал получает фокус или закрывается.
- Обновлён шрифт эмодзи Noto: новые последовательности ZWJ теперь отображаются одним глифом.
- Команда Dolphin «Открыть Ghostty здесь» открывает новое окно в уже запущенном экземпляре приложения.
- Изменение размера разделённых областей больше не вызывает мерцания и не позволяет уменьшать их ниже допустимого размера.
- При выделении текста курсор мыши сохраняет форму текстового указателя.
- Если установлено значение
window-theme = ghostty, цветовая палитра командной строки соответствует цветам терминала. - Ссылки открываются через XDG Desktop Portal.
В GTK-сборке доступны и новые параметры конфигурации. gtk-horizontal-tab-scroll можно установить в false, чтобы прокрутка двумя пальцами не переключала вкладки. Параметр gtk-tabs-inverted перемещает кнопку закрытия в начало каждой вкладки.
Как установить Ghostty
Ghostty доступен в репозиториях одного из выпусков Ubuntu, но там может быть не самая новая версия. Чтобы получить перечисленные выше изменения, потребуется альтернативный способ установки.
Для Ubuntu можно использовать неофициальный DEB-пакет Ghostty, который поддерживается сообществом; для него также есть собственный PPA, упрощающий обновления. Кроме того, доступны AppImage и неофициальный Snap-пакет.
Для macOS Ghostty предлагает официальные сборки, которые рекомендуются разработчиками и поддерживают обновление внутри приложения. Программа также доступна через Homebrew и другие менеджеры пакетов для командной строки.
Прекращена поддержка Ubuntu 24.04 LTS
Для работы Ghostty 1.4.0 нужны GTK 4.18 и libadwaita 1.7. Согласно политике проекта в отношении версий GTK и Adwaita, Ubuntu 24.04 LTS этим требованиям больше не соответствует. Поэтому установить DEB-версию Ghostty, например из упомянутого PPA, в этой системе нельзя.
Библиотека эмуляции терминала libghostty будет использоваться в будущих версиях IDE JetBrains. Новый терминал Velocitty в Linux Mint на этой библиотеке не основан, хотя его дизайн, как сообщается, вдохновлён Ghostty.
