mlterm

出自 ArchWiki

mlterm 是一个非常快速的 低延迟 终端模拟器,它具有许多独特的功能,例如渲染可变宽度字体、开箱即用的正确双向支持、守护进程模式、多个 XIM 以及真正的背景透明。

安装

安装 mlterm-gitAUR 软件包。

配置

设置永久存储在 ~/.mlterm/ 下的纯文本文件中。

大多数设置在 ~/.mlterm/main 中定义

所有设置都可以通过命令行选项设置。

可以使用 Ctrl+RightMouse 打开 GUI 配置向导,以帮助您尝试不同的设置。

内边距

可以通过在主配置文件 ~.mlterm/main 中设置 inner_border=value 或使用 --border=value 选项来启用内边距。

字体

字体在两个不同的文件 ~/.mlterm/aafont (等宽字体) 和 ~/.mlterm/vaafont (非等宽字体) 中分别定义。

ENCODING = FONT NAME, SIZE

每种编码都可以使用不同的字体。查看手册页以获取完整的编码列表。

Mlterm 提供了一个名为 mlfc 的工具,该工具使用 Unicode 区块-字体对列表填充 aafont,可以进一步帮助您选择要用于特定语言的字体。

使用可变宽度字体

mlterm 可以正确显示可变宽度字体。首先,在 .mlterm/vaafont 中定义它们

DEFAULT = Latin Modern Roman, 12

并在 .mlterm/main 中的选项中启用它

use_variable_column_width = true

或者,您可以在命令行上传递它 --varwidth 或选中配置窗口字体对话框中的可变列宽选项。需要启用抗锯齿,否则它将回退到等宽字体。

use_anti_alias = true

根据字体,调整屏幕尺寸与字体大小的比率,以便使窗口适应其单元格新的可变宽度。使用 --wscr percentage 选项或将其永久保存在主配置文件中

screen_width_ratio = percentage

自定义颜色

您可以在 ~/.mlterm/color 文件中使用以下颜色名称定义您的自定义颜色 

black=#48483e
red=#dc2566
green=#8fc029
yellow=#d4c96e
blue=#55bcce
magenta=#9358fe
cyan=#56b7a5
white=#acada1
hl_black=#76715e
hl_red=#fa2772
hl_green=#a7e22e
hl_yellow=#e7db75
hl_blue=#66d9ee
hl_magenta=#ae82ff
hl_cyan=#66efd5
hl_white=#cfd0c2

此外,前景色和背景色值需要分别使用 -f-b 参数指定,或永久存储在 .mlterm/main 中 

fg_color = #f1ebeb
bg_color = #272822

先前示例的值对应于 .Xresources monokai 颜色主题。[1]

用法

您可以按 Shift+UpShift+Prior 键或使用鼠标滚轮访问回滚模式以滚动缓冲区。

要进入缓冲区选择模式,请按 Ctrl+Shift+Enter 并使用箭头键导航。按空格键 Space 开始和结束选择。选定的文本将被复制到剪贴板。

两种模式都支持使用 hjklu/d 键进行 vi 移动以导航屏幕。

故障排除

修复点出现在文本绘制区域外的问题

某些字体具有字形(例如,阿拉伯字母、变音符号、括号等),这些字形会溢出文本绘制区域。它们可能会产生粘在终端上并随着时间推移而累积的点。类似于 xterm'useClipping 设置,可以通过 --clp 选项启用剪切,或者添加

use_clipping = true

到您的主配置文件。

使用 Xft 渲染 CJK 字符

如果您在使用 CJK 字符渲染时看到空字形框,那是因为您使用的字体不支持它们,并且与使用 cairo 不同,使用 Xft 的 mlterm 不会查找备用字体作为替代方案(正如作者在 GitHub issue#18 中解释的那样)。

如果您的默认字体不支持 CJK 字形,您可以在 ~/.mlterm/aafont 中将此类字体(例如 Noto Sans Mono CJK JP)指定为默认字体之外的备用字体 

DEFAULT = Fantasque Sans Mono 12
ISO10646_UCS4_1_FULLWIDTH = Noto Sans Mono CJK JP 10

在 Xft 中渲染阿拉伯文字

如果您的主字体不支持阿拉伯语 Unicode 范围,您可以专门指示 mlterm 使用支持阿拉伯字符的字体(例如 DejaVu Sans Mono),方法是提供 阿拉伯文字的所有 Unicode 范围 的详尽列表 

U+10a60-10a7f = DejaVu Sans Mono, 10
U+10a80-10a9f = DejaVu Sans Mono, 10
U+600-6ffj    = DejaVu Sans Mono, 10
U+750-77f     = DejaVu Sans Mono, 10
U+8a0-8ff     = DejaVu Sans Mono, 10
U+1ee00-1eeff = DejaVu Sans Mono, 10 
U+10e60-10e7f = DejaVu Sans Mono, 10
U+fe70-feff   = DejaVu Sans Mono, 10
U+fb50-fdff   = DejaVu Sans Mono, 10

使用固定宽度字体时渲染阿拉伯文字

当在从右到左的行中输入阿拉伯语时,使用固定宽度字体时,连字的正确渲染可能需要刷新屏幕。一种解决方法是启用 variable column width 选项并将您的 vaafont 设置为固定宽度字体。请关注 github 上的此问题

参见

  • LWN.net 关于终端模拟器的文章
  • Typometer 一个用于测量输入延迟的工具