将左 Ctrl + 右 Ctrl 映射到切换窗口

将左 Ctrl + 右 Ctrl 映射到切换窗口

我想在 switch-windows 键绑定中添加left Ctrl+ right Ctrl。在输入该命令时,有没有办法区分left Ctrlright Ctrl键?也许是这样的:

gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab','<LControl><RControl>']"

但是,该命令不起作用。我想知道是否有专门针对left Ctrlright Ctrl键的键名。

如果你好奇我为什么要这样做,我有一个 Kinesis 键盘,它的默认布局让人伸出左手来按下Alt+ Tab

答案1

  • 编辑/usr/share/X11/xkb/symbols/pc

    sudo gedit /usr/share/X11/xkb/symbols/pc
    
  • Control_RControl绑定中删除。//将原始行添加到注释中,并仅使用以下内容创建新行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>'],这是我的第一个猜测,它什么也不做。

经过反复尝试,我发现原因如下:

  1. <Control>被捕获为两个控制键中任一个的修饰键按下,但Control不会被捕获为其中任何一个的常规键按下。
  2. 另一方面<Control_L>,和<Control_R>不会被捕获为修饰键按下,但是Control_LControl_R会被捕获为常规键按下。

因此,使用键绑定['<Control>Control_R']可以捕获先按下左控制键,然后按下右控制键且左控制键仍处于按下状态时的组合。使用键绑定可以['<Control>Control_L']捕获反向顺序的组合。将两者结合起来,您可以同时按下两者而不必关心它们的按下顺序。

相关内容