防止 XKB 布局切换与快捷方式
Prevent XKB layout switch vs shortcuts
我习惯使用setxkbmap
定义布局更改快捷方式为ctrl+shift。但我有时会遇到一个问题,它与我使用的软件的快捷方式冲突,比如 ctrl+shift+A。当我按下 ctrl+shift+other_button 时,如何避免更改布局?我使用 OpenSuse Linux 和 i3 wm.
如果您想使用 ctrl+shift 来切换布局,则没有真正解决此问题的方法,因为 xkb 现在比您正在使用的应用程序在较低级别捕获 ctrl+shift。我有同样的问题,只是切换到使用两个 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
,但你有很多选择可以玩,看看你喜欢什么。
我有一个类似的问题,并制定了一个妥协方案,但从接受的答案中并不能立即看出这一点。
我的布局切换最初设置为Alt+Shift
这干扰了我使用 Alt+Shift+} 快捷方式在 nano / 中缩进的能力微微
我的妥协是将布局切换选项从 grp:alt_shift_toggle
更改为 grp:lalt_lshift_toggle
。也就是说,只按下 left Alt 和 left Shift一起改变布局,离开,例如(left) Alt + (right) Shift + } free 在pico中产生想要的缩进效果.
如果它对任何人有用,这是我在 .fluxbox/startup
文件中使用的完整行:
setxkbmap -layout "gb,gr,ru" -variant ",,phonetic_winkeys" -option "grp:lalt_lshift_toggle" -model pc105 -rules evdev # keyboard layout switching
我习惯使用setxkbmap
定义布局更改快捷方式为ctrl+shift。但我有时会遇到一个问题,它与我使用的软件的快捷方式冲突,比如 ctrl+shift+A。当我按下 ctrl+shift+other_button 时,如何避免更改布局?我使用 OpenSuse Linux 和 i3 wm.
如果您想使用 ctrl+shift 来切换布局,则没有真正解决此问题的方法,因为 xkb 现在比您正在使用的应用程序在较低级别捕获 ctrl+shift。我有同样的问题,只是切换到使用两个 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
,但你有很多选择可以玩,看看你喜欢什么。
我有一个类似的问题,并制定了一个妥协方案,但从接受的答案中并不能立即看出这一点。
我的布局切换最初设置为Alt+Shift 这干扰了我使用 Alt+Shift+} 快捷方式在 nano / 中缩进的能力微微
我的妥协是将布局切换选项从 grp:alt_shift_toggle
更改为 grp:lalt_lshift_toggle
。也就是说,只按下 left Alt 和 left Shift一起改变布局,离开,例如(left) Alt + (right) Shift + } free 在pico中产生想要的缩进效果.
如果它对任何人有用,这是我在 .fluxbox/startup
文件中使用的完整行:
setxkbmap -layout "gb,gr,ru" -variant ",,phonetic_winkeys" -option "grp:lalt_lshift_toggle" -model pc105 -rules evdev # keyboard layout switching