質問: キーの<primary>とは何ですか? 私はdconf-editorで奇妙なショートカットを見た:<primary><alt>kp_end<primary>とは何ですか?above-tabキーも見ました。私はそれが何を意味しているのかを完全に理解していますが、それらのキー名は定義されていますか?
回答: <primary>はgtk+です。 gtk+ 2.24.7&gtk+ 3.2.1は、プラットフォームに依存しないアクセラレータ修飾子<primary>の概念を導入しました。これは、<control>の代わりに使用できます。 新しい機能がgtk +で提供され(このドキュメントの執筆時点では、gitk + -2.24のgitにあり、gtk + -3.2.0でリリースされています)、<primary>記述子を適切に使用しますアクセラレータおよびバインディング用の<control>。これにより、アクセラレータがosxのコマンドとその他のコントロールにマップされます。 1 このように commit : gtk:プラットフォームに依存しない方法でアクセラレータを指定できるようにします。アクセラレータ文字列に<primary>を導入すると、x11/win23ではgdk_control_mask、quartzではgdk_meta_maskに解決されます。 gtkaccelgroup.c で(他のアクセラレータとともに)定義されていますgtk_accelerator_name (guint accelerator_key, gdkmodifiertype accelerator_mods) { static const gchar text_release[] = "<release>"; static const gchar text_primary[] = "<primary>"; static const gchar text_shift[] = "<shift>"; static const gchar text_control[] = "<control>"; static const gchar text_mod1[] = "<alt>"; static const gchar text_mod2[] = "<mod2>"; static const gchar text_mod3[] = "<mod3>"; static const gchar text_mod4[] = "<mod4>"; static const gchar text_mod5[] = "<mod5>"; static const gchar text_meta[] = "<meta>"; static const gchar text_super[] = "<super>"; static const gchar text_hyper[] = "<hyper>"; <above_tab>はウィンドウマネージャーのものです。 これに従って commit in metacity: アプリケーションのウィンドウ間の切り替えを簡単にアクセスできる操作にしたいと考えています。便利で覚えやすいキーバインドは、タブキーの上のキーです。ただし、そのキーのキーシムは、キーボードレイアウトによって異なります。 xkbジオメトリからキーを計算するコードと、このキーを参照する魔法のキーシム名「above_tab」を追加し、cycle_groupのデフォルトのバインディングをabove_tabに切り替えます。 これも参照 commit in mutterおよびソースファイル meta-accel-parse.c および meta-accel-parse.h