窗口管理器启动时,xorg.conf键盘布局丢失
我正在使用xdm作为显示管理器运行Ubuntu 15.04,并在xorg.conf中定义了自定义多显示器和键盘设置。
xdm正确选取键盘配置,将布局设置为“gb”,并更换大写和ctrl键。
但是,当我启动Window Maker或任何其他显示管理器时,我发现我的键盘布局还原为US。 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
从您的评论到其他答案,我可以看到您可能没有运行设置守护程序。 大多数桌面环境(如Gnome,KDE等)都会运行一项服务,以便为您跟踪每个小设置! 但WindowManagers(如WindowMaker,i3,awesome等)通常没有这个function。
如果从~/.xsession
或其他自制脚本启动WindowManager,则应为该特定会话设置键盘设置。 在启动WindowManager的行之前 ,可以使用Xsession脚本中的setxkbmap
设置键盘布局。
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
这些信息主要在ArchWiki上找到,其中有一些关于键盘的更多信息,尽管它可能与Ubuntu略有不同。
-
尝试编辑
/etc/default/keyboard
XKBMODEL="sun_type7_usb" XKBLAYOUT="gb" XKBOPTIONS="ctrl:swapcaps"
-
要申请,重启或运行:
sudo udevadm trigger --subsystem-match=input --action=change
参考: man keyboard
-
Unity有自己的设置守护进程,负责布局设置,重置任何以前的Xorg设置。
-
检查当前设置:
gsettings get org.gnome.desktop.input-sources xkb-options
-
然后添加
ctrl:swapcaps
其设置回来。gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:swapcaps']"
-
将布局设置为
gb
gsettings set org.gnome.desktop.input-sources sources [('xkb', 'gb')]
-
-
如果它不起作用,请禁用设置守护程序的键盘插件
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
参考: 使用gnome / unity中的setxkbmap永久设置键盘布局选项
顺便说一下,如果需要,可以使用GUI工具代替命令行,查找dconf-editor
你试试这个:
gsettings set org.gnome.setting-daemon.keyboard.layout KEY=active VALUE=true
它可能会以这种方式工作。