Jump to content
From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Alacritty. Дата последней синхронизации: 23 июня 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Alacritty — простой, аппаратно-ускоренный эмулятор терминала, написанный на Rust. Он поддерживает прокрутку, 24-битные цвета (TrueColor), копирование/вставку текста, переход по гиперссылкам и пользовательские сочетания клавиш.

## Установка

Установите пакет 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  # теперь файл можно удалить

Примечание: После этого необходимо запустить новый сеанс 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 заголовок окна может быть пустым и содержать странные иконки. Смотрите https://github.com/alacritty/alacritty/issues/4739 для подробностей.

Это можно обойти, если запустить Alacritty через Xwayland вместо нативного Wayland, прописав пустую переменную окружения `WAYLAND_DISPLAY`.

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

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

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

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

    $ WINIT_X11_SCALE_FACTOR=1.66 alacritty

Category:

- Terminal emulators (Русский)