web-dev-qa-db-ja.com

キーの<Primary>とは何ですか?

私はdconf-editorで奇妙なショートカットを見た:

<Primary><Alt>KP_End

<Primary>とは何ですか?

Above-Tabキーも見ました。私はそれが何を意味しているのかを完全に理解していますが、それらのキー名は定義されていますか?

18
Robert Siemer

<Primary>gtk+です。
gtk+ 2.24.7gtk+ 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

17
don_crissti

<Primary>は通常、 CtrlSuper (別名Windowsボタン)、しかし再定義することができます(私はそれがマッピングされているのを見ました CtrlShift いくつかの場所で)。 GNOME wikiによると

主要なシステム修飾キーは(Super/Windows/Commandキー)でなければなりません。

ああ。ここでいくつかの混乱があります。 GNOME Wikiは「主システム修飾キー」と言っていますが、実際には「主キー」とは異なる場合があります。 2つの フォーラム投稿 プライマリが Ctrl、私が最初に思ったように。 2歳の(修正された)バグ の混乱について Ctrl そしてプライマリはUbuntuのcompizに対して提出されました、それは言います:

以前はコントロールキー<Control>を呼び出していましたが、これはGNOMEで変更されたため、コントロールキーを押すと<primary>が返されます。 compizでは、キーボードショートカットを(たとえば)<Control><Alt><Left>として設定します。

試行錯誤が残っています:試してください Ctrl まず Super

5
muru