Alacritty
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
标志完成。