web-dev-qa-db-ja.com

*なぜ*キーボードショートカットをバインドできないのか(またはどのアプリがそれを取得したのか)を見つける方法

要するに:(Unityの下で)どのアプリケーションがグローバルショートカットを取得したかを知る方法はありますか? 「標準のショートカット」を要求しませんが、実際のショートカット(現在の設定で指定されたキーを実際に保持しているアプリ)についての情報を取得する方法を求めています

長い話:

キーボードショートカットの管理に繰り返し問題があります。現時点では:

  • Synapseが(*)アクティベーションショートカットとしてWin-Spaceをバインドできず、「署名 'space'でホットキー 'activate'を登録できませんでした」(通常、このショートカットは既に使用されていることを意味します)

    (*)あるログイン後は機能しますが、別のログイン後は機能しません。 2つのアプリ間の競合が疑われる…

  • 何らかの理由でF9を押すと画面が少し暗くなります(F9はアプリケーションレベルのショートカットに到達しないため、たとえば、by風メニューは機能しません)

私はいろいろな場所を見てみました、そして:

  • Iしないキーボード設定/ショートカットにこれらのショートカットが表示されない

  • Gconf-editorでそれらを見つけることができません(特に値でF9を検索しようとしましたが、何も見つかりませんでした)

  • Dconf-editorでそれらを見つけることができませんでした(検索がないため、最も明らかなパスをクリックしました)

だから私の質問は次のとおりです。unity/ dconf/gconf/d-bus/whateverに現在のグローバルホットキー割り当て(どのプロセスがどのキーを保持しているのか)を尋ねる方法はありますか。または、これらの割り当てをログファイルに強制的に記録します。または、どこからでもgrepします。または………

14
Mekk

12.10から17.04の間、Ubuntuデスクトップは実際 Compizであり、Unity自体はCompizプラグインです。

代わりに、Compiz「コマンド」プラグインを設定して有効にし、競合があるCCSSを使用してキーボードショートカットを設定する場合、CCSMは競合の原因となっているプラ​​グインを警告し、競合するプラグインまたは競合するキーバインディングを無効にするオプションも提供する必要があります設定を適用する前に。

個人的には、14.04以降でキーボードショートカットを設定するのが困難でしたが、Unityのキーボードショートカット設定の代わりにCCSMプラグインの使用を開始することを決めて以来、問題がまったく発生せず、すべてのショートカットが正常に機能するため、少なくともオプションとしてチェックアウトすることを強くお勧めします。

2
mchid

私の古い回答の1つ sから:

最初にxdotoolをインストールする必要があります:

Sudo apt-get install xdotool

キーストロークでの受動的なグラブを示す一連のコマンドを作成しました。たとえば、Shift + PrintScreenコンボを取得しているものを確認するには、以下の「スクリプト」を使用できます。

xdotool keydown "shift+Print"; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

これにより、Shift + PrtScキーイベントがトリガーされ、デフォルトのUbuntuインストールでは、キーボードをつかむgnome-settings-daemonが表示されます。少なくともこれは私の古い12.04インストールでは機能しましたが、14.04ではこれを使用する必要がありました。

xdotool key "shift+Print"; sleep 1; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

しかし

xdotool keydown "F12"; xdotool key "XF86LogGrabInfo"; xdotool keyup "F12"; tail /var/log/Xorg.0.log

それでも機能することもあれば、機能しないこともあります。理由がわかりません。

シミュレートする必要があるキーを変更して、上記の「スクリプト」を変更するだけです。

1
falconer

Nowあなたが必要なものを理解しています...

Sudo apt-get install evtest

Ubuntu USB HIDイベントの分解をお楽しみください!

警告これはPS2/styleキーボードでは動作しません...

1
Fabby