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 中所述,將 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'
或者,可以將配置中的 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
更好,因為:
- 只需在終端模擬器窗口中執行此操作。
-
wal -R
非常慢,並且不需要在每個子 shell 中執行。 - 使用了
-q
選項,不需要查看標準輸出(StdOut)。 - 不需要讓桌面的其他組件(例如 gtk、xrdb、polybar、i3)也重新加載顏色。這由
-e
標誌完成。