我想在 switch-windows 键绑定中添加left Ctrl+ right Ctrl。在输入该命令时,有没有办法区分left Ctrl和right Ctrl键?也许是这样的:
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab','<LControl><RControl>']"
但是,该命令不起作用。我想知道是否有专门针对left Ctrl和right Ctrl键的键名。
如果你好奇我为什么要这样做,我有一个 Kinesis 键盘,它的默认布局让人伸出左手来按下Alt+ Tab。
答案1
编辑
/usr/share/X11/xkb/symbols/pc
sudo gedit /usr/share/X11/xkb/symbols/pc
Control_R
从Control
绑定中删除。//
将原始行添加到注释中,并仅使用以下内容创建新行Control_L
://modifier_map Control{ Control_L, Control_R }; modifier_map Control{ Control_L };
然后使用系统设置→键盘→快捷键→导航进行设置。
答案2
我也有 Kinesis Advantage 2,使用 Ubuntu。我选择<Left ControL>+<Right Control>
循环切换到下一个输入法,因为默认输入法<Super>+Space
不适合这个键盘。
我认为,更改它并使其持久的最简单方法是使用dconf-editor
可以从终端运行的工具。如果您尚未安装它,只需sudo apt install dconf-editor
运行它即可。
从那里,搜索你的操作的键绑定,在你的情况下/org/gnome/desktop/wm/keybindings/switch-windows
和在我的情况下/org/gnome/desktop/wm/keybindings/switch-input-source
。到达那里后,勾选切换Use default value
,然后你可以输入此键绑定并点击应用,以使更改生效:['<Control>Control_R', '<Control>Control_L']
变化:
如果您想要更多控制,您可以使用['<Control>Control_R']
键绑定/org/gnome/desktop/wm/keybindings/switch-applications
和['<Control>Control_L']
键绑定/org/gnome/desktop/wm/keybindings/switch-applications-backward
,仅使用这两个键进行双向控制。
解释:
使用这两个控件有点棘手,因为如果你尝试使用['<Control_L><Control_R>']
,这是我的第一个猜测,它什么也不做。
经过反复尝试,我发现原因如下:
<Control>
被捕获为两个控制键中任一个的修饰键按下,但Control
不会被捕获为其中任何一个的常规键按下。- 另一方面
<Control_L>
,和<Control_R>
不会被捕获为修饰键按下,但是Control_L
和Control_R
会被捕获为常规键按下。
因此,使用键绑定['<Control>Control_R']
可以捕获先按下左控制键,然后按下右控制键且左控制键仍处于按下状态时的组合。使用键绑定可以['<Control>Control_L']
捕获反向顺序的组合。将两者结合起来,您可以同时按下两者而不必关心它们的按下顺序。