Was ist <Primär> für einen Schlüssel?

18

Ich habe gerade eine seltsame Verknüpfung in dconf-editor gesehen:

<Primary><Alt>KP_End

Was ist <Primary>?

Ich habe auch einen Above-TabSchlüssel gesehen. Ich verstehe vollkommen, worauf sich das bezieht, aber wurden diese Schlüsselnamen definiert?

Robert Siemer
quelle

Antworten:

16

<Primary>ist eine gtk+Sache.
gtk+ 2.24.7& gtk+ 3.2.1führte das Konzept eines plattformunabhängigen Beschleunigermodifikators ein <Primary>, der anstelle von <Control>:

In Gtk + wird eine neue Funktion bereitgestellt (zum jetzigen Zeitpunkt ist sie in Git für Gtk + -2.24 und in Gtk + -3.2.0 veröffentlicht), mit der der <Primary> Deskriptor anstelle von <Control>Beschleunigern und Bindungen verwendet werden kann. Dies ordnet den Beschleuniger Command unter OSX und Control für alles andere zu. 1

Nach diesem Commit :

gtk: Ermöglicht die plattformunabhängige Angabe von Beschleunigern. Einführung <Primary>in Beschleuniger strings, das aufgelöst wird , auf GDK_CONTROL_MASK X11 / Win23 und zu GDK_META_MASK auf Quarz.

es wird (zusammen mit anderen Beschleunigern) in definiert 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>ist eine Fenstermanagersache.
Nach diesem Commit in metacity:

Wir möchten, dass das Umschalten zwischen den Fenstern einer Anwendung leicht zugänglich ist. Die bequeme und einprägsame Tastenbelegung ist die Taste über der Tabulatortaste. Das Tastensymbol für diese Taste stimmt jedoch nicht mit den verschiedenen Tastaturlayouts überein. Fügen Sie Code hinzu, der den Schlüssel aus der XKB-Geometrie ermittelt, und einen magischen Schlüsselnamen "Above_Tab", der auf diesen Schlüssel verweist, und ändern Sie die Standardbindung für cycle_group in Above_Tab

Siehe auch dieses Commit in mutterund Quelldateien meta-accel-parse.cundmeta-accel-parse.h

don_crissti
quelle
Meine Güte, wie verwirrend. Meinen Sie, es ist normalerweise eine GNOME-Sache, außer dass Above-Tab und Primary nur murmeln? (Dh nur Mutter kann Shortcut-Beschreibungen verstehen, die diese enthalten?)
Robert Siemer
5

<Primary>In der Regel bedeutet (auch als Windows-Schaltfläche bezeichnet), kann aber neu definiert werden (ich habe es an einigen Stellen zugeordnet gesehen). Das GNOME-Wiki sagt :Ctrl SuperCtrlShift

Der primäre Systemmodifikatorschlüssel sollte sein (Super / Windows / Befehlstaste).

Argh. Hier gibt es einige Verwirrung. Obwohl das GNOME-Wiki den "primären System-Modifikatorschlüssel" nennt, kann sich dieser tatsächlich vom "primären Schlüssel" unterscheiden. Zwei Forum Beiträge beachten Sie, dass Primary ist Ctrl, wie ich ursprünglich dachte. Es gibt einen zwei Jahre alten (behobenen) Fehler in Bezug auf Verwirrung in Ubuntu, der besagt, dass CtrlPrimary gegen compizUbuntu eingereicht wurde :

Früher haben wir die Steuertaste aufgerufen, <Control>aber dies wurde jetzt in GNOME geändert, sodass beim Drücken der Steuertaste die <primary>Rückgabe erfolgt. In compiz setzen wir Tastaturkürzel als (zum Beispiel) <Control><Alt><Left>.

Ich habe nur noch Versuch und Irrtum: versuchen Sie es Ctrlzuerst, dann Super.

muru
quelle
2
<Primary>ist nicht Super, wie Sie erkannt haben; das ist nur leider mehrdeutig formuliert. Trotzdem ist es sehr viel nicht definiert als Ctrl- dh es ist nicht unter OS X. Sein Zweck ist es, dem Hauptmodifikatorschlüssel des Hostsystems zuzuordnen, der sich unter OS X befindet Command. Auf diese Weise können Anwendungen, die GTK + verwenden, automatisch Verknüpfungen erhalten, die mit nativen OS X-Anwendungen übereinstimmen (z. B. Command+ Zzum Rückgängigmachen) und nicht ungewöhnlich sind Ctrl.
Underscore_d
Diese Antwort ist sehr durcheinander! <Primary>bedeutet auf jeden Fall <Control>( Ctrl) im Gtk-Kontext auf Nicht-Macs und Command( ) auf Mac-Computern. Zum Beispiel beenden Ctrl+qjetzt automatisch zugeordnet ⌘+q. Auch die Wiki-Seite, die Sie zitiert haben, spricht nur über <Super>nichts, was damit zu tun hat <Primary>.
Cas
Gut zu wissen, dass sie das Wiki aktualisiert haben.
muru
Wäre es möglich, Primär auf Super auf Nicht-Quarz (ohne Neuaufbau) neu zuzuordnen?
Edoardo Vacchi