Alacritty (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Alacritty. Дата последней синхронизации: 17 августа 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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, можно использовать выделение мышкой для копирования и нажатие средней кнопки мыши для вставки.

Решение проблем

Мышь некорректно работает в 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  # теперь файл можно удалить
Примечание: После этого необходимо запустить новый сеанс SSH, чтобы удалённая командная оболочка загрузила информацию об Alacritty.

В качестве альтернативы, можно изменить значение 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 заголовок окна может быть пустым и содержать странные иконки [2].

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Удаление WAYLAND_DISPLAY приводит к использованию XWayland вместо родного Wayland. (Discuss in Talk:Alacritty (Русский))

Это можно обойти, если запустить Alacritty с пустой переменной окружения WAYLAND_DISPLAY:

$ WAYLAND_DISPLAY= alacritty

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Файлы в /usr/share не должны редактироваться, они будут перезаписаны при следующем обновлении пакета. (Discuss in Talk:Alacritty (Русский))

Кроме того, возможно заменить две строчки с Exec в /usr/share/applications/Alacritty.desktop на:

Exec=env WAYLAND_DISPLAY= alacritty

Разные размеры шрифтов на нескольких мониторах

По умолчанию, Alacritty пытается масштабировать шрифты до подходящих размеров на каждом мониторе на основании Device pixel ratio. При некоторых конфигурациях с несколькими мониторами, это может приводить к сильно различающимся физическим размерам [3], [4].

Чтобы просмотреть текущее соотношение пикселей на каждом мониторе, выполните alacritty -v, перемещайте по очереди дочернее окно на каждый монитор и обращайте внимание на значение Device pixel ratio, отображающееся в родительском окне.

Задание постоянного соотношения пикселей с помощью переменной окружения WINIT_X11_SCALE_FACTOR может исправить проблему с разными размерами шрифтов:

$ WINIT_X11_SCALE_FACTOR=1.66 alacritty