Ghostling показал, как собрать терминал на libghostty Обложка: Скайрид

Ghostling показал, как собрать терминал на libghostty

Новости
Главное:

  • Команда Ghostty представила открытый демо-проект Ghostling — минималистичный терминал на базе libghostty.
  • Проект собран как демонстрация «минимального рабочего терминала» на C API и помещён в один файл C.
  • Ghostling не рекомендуют для повседневной работы: это учебный и демонстрационный пример, а не полноценный терминал.

Команда Ghostty представила открытый проект Ghostling — минималистичный терминал, собранный на основе библиотеки libghostty. Это демонстрационный пример того, как можно использовать C API libghostty, чтобы собрать рабочий терминал с базовыми возможностями. Разработчики сразу уточнили, что Ghostling создан не для ежедневного использования, а как наглядный образец.

По словам авторов, Ghostling показывает «минимальный функциональный терминал», который уместили в один файл на C. Для работы с окнами и отрисовкой проект использует Raylib. При этом сам Ghostling сделан однопоточным, хотя библиотека libghostty-vt поддерживает многопоточную работу. Вместо прямого GPU-рендеринга, на котором построен основной интерфейс Ghostty, здесь применён обычный 2D-рендерер. Такой выбор нужен, чтобы показать гибкость библиотеки и возможность встроить её в разные приложения.

Libghostty — это выделенная из ядра Ghostty встраиваемая библиотека с API для C и Zig. Она даёт приложению готовую эмуляцию терминала: разбор управляющих последовательностей, состояние экрана, курсора и стилей, прокрутку и переформатирование текста. В Ghostling используется libghostty-vt — библиотека без зависимостей, которая не занимается окнами и отрисовкой, а оставляет эти задачи приложению. За счёт этого разработчик может использовать свою графическую часть, сохранив терминальную логику Ghostty.

Среди возможностей Ghostling разработчики перечисляют изменение размера окна с переформатированием текста, поддержку 24-битного цвета и 256-цветной палитры, разные стили текста, Unicode и составные графемы, а также ввод с клавиатуры с модификаторами. Проект также поддерживает протокол клавиатуры Kitty, несколько режимов отслеживания мыши, разные форматы отчётов мыши, колёсико прокрутки и полосу прокрутки с перетаскиванием.

Авторы отдельно предупреждают, что проект не проверяли как готовый продукт на все пограничные случаи. В будущем они собираются добавить поддержку графического протокола Kitty, работу с буфером обмена через OSC и настройку заголовков OSC.

Контекст

Ghostling выпустила та же команда, которая развивает Ghostty — терминальный эмулятор с GPU-ускоренной отрисовкой. Новый проект показывает, как части его ядра можно использовать отдельно, как библиотеку для других приложений.

Что это значит на практике

Для разработчиков это готовый и компактный пример встраивания терминальной логики в собственные программы. Для обычных пользователей это скорее техническая демонстрация, а не замена привычному терминалу.

Топики: ,