Alacritty (Русский)
Alacritty — простой, аппаратно-ускоренный эмулятор терминала, написанный на Rust. Он поддерживает прокрутку, 24-битные цвета, копирование/вставку текста, переход по гиперссылкам и пользовательские сочетания клавиш.
Установка
Установите пакет alacritty или версию для разработчиков — alacritty-gitAUR.
Настройка
Alacritty ищет конфигурационный файл по следующим путям, в указанном порядке:
$XDG_CONFIG_HOME/alacritty/alacritty.yml
$XDG_CONFIG_HOME/alacritty.yml
$HOME/.config/alacritty/alacritty.yml
$HOME/.alacritty.yml
Скопируйте шаблон файла конфигурации из /usr/share/doc/alacritty/example/alacritty.yml
в один из приведённых путей и раскомментируйте настройки, которые желаете изменить. Большая часть настроек применится, как только вы сохраните файл.
Цвета
Смотрите вики проекта для получения списка доступных цветовых схем. Если понравившаяся цветовая схема есть в списке, то вставьте приведённый код в ваш конфигурационный файл.
Шрифт
Если вы не хотите использовать шрифт, установленный в системе по умолчанию, то можете указать другой, изменив следующие строки:
font: normal: family: monospace style: Regular bold: family: monospace style: Bold italic: family: monospace style: Italic bold_italic: family: monospace style: Bold Italic size: 11
Замените monospace
на имя шрифта, полученное в качестве вывода следующей команды:
$ fc-list : family style
Обратите внимание, что некоторые шрифты не предоставляют стиль Italic
, а используют вместо этого Oblique
.
Советы и рекомендации
Запуск нового экземпляра в том же каталоге
Добавьте следующие строки в ваш файл конфигурации, чтобы запускать новый экземпляр Alacritty в текущей рабочей директории при нажатии Ctrl+Shift+Enter
:
key_bindings: - { key: Return, mods: Control|Shift, action: SpawnNewInstance }
"пользователь@хост:каталог" в заголовочной панели окна
Заголовочная панель окна показывает "Alacritty", в отличие от других эмуляторов терминала для Arch, которые по умолчанию показывают "пользователь@хост:каталог"
Чтобы применить поведение Arch по умолчанию ко всем своим пользователям в Alacritty, отредактируйте ваш файл /etc/bash.bashrc
.
Найдите выражение "case", которое устанавливает $PROMPT_COMMAND
для других терминалов:
case ${TERM} in xterm*|rxvt*|Eterm|aterm|kterm|gnome*) PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' ;; screen*) PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' ;; esac
Затем отредактируйте строчку xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
, добавив в неё alacritty
, чтобы получилось xterm*|rxvt*|Eterm|alacritty|aterm|kterm|gnome*)
.
Режим Vi и копирование/вставка
Режим Vi позволяет перемещаться внутри окна Alacritty и использовать прокрутку при помощи клавиатуры. По умолчанию можно переключить этот режим, нажав Ctrl+Shift+Space
. Для копирования можно либо использовать мышку, чтобы выбрать текст, и нажать Ctrl+Shift+c
, либо войти в режим Vi, начать выделение с помощью v
, перемещать его с помощью hjkl
, как в vim, и скопировать выделенный текст с помощью y
. Для вставки нажмите Ctrl+Shift+v
. Чтобы скопировать/вставить в/из буфер(а) обмена X, можно использовать выделение мышкой для копирования и нажатие средней кнопки мыши для вставки.
Регулярные выражения-подсказки
Регулярные выражения-подсказки можно использовать для нахождения текста в видимой части терминала и передачи его в другие приложения. После активации подходящие фрагменты текста подсвечиваются с помощью "подсказок" согласно настроенному словарю и доступны пользователю для выделения с помощью клавиатуры.
По умолчанию Alacritty предоставляет подсказки для URL с помощью сочетания клавиш Ctrl+Shift+U
и открывает их с помощью xdg-open. Подробности по настройке см. в разделе hints:
в alacritty.yml
.
Решение проблем
Мышь некорректно работает в Vim
Добавьте ttymouse=sgr
в .vimrc
или перейдите на Neovim. Кроме того, см. эту проблему.
Прозрачные границы в dwm
При использовании dwm границы alacritty становятся прозрачными. Добавление следующей строки в dwm.c
в каталоге с исходным кодом dwm и повторная компиляция решают проблему.
if (!XftColorAllocName(...)) die("error, cannot allocate color '%s'", clrname); /* Найдите эту строку */ dest->pixel |= 0xff << 24; /* Добавьте эту строку */
Функционал терминала недоступен в удалённых сеансах
При подключении к удалённой системе из Alacritty, например с помощью SSH, в ней может не быть записи для Alacritty в базе данных terminfo (/usr/share/terminfo/a/alacritty*
). В таком случае, интерактивные функции терминала работать не будут. Это можно исправить, скопировав информацию об Alacritty на удалённый сервер, как описано здесь.
На локальном устройстве, используя Alacritty:
$ infocmp > alacritty.terminfo # Экспорт информации об Alacritty $ scp alacritty.terminfo user@remote-host:~/ # Можно использовать любой способ копирования на удалённое устройство
На удалённом устройстве, в папке, куда был скопирован alacritty.terminfo
:
$ tic -x alacritty.terminfo # импорт для текущего пользователя $ rm alacritty.terminfo # теперь файл можно удалить
В качестве альтернативы, можно изменить значение TERM
в конфигурации на xterm-256color
вместо установленного по умолчанию alacritty
:
env: TERM: xterm-256color
Требует оборудование с поддержкой GLSL 3.30
Можно заставить Alacritty использовать программную отрисовку, если запустить его с переменной окружения LIBGL_ALWAYS_SOFTWARE=1
[1]:
$ LIBGL_ALWAYS_SOFTWARE=1 alacritty
Нет заголовка окна на Wayland GNOME
При использовании Wayland GNOME заголовок окна может быть пустым и содержать странные иконки. Смотрите https://github.com/alacritty/alacritty/issues/4739 для подробностей.
Это можно обойти, если запустить Alacritty через XWayland вместо нативного Wayland, прописав пустую переменную окружения WAYLAND_DISPLAY
:
$ WAYLAND_DISPLAY= alacritty
Кроме того, возможно заменить две строчки с Exec в /usr/share/applications/Alacritty.desktop
на:
Exec=env WAYLAND_DISPLAY= alacritty
Разные размеры шрифтов на нескольких мониторах
По умолчанию, Alacritty пытается масштабировать шрифты до подходящих размеров на каждом мониторе на основании Device pixel ratio
. При некоторых конфигурациях с несколькими мониторами, это может приводить к сильно различающимся физическим размерам [2], [3].
Чтобы просмотреть текущее соотношение пикселей на каждом мониторе, выполните alacritty -v
, перемещайте по очереди дочернее окно на каждый монитор и обращайте внимание на значение Device pixel ratio
, отображающееся в родительском окне.
Задание постоянного соотношения пикселей с помощью переменной окружения WINIT_X11_SCALE_FACTOR
может исправить проблему с разными размерами шрифтов:
$ WINIT_X11_SCALE_FACTOR=1.66 alacritty