我的电脑需要一位心理医生。
它确信它是一台 iMac(有点像)。
说真的:我遇到了一个问题,它似乎是从哪里冒出来的,很可能是由于某些升级产生了“副作用”,但我真的不知道发生了什么。
当然,我有一个相当复杂的设置:
- 运行 Windows 7 的 X64 PC
- 虚拟盒无头的运行 Debian (stretch) 的虚拟机
- 我通过 ssh(KiTTY)和 X11 转发访问虚拟机
- 通常我在命令行上工作,但有时我也使用图形程序。
- 我在主机上安装了当前版本的 VcXserv 来为 Xclients 提供服务。
这项工作已经进行了很多年。
现在我的键盘突然开始对 X 客户端出现“行为异常”的情况(普通 ssh 终端不受影响)。
经过大量挖掘后,我发现了一些东西:
这是输出setxkbmap -print -verbose 10
:
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/xorg...
Trying to load rules file /usr/share/X11/xkb/rules/xorg...
Success.
Applied rules from xorg:
rules: xorg
model: macintosh
layout: it
options: grab:break_actions
Trying to build keymap using the following components:
keycodes: macintosh+aliases(qwerty)
types: complete+numpad(mac)
compat: complete+xfree86(grab_break)
symbols: pc+macintosh_vndr/it+inet(apple)
geometry: macintosh(macintosh)
xkb_keymap {
xkb_keycodes { include "macintosh+aliases(qwerty)" };
xkb_types { include "complete+numpad(mac)" };
xkb_compat { include "complete+xfree86(grab_break)" };
xkb_symbols { include "pc+macintosh_vndr/it+inet(apple)" };
xkb_geometry { include "macintosh(macintosh)" };
};
果然,setxkbmap -model pc105 -layout it
问题解决了,但是下次 VM 启动时它还会再次出现。
我如何才能永久设置它?(请注意,我在 VM 上没有本地 xserver,所以我没有~/.xinitrc
类似的文件)
我也想了解发生了什么。有人能建议去哪里查找吗?
答案1
尝试为 X 设置系统默认值:
$ sudo localectl set-x11-keymap it pc105
...这可能只会影响主机上的 Xservers,但请先尝试一下;作为副作用,它将设置一个等效的控制台键盘映射,这可能是异常检测的一部分。
如果这不起作用,只需setxkbmap | xkbcomp
在~/.profile
或中运行适当的例程~/.bashrc
:
if [ -n $DISPLAY ] ; then
setxkbmap -model pc105 -layout it -print | xkbcomp - $DISPLAY
fi
这将在您登录 SSH 会话时运行,因此您之后运行的任何图形程序都应该获得正确的键盘映射。