我使用和开发的设备是由一家丹麦公司制造的。每当我们 ssh 进入基于 Debian 8 的设备时,它们的键盘布局都是 US QWERTY,但如果我们将 US USB 键盘连接到设备本身,它们的键盘布局是丹麦语。
我一直在尝试找到一种简单的方法来设置所有 10 个虚拟终端的键盘布局,因为我们将它们用于开发目的。 (它们是由 systemd 服务在启动时运行的 Mingetty)。
我发现如果我执行以下操作,我可以成功地将布局更改为美国:
- 通过 SSH 连接到设备
/etc/default/keyboard
手动编辑以XKBLAYOUT="us"
代替XKBLAYOUT="dk"
- 跑步
udevadm trigger --subsystem-match=input --action=change
但是,它并没有改变我随后在本地登录的虚拟终端的布局。
如果我满足以下条件,我可以成功地将所有 VT 的布局更改为 US:
- 通过 SSH 连接到设备或在本地登录
/etc/default/keyboard
手动编辑以XKBLAYOUT="us"
代替XKBLAYOUT="dk"
- 重新启动设备
有没有其他方法可以让这些更改生效而无需重新启动整个设备?
我知道我需要做的就是更改,所以XKBLAYOUT
当我尝试使用时setxkbmap -model pc105 -layout us
我会回来Cannot open display "default display"
。注意:当我通过 ssh 或本地登录到设备时,我是 root,并且一直以 root 身份运行所有命令。
我的/etc/default/keyboard
文件很简单:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="dk"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
我的目标是编写该过程的脚本,以便所有 QA 所要做的就是运行一个简单的脚本,在美国(这样他们可以更轻松地打字)和丹麦语(这样他们可以将设备设置回与生产设备类似)之间来回切换尽可能)。
答案1
在 Debian 上,要在未运行 X 的 VT 上设置键盘(和字体),您应该运行setupcon
。要重新配置默认键盘并进行设置,您应该运行dpkg-reconfigure keyboard-configuration
.
setupcon
可以使用其配置文件的多个变体,这将允许您在键盘布局之间快速切换。
系统的键盘配置对通过 SSH 使用的映射没有影响:SSH 不传输击键,它传输字符,不涉及键盘样式映射。