Представлен публике публичный демо-проект Ghostling — минималистичный терминал на основе libghostty

2 мин
Представлен публике публичный демо-проект Ghostling — минималистичный терминал на основе libghostty

Команда проекта Ghostty (разрабатывает эмулятор терминала с GPU-ускорением для отрисовки контента) представила открытый демо-проект Ghostling — минималистичный терминал на основе libghostty.

«Ghostling — это демонстрационный проект, призванный показать минимальный функциональный терминал, построенный на основе C api libghostty в одном файле C». — пояснили арзрабочтики решения.

В проекте используется Raylib для работы с окнами и рендеринга. Проект однопоточный (хотя libghostty-vt поддерживает многопоточность) и использует 2D-графический рендерер вместо прямого рендерера GPU, как главный графический оболочку Ghostty. Это сделано для демонстрации гибкости libghostty и того, как его можно использовать в различных контекстах.

«Предупреждение: терминал Ghostling не предназначен для повседневного использования в качестве полноценного терминала. Это минимальный жизнеспособный терминал, основанный на libghostty. В дополнение к этого, поскольку это, по сути, презентация, я не проверял тщательно каждое место на корректность, и это C, так что вы предупреждены», — уточнил один из разработчиков Ghostling.

Libghostty — это встраиваемая библиотека, извлечённая из ядра Ghostty, предоставляющая api на C и Zig, за счёт чему любое приложение может встраивать корректную и быструю эмуляцию терминала.

Инициатива Ghostling использует libghostty-vt, библиотеку без зависимостей (даже без libc), которая обрабатывает парсинг последовательности VT, управление состоянием терминала (положение курсора, стили, переформатирование текста, прокрутка и управление состоянием рендерера. Эта библиотека не содержит кода отрисовки или оконного отображения; потребитель (в данном случае Ghostling) предоставляет свой собственный исходник для этих действий. Основная логика в проекте извлечена непосредственно из Ghostty и наследует всё его преимущества: полная сопровождение эмуляции терминала, SIMD-оптимизированный парсинг, поддержка Unicode, высокооптимизированное использование памяти.

Особенности проекта:

  • модификация размера с переформатированием текста;

  • полная поддержка 24-битного цвета и 256-цветной палитры;

  • разные стили текста;

  • обработка Unicode и multi-codepoint grapheme (без изменения формы или слоёв);

  • ввод с клавиатуры с поддержкой модификаторов (Shift, Ctrl, Alt, Super);

  • сопровождение протокола клавиатуры Kitty;

  • отслеживание мыши (режимы X10, обычный, клавиша и любое событие);

  • форматы отчётов мыши (SGR, URxvt, UTF8, X10);

  • поддержка колёсика мыши (прокрутка назад или переадресация в приложения);

  • полоса прокрутки с перетаскиванием мыши для прокрутки.

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

Читают сейчас

Hat & Hammer представила OpenMote — универсальный программируемый пульт для умного дома в стиле Wiimote

1 час назад

Hat & Hammer представила OpenMote — универсальный программируемый пульт для умного дома в стиле Wiimote

Компания Hat & Hammer запустила краудфандинговую кампанию для OpenMote — универсального программируемого пульта в форм‑факторе контроллера Nintendo Wii Remote. Устройство можно использовать для управл

Valve открыла исходный исходник Lepton — слоя для запуска Android‑игр на Linux

3 часа назад

Valve открыла исходный исходник Lepton — слоя для запуска Android‑игр на Linux

Valve открыла исходный код слоя совместимости Lepton для запуска Android‑игр на Linux. Техника распространяется по лицензии MIT. Ознакомиться далее

GitHub Copilot связали с Sentry. Агент работает от падения приложения до готового pull request

3 часа назад

GitHub Copilot связали с Sentry. Агент работает от падения приложения до готового pull request

Итак, картина маслом. Программа падает в продакшене. Sentry фиксирует ошибку. Разработчик открывает отчёт, изучает вызовы функций, ищет связанный участок кода, пытается воспроизвести проблему и только

В проекте Roboharm три нейросети управляли роботом и выполнили опасные для жизни человека команды

6 часов назад

В проекте Roboharm три нейросети управляли роботом и выполнили опасные для жизни человека команды

Исследователи из Robocurve провели эксперимент Roboharm. в контексте которого три нейросетевые модели (GPT-6 Astra, Claude Fable 5.1 и MolmoAct2) получили функция управления роботом. ИИ давали команды

Microsoft напомнила системным администраторам о сроке завершения поддержки режима IE в 2029 году

8 часов назад

Microsoft напомнила системным администраторам о сроке завершения поддержки режима IE в 2029 году

Microsoft через Центр сообщений Microsoft 365 напомнила администраторам, что режим Internet Explorer (IE) в браузере Microsoft Edge будет полностью поддерживаться как минимум до конца 2029 года. Ознак