В последнее время наблюдается возрождение интереса к эмуляторам терминалов. Разработчики активно работают над тем, чтобы адаптировать эту, казалось бы, простую консоль к современным условиям, используя возможности нового оборудования, включая ускорение с помощью графических процессоров (GPU), интеграцию с контейнерными технологиями и, в ряде случаев, даже внедрение технологий искусственного интеллекта и больших языковых моделей (AI/LLM).
Ghostty, новое кроссплатформенное терминальное приложение с открытым исходным кодом, разработанное Митчеллом Хашимото, соучредителем HashiCorp, — один из свежих участников конкурентной среды терминальных приложений. Хашимото поставил себе целью разработать кроссплатформенный терминал, который был бы быстрым, многофункциональным и имел бы привычный для каждой платформы внешний вид.
Первый публичный релиз был выпущен перед новым годом. Первые результаты работы на новом эмуляторе терминала демонстрируют многообещающие результаты. Важным преимуществом Ghostty является именно нативный графический интерфейс. Альтернативные решения, такие как кроссплатформенный терминал Warp или встроенные командные строки в различных интегрированных средах разработки (IDE ), вынуждены использовать кастомные веб-интерфейсы, что часто обусловлено необходимостью упрощения разработки, поддержания единообразия функций и обеспечения предсказуемости, но может негативно сказываться на производительности.
Графический интерфейс Ghostty для Linux создан с помощью языка Zig и библиотек GTK4/libadwaita. В macOS используется Swift с AppKit и SwiftUI. Благодаря этому, Ghostty выглядит и ощущается как родное приложение на каждой из платформ, используя системные окна, вкладки, меню, иконки и шрифты. В результате Ghostty демонстрирует более высокую степень интеграции с операционной системой по сравнению с рядом современных терминалов.
Особенности терминала Ghostty
Ghostty 1.0, первая стабильная версия после периода бета-тестирования, доступного эксклюзивно для пользователей YouTube, вызвала ажиотаж благодаря своей скорости, функциональности и заявленному потенциалу, способному произвести революцию в своей области.
Первый публичный релиз, несомненно, произвёл определённый фурор среди опробовавших его пользователей. Однако, когда речь заходит о «многофункциональности» эмуляторов терминала, стоит учитывать, что большинство их возможностей скрыты «под капотом». Это фундаментальные функции, обеспечивающие доступ к терминалу, его запуск и работу, а не броские, но бесполезные «украшения».
Ghostty внешне и по ощущениям во многом напоминает GNOME Terminal. Он вполне способен заменить его, хотя окончательное решение о целесообразности перехода остаётся за вами. Одно несомненно, эмулятор терминала обладает высокой скоростью и отзывчивостью, что делает его отличным выбором для работы с командами, инструментами и процессами. А благодаря широкой поддержке различных возможностей, он может предоставить всё необходимое разработчикам для создания передовых CLI-приложений.
Возможности Ghostty 1.0 вкратце:
- Быстрое время запуска;
- Создание вкладок;
- Поддержка тайлинга — разделение окна терминала на несколько окон;
- Единый процесс GTK, общий буфер обмена, ввод IME и т. д.;
- Использует аппаратный рендеринг, основанный на OpenGL;
- Возможность выбора из более 100 встроенных тем, плюс поддержка создания собственных тем;
- Использует обычные системные сочетания клавиш;
- Автоматическая интеграция для bash, zsh, fish и elvish;
- Перерисовка подсказок при изменении размера терминала;
- Отчет о рабочей директории;
- Обнаружение активных процессов;
- Совместимость с Xterm;
- Поддержка пользовательских шейдеров;
- Поддержка лигатур и переменных шрифтов.
Ghostty прост в использовании и не требует сложной настройки. Тем не менее, для более тонкой настройки под свои нужды, пользователи могут воспользоваться файлом конфигурации. Он доступен через меню приложения и позволяет управлять различными аспектами работы терминала: настраивать и отключать функции, изменять поведение, задавать собственные сочетания клавиш и многое другое.
Установка Ghostty
Если у вас появилось желание опробовать новую консоль с GPU-ускорением, то для установки Ghostty предусмотрены различные варианты. Пользователи Arch Linux могут установить Ghostty из официального репозитория (раздел «Extra»), для использующих Nix доступен флейк, а для Fedora — эмулятор доступен в репозитории Copr, который можно подключить командой:
dnf copr enable pgdev/ghostty
Для любителей Ubuntu разработчики предлагают собранные DEB-пакеты. Также доступны сборки для Debian (11, 12 и Sid). Приложение совсем новое, поэтому его пока нет в официальных репозиториях дистрибутивов, основанных на Debian.
Вы можете собрать Ghostty самостоятельно, используя исходный код. Несмотря на то, что компиляция программ может звучать устрашающе, на практике все гораздо проще.
Компиляция Ghostty из исходного кода
Прежде всего, скачайте Ghostty со страницы релизов на Github, затем распакуйте полученный вами архив. Откройте новое окно терминала и перейдите в распакованную директорию, содержащую файлы исходноо кода программы.
Далее установите зависимости, которые необходимы для сборки:
sudo apt install libgtk-4-dev libadwaita-1-dev
Теперь необходимо установить Zig — язык программирования общего назначения. При этом надо учитывать то обстоятельство, что нам нужна версия 0.13, а не более новая сборка. Вы можете загрузить бинарник с сайта Zig в виде архива tarball, а затем распаковать в удобную для вас папку. Не забудьте добавить директорию с исполняемым файлом в переменную окружения PATH.
Чтобы избежать лишних хлопот, вы можете использовать пакет Zig snap (считается бета-версией):
sudo snap install --beta zig --classic
Наконец, вы можете приступить к сборке и установке Ghostty для текущего пользователя с помощью следующей команды:
zig build -p $HOME/.local -Doptimize=ReleaseFast
И для того, чтобы Ghostty работал в масштабах всей системы:
sudo zig build -p /usr -Doptimize=ReleaseFast
Независимо от выбранного метода, дождитесь окончания процесса сборки. Запустить Ghostty можно из меню приложений.
Планы разработчиков
Разработчики готовят к скорому выпуску версию 1.0.2. Они подчёркивают, что не стремятся к частому выпуску патчей, однако ряд критических ошибок, выявленных в первом публичном релизе, требует оперативного исправления.
В версии 1.0.2 будут устранены следующие основные проблемы: ошибки ввода с клавиатуры, особенно при использовании неамериканских раскладок; проблемы совместимости с эмулятором терминала xterm; а также проблемы с графическим интерфейсом как в Linux, так и в macOS.
В дальнейшем разработчики намерены придерживаться следующей стратегии: после крупного релиза выпускать не более одного-двух патчей, после чего сосредоточиться на разработке следующей значительной версии в течение нескольких месяцев. Такой подход позволит упростить сопровождение и распространение пакетов, избегая излишней задержки при их попадании в каналы дистрибуции. Кроме того, это даст возможность разработчикам сосредоточиться на создании новых функций и улучшений.
Заключение
Ghostty, несмотря на наличие ряда известных и пока не выявленных проблем в первом релизе, позиционируется как стабильное решение для широкого круга пользователей, включая профессионалов.
Команда разработчиков активно работает над исправлением существующих недочетов. В данной версии устранены наиболее критичные из них. Подробную информацию об известных и вновь обнаруженных проблемах можно найти в обсуждениях на странице GitHub.
Что вы думаете?
Показать комментарии / Оставить комментарий