在 X11 中永久设置键盘布局

在 X11 中永久设置键盘布局

我的电脑需要一位心理医生。

它确信它是一台 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 会话时运行,因此您之后运行的任何图形程序都应该获得正确的键盘映射。

相关内容