KMSCON
来自项目的 git 仓库
- Kmscon 是一个基于 Linux 内核模式设置的简单终端模拟器。它试图用用户空间控制台替换内核中的 VT 实现。
特性
Kmscon 可以作为内核内 Linux 控制台的直接替代品。功能包括:
- 完整的 vt220 到 vt510 实现。
- 完整的国际化支持
- Kmscon 支持打印完整的 Unicode 字形,包括 CJK 字形。
- Kmscon 通过 libxkbcommon 提供国际化的键盘处理,从而能够使用 X 键盘中支持的全部键盘布局。
- 硬件加速渲染。
- 多座位能力。
/etc/pam.d/login 中的相应行来禁用 pam_securetty 模块。安装
尽管名称中有 KMS,但 KMS 并非 kmscon 的硬性要求。Kmscon 支持以下视频后端:drm3d(Linux DRM 硬件渲染后端)、drm2d(Linux DRM 软件渲染后端)、已淘汰的 fbdev(Linux fbdev 视频后端)。请确保您的系统上至少有一个可用。
安装 kmsconAUR 包。
通常,tty1 有一个特殊的 systemd 配置。为了保守起见,您可以继续在 tty1 上运行传统的 agetty,只在所有其他虚拟终端上运行 kmscon。或者,您可以在 tty1 和其他 VT 上同时运行 kmscon。
要在 tty1 上启用 kmscon,请禁用 getty@tty1.service 并启用 kmsconvt@tty1.service。
要在所有虚拟终端上启用 kmscon,请运行:
# ln -s '/usr/lib/systemd/system/kmsconvt@.service' '/etc/systemd/system/autovt@.service'
这将使 systemd 在每个 VT 上启动 kmscon 而不是 agetty。更准确地说,这将使 systemd-logind 对新的 VT 使用 kmsconvt@.service 而不是 getty@.service。此外,所有其他使用 getty@.service 的 systemd 单元将不受此更改的影响。
如果 kmscon 出于任何原因无法启动,此单元将导致 getty@.service 被启动。此外,如果没有可用的 VT,此单元将不会启动任何内容。
getty@tty1.service:这将允许用户从 tty1 的命令行启动图形会话,同时在剩余终端上享受 kmscon 的优势。CJK 支持
Kmscon 支持通过默认字体引擎 pango 渲染 CJK 字符。但是,fontconfig 必须进行*全局*配置,将等宽字体别名映射到正确的 CJK 字体。对于中文用户,提供了以下模板,并证明可以产生令人满意的中文字符渲染:
/etc/fonts/conf.d/99-kmscon.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>DejaVu Sans Mono</string>
<string>WenQuanYi Micro Hei Mono</string>
</edit>
</match>
</fontconfig>
或者,我们可以将以下行添加到 /etc/kmscon/kmscon.conf 中,以使用字体进行全局配置 kmscon:
/etc/kmscon/kmscon.conf
font-name=DejaVu Sans Mono, WenQuanYi Micro Hei Mono font-size=14
请参阅 kmscon(1)。
您需要安装 ttf-dejavu 和 wqy-microhei,两者均可从官方仓库获得。
故障排除
在 Xorg 和 kmscon 之间切换时出现的问题
如果您在 Xorg 和 kmscon 之间切换时遇到问题,您可能想将 hwaccel 添加到 /etc/kmscon/kmscon.conf。该文件和文件夹不是包的一部分,因此必须手动创建。另一种可能性是编辑 systemd 服务文件。
无音频控制
从 7.0 版本开始,如果您无法控制音频,请将您的用户添加到 audio 用户组。请注意此选择的缺点。
Vim 未能清除终端输出
Vim 可能会在未清除终端输出的情况下打开,仍然可以编辑文件,但文本在更改之前将不可见。作为一种变通方法,请尝试设置环境变量 TERM=vt220。或者,另一个类似 vim 的编辑器,如 vi 或 Neovim 可能会起作用。
TERM 设置为 vt220,则不支持颜色。自动登录
通过将以下内容添加到 /etc/kmscon/kmscon.conf,可以自动登录用户 username 而无需询问密码:
/etc/kmscon/kmscon.conf
# Example: Login as user "username" without asking for password login=/bin/login -p -f username
或者以 root 用户身份登录:
/etc/kmscon/kmscon.conf
# Example: Login as root in a bash shell without asking for password login=/bin/bash --login
HiDPI 支持
您可以使用 Ctrl++、Ctrl+Shift+=、Ctrl+- 快捷键即时更改字体大小。您也可以在 /etc/kmscon/kmscon.conf 中设置 'font-dpi' 和 'font-size',例如 'font-dpi=288',288 是 96 * 3,表示 300% 缩放。96 是默认值。
无法从 KMS 控制台启动窗口管理器
使用 startx 或例如 sway 从命令行启动 Xorg 或 Wayland 会话将失败。为此,请保留一个传统的、非 KMS 的 tty,或者使用登录管理器。