質問: ctrl + alt + f1(およびその他の特別なキーストローク)をxウィンドウに送信するにはどうすればよいですか? 押すと ctrl+alt+f{1..12}、他の仮想端末に切り替えます。xte "keydown control_l" "keydown alt_l" "key f1" "keyup alt_l" "keyup control_l"は、フォーカスされたウィンドウにそのキーを送信する代わりに、vtに切り替えることにつながります。このユースケースには、ホストシステムではなくクリネット/ゲストシステムによって処理されるvncまたは仮想化クライアントへの特別なキーストロークの送信が含まれます(ただし、これらに限定されません)。時々(virtualboxのように)アプリケーションはいくつかの特別な代替キーストロークをその特別なものに明示的にマップします( ctrl+alt+del または ctrl+alt+backspace virtualboxで)、しかし私はクリーンで普遍的なソリューションが欲しいです。
回答: 電話しましょう ctrl+alt+fx (どこ fx 機能ボタンの1つです: f1、 f2、 f3...)srvrキー。 srvrキーをその場で無効/有効にする方法があります。無効にするということは、x11がそれらを飲み込むのではなく、ウィンドウマネージャー(kdeのkwin)に渡すことを意味します。 srvrキーをダイヤルするには、setxkbmap -option srvrkeys:noneを実行します srvrキーを有効にするには、setxkbmap -optionを実行します srvr_ctrl(no_srvr_keys)フラグが有効になっているかどうかを確認するには、setxkbmap -print | grep xkb_symbolsを実行します。kdeでは、ウィンドウアクションを実行する可能性があります(たとえば、ウィンドウがフォーカスを取得または失ったときにコマンドを実行します)。そのため、特別なアプリケーションウィンドウがフォーカスされたときにsrvrキーを自動的に無効にし、フォーカスが失われたときに自動的に有効に戻すことができます。それは普遍的な解決策です。 teamviewer、virtualbox、chromeリモートデスクトップ、ipkvmビューア、krdcなどのアプリケーションに役立ちます。 興味があれば、これが私がこのことに使用する私のスクリプトです: https://github.com/ashark/aten-ip8000/blob/master/srvrkeys