Alacritty - Arch Linux 中文维基

跳至內容

# Alacritty

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Alacritty，最近一次同步於 2024-11-13，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

Alacritty，一個用 Rust 語言編寫的，簡潔、具有 GPU 加速功能的終端模擬器。它支持回滾、24 位顏色（zhwp:色彩深度）、複製粘貼、點擊 URL 和自定義按鍵綁定。

## 安裝

安裝 alacritty包 包或者開發版本 alacritty-gitAUR。

## 配置

Alacritty 按照以下順序搜索配置文件：

- `$XDG_CONFIG_HOME/alacritty/alacritty.toml`
- `$XDG_CONFIG_HOME/alacritty.toml`
- `$HOME/.config/alacritty/alacritty.toml`
- `$HOME/.alacritty.toml`

0.13.0 以前的版本使用 YAML 配置文件。舊的 YAML 配置文件可通過運行 `alacritty migrate` 轉換為 TOML。然而，自動遷移會丟棄所有注釋。

Alacritty 默認不提供配置文件。配置選項可從項目首頁中找到。如果啟用了 `live_config_reload` 選項（默認啟用），大部分設置將會在配置文件保存後立即生效。

### 顏色

有關可用配色方案的列表，請參閱 alacritty 主題倉庫。如果您喜歡的配色方案在列表中，請將提供的代碼粘貼到您的配置文件中。

### 字體

如果不想使用系統默認字體，可以通過更改以下行來指定不同的字體：

    [font]
    size = 12.0

    [font.bold]
    family = "monospace"
    style = "Bold"

    [font.bold_italic]
    family = "monospace"
    style = "Bold Italic"

    [font.italic]
    family = "monospace"
    style = "Italic"

    [font.normal]
    family = "monospace"
    style = "Regular"

將 `monospace` 替換為以下輸出中的某個字體名稱：

    $ fc-list : family style

請注意，某些字體不提供 `Italic` 而提供 `Oblique` 樣式。

## 提示和技巧

### 在同一目錄中生成新實例

將以下內容添加到配置文件中，之後，通過按下 `Ctrl+Shift+Enter` 使 Alacritty 在當前工作目錄中生成一個新的實例：

    [keyboard]
    bindings = [
       { key = "Return", mods = "Control|Shift", action = "SpawnNewInstance" }
    ]

### Vi 模式和複製粘貼

Vi 模式允許使用鍵盤在 Alacritty 的視口中移動和回滾。默認使用 `Ctrl+Shift+Space` 切換該模式。要複製內容，可使用滑鼠選擇並按 `Ctrl+Shift+c`，或進入 Vi 模式，用 `v` 開始選擇，然後像在 vim 中那樣用 `hjkl` 移動，最後按 `y` 複製選擇的內容。要粘貼內容，可按 `Ctrl+Shift+v`。要從 X 剪切板中複製或是往其中粘貼內容，可使用滑鼠選擇進行複製，然後用滑鼠中鍵進行粘貼。

### 提示（Hints)

終端提示被用於在終端的可視部分尋找文本或超連結，並通過管道將其傳至其他應用程式。默認情況下，Alacritty 通過快捷鍵 `Ctrl+Shift+O` 啟用網址連結（URL）提示並使用 xdg-open 將其打開。參見 Alacritty TOML 配置手冊的 `HINTS` 小節以獲取細節信息。

要使如 `filename.rs:line:character` 的文件提示（例如 `my_crate/src/server.rs:181:49`）能夠被滑鼠點擊並能使用 Visual Studio Code 打開，可在 Alacritty 的 TOML 配置中添加以下小節：

    alacritty.toml

    [[hints.enabled]]
    regex = "[^ ]+\\.rs:\\d+:\\d+"
    command = { program = "code", args = [ "--goto" ] }
    mouse = { enabled = true }

基於正則表達式的多種提示類型可通過添加多個 `[[hints.enabled]]` 小節實現。

### 隨時切換主題

要切換主題，例如通過 ssh 連接到一個伺服器時，可以使用如下命令：

    $ alacritty msg config "$(cat ~/path/to/theme.toml)"

## 故障排除

### 滑鼠在 Vim 中無法正常工作

將 `set ttymouse=sgr` 和 `set mouse=a` 添加至 `.vimrc` 中，或換用 Neovim。也可以參閱這個議題。

### 邊框在 dwm 中變成透明

Alacritty 的邊框在 dwm 中變得透明。將如下那行添加到 dwm 原始碼目錄的 `drw.c` 中並重新編譯可修復此問題：

    if (!XftColorAllocName(...))
        die("error, cannot allocate color '%s'", clrname); /* 找到這行代碼 */
    dest->pixel |= 0xff << 24;                            /* 添加這行代碼 */

### 終端功能在遠程 shell 中不可用

當使用 Alacritty 終端連接到遠程系統（例如 SSH）時，可能會發生此問題，系統的 terminfo 資料庫中可能沒有 Alacritty 的條目(`/usr/share/terminfo/a/alacritty*`)。 因此，所有交互式終端功能都不起作用。如 termite#Terminal issues with SSH（英語：termite#Terminal issues with SSH） 中所述，將 Alacritty 的 terminfo 複製到遠程伺服器可解決該問題。

在本地主機上，使用 Alacritty：

    $ infocmp > alacritty.terminfo                # 導出 Alacritty 的 Terminfo
    $ scp alacritty.terminfo user@remote-host:~/  # 或者使用其他方法複製到遠程主機上

在遠程主機上，在與先前複製 `alacritty.terminfo` 文件的相同目錄中：

    $ tic -x alacritty.terminfo  # 為當前用戶導入 Terminfo
    $ rm alacritty.terminfo      # 可選操作：刪除 Terminfo

上述過程可簡化為以下一行：

    $ infocmp | ssh "$user@$host" 'tic -x /dev/stdin'

注意：在此之後，您將需要啟動一個新的 SSH 會話以使遠程 shell 加載新的 Terminfo。

或者，可以將配置中的 `TERM` 設置為 `xterm-256color` 而不是默認的 `alacritty`：

    [env]
    TERM = "xterm-256color"

### Wayland GNOME 上沒有標題欄

當使用 Wayland GNOME時，標題欄是空的並且有奇怪的圖標。有關詳細信息，請參閱 https://github.com/alacritty/alacritty/issues/4739 以獲取詳細信息。

一種解決方案是設置一個空的 `WAYLAND_DISPLAY` 環境變量，使 Alacritty 以 Xwayland 啟動，而不是原生 Wayland。

### 多顯示器上字體大小不同

默認情況下，Alacritty 會在每個顯示器上嘗試根據 `Device pixel ratio` 將字體縮放到合適的大小。在某些有多個顯示屏的設置中，這會使字體的物理尺寸相差巨大，如 [1] 和 [2]。

要查看每個監視器的現有設備像素比率值，請運行 `alacritty -v`，將子窗口移動到每個監視器，並注意父窗口中報告的 `Device pixel ratio`。

使用環境變量 `WINIT_X11_SCALE_FACTOR` 強制設置一個固定的設備像素比應當足以解決字體大小不同的問題：

    $ WINIT_X11_SCALE_FACTOR=1.66 alacritty

也可以在配置文件中設置 `WINIT_X11_SCALE_FACTOR` 的值：

    [env]
    WINIT_X11_SCALE_FACTOR = "1.66"

### 無法恢復到先前用 pywal 設置的配色方案

可將以下代碼添加至 shell 的執行命令（`.bashrc`）中：

    if command -v wal > /dev/null 2>&1 && [ "$TERM" = "alacritty" ]; then
        wal -Rqe
    fi

這比簡單地添加 `wal -R` 更好，因為：

1. 只需在終端模擬器窗口中執行此操作。
2. `wal -R` 非常慢，並且不需要在每個子 shell 中執行。
3. 使用了 `-q` 選項，不需要查看標準輸出（StdOut）。
4. 不需要讓桌面的其他組件（例如 gtk、xrdb、polybar、i3）也重新加載顏色。這由 `-e` 標誌完成。

分類：​

- 終端模擬器

Alacritty
新增話題