Разработчики GPU-ускоряемого эмулятора терминала Kitty представили версию 0.49. Главным нововведением релиза стала поддержка пользовательских шейдеров, что позволяет интегрировать различные визуальные эффекты непосредственно в среду терминала. Среди возможных вариантов использования — создание анимированных фонов, подсветка активных областей, эффекты перемещения курсора и анимации при кликах мыши, реализуемые за счет вычислительных мощностей графического процессора.

Оптимизация производительности и ускорение обработки данных
Обновление принесло существенные улучшения в быстродействие. Разработчики заявляют, что реальная пропускная способность Kitty увеличилась на 15–35 % в зависимости от выполняемых задач. Особое внимание было уделено работе с большими объемами текста: при использовании буфера прокрутки (scrollback), превышающего размер кеша процессора, скорость возросла на 35 %. Рабочие процессы с преобладанием символов ASCII стали быстрее примерно на 50 %, а нагрузки, связанные с Unicode — на 15 %.
Значительная часть прироста производительности достигнута благодаря оптимизации декодирования UTF-8 с помощью инструкций SIMD. Декодирование ASCII ускорилось на 20 %, а работа с многобайтовым текстом на системах x86 и ARM стала быстрее примерно на 50 %. Владельцы процессоров Intel архитектуры Ice Lake и новее, а также AMD Zen 4 и последующих поколений, получили поддержку AVX-512, которая дополнительно ускоряет обработку многобайтового текста еще на 75 %. Обработка кода Escape-последовательностей стала эффективнее на 30 % благодаря изменениям в механизмах блокировки ввода и парсинга параметров CSI. Дополнительные SIMD-оптимизации для печатных символов ASCII обеспечили еще 10 % прироста в задачах с большими массивами простого текста.
Графика и дополнительные функциональные возможности
Скорость альфа-смешивания для изображений и кадров анимации в графическом протоколе выросла в 2–3,5 раза. Аналогичные оптимизации с использованием векторизованных примитивов компоновки применили для альфа-масок глифов. Для уменьшения нагрузки при перерисовке Kitty теперь кеширует результаты формирования текста через библиотеку HarfBuzz.
Интерфейс и настройки
Пользователям стали доступны новые параметры конфигурации. Опция window_border_radius позволяет скруглять границы окон, а remap_modifiers дает возможность изменять поведение клавиш-модификаторов. В макете Splits реализована политика пропорционального изменения размеров, сохраняющая настроенные соотношения сторон при манипуляциях с панелями. Полоса прокрутки получила режим scrolled-or-hovered, при котором она отображается только во время скроллинга или при наведении курсора.
Расширение функционала
Команда kitten @ screenshot позволяет делать снимки экрана в формате PNG для отдельных окон, вкладок или всего окна ОС. С помощью kitten @ set-os-window-title можно менять заголовок уже открытого окна. Кроме того, появилась возможность перетаскивать выделенный текст в другие приложения. Вертикальные вкладки теперь лучше обрабатывают многострочные названия, а функция remember_window_size научилась запоминать состояние максимизации окна. Сессии теперь корректно сохраняют и восстанавливают неактивные макеты. Для пользователей Linux исправлены задержки при отображении символов, отсутствующих в основном шрифте, а также устранены проблемы в Wayland, касающиеся работы колеса прокрутки высокого разрешения и общего буфера обмена в изолированных контейнерах.






