web-dev-qa-db-ja.com

タブを含むキーショートカットをバインドするにはどうすればよいですか

XFCEのターミナルの次/前のタブショートカットをから再バインドしたい Ctrl+PgDn/PgUp に Ctrl+Tab/Ctrl+Shift+Tabaccels.scmを編集するか、メニューにカーソルを合わせて目的のキーコンボを押してショートカットをインタラクティブに変更しても、機能しないようです。

他のキーはこれにうまく機能します、それは関係する単なるショートカットです Tab それが問題です。これらはGTKに特有のものであり、アプリケーションに到達することすらできないと思います。これをオーバーライドする方法はありますか?

1
Davor Cubranic

少なくともXfceターミナルでは、ショートカットにTabキーを使用することはできません。

直接回答

[...]問題となるのはTabを含む単なるショートカットです。これらはGTKに特有のものであり、アプリケーションに到達することすらできないと思います。

あなたの仮定は正しいです。この制限は実際にはGTK +アプリケーションプログラムに適用され、Xfceターミナルはその1つです。また、Tabキーを使用するショートカットだけでなく、PageUp、PageDown、F10など、個別に使用できない他のいくつかのキーもあります(修飾キーなし)。

これをオーバーライドする方法はありますか?

回避策は存在するかもしれませんが、おそらくありません。より良い方法は、Tabキーの代替を探すか、それを可能にする他のアプリケーションプログラムを使用することです。以下の説明も参照してください。

寄稿者による説明

まず、「次/前のタブのキーボードショートカットは何もしない」と報告した日付があります バグ3524 。最も関連性の高いコメントを以下に引用しました。

[コメント9:Nick Schermer 2009-10-10 13:49:08 CEST]

Xfwmとターミナルはアクセラレータを処理する場合に異なる方法を使用します(xfwmはxから直接、ターミナルはgtkに依存します)。は無効なアクセラレータとして扱われるgtkにあるため、「修正」するために、この端末はアクセラレータを設定する前に、アクセラレータが有効かどうかを確認します。その結果、これ以降、ショートカットエディタでを押しても何も起こりません。

次に、「PyGTK:AccelGroupでタブの使用を許可する」という日付の Stack Overflowへの投稿 があります。質問の関連部分は以下に引用されています。

Gtk.AccelGroupを使用する場合、タブ文字との組み合わせは無効です。これで、UIナビゲーションがこのキーを使用して行われることを理解しました[...]

ドキュメントによる説明

「UIナビゲーションはこのキーを使用して実行されます」に関して、GNOME開発者のドキュメントでは、以下に引用されているように、 キーボード入力 のトピックに問題が記載されています。

キーボードナビゲーション

[...] Tab GTK +およびGNOMEとのインターフェースを移動するための標準キーです。

さらに、Tabキーを使用するショートカットには専用の機能があります。

標準のナビゲーションキー

Tab そして Shift+Tab キーボードのフォーカスを次/前のコントロールに移動します

Ctrl+Tab そして Shift+Ctrl+Tab タブだけに別の機能がある状況では、キーボードのフォーカスを囲んでいるウィジェットから次の/前のコントロールに移動します

Ctrl+Tab そして Shift+Ctrl+Tab キーボードのフォーカスを次/前のコントロールグループに移動します

したがって、以前のコメントは今では意味があります。

修正された回答(2017.04.04)

タブキーは、コマンドラインシェルで タブ補完^Iとして認識されますが、グラフィカルアプリケーションプログラムのショートカットとしてタブキーを使用できないこととの関連性はほとんどありません。

Tabキーをショートカットとして使用できないのはなぜですか?理由は単純でした。Tabキーとその組み合わせキーはGTK +とGNOMEによって予約されています。

GSettingsを介したGNOMEターミナルではショートカットにTabキーを使用できますが、この回答日まで、Xfconfを介したXfceターミナルに相当するハッキングはありません。

1
clearkimura