我正在运行 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
,则应为该特定会话设置键盘设置。 可以使用setxkbmap
Xsession 脚本设置键盘布局前启动 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
尝试编辑
/etc/default/keyboard
XKBMODEL="sun_type7_usb" XKBLAYOUT="gb" XKBOPTIONS="ctrl:swapcaps"
要应用,重新启动或运行:
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
这样也许能很好地发挥作用。