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


14

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

長い話:

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

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

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

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

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

  • 私はしていないキーボードの設定/ショートカットにそれらのいずれかのショートカットを参照してください

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

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

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


(この質問の目的のために)グローバルショートカットの意味を明確にしたり定義したりできますか?

私が押すと、現在アクティブなウィンドウとは関係のない何かが発生するキー。たとえば、グローバルショートカットWin-Sはエキスポビューを開き、グローバルショートカットAlt-Tabはウィンドウを切り替え、F12(セットアップでは)ティルダドロップダウンターミナルなどを開きます。どのアプリがそれを行うのか、その理由はわかりません。そして、何かが時々Win-spaceをつかみます。そして、過去にF12がチルダから取り去られたのを偶然目にしました(幸いなことに、この問題はなくなりました)。したがって、これらのキーボードの割り当てを調べる方法があればうれしいです。
メック

F9でウィジェットオーバーレイをアクティブにできると思いますが、Unityを使用してから時間が経ちました。多分CCSMでそれを探してください。
ラスマス14

askubuntu.com/questions/101226/...またはwiki.ubuntu.com/Keybindings superuser.com/questions/152367/…をがショートカットを保存するdconfやgconfなどの場所がいくつか説明されています。これらのページで新しい情報を確認してください。
バイトコマンダー

回答:


2

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

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

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


1

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

sudo apt-get install evtest

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

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


私の問題を完全に解決するわけではありませんが、確かに便利です。それでも、私はそれらのアクティブなバインディングが実際に保持される場所とそれを内省できるかどうかに興味があります(gsettingsは多くのアプリから読み取られる場所ですが、すべてのアプリがgsettingsを使用する必要はありません...)
Mekk

あなたが私に上記のコマンドの出力を与えた場合、私はあなたを助けることができる...あなたが知りたい場合は、なぜ、私は読むことをあなたに助言:wiki.archlinux.org/index.php/Extra_keyboard_keysを して、あなたが感謝します、それは動作しますまったく!!! ;-)
Fabby 14

この記事は、私が尋ねているものとはまったく異なります-キーが物理的なキープレスからシンボルにどのように変換されるかは尋ねません(これはまた興味深いものであり、時には混乱を招きます)。より簡単なことを尋ねます。どのプログラムが実際にグローバルキーボードショートカットを保持および適用し、それらの割り当てをイントロスペクトまたはトレースできるようなユーティリティまたはAPIが存在するかどうかです。
メック14

(団結を開始すると、Alt-F2、Alt-F4、Win-Sなどを登録します。シナプスを開始すると、Win-spaceを登録します。yakuakeを開始すると、F12などを登録します。彼らがそれらのキーを登録する場所と、この場所にアクセスする方法は何ですか?)
Mekk 14

ああ...なるほど...呼ばれるものがありますがevtest、それはUSBのものだけです!一方、PS / 2スタイルのキーボードなしでラップトップまたはデスクトップを使用する場合、まさにそれが必要です。
ファビー14

1

私の古い答えの一つからの:

最初にインストールする必要があります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

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

シミュレートする必要があるキーを変更することにより、上記の「スクリプト」を変更する必要があります。

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