如何在 X 上正确设置键盘?

JMC*_*125 8 arch-linux xorg keyboard keyboard-layout

注:分叉的这个按照建议在这里


我犯了一个愚蠢的错字UTF-8,和预期,当我固定它,在X的键盘会的工作权利。自从做出这个错误的更改后,我不再收到 Bash 登录、man页面或locale错误。但它没有。即使我这样做了loadkeys pt-latin9,它也永远无法解决 X 中的问题。

localectl 给出:

[jmcf125@jmcf125-Toshiba-Arch ~]$ localectl
   System Locale: LANG=pt_PT.UFT-8
       VC Keymap: pt-latin9
      X11 Layout: pt
Run Code Online (Sandbox Code Playgroud)

然而,真正的 X 键盘布局不是 pt,而在 TTY 上是这样。这里有什么问题?我在哪里可以正确设置布局?

JMC*_*125 6

至少在 Arch 中,控制台和 X 的键盘设置总是分开的,而在 X 的情况下,它们被用户进一步分开(每个人都有他/她/它$HOME/.xinitrc和相关的文件)。

所以loadkeys只适用于控制台,X 有额外的键盘配置层。有多种方法可以在 X 上设置键盘。

要使 X 键盘设置永久(或任何其他与此相关的 X 启动设置),请将它们放在.xinitrc您的主文件夹的文件中。在这种情况下,您只需要以下行:

setxkbmap -layout pt
Run Code Online (Sandbox Code Playgroud)

(您可以添加&以使其沿其他设置加载)

在您的情况下,请确保与布局相关的所有内容都已pt通过,setxkbmap -print -v 10并且没有 pt(qwerty)pt-latin9因为即使它们是您文件中的布局/键盘映射设置,它们也不会起作用/etc/vconsole.conf。这就是上面一行所处理的。


slm*_*slm 5

当涉及到不同的布局时,我有点天真,但你不能用它localectl来将布局设置为你想要纠正的任何内容吗?

$ localectl set-x11-keymap layout [model] [variant] [options]
Run Code Online (Sandbox Code Playgroud)

您可以使用这些命令来查找不同 X11 键盘映射的有效选择:

  • localectl list-x11-keymap-models
  • localectl list-x11-keymap-layouts
  • localectl list-x11-keymap-variants [layout]
  • localectl list-x11-keymap-options

参考