LINUX.ORG.RU

Ghostty 1.4.0

 ghostty, , ,


0

2

Команда разработчиков эмулятора терминала 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).

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

★★★★★

Проверено: maxcom ()
Последнее исправление: hobbit (всего исправлений: 7)
Ответ на: комментарий от maxcom

Tabs in the titlebar (macos-titlebar-style = tabs) lay out correctly again.

ИИ-шечка же переводила.

Ololo_Trololo ★★★
()
Ответ на: комментарий от delidov_george

Терминалу нужно GPU-ускорение?

Терминалы использовали аппаратное ускорение на MDA, CGA, EGA, VGA в виде встроенного в видеокарту знакогенератора. Затем перешли на софтовый рендеринг глифов и стали медленнее. GPU позволяет рендерить глифы снова быстро.

Yampp ★
()
Ответ на: комментарий от Yampp

Знакогенератор есть в любой современной видеокарте, которая умеет в legacy boot (CSM) - передача управления загрузчику осуществляется в текстовом режиме. Почти все современные видеокарты умеют legacy boot, кроме некоторых ориентированных на сервера, у которых нет подходящей секции в BIOS. Но, да обычно этот знакогенератор даже в legacy boot используется полсекунды между BIOS и загрузчиком и рисует мигающий курсор или чёрный экран. Но он есть))

GPFault ★★★★
()
Последнее исправление: GPFault (всего исправлений: 1)

Эх, надо будет сходить в Ghostty🤔

UriZzz ★★
()

Кроссплатформенный, говорите? Но ведь только MacOS и Linux. Где Windows? Без нее это условная кроссплатформенность.

perepiska
()
Ответ на: комментарий от Yampp

У меня почему-то не воспроизводится это «быстро».

Замеряю

time ( dd if=/dev/zero bs=4096 count=$((32*1024)) of=/dev/stdout | tr '\0' 'z' )

Говно мамонта (старая гвардия):

urxvt: 1.01s (!!!)
xterm: 2.92s
st (st.suckless.org): 1.73s

Новые и блестящие:

alacritty: 2.38s
kitty: 4.67s
ghostty: 9.82s (!!!)

Ghostty ещё и выглядит как говно с этой gtk4-панелью/рамкой сверху.

Может, я не то замеряю и есть какой-то годный бенчмарк. Если так, то ткните.

shdown ★★
()
Последнее исправление: shdown (всего исправлений: 2)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.