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


21

我有一个绑定CTRL+ ALT+ 的应用程序F7,但是我的linux机器似乎捕获了按键。

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

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


我没有任何具体建议,但是我认为,由于CTRL + ALT + Fn仅绑定在X-Windows系统下,因此内核不会以任何方式与其相关,并且您可能会更幸运尝试调整X11配置。
njsg 2012年

@njsg您可以使用相同的键从X11切换到vt,并切换回(也可以在vt之间切换)-因此它们在vt上的绑定必须完全相同。
Volker Siegel

Answers:


10

将其放置在/etc/X11/xorg.conf文件中以使用Ctrl+ Alt+ 禁用VT切换Fn

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

您还需要执行以下操作,以将事件传递给连接到显示器的客户端:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

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


这不会将组合转发到窗口,X仍会捕获它。
Jes 2012年

2
在运行Windows几个月后,我终于在Lubuntu 12.04上对此进行了测试,在该窗口中IntelliJ IDEA窗口仍然无法捕获按键。
杰斯(Jes)2012年

2
使用这两个设置既是我必需的,也是对我有用的。(在centos上)。ctrl-alt-f7现在在intellij :)中内联显示用法。
罗伯·道森

3
如果您正在使用Intellij并想CTL+ALT+F7用于“显示用法”,那么在Lubuntu 15.04上,默认快捷方式是acutally CTL+ALT+7CTL+ALT+F7如果要与其他操作系统保持一致,则需要将其更改回。
小鹏-ZenUML.com

1
只是为了确认这也适用于FreeBSD 11。
gsl

15

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

setxkbmap -option srvrkeys:none

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

setxkbmap -option ''

要打印当前设置,请调用setxkbmap -print

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

要在Xsession启动时调用,请在

/etc/X11/Xsession.d

/etc/X11/Xsession.d/65srvrkeys-none

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

有关更多信息man setxkbmap,请在您的shell提示符下键入,或参见Xorg setxkbmap手册页

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

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


谢谢@RobertL。我的希望很高,但是没有,这似乎对我的Debian jessie和Ubuntu 14.04安装没有任何影响。Ctrl-Alt-F7和Ctrl-Alt-F8仍在虚拟终端之间来回切换。我也没有菜单条目“系统设置”>“输入设备”> ...也许那是KDE的事情?我正在使用GNOME或Ubuntu默认设置。
2015年

我已经尝试了几种方法,并且这是唯一一种在Lubuntu 16.04中可用的方法,当我登录后即可使用。您知道如何在lxdm的问候屏中使用它吗?(在ubuntu中与lightdm一起使用)。
J.Serra

1
它可以在Linux Mint 18上运行。谢谢。
Hoang Tran

1
它适用于Debian 8(Jessie)。注意:我仅测试了命令行setxkbmap -option srvrkeys:none。我将该条目放在的文件中/etc/X11/Xsession.d/65srvrkeys-none。虽然我还没有注销并重新登录,但我认为它可以正常工作。
MikeyE

1
在Debian Buster上为我工作得很好;像@MikeyE一样,我还没有注销(并且可能在几周/几个月内不会注销;-),但是这种setxkbmap方法成功了。非常感激!
Per Lundberg

1

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

我检查这个和Ubuntu不赶的任意组合Ctrl+ Alt+ ...。但仍然没有想法Ctrl+ + Alt+ F7和问题仍然存在!!!


没错,Ubuntu无法捕获它,但是我怀疑X服务器可以捕获它。
Jes 2013年

3
好极了!发现默认情况下,Ubuntu IDEA中的Ctrl + Alt + 7代替了F7
o_nix 2013年

0

在Ubuntu 18.04中,您需要创建以下文件:

/usr/share/X11/xorg.conf.d/65-setxkbmap

具有以下内容:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

然后重新启动系统。


除文件名外,已在接受的答案中建议使用此文件名。
RalfFriedl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.