Ctrl + Alt + F#の再バインド/無効化仮想端末/コンソールの切り替え


21

CTRL+ ALT+ をバインドするアプリケーションがありますF7が、Linuxマシンはキーストロークをキャッチしているようです。

このキーを再バインド/無効にする方法はありますか?カーネルの再コンパイルは受け入れられる答えです。

問題のディストリビューションはFedora 16とUbuntu 11.10です。


具体的なアドバイスはありませんが、CTRL + ALT + FnはX-Windowsシステムでのみバインドされているため、カーネルは何らかの形でそれに関連することはなく、おそらく幸運になると思いますX11構成を調整しようとしています。
njsg

@njsg同じキーを使用してX11からvtに切り替えたり、元に戻したりすることができます(vtの間でも)。したがって、それらはvt上でまったく同じようにバインドする必要があります。
フォルカー・シーゲル

回答:


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はそれをキャッチします。
ジェス

2
Windowsを実行しなければならなかった数か月後、IntelliJ IDEAウィンドウがまだキーストロークをキャッチしないLubuntu 12.04でこれをテストしました。
イエス

2
2つの設定を使用することは両方とも私にとって必要であり、私のために働きました。(centosで)。ctrl-alt-f7は、intellijでインラインで使用法を表示しています:)。
ロブ・ドーソン

3
Intellijを使用CTL+ALT+F7しており、Lubuntu 15.04で「使用方法を表示」に使用する場合、デフォルトのショートカットはacutally CTL+ALT+7です。CTL+ALT+F7他のOSとの一貫性を保ちたい場合は、元に戻す必要があります。
シャオペン-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は、シェルプロンプトで入力するか、Xorg setxkbmapのマニュアルページを参照してください

Ubuntu 14.04 LTS(Trusty)上のKDEでこれをテストしました。これらの設定は、[システム設定]> [入力デバイス]> [キーボード]> [詳細設定]でも使用できます。srvrkeysGUI設定で変更すると、すぐに表示されsetxkbmap、その逆も同様です。

X11コマンドラインインターフェイスを介してXウィンドウシステムを変更することを好みます。それでもうまくいかない場合は、デスクトップ環境を試します。最後の手段として、システム構成ファイルを変更します。実装とファイル形式は変わりますが、コマンドラインインターフェイスはUnix / Linuxの伝統でほぼ永久に生き続けています。


ありがとう、@ RobertL。私の希望は高かったが、いや、これは私のDebian jessieとUbuntu 14.04のインストールに影響を与えないようだ。Ctrl-Alt-F7およびCtrl-Alt-F8は、引き続き仮想端末との間を行き来します。また、[システム設定]> [入力デバイス]> ...というメニューエントリもありません。私はGNOMEまたはUbuntuのデフォルトを使用しています。
glts

私はいくつかの方法を試しましたが、これはLubuntu 16.04で動作する唯一の方法で、ログインしたときに動作します。lxdmのグリーター画面で動作させる方法を知っていますか?(ubuntuではlightdmが動作します)。
J.セラ

1
Linux Mint 18で動作します。ありがとうございます。
ホアントラン

1
Debian 8(Jessie)で動作します。注:コマンドラインのみをテストしましたsetxkbmap -option srvrkeys:none。エントリをファイルに入れます/etc/X11/Xsession.d/65srvrkeys-none。そして、まだログアウトもログインもしていませんが、うまくいくと思います。
MikeyE

1
Debian Busterで私のためにうまく働きました。@MikeyEのように、私はまだログアウトしていません(そしておそらく数週間/月以内にログアウトしません;-)が、setxkbmapアプローチはトリックをしました。とても有難い!
ルンドバーグあたり

1

これを無効にするには、システム設定->キーボードレイアウト->オプションを選択します。その他の互換性オプションでは、「サーバーで処理される特別なキーCtrl+ Alt+ 」を確認してください<key>

これを確認しましたが、UbuntuはCtrl+ Alt+ ...の組み合わせを検出しません。しかし、まだアイデアはCtrl+ Alt+ F7をキャッチせず、問題はまだ終了します!!!。


あなたは正しいです。Ubuntuはそれをキャッチしませんが、Xサーバーはそれを疑います。
ジェス

3
わーい!Ubuntu IDEAではデフォルトでF7ではなくCtrl + Alt + 7を処理することがわかりました
o_nix

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.