Kitty — популярный терминальный эмулятор, ориентированный на продвинутых пользователей: в нём есть протокол отображения изображений, плавные анимации курсора и множество настроек. Отдельная его фишка — kittens: функциональные модули, которые расширяют возможности Kitty или работают как самостоятельные программы. Они имеют прямой доступ к запущенному экземпляру Kitty и могут менять его поведение на лету.
Часть kittens поставляется вместе с Kitty и написана на Go, но при желании можно написать собственный модуль на Python под свою задачу. Стоит помнить, что большинство kittens работают только в Kitty — при переходе на другой эмулятор придётся заново привыкать.
Полезные встроенные kittens
Переключение тем — самый популярный модуль. Команда kitten themes открывает интерактивный список готовых цветовых схем: можно листать тёмные и светлые варианты с живым предпросмотром, выбрать нужный и применить без правки конфигурации. Современные версии Kitty умеют менять тему автоматически вслед за системным тёмным или светлым режимом.
Выбор шрифтов — kitten choose-fonts запускает интерфейс, в котором можно выбрать новый шрифт, посмотреть, как он выглядит, и подправить отдельные начертания. Это удобнее, чем угадывать оформление вслепую.
Файловый пикер — kitten choose-files работает как аналог fzf, но заточен под поиск файлов: поддерживает выбор нескольких файлов сразу, учитывает правила .gitignore в git-репозиториях, умеет выбирать ещё не существующие файлы (режим «сохранить как») и целые директории.
Быстрый доступный терминал — модуль quick-access-terminal напоминает выпадающий терминал Yakuake из KDE. Запускается командой kitten quick-access-terminal, а настройки можно вынести в файл quick-access-terminal.conf в ~/.config/kitty/.
Панель — kitten под названием Panel создаёт десктопную панель, похожую на i3bar. Возможно, для терминала это избыточно, но в минималистичных сценариях интересно: например, можно поставить btop как обои рабочего стола.
Diff — встроенный инструмент сравнения: kitten diff file1 file2 даёт сравнение бок о бок, подсветку синтаксиса, сравнение изображений и рекурсивное сравнение директорий.
Для тех, кто управляет серверами, пригодятся Broadcast (ввод текста сразу в несколько окон Kitty) и SSH-модули для редактирования файлов и работы с буфером обмена по SSH.
Привязка к горячим клавишам
Любой kitten можно повесить на клавиатурное сокращение или алиас, чтобы не набирать команду вручную. Важно, чтобы выбранные клавиши не конфликтовали с существующими сочетаниями терминала или системы.
Пример из конфигурации Kitty — привязка F1 к файловому пикеру в режиме выбора нескольких файлов:
map f1 kitten choose-files --mode=files
Алиас для diff-инструмента добавляется в ~/.bashrc:
alias d="kitten diff"
После этого d file1 file2 покажет разницу между файлами. Аналогично F2 можно назначить на быстрый терминал:
map f2 kitten quick-access-terminal
У большинства kittens есть внешние аналоги — fzf для выбора файлов или difftastic для сравнения, — но встроенная интеграция с чистым интерфейсом делает Kitty более цельным инструментом, чем обычный эмулятор.
Источник: itsfoss.com