重新绑定/禁用 CTRL+ALT+F# 虚拟终端/控制台切换

Jes*_*Jes 23 keyboard-shortcuts x11 tty console virtual-consoles

我有一个绑定CTRL+ ALT+的应用程序F7,但我的 linux 机器似乎可以捕捉到击键。

有没有办法重新绑定/禁用此密钥?重新编译内核是可以接受的答案。

有问题的发行版是 Fedora 16 和 Ubuntu 11.10。

Rob*_*rtL 27

X11setxkbmap命令的以下调用禁用 Ctrl-Alt-Fn 控制台/虚拟终端切换:

setxkbmap -option srvrkeys:none
Run Code Online (Sandbox Code Playgroud)

返回到 ctrl-alt-Fn 键的先前行为,并删除所有其他选项,例如caps:ctrl_modifier

setxkbmap -option ''
Run Code Online (Sandbox Code Playgroud)

打印当前设置调用 setxkbmap -print.

要按用户调用,请将命令放在 ~/.xinitrc 文件中。

要在 Xsession 启动时调用,请在

/etc/X11/Xsession.d
Run Code Online (Sandbox Code Playgroud)

/etc/X11/Xsession.d/65srvrkeys-none
Run Code Online (Sandbox Code Playgroud)

包含上述setxkbmap命令,并使用sudo chmod +x /etc/X11/Xsession.d/65srvrkeys-none.

有关更多信息man setxkbmap,请在 shell 提示符下键入或查看Xorg setxkbmap 手册页

我在 Ubuntu 14.04 LTS (Trusty) 上用 KDE 对此进行了测试。这些设置也可在系统设置 > 输入设备 > 键盘 > 高级中找到。如果您更改srvrkeysGUI 设置,它会立即显示,setxkbmap反之亦然。

我更喜欢通过 X11 命令行界面修改 X 窗口系统。如果这不起作用,那么我尝试桌面环境。作为最后的手段,我会修改系统配置文件。实现和文件格式发生了变化,但命令行界面几乎永远存在于 Unix/Linux 传统中。


Sam*_*ris 12

将此放在你的/etc/X11/xorg.conf文件,以禁止与VT切换Ctrl+ Alt+ Fn

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection
Run Code Online (Sandbox Code Playgroud)

您还需要以下内容来使事件传递到连接到显示器的客户端:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection
Run Code Online (Sandbox Code Playgroud)

(最后一点未经测试,请参阅其来源。)

  • 如果您使用 Intellij 并希望使用 `CTL+ALT+F7` 来“显示用法”,在 Lubuntu 15.04 上,默认快捷方式实际上是 `CTL+ALT+7`。如果您想与其他操作系统保持一致,您需要将其改回`CTL+ALT+F7`。 (3认同)
  • 在必须运行 Windows 几个月后,我终于在 Lubuntu 12.04 上对此进行了测试,其中 IntelliJ IDEA 窗口仍然没有捕捉到击键。 (2认同)
  • 使用这两个设置对我来说都是必需的,并且对我有用。(在centos上)。ctrl-alt-f7 现在显示 intellij 中的内联用法:)。 (2认同)

小智 5

您可以通过转到系统设置 -> 键盘布局 -> 选项来禁用此功能。在其他兼容性选项下检查“特殊键Ctrl+ Alt+<key>在服务器中处理”。

我查了一下,Ubuntu 没有捕获Ctrl+ Alt+... 的任何组合。但想法仍然没有捕获++ Ctrl,问题仍然存在!AltF7

  • 耶!发现 Ubuntu IDEA 默认处理 Ctrl + Alt + **7** 而不是 **F7**! (4认同)