
XFCE のターミナルで、次/前のタブのショートカットをCtrl+ PgDn/PgUpからCtrl+ Tab/ Ctrl+ Shift+に再バインドしたいと思いますTab。メニューにマウスを移動して目的のキーの組み合わせを押すことで、ショートカットを対話的に編集または変更しても機能しないようですaccels.scm
。
他のキーはこれに対して問題なく機能しますが、問題となるのは、それに関連するショートカットだけですTab。これらは GTK に固有のものであり、アプリケーションには届かないと思います。これをオーバーライドする方法はありますか?
答え1
少なくとも Xfce ターミナルでは、ショートカットに Tab キーを使用することはできません。
直接的な回答
[...] 問題となるのは、Tab を使用するショートカットだけです。これらは GTK に特有のもので、アプリケーションには届かないものだと思います。
あなたの推測は正しいです。この制限は実際には GTK+ アプリケーション プログラムに適用され、Xfce ターミナルもその 1 つです。また、Tab キーを使用するショートカットだけでなく、PageUp、PageDown、F10 などの他のいくつかのキーも個別に使用できません (修飾キーなし)。
これを上書きする方法はありますか?
おそらくできませんが、回避策が存在する可能性があります。より良い方法は、Tab キーの代替手段を探すか、Tab キーを許可する他のアプリケーション プログラムを使用することです。以下の説明も参照してください。
寄稿者による解説
まず、日付が入ったバグ 3524「次/前のタブのキーボード ショートカットは何も機能しない」と報告されています。最も関連性の高いコメントを以下に引用します。
[コメント 9: Nick Schermer 2009-10-10 13:49:08 CEST]
Xfwm とターミナルは、アクセラレータの処理に異なる方法を使用します (xfwm は x から直接、ターミナルは gtk に依存します)。 は gtk では無効なアクセラレータとして処理されるため、これを「修正」するために、ターミナルはアクセラレータを設定する前に、アクセラレータが有効かどうかを確認します。その結果、今後は を押してもショートカット エディターで何も起こりません。
第二に、時代遅れのStack Overflowに投稿「PyGTK: AccelGroup で Tab の使用を許可する」という質問がありました。質問の関連部分を以下に引用します。
gtk.AccelGroup を使用する場合、Tab 文字との組み合わせは無効です。UI ナビゲーションはこのキーを使用して行われることが分かりました [...]
ドキュメントによる説明
「UIナビゲーションはこのキーを使用して行われます」に関しては、GNOME開発者ドキュメントのトピックでこの問題が指摘されています。キーボード入力以下に引用します。
キーボードナビゲーション
[...] はTab、GTK+ および GNOME のインターフェース内を移動するための標準キーです。
さらに、Tab キーを使用するショートカットには専用の機能があります。
標準ナビゲーションキー
TabおよびShift+Tab キーボードフォーカスを次/前のコントロールに移動する
Ctrl+TabとShift+ Ctrl+ Tab Tabキーのみでは別の機能がある場合に、キーボードフォーカスを囲んでいるウィジェットから次の/前のコントロールに移動します。
Ctrl+TabとShift+ Ctrl+Tab キーボードフォーカスを次の/前のコントロールグループに移動します
したがって、以前のコメントは今では意味をなします。
回答を修正しました (2017-04-04)
Tabキーは^I
コマンドラインシェルでは次のように認識されますタブ補完ただし、グラフィカル アプリケーション プログラムで Tab キーをショートカットとして使用できないこととはほとんど関係がありません。
なぜ Tab キーをショートカットとして使用できないのでしょうか? 理由は簡単です。Tab キーとその組み合わせキーは GTK+ と GNOME によって予約されているからです。
GSettings 経由の GNOME ターミナルではショートカットに Tab キーを使用できますが、現時点では Xfconf 経由の Xfce ターミナルに相当するハックはありません。
答え2
私はユーティリティ autokey を使用して「Tab」ショートキーをバインドします。たとえば、Nemo ファイル コマンダーで右パネルと左パネルを切り替えるために Tab を使用します。
Linux Mint 20 ネモ 4.6.5
AutoKeyで次のように設定する必要があります: ホットキー: ウィンドウ フィルター: nemo
----- スクリプト例 ---# Tab キーをパネル切り替え (F6 キー) にバインドする
keyboard.send_key("<f6>")
time.sleep(0.1)
keyboard.send_key("Tab")
答え3
xfce4-terminal 0.8.9.1 (Xfce 4.14)
これは- 編集で機能します.config/xfce4/terminal/accels.scm
(gtk_accel_path "<Actions>/terminal-window/next-tab" "<Primary>Tab")
(gtk_accel_path "<Actions>/terminal-window/prev-tab" "<Primary><Shift>Tab")