Представлен публике публичный демо-проект 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.

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

Японская Balmuda совместно с Джони Айвом выпустила The Clock — минималистичный будильник с режимами для фокусировки

51 минуту назад

Японская Balmuda совместно с Джони Айвом выпустила The Clock — минималистичный будильник с режимами для фокусировки

Японская организация Balmuda совместно с бывшим дизайнером Apple Джони Айвом (Jony Ive) выпустила минималистичные часы-будильник The Clock. Помимо привычных функций, ожидаемых от будильника, есть режи

ВК ДжейТи Встреча: оптимизация и масштабируемость на Go

53 минуты назад

ВК ДжейТи Встреча: оптимизация и масштабируемость на Go

Привет, овчане! Весной стартует F1 для Go-разработчиков, встречаемся в двух столицах: 4 апреля — в Москве, 11 апреля — в Санкт-Петербурге. Обсудим реальные кейсы из практики VK и архитектурные решения

Исследователь провёл реверс-инжиниринг TiinyAI Pocket Lab на основе маркетинговых данных

53 минуты назад

Исследователь провёл реверс-инжиниринг TiinyAI Pocket Lab на основе маркетинговых данных

Энтузиаст воссоздал характеристики мини-ПК TiinyAI Pocket Lab по маркетинговым фотографиям. Выяснилось, что организация во многом преувеличила возможности устройства. Читать далее

В Антарктиде построят станцию для молодых учёных

56 минут назад

В Антарктиде построят станцию для молодых учёных

Российские учёные смогут приступить к исследованиям на антарктическом острове Смоленск уже в январе 2027 года. Для этого планируется создать новую полярную станцию по инициативе Фёдора Конюхова, о чём

Цукерберг разрабатывает персонального ИИ-агента, который должен помочь ему выполнять работу гендиректора

1 час назад

Цукерберг разрабатывает персонального ИИ-агента, который должен помочь ему выполнять работу гендиректора

Генеральный директор Meta* Марк Цукерберг разрабатывает персонального агента на искусственном интеллекте, который должен помочь выполнять работу главы корпорации, пишет Wall Street Journal. Источники