Темы



Ghostty 1.4.0

Коротко сгенерировано ИИ по тексту статьи
  • Ghostty 1.4.0 вышел после семи месяцев разработки: 172 контрибьютора внесли 2 289 коммитов.
  • Эмулятор получил полную поддержку графического протокола Kitty, включая анимацию; передача изображений объёмом 64 МБ ускорилась примерно в 16 раз.
  • Сжатие истории экономит 70–90% памяти для текстовых логов, а лимит буфера прокрутки увеличен с 10 до 50 МБ.
good-penguin.png

Команда разработчиков представила Ghostty 1.4.0 — крупный релиз популярного эмулятора терминала. Новая версия вобрала в себя 7 месяцев активной разработки: над ней трудились 172 контрибьютора, сделавших 2 289 коммитов. Обновление приносит колоссальное ускорение, снижение потребления памяти, полноценную поддержку протокола Kitty и множество других улучшений для всех поддерживаемых платформ.

Ghostty — это быстрый, многофункциональный и кроссплатформенный эмулятор терминала, использующий собственный пользовательский интерфейс и аппаратное ускорение графики. Ghostty построен на libghostty — высокопортативной, встраиваемой библиотеке, которая предоставляет базовую эмуляцию терминала, состояние рендеринга и многое другое. libghostty лежит в основе всех встроенных терминалов в IDE от JetBrains, и сейчас ведутся работы по замене ядра терминала с libvterm на libghostty в Neovim.

Главные нововведения

1. 100% поддержка Kitty Graphics (с анимацией и относительным позиционированием)

Ghostty стал первым сторонним терминалом (помимо самого Kitty), реализовавшим полную спецификацию протокола графики Kitty.

  • Анимация: Теперь анимированные изображения (например, GIF через kitten icat) воспроизводятся прямо в терминале, а не замирают на первом кадре. Анимация автоматически ставится на паузу, когда окно терминала неактивно.
  • Относительное позиционирование: Позволяет программам привязывать дочерние изображения к родительским элементам, чтобы они перемещались вместе.
  • Производительность: Парсинг графических данных теперь переведен на SIMD, что ускорило передачу крупных изображений примерно в 16 раз (в тестах для 64 МБ данных).

2. Сжатие истории (Scrollback Compression) и снижение расхода памяти

  • Прозрачное сжатие: Невидимая часть истории строк теперь сжимается «на лету» в фоновом режиме во время простоя терминала, экономя от 70% до 90% физической памяти для текстовых логов. Распаковка происходит мгновенно при прокрутке или поиске.
  • Лимит истории по умолчанию: Благодаря компрессии стандартный лимит буфера прокрутки увеличен с 10 МБ до 50 МБ на один терминал.
  • Оптимизация вкладок: Новое пустое окно на macOS теперь потребляет всего около 16 КиБ (против 128 КиБ ранее). Неактивные вкладки теперь сбрасывают ресурсы GPU, что в тестах с 20 скрытыми вкладками снизило потребление памяти с 385 МБ до 18 МБ.

3. Резкий рост производительности и пропускной способности I/O

  • Обход ограничений macOS: Ядро macOS искусственно ограничивает размер каждого чтения из pty примерно до 1 КиБ. Ghostty теперь производит чтение в отдельном потоке, увеличивая общую сквозную пропускную способность I/O на 25–55%.
  • Парсер VT: Обработка простого ASCII-текста в бенчмарках выросла со 128 МБ/с до 725 МБ/с (в 5.7 раз), а работа с текстом на CJK — в 3.4 раза. Операция cat для 150-мегабайтного текстового файла на macOS теперь занимает всего 566 мс вместо 1.5 секунд.
  • Изменение размера: Изменение размеров окна с большими логами (например, 10 000 строк) теперь происходит примерно в 6 раз быстрее.

4. Новый OpenGL-рендерер для Linux и FreeBSD

Приложение для GTK получило полностью переработанный конвейер рендеринга без использования устаревшего GtkGLArea. Рендерер рисует кадры через EGL в отдельном потоке с тройной буферизацией (DMABUF).

  • Главный визуальный итог: исправлена размытость текста при дробном масштабировании (например, 125% или 150%) в Linux.

5. Полноценная интеграция с протоколом буфера обмена Kitty (OSC 5522)

Ghostty теперь поддерживает протокол обмена буфера обмена Kitty на macOS и GTK. Это позволяет терминальным приложениям передавать и принимать не только чистый текст, но и изображения, HTML и другие форматы, а также запрашивать доступ к конкретным типам данных в буфере обмена с удобным окном предпросмотра и запросом прав.

6. Улучшения для SSH и утилита ghostty +ssh

Представлен новый удобный CLI-инструмент ghostty +ssh, который автоматически подготавливает удаленный хост (устанавливает terminfo, пробрасывает переменные окружения COLORTERM, TERM_PROGRAM и др.) и запускает стандартный ssh. Теперь можно просто настроить алиас:

alias ssh='ghostty +ssh --'

7. Поддержка macOS 27 (Golden Gate)

Добавлена полная совместимость с macOS 27: исправлено отображение вкладок в стиле tabs (macos-titlebar-style = tabs), устранено появление серых плашек поверх тем при использовании кастомного стиля заголовков, а также сохранена полная обратная совместимость вплоть до macOS 13 (Ventura).

>>> Полный список изменений

©  Linux.org.ru