答案1
是的,有一种方法,这确实是 Debian 的控制台设置包的做法。
- 键盘布局由管理员在名为 的文件(
keyboard
通常为/etc/default/keyboard
.这是单一来源。可以使用文本编辑器对其进行编辑。 - 该
setxkbmap
程序被赋予这些相同的 XKB 设置并相应地配置 X11 服务器。- 如果键盘配置包的安装后维护程序脚本发现自己具有 X11 显示器,则
setxkbmap
直接运行设置并进行设置。/etc/default/keyboard
因此,dpkg-reconfigure keyboard-configuration
从 X11 GUI 终端仿真器运行将影响 X11 键盘布局。
- 如果键盘配置包的安装后维护程序脚本发现自己具有 X11 显示器,则
- 该
setupcon
脚本采用这些 XKB 设置,将它们传递给实用程序以生成键盘映射,并使用/ckbcomp
将该键盘映射加载到内核虚拟终端中。loadkeys
kbdcontrol
- 该脚本由服务在系统引导时运行。
- 也可以在其他时候手动运行。
其他 systemd 操作系统的工作方式有所不同,但也有单一来源。
- XKB 布局、变体和选项存储在
/etc/X11/xorg.conf.d/00-keyboard.conf
.这是单一来源。- 该文件在启动时由X11服务器直接读取并直接设置X11键盘映射。
- 该文件在启动时被解析
systemd-localed
。该文件在运行时无法使用文本编辑器进行有用的编辑systemd-localed
,因为该服务会愉快地用自己的内存信息覆盖它。 - 要更改 XKB 信息,需要运行
localectl
,它与另一台服务器通信,而另一台服务器又与 通信systemd-localed
。
systemd-localed
使用 中的映射将 XKB 设置转换为虚拟终端键盘映射名称/usr/share/systemd/kbd-model-map
,然后将其写入/etc/vconsole.conf
。与 Debian 系统不同,它不会根据 XKB 信息动态生成地图,而是仅选择地图文件中列出的预先提供的静态地图。systemd-vconsole-setup
在引导程序中运行,读取/etc/vconsole.conf
并通过运行将键盘映射加载到内核虚拟终端中loadkeys
。
进一步阅读
keyboard
。 控制台设置用户手册。德班。ckbcomp
。 控制台设置用户手册。德班。- 安德鲁·T·杨(2011)。键盘配置。
- Xkb 从哪里获取其配置?
- https://unix.stackexchange.com/a/326804/5132