有些东西阻止了Ctrl+Alt+左/右箭头键的组合键盘操作。

在Ubuntu 18.04中,我无法将Ctrl+Alt+Ctrl+Alt+分配给任何功能。准确地说,我可以将其绑定到某个功能,但是当使用键盘组合时它不起作用,而上/下箭头却可以正常工作。

See screenshot here.

奇怪的是,系统在分配按键时可以检测到键盘组合,但在尝试使用它们时却无法识别。因此,这些键盘组合在其他程序中也无法正常工作。

相关问题 - Snackoverflow
3个回答

Ctrl+Alt+Ctrl+Alt+分别是“切换到左侧工作区”和“切换到右侧工作区”的默认快捷键。您可以通过运行来验证。

gsettings get org.gnome.desktop.wm.keybindings switch-to-workspace-left

(并在left的位置上放置right)。
由于默认情况下GNOME shell只有单列工作区,这些快捷键根本没有任何效果(除非你尝试一些类似this的东西)。
要解除这些键盘组合的绑定,请运行
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]"

(同样地对于right)。然后,您将能够使用这些组合来创建您自定义的快捷方式。

非常有趣的是,即使我已经从键盘设置和图形用户界面中将它们移除了,但当我尝试在这些上进行“获取”时,它们仍然显示出来。然而,设置似乎不起作用: ➜ ~ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left [] zsh: 找不到匹配项:[] ➜ ~ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left [''] zsh: 找不到匹配项:[] - MrMamen
4在使用引号将括号括起来时,可以正常工作,例如: gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]" - MrMamen
@MrMamen 谢谢提供信息,我已经编辑了答案。 - pomsky
太好了!它解决了Fedora30的问题。Fedora30的设置界面缺少了这个键盘映射。 - Xin Meng
1谢谢,我修复了我的VSCode快捷键。 - user3743266

问题是Ubuntu 18.04的设置GUI没有显示所有的键盘快捷方式。
它没有列出"向左/右移动(切换)到工作区"(尽管有分配的快捷键)。
如果一个命令有多个快捷键,它只显示第一个快捷键,比如"向上/下移动(切换)到工作区",实际上还有第二个绑定键是Ctrl+Alt+上箭头/下箭头。

enter image description here

查看所有窗口管理器的键绑定:
gsettings list-recursively | grep org.gnome.desktop.wm.keybindings | sort

org.gnome.desktop.wm.keybindings switch-to-workspace-down ['<Super>Page_Down', '<Control><Alt>Down']
org.gnome.desktop.wm.keybindings switch-to-workspace-left ['<Control><Alt>Left']
org.gnome.desktop.wm.keybindings switch-to-workspace-right ['<Control><Alt>Right']
org.gnome.desktop.wm.keybindings switch-to-workspace-up ['<Super>Page_Up', '<Control><Alt>Up']

现在,您可以看到在设置界面中没有显示的一堆Ctrl+Alt+///键绑定。
要移除不需要的键绑定:
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['<Super>Page_Down']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['<Super>Page_Up']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "[]"

现在你可以在其他地方使用键绑定了。

4另外,你可能要删除的其他快捷键是Ctrl+Shift+Alt+左箭头,将窗口移动到左侧工作区,gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left "[]",以及类似的Ctrl+Shift+Alt+右箭头,将窗口移动到右侧工作区,<br>gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right "[]" - christianbueno.1

看起来上面的答案都没有帮助。
对于我在Ubuntu 20.04中,我修改了`/usr/share/X11/xkb/symbols/group`文件(通过`sudo`),并注释掉了这些行(标记为**粗体**):
// CTRL-SHIFT toggle section
//
//partial modifier_keys
//xkb_symbols "lctrl_lshift_toggle" {
//    key <LFSH> {
//        type[Group1]="PC_CONTROL_LEVEL2",
//        symbols[Group1] = [ Shift_L, ISO_Next_Group ]
//    };
//    key <LCTL> { [ Control_L, ISO_Next_Group ] };
//};
//partial modifier_keys
//xkb_symbols "lctrl_lshift_toggle_rev" {
//    key <LFSH> {
//        type[Group1]="PC_CONTROL_LEVEL2",
//        symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
//    };
//    key <LCTL> { [ Control_L, ISO_Prev_Group ] };
//};
partial modifier_keys
xkb_symbols "rctrl_rshift_toggle" {
    key <RTSH> {
        type[Group1]="PC_CONTROL_LEVEL2",
        symbols[Group1] = [ Shift_R, ISO_Next_Group ]
    };
    key <RCTL> { [ Control_R, ISO_Next_Group ] };
};
partial modifier_keys
xkb_symbols "ctrl_shift_toggle" {
//    include "group(lctrl_lshift_toggle)"
    include "group(rctrl_rshift_toggle)"
};
partial modifier_keys
xkb_symbols "ctrl_shift_toggle_bidir" {
//    include "group(lctrl_lshift_toggle_rev)"
    include "group(rctrl_rshift_toggle)"

然后退出登录,再次登录。 这样做有帮助。