Терминал в Linux давно перестал быть простым окном с моноширинным шрифтом. kitty и Alacritty — два зрелых эмулятора с выводом через видеокарту: они быстрее отрисовывают прокрутку, спокойнее переносят гигабайты вывода и одинаково работают в X11 и Wayland. Оба проекта бесплатны и развиваются сообществом. Разница в подходе: kitty даёт вкладки, сплиты, собственные расширения и протокол изображений, а Alacritty остаётся минималистичным движком, оставляя раскладку окон менеджеру окон или tmux. Ниже — установка, рабочие конфиги и диагностика, с которой придётся столкнуться на практике.
Две философии одного ускорения
Оба терминала используют GPU для растеризации глифов и композитинга, поэтому плавность прокрутки почти не зависит от загрузки процессора. Оба поддерживают 24-битный цвет, гиперссылки, копирование по выделению и перезагрузку конфигурации без выхода. Дальше начинаются различия.
- kitty — самодостаточная среда: вкладки, окна, лейауты, сессии, поиск, просмотр изображений и управление через сокет.
- Alacritty — один экран и ничего лишнего: вкладок нет, вместо них tmux, Zellij или правила оконного менеджера.
- kitty написан на C и Python, конфиг плоский, расширения — отдельные kitten-программы.
- Alacritty написан на Rust, конфиг с версии 0.13 — TOML, старые YAML-файлы переносятся командой migrate.
- Оба умеют выделение в стиле Vi, но в kitty оно встроено в общую систему действий, а в Alacritty включается отдельным режимом.
Скорость в повседневной работе сопоставима: разница заметна на выводе вроде cat большого лога или сборки с тысячами строк, и там оба решения близки. Выбор почти всегда упирается в удобство, а не в производительность.
Установка и первый запуск
В репозиториях Debian, Ubuntu, Fedora и Arch оба пакета есть под своими именами. Проверьте версию сразу после установки: сборки в LTS-дистрибутивах могут не знать части опций.
sudo apt install kitty alacritty
sudo dnf install kitty alacritty
sudo pacman -S kitty alacritty
kitty --version; alacritty --version
Запускать можно из текущего терминала или из меню приложений. Если шрифт выглядит размытым, проверьте, что сессия действительно Wayland или X11 с аппаратным ускорением: echo $XDG_SESSION_TYPE и glxinfo -B дадут ответ за пару секунд.
Настройка kitty
Основной файл — ~/.config/kitty/kitty.conf. Формат простой: директива и значение через пробел, комментарии с решётки. Конфиг читается при старте, а перечитывается по Ctrl+Shift+F5, поэтому экспериментировать удобно без перезапуска.
font_family JetBrains Mono
font_size 11.5
adjust_line_height 105%
scrollback_lines 20000
tab_bar_style powerline
tab_powerline_style slanted
enable_audio_bell no
copy_on_select clipboard
mouse_hide_wait 2.0
map ctrl+shift+t new_tab_with_cwd
map ctrl+shift+enter new_window_with_cwd
Директива map переназначает действие, не трогая остальные настройки. Для управления из скриптов добавьте allow_remote_control socket-only, тогда команда kitty @ ls покажет окна и вкладки с идентификаторами, а kitty @ set-colors сменит палитру на лету. Это удобно для темы, которая переключается вместе с окружением рабочего стола.
Отдельная сильная сторона — kitten-программы. kitty +kitten icat photo.png выводит изображение прямо в терминале, kitty +kitten hyperlinked_grep TODO запускает поиск с кликабельными путями, kitty +kitten ssh копирует terminfo на удалённый хост. Без этого на сервере с TERM=xterm-kitty ломаются стрелки и цвета.
Настройка Alacritty
Файл конфигурации — ~/.config/alacritty/alacritty.toml. Если остался YAML, выполните alacritty migrate: утилита перенесёт настройки в новый формат. Изменения применяются автоматически при сохранении.
[window]
padding = { x = 10, y = 8 }
opacity = 0.95
decorations = "none"
[font]
size = 11.5
normal = { family = "JetBrains Mono", style = "Regular" }
[scrolling]
history = 20000
[keyboard]
bindings = [
{ key = "V", mods = "Control|Shift", action = "Paste" },
]
Встроенных вкладок нет, зато есть режим выделения Ctrl+Shift+Space, поиск по буферу Ctrl+Shift+F и переход по ссылкам. Конфигурацию можно менять без правки файла: alacritty msg config window.opacity=0.9. Для диагностики запускайте alacritty -vv — в лог попадёт информация о выбранном бэкенде и шрифтах.
Диагностика: TERM, шрифты, GPU
Первое, что ломается при переходе, — переменная TERM на удалённых машинах. Второе — шрифты: если в конфиге указано семейство, которого нет в системе, эмулятор молча подставит замену. Проверить соответствие можно через fc-match.
echo $TERM; tput colors
fc-match "JetBrains Mono"
infocmp -1 xterm-kitty | head
LIBGL_ALWAYS_SOFTWARE=1 kitty
glxinfo -B | grep "OpenGL renderer"
Запуск с программным рендерингом помогает отделить проблему драйвера от проблемы конфигурации: если так терминал работает, ищите причину в драйвере видеокарты. На NVIDIA стоит проверить, что используется проприетарный модуль, а на гибридной графике — что приложение запускается на нужном адаптере.
kitty +kitten ssh user@server
kitty @ --to unix:/tmp/kitty ls
alacritty msg config window.opacity=0.9
alacritty --config-file ~/.config/alacritty/alacritty.toml
Эти четыре команды закрывают типовые сценарии: подключение к серверу с переносом terminfo, управление запущенным экземпляром kitty, изменение прозрачности на лету и запуск Alacritty с альтернативным конфигом для эксперимента, не затрагивая основной файл.
Что выбрать
kitty выигрывает, если вы живёте в терминале и не хотите ставить tmux: вкладки, сплиты, сессии и просмотр изображений уже есть. Alacritty лучше ложится в окружение, где раскладкой занимается i3, Sway или Hyprland: один экран, предсказуемое поведение, минимальная конфигурация и лёгкая замена на любой другой терминал.
На слабом ноутбуке оба работают сопоставимо, но kitty с большим scrollback и включёнными эффектами потребляет чуть больше памяти. На сервере без графики разницы нет вовсе — там важнее terminfo и корректный TERM.
Чек-лист миграции
- Сохраните старый конфиг и список горячих клавиш, которыми реально пользуетесь.
- Проверьте, что нужный шрифт установлен и находится через
fc-match. - Убедитесь, что удалённые хосты получают terminfo, иначе стрелки и цвета сломаются.
- Перенесите привязки копирования и вставки, иначе мышечная память будет мешать неделю.
- Проверьте поведение в tmux и при подключении по SSH, а не только в локальной сессии.
Итог
kitty и Alacritty решают одну задачу разными способами. Первый — готовый инструмент со встроенной организацией окон и расширениями, второй — быстрый и предсказуемый движок для тех, кто уже выбрал tmux и тайлинговый менеджер. Для домашних сценариев достаточно любого из них, а решающим аргументом становится не скорость вывода, а привычный способ раскладывать окна и переносить настройки между машинами.