Ubuntu 13.10 1(可能是上游gnome)引入了一个非常烦人的错误:按下键盘布局开关快捷键可使焦点移至某些系统窗口,然后返回到按下快捷键的窗口。某些应用程序具有绑定焦点变化的某些动作,例如,Twitter(在浏览器中)在失去焦点时关闭回复文本输入字段等。因此,在修复之前,ubuntu的本机键盘切换器不适合我。
X具有内置的切换机制,它更好,除了它不涉及焦点切换外,它还可以立即切换(gnome切换器有时也会滞后)。
如何设置xkbmap选项,以便设置在重新启动后仍将保留,并且不会被Gnome重置?
我尝试过的
首先,只需执行setxkbmap:
setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"
但这仅适用于:
- 对于当前会话
- 直到Gnome覆盖它为止(例如,
org.gnome.desktop.input-sources
重置gconf的触发器中的某些内容)。
其次,向Xorg配置添加xkb选项:
另一种选择是在xorg config中添加以下内容:
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru"
Option "XkbModel" "pc105"
Option "XkbVariant" "pc105"
Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection
Xorg理解在启动过程中:
[ 33.791] (**) Option "xkb_rules" "evdev"
[ 33.791] (**) Option "xkb_model" "pc105"
[ 33.791] (**) Option "xkb_layout" "us,ru"
[ 33.791] (**) Option "xkb_variant" "pc105"
[ 33.791] (**) Option "xkb_options" "grp:rctrl_toggle,grp_led:scroll"
但是切换配置仍然可能在以后由gnome重置。
三,gconf
我xkb-options
和sources
在集org.gnome.desktop.input-sources
,但侏儒仍设置XKB单英语布局:
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc105
layout: us
options: grp_led:scroll
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete+ledscroll(group_lock)
symbols: pc+us+inet(evdev)
geometry: pc(pc105)
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete+ledscroll(group_lock)" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
第四,gconf中的另一个选项
设置org.gnome.settings-daemon.peripherals.keyboard
对我也不起作用。没有什么改变。
更新1:有讨论建议删除/usr/lib/gnome-settings-daemon-3.0/libkeyboard.so
。至少这可以修复xkbmap的一些重置(即在锁定屏幕之后)。
1我使用14.04,但是仍然无法解决失去焦点的问题。(上游Gnome中未经确认的报告)
org.gnome.desktop.input-sources
。
dconf-editor
?
setxkbmap
命令添加到您的~/.profile
?这样,它们将在您每次登录时运行,并且由于Gnome中存在相同的设置,因此如果重置,它不应更改任何内容。