出自 Arch Linux 中文维基

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=sgrset 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 標誌完成。