使用gnome / unity中的setxkbmap永久设置键盘布局选项

Ubuntu 13.10 1 (也许是上游gnome)引入了非常烦人的bug :按键盘布局开关快捷键使焦点转移到某个系统窗口,然后返回到按下快捷键的窗口。 某些应用程序有一些操作必须改变焦点,例如twitter(在浏览器中)在失去焦点时关闭回复文本输入字段等。因此ubuntu的本机键盘切换器不适合我,直到修复。

X内置切换机制,它更好,除了它不涉及焦点切换,它立即切换(gnome切换器有时也滞后)。

如何设置xkbmap选项,以便重启后设置将保留,Gnome不会重置?

我尝试过的:

首先,只是执行setxkbmap:

setxkbmap -layout "us,ru" setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt" 

但它只适用于:

  1. 对于本届会议
  2. 直到Gnome会覆盖它(例如在gconf的org.gnome.desktop.input-sources触发器重置中触摸某些东西)。

其次,将xkb选项添加到Xorg配置:

另一种选择是在xorg配置中添加以下内容:

 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

在此处输入图像描述

我在org.gnome.desktop.input-sources sources设置了xkb-optionssources ,但是Gnome仍然将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未经证实的报道 )

要防止gnome在X中重置键盘设置,请使用以下命令:

 gsettings set org.gnome.settings-daemon.plugins.keyboard active false 

这对我有用。

我和你一样疯狂,但是使用Ubuntu 14.04(LTS),Xubuntu,xfce 4.12和xkbd(来自xfce好东西)。 Ctrl + Space可以更改键盘布局,但Alt + Shift没有(仅限修改键)。

最后设法使事情有效 –

 1. Run ibus-setup (Keyboard Input Methods application). 2. Goto Advanced tab. 3. Check 'Use system keyboard layout'. 4. Click 'Close' 5. Run xfce4-keyboard-settings (Keyboard application). 6. Goto Layout tab. 7. Uncheck 'Use system defaults' 8. Select 'Keyboard model' (typically 'Generic 105-key (Intl) PC' will do) 9. Set 'Change layout option' to your required switching keys combination (typically Alt+Shift will do). 10. Add languages to 'Keyboard layout'. 11. Click 'Close'. 12. Restart the computer 

你完成了! 使用Alt + Shift更改键盘布局。

我刚刚阅读了关于屏幕锁定的这篇文章 ,这可能是相关的。 根据该文章,屏幕锁定具有阻止输入设备和操纵区域设置的预期结果。 好像你有几个选择:

  1. 停止锁定屏幕,这可能包括问候屏幕,它也提供类似的function
  2. 使用不同的电源管理工具
  3. 停止使用ibus进行im-switching(也许是FCITX?)
  4. 如此处所述,为屏幕解锁事件创建一个钩子。

有关此事件和相关事件的有趣讨论可以在ubuntu-dev邮件列表中找到: https : //lists.ubuntu.com/archives/ubuntu-devel/2013-November/037768.html

用户wof在Ubuntu bug跟踪器中的解决方法,对于使用gxkb的 Ubuntu 14.10:

https://bugs.launchpad.net/gnome-settings-daemon/+bug/1244090/comments/39

这个解决方法适用于ubuntu 14.10:

  • 在设置 – >文本条目中删除所有输入源,只保留英语
  • 安装gxkb(布局切换器):sudo apt-get install gxkb
  • 通过gnome-tweak-tool将gxkb添加到启动应用程序
  • 在〜/ .config / gxkb中设置gxkb热键(默认为alt_shift,但在14.10中它不起作用.ctrl_shift工作正常)

ps新版本的gxkb有ubuntu的appindicator。 可以通过ppa安装:zen-root / gxkb-stable

首先,只是执行setxkbmap:

setxkbmap -layout“us,ru”setxkbmap -option“grp:caps_toggle,grp_led:scroll,compose:ralt”

但它只适用于:

 For current session Until Gnome will overwrite it (for example touching something in gconf's org.gnome.desktop.input-sources triggers reset). 

至于Gnome“重置”它我不知道。 我知道你怎么能保持每次重启,因为我必须为我的罗技鼠标做同样类型的事情。 它有多个按钮,我想以某种方式重新映射,我必须在重启时设置。

所以你要做的就是创建一个文本文件。 然后在该文本文件中键入:

 #!/bin/bash 

在你的命令下面。 例如,我的鼠标看起来像这样:

 #!/bin/bash xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16 

接下来,您可以将其保存为您想要的任何名称,并将其移动到某个位置,例如您的主目录。 它必须“永远”留在那里。

然后只需打开你的启动应用程序并将文件添加到你的启动,然后你不必担心它只持续会话。 可以重新启动计算机,因为您的设置将通过刚刚添加的文件返回。