アプリケーション固有のショートカットのシステム全体のショートカットをオーバーライドする


11

アプリケーションで定義されたキーボードショートカットを、同じキーバインドのシステム全体のショートカットよりも優先させる方法はありますか?

望ましい動作:一部のキーが押された ときに、フォーカスされたアプリケーションが何かを実行したいかどうかを確認します(実行している場合は実行します)。そうでない場合は、いくつかのキーのシステムショートカットがあるかどうかを確認してから実行してください。

何が起こる現在: 私はしているF11キーボードショートカットの設定メニューで「トグルフルスクリーン」として設定します。Chromeでは、Chrome F11独自のフルスクリーンモードを有効にする必要がありますが、代わりにシステム全体のショートカットによってオーバーライドされます。つまり、Chromeはフルスクリーンになります(GNOMEパネルとタイトルバーは消えます)が、Chromeのフルスクリーンモード(タブ、アドレスバー、ブックマークバーも消えます)。

(サイドノート:Firefoxには同じ問題はありませんが、FFフルスクリーンはウィンドウマネージャーのフルスクリーンと同じであるか、トリガーされるためです)


私の頭に浮かぶ最初の質問。キーの押下、アプリケーション、またはX / WaylandについてOSと話すものは何ですか?Xはキーの押下を処理し、必要に応じてマングルを処理してから、アプリケーションが待機しているウィンドウに渡します。2番目の質問は、アプリケーションが状態を変更したかどうかをXがどのように知り、キーが押されたために変更が直接発生したかをどのように知るかです。私は手足に出て、あなたはこれで運が悪いと言う傾向があります。
HellionWisp

回答:


2

免責事項:これはあなたが望んでいるものとはまったく異なりますが、投稿しないようにこれに時間を費やしすぎたため、他の誰かが使用できる可能性があります。

Ctrl + F11はどこでもフルスクリーンですが、ChromiumはChromiumのフルスクリーンです。

  1. 一連の考え

使用xdotoolしてコマンドを直接クロムウィンドウに送信すると、ウィンドウマネージャーをだますことができると思いました-無駄に。

それから私はグーグルクロムでキーボードショートカットを変更できるかもしれないと思ったが、それはハードコードされているようだ-もう一つの行き止まり。

  1. これは私たちにこれを残します

インストールxdotoolしてキーボードの押下をシミュレートします

sudo apt-get install xdotool

Ubuntuキーボードショートカットを任意の何かに再構成します。これは入力することはありませんが、スクリプトでは使用できます。

設定 -> デバイス -> キーボード

下にスクロールして、編集フルスクリーンモードの切り替えCtrl + Alt + 1して、ヒット+し、カスタムキーボードショートカットを追加

キーボードショートカット-フルスクリーン

+押して、カスタムキーボードショートカットを追加します

カスタムショートカットのダイアログ

スクリプトを編集する

nano /home/user/fullscreen.sh


#!/bin/bash
export DISPLAY=:0
windowname=$(xdotool getactivewindow getwindowname | cut -d "-" -f 2)
if [[ $windowname != *"Chromium"* ]]
then
xdotool keydown Ctrl keydown Alt key 1 keyup Alt keyup Ctrl
else
xdotool search --onlyvisible --class "Chromium" windowfocus 
sleep 0.2
xdotool key F11
fi

実行可能にする

chmod +x /home/user/fullscreen.sh

  1. 結論

ウィンドウマネージャーをだましてキーストロークを密輸することは不可能に思えますが、可能な回避策は確かにあります。この場合、Googleはフルスクリーンキーボードショートカットを構成できないようにしたため、マークに達しません。

これで、Ctrl + F11を使用して、ウィンドウマネージャーがクロム以外の全画面動作を制御します。


1
Chrome / iumはカスタムキーボードショートカットをサポートしていないのは残念です。注目に値する:キーボードショートカットの選択は、このトリックにとって重要です!Ctrl + F11を別のものにバインドしました。Shift + Alt + F11を試してみましたが、機能しませんでした。ただし、Alt + F11は正常に機能しました。(私はそれがShiftキー+ Ctrlキー+ Altキー+ F11キーを行うことを試みていたと思います)
フレッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.