lsof | grep -i CP1251 | awk'{print $1}'| 排序| uniq

lsof | grep -i CP1251 | awk'{print $1}'| 排序| uniq

我正在运行 Ubuntu 15.04,以 xdm 作为显示管理器,并在 xorg.conf 中定义了自定义多显示器和键盘设置。

xdm 正确获取键盘配置,将布局设置为“gb”,并交换 caps 和 ctrl 键。

但是,当我启动 Window Maker 或任何其他显示管理器时,我发现我的键盘布局恢复为美国键盘布局。不过 ctrl/caps 键保持交换。

xorg.conf:

Section "Monitor"
        Identifier   "DP1"
EndSection

Section "Monitor"
        Identifier   "HDMI2"
        Option       "LeftOf" "DP1"
        Option       "Rotate" "left"
EndSection

Section "Device"
        Identifier "intel"
        Driver     "intel"
#       Option     "TearFree" "true"
        Option     "Monitor-DP1" "DP1"
        Option     "Monitor-HDMI2" "HDMI2"
EndSection

Section "InputClass"
        Identifier      "caps as ctrl sun gb keyboard"
        Driver          "evdev"
        MatchIsKeyboard "yes"
        Option          "XkbLayout" "gb"
        Option          "XkbModel" "sun_type7_usb"
        Option          "XkbRules" "xorg"
        Option          "XkbOptions" "ctrl:swapcaps"
EndSection

答案1

从您对其他答案的评论中,我可以看出您可能没有运行设置守护程序。大多数桌面环境(如 Gnome、KDE ​​等)都会运行一项服务来为您跟踪每个小设置!但窗口管理器(如 WindowMaker、i3、awesome 等)通常没有此功能。

如果您从 或其他自制脚本启动 WindowManager ~/.xsession,则应为该特定会话设置键盘设置。 可以使用setxkbmapXsession 脚本设置键盘布局启动 WindowManager 的行。

setxkbmap -model sun_type7_usb -layout gb -option ctrl:swapcaps

作为奖励信息,您可以从以下命令获取所有可用的模型、布局等:

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

这些信息主要来自维基百科,其中有一些关于键盘的更多常规信息,尽管它可能与 Ubuntu 略有不同。

答案2

  1. 尝试编辑/etc/default/keyboard

    XKBMODEL="sun_type7_usb"
    XKBLAYOUT="gb"
    XKBOPTIONS="ctrl:swapcaps"
    
  2. 要应用,重新启动或运行:

    sudo udevadm trigger --subsystem-match=input --action=change
    

参考: man keyboard

答案3

如果布局更改在登录屏幕上有效,但在登录后中断,则意味着相同的资源被第三方程序拦截。 在我的情况下,它是 ibus 守护程序。 它有自己的布局设置。 我通过按编码在打开的文件中搜索找到了它,因为我决定这个程序应该使用编码文件:

lsof | grep -i CP1251 | awk'{print $1}'| 排序| uniq

(CP1251 是我的默认语言环境:)你的情况是 utf-8)在浏览器、openoffice、pulseaudio 中发现了一个恶魔 ibus。删除它之后,布局不再中断。(它也可以重新配置为非激进的操作模式)

答案4

你试过这个吗:

    gsettings set org.gnome.setting-daemon.keyboard.layout KEY=active VALUE=true

这样也许能很好地发挥作用。

相关内容