防止XKB布局切换与快捷方式

时间:2016-01-15 09:03:46

标签: linux keyboard-shortcuts

我使用setxkbmap将布局更改快捷方式定义为 ctrl + shift ,就像我习惯的那样。但是我有时会遇到一个问题,它与我使用的软件的快捷方式发生冲突,比如 ctrl + shift + A 。当我按 ctrl + shift + other_button时,如何避免更改布局?我使用OpenSuse Linux和i3 wm。

2 个答案:

答案 0 :(得分:1)

如果您想使用ctrl + shift来切换布局,那么实际上还没有办法实现这一点,因为现在ctrl + shift会被xkb捕获,其级别低于您正在使用的应用程序。我有同样的问题,只是切换到使用两个ctrls来改变布局。看看

$ grep 'grp:' /usr/share/X11/xkb/rules/base.lst
  grp:switch           Right Alt (while pressed)
  grp:lswitch          Left Alt (while pressed)
  grp:lwin_switch      Left Win (while pressed)
  grp:rwin_switch      Right Win (while pressed)
  grp:win_switch       Any Win key (while pressed)
  grp:caps_switch      Caps Lock (while pressed), Alt+Caps Lock does the original capslock action
  grp:rctrl_switch     Right Ctrl (while pressed)
  grp:toggle           Right Alt
  grp:lalt_toggle      Left Alt
  grp:caps_toggle      Caps Lock
  grp:shift_caps_toggle Shift+Caps Lock
  grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout)
  grp:win_menu_switch  Left Win (to first layout), Right Win/Menu (to last layout)
  grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout)
  grp:alt_caps_toggle  Alt+Caps Lock
  grp:shifts_toggle    Both Shift keys together
  grp:alts_toggle      Both Alt keys together
  grp:ctrls_toggle     Both Ctrl keys together
  grp:ctrl_shift_toggle Ctrl+Shift
  grp:lctrl_lshift_toggle Left Ctrl+Left Shift
  grp:rctrl_rshift_toggle Right Ctrl+Right Shift
  grp:ctrl_alt_toggle  Alt+Ctrl
  grp:alt_shift_toggle Alt+Shift
  grp:lalt_lshift_toggle Left Alt+Left Shift
  grp:alt_space_toggle Alt+Space
  grp:menu_toggle      Menu
  grp:lwin_toggle      Left Win
  grp:win_space_toggle Win Key+Space
  grp:rwin_toggle      Right Win
  grp:lshift_toggle    Left Shift
  grp:rshift_toggle    Right Shift
  grp:lctrl_toggle     Left Ctrl
  grp:rctrl_toggle     Right Ctrl
  grp:sclk_toggle      Scroll Lock
  grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)
  grp:lctrl_lwin_toggle LeftCtrl+LeftWin

这些是您可以用来更改布局的所有不同组合键。我使用grp:ctrls_toggle,但你有很多选择可以玩,看看你喜欢什么。

答案 1 :(得分:0)

我遇到了类似的问题,并且做出了妥协,从接受的答案中并不能立即看出这种妥协。

我的布局切换最初设置为 Alt + Shift 这干扰了我使用 Alt + Shift + } 快捷方式缩进nano / pico的能力。

我的折衷办法是将布局切换选项从grp:alt_shift_toggle更改为grp:lalt_lshift_toggle。换句话说,仅同时按下 left Alt left Shift 可以更改布局,例如(左)Alt + (右)Shift + } 可自由产生微微的所需压痕效果。

万一它对任何人都有用,这就是我在.fluxbox/startup文件中使用的完整行:

setxkbmap -layout "gb,gr,ru" -variant ",,phonetic_winkeys" -option "grp:lalt_lshift_toggle" -model pc105 -rules evdev   # keyboard layout switching