Ubuntuはキーボードショートカットの構成をどこに保存しますか?


34

「Ubuntu」には、どのキー/組み合わせ/ショートカットが何にバインドされているかの完全なリストを保存する場所がありますか?

Unityのキーボードとマウスのショートカットは何ですか?ダッシュ、ランチャーなどへのいくつかの「Unity」ショートカットをリストし、使用中のCompizキーバインディングをリストする方法は?compizバインディングをリストする方法を示していますが、それ以上のものを探しています(UnityまたはCompizに限定されたキーバインディングの一部だけではありません)。

使用中のキーバインディング/キーの組み合わせ/キーボードショートカットのグローバルリストはありますか?Ubuntuのどこかに保存されていますか、それらをコンパイルして一覧表示する方法はありますか?Ubuntuとその中で実行されるもの(Unity、Compiz、プログラムへのショートカットなど)に適用されるもの。

確かに、Ubuntuは、キーボードで押されたキーの組み合わせが接続先に向けられるように、これをどこかに保存する必要がありますか?Ubuntuにそのような場所がない場合は、回答として投稿してください。そうすれば、将来のユーザーがその検索を知ることができます。


1
[OK]を私はあまり重複-yのようにそれを改題しました
ホルヘ・カストロ

これまでの2つの答えにより、2つの矛盾する一連のイベントが発生しました。Lakritsbollarは、ウィンドウマネージャーが最初に制御を取得してからアプリケーションに渡すと述べ、nfirvineはアプリケーションが最初にクラックを取得してからウィンドウマネージャーに渡すと述べました。どっち?
ジェームズ

いくつかのショートカットは、detector-pro.com
James James

回答:


10

ウィンドウマネージャは、アプリケーションが実行する前にキーイベントを取得するため、それらのイベントを消費したい場合は取得し、アプリケーションはそれらを受信しません。ウィンドウマネージャがキーイベント自体に反応したくない場合は、それらをアプリケーションに渡します。

これは、次の方法で自分で確認できます。

  1. ターミナルを起動します。
  2. xev | grep KeyPressXイベントビューアーを起動します。
  3. を押してAltxevターミナルウィンドウでキーイベントを取得したことを示します。
  4. を押しCtrl、再びxevイベントを取得したことに注意してください。現在、ターミナルウィンドウがどのように表示されているかに注意してください。
  5. を押しLeft arrowて別のワークスペースに移動します。(私はあなたがウィンドウマネージャのショートカットキーとしてそれを持っていると仮定しています。)
  6. を押しRight arrowて、実行中の場所に戻りますxev。左矢印キーと右矢印キーを使用してワークスペースを切り替えるためのキーイベントを受信しなかったことに注意してください。出力は手順4と同じです。

したがって、ウィンドウマネージャーは実際にはすべてのキーイベントを取得し、それらをキャプチャしたくない場合は、それらをアプリケーションに渡します。その後、アプリケーションは独自のウィジェットに対して同じことを行います(EnterWebブラウザーで1日中押すことができるが、アドレスバーまたはテキストを入力できるフィールドにカーソルを置くまで何もしません) 。

独自のショートカットを設定するのはアプリケーション次第であり、アプリケーションは互いに独立して構成されます。

KDE 3.xでは、正しく思い出せばCtrl-s、KDEコントロールセンターでデフォルトのショートカット(保存など)を設定でき、Qtツールキットで作成されたすべてのアプリケーションに適用されますが、それがまだ可能かどうかはわかりませんKDE 4への切り替え以来。


100%の答えではありませんが、近いです。基本的に、キーボードのバインド/ショートカットが保存される中心的な場所はありません。ウィンドウマネージャーは、最初にキーを押すと、アクティブなアプリケーションでクラックが発生します。フォーカスも役割を果たします。
ジェームズ

20

Ubuntu 17.10以降

このパスで

dconf dump /org/gnome/desktop/wm/keybindings/
dconf dump /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/  # Custom

dconf-editor(GUI)またはgsettings(CLI)を使用することもできます。

Ubuntu 12.10-17.04以降

~/.config/dconf/user(dconf-editorで:(org.gnome.settings-daemon.plugins.media-keys.custom-keybindingsカスタムショートカット)

~/.config/compiz-1/compizconfig

Ubuntu 12.04まで

ショートカットは、使用している魔女のデスクトップ(gnome / unity、kde、xfce、lxdeなど)によって異なります。

gnomeの場合、
~/.gconf/desktop/gnome/keybindings(カスタムショートカット)の 下にあります

および下
~/.gconf/apps/metacity


11.10はGNOMEまたはMetacityを使用しません。
nfirvine

しかし、ショートカットを使用する際のパスは引き続き機能します。
デスグア

11.10は、MacBook Proの上でインストールはかなり新鮮なUbuntuのを食べ探すとき、最初の場所は、キーバインドファイルを持っていなかったが、2番目の場所は、この持っていた:general/ global_keybindings/ window_keybindings/
ビクターS

1
最初の場所は、カスタムショートカット用です。
デスグア

1
@AnonymousPlatypusは見ここのためgsettingsの手順
wjandrea

4

いいえ、すべてのショートカットが保存される単一の場所はありません。アプリケーションは、選択した場所に構成を保存することを選択できます。

つまり、主に2つのレベルを見ています:アプリケーションレベル(FirefoxでのコピーのためのCtrl-Cなど)、およびウィンドウマネージャーレベル(デスクトップを表示するためのWin + Dなど)。 Compizはgconfを使用して構成を保存します

アプリケーションの場合、ツールキットごとに大まかに分けることができます。つまり、GTKアプリもgconfを使用します。

確かに、Ubuntuは、キーボードで押されたキーの組み合わせが接続先に向けられるように、これをどこかに保存する必要がありますか?

そうでもない。フォーカスされたアプリケーションはXキーボードイベントで最初にキックされますが、そうでない場合は、他のアプリケーション、つまりウィンドウマネージャーにバブルアップします。したがって、Alt + F4をキャプチャし、ウィンドウを閉じないゲームを作成できます(ジェームズタウン!)。中央のイベントルーターに送られ、データベースと照合されて、その宛先にルーティングされると考えていると思います。それは、飲み物のボトルを渡すようなものです。パス、必要に応じて一口飲み、残りを渡す、またはすべてを取得して欲張りになります。

Linux / FOSS環境(お気づきかもしれませんが)はかなり民主的であり、すべてのアプリケーションが単一の中央キーボード構成リポジトリに同意するのはばかげています。一つには、ずっと前に書かれていて、それについて知らない、メンテナンスされていないアプリケーションがあります。

更新:このテーマに関するXlibドキュメントによる

ソースウィンドウから開始して、Xサーバーは、これらのイベントに関心があるとクライアントが指定した最初のウィンドウを見つけるまで、ウィンドウ階層を上に検索します。介入するウィンドウの1つで、イベントタイプの生成を禁止するためにdo-not-propagate-maskが設定されている場合、それらのタイプのイベントは抑制されます。

また、

KeyPress、KeyRelease、ButtonPress、およびButtonReleaseイベントを受け取るには、ウィンドウのイベントマスク属性でKeyPressMask、KeyReleaseMask、ButtonPressMask、およびButtonReleaseMaskビットを設定します。

また、伝播を無効にする属性を設定できます

問題は、どのキーをリッスンするかをX 伝えないため、アプリケーションがリッスンするキーを(アプリが何をするかは言うまでも)先験的に伝えることはできません。それを聞いています。したがって、中央レジストリはXレベルでは不可能であるため、ツールキットレベルで行う必要がありますが、実際には不可能です。:D


フォーカスが入力を処理するものを決定するという、ほぼ同じ結論に達しました。これは、ブラウザウィンドウを開いてから、現在アクティブウィンドウになっているターミナルウィンドウを開くことで確認できます。ブラウザウィンドウ上にマウスを置くと、スクロールホイールを使用して、ターミナルウィンドウがアクティブウィンドウであってもブラウザウィンドウをスクロールします。
ジェームズ

私は私の質問に対する簡単な答え、または少なくともショートカットをコンパイルしてリストする簡単な方法を望んでいましたが、キー押下が最終的に定義された場所に到達する方法を考えると、不可能だと思われます。キーボードショートカット/キーバインドはいたるところに散らばっているようで、その使用はアクティブなものと現在のフォーカスがどこにあるかに依存する傾向があります。
ジェームズ

1
ただし、ウィンドウマネージャーの前にキーイベントを取得するアプリケーションについては説明しません。Window Managerには、最初にイベントでクラックが発生し、次にアクティブなアプリケーションが発生したと思います。
ジェームズ

1

アプリケーションはショートカットを個別に保存するため、保存される中心的な場所はありません。

対話キーボードのプロセス全体を理解していません-OS-カーネル-X11-ウィンドウマネージャー-デスクトップ環境-アプリケーションが、Geditのような特定のウィンドウにキーボードフォーカスがある場合、入力そのものであり、そうします。


-1

11.10では、[システム構成]-> [キーボード]-> [ショートカット]の下に、かなり大きなリストが表示されます。それはあなたが探しているものですか?


彼は、ショートカットのリストだけでなく、すべてのショートカットを含むファイルを探しています。
マークオサリバン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.