Che cos'è <Primary> per una chiave?


18

Ho appena visto una strana scorciatoia in dconf-editor:

<Primary><Alt>KP_End

Che cosa è <Primary>?

Ho anche visto una Above-Tabchiave. Capisco perfettamente a cosa si riferisce, ma sono stati definiti quei nomi chiave?

Risposte:


16

<Primary>è una gtk+cosa.
gtk+ 2.24.7e ha gtk+ 3.2.1introdotto il concetto di un modificatore dell'acceleratore indipendente dalla piattaforma <Primary>, che può essere utilizzato al posto di <Control>:

una nuova funzione è fornita in Gtk + (al momento della stesura di questo documento è in Git per Gtk + -2.24 e rilasciata in Gtk + -3.2.0) per utilizzare il <Primary> descrittore al posto di <Control>per acceleratori e associazioni. Questo mapperà l'acceleratore su Command su OSX e su Control per qualsiasi altra cosa. 1

Come da questo impegno :

GTK: consente di specificare gli acceleratori in modo indipendente dalla piattaforma. Introdurre <Primary>nelle stringhe dell'acceleratore, che si risolve in GDK_CONTROL_MASK su X11 / Win23 e in GDK_META_MASK su quarzo.

è definito (insieme ad altri acceleratori) in 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>è una cosa di window manager.
Come da questo impegno in metacity:

Vogliamo passare da una finestra all'altra di un'operazione facilmente accessibile. La combinazione di tasti comoda e memorabile è la chiave sopra il tasto tab, ma il keyym per quel tasto non è coerente in diversi layout di tastiera. Aggiungi il codice che individua la chiave dalla geometria XKB e un nome keyms magico "Above_Tab" che fa riferimento a questa chiave e imposta l'associazione predefinita per cycle_group su Above_Tab

Vedi anche questo commit nei mutterfile sorgente meta-accel-parse.cemeta-accel-parse.h


Accidenti, che confusione. Vuoi dire che è normalmente una cosa GNOME, tranne che Above-Tab e Primary sono solo mormori ?? (Vale a dire solo un mormorio può capire le descrizioni delle scorciatoie contenenti quelle?)
Robert Siemer,

5

<Primary>di solito significa (pulsante aka Windows), ma può essere ridefinito (l'ho visto mappato in alcuni punti). Il wiki di GNOME dice :Ctrl SuperCtrlShift

La chiave principale del modificatore di sistema dovrebbe essere (Super / Windows / Tasto comando).

Argh. C'è un po 'di confusione qui. Sebbene il Wiki GNOME dica la "chiave del modificatore del sistema primario", in realtà potrebbe essere diverso dalla "chiave primaria". Due post sul forum indicano che la Primaria è Ctrl, come inizialmente pensavo. C'è un bug di due anni (risolto) sulla confusione Ctrle su Primary archiviato compizin Ubuntu, che dice:

In precedenza chiamavamo il tasto di controllo, <Control>ma ora è stato modificato in GNOME, quindi quando viene premuto il tasto di controllo <primary>. In compiz impostiamo le scorciatoie da tastiera come (ad esempio) <Control><Alt><Left>.

Sono rimasto con tentativi ed errori: prova Ctrlprima, poi Super.


2
<Primary>non è Super, come hai capito; questa è purtroppo una formulazione ambigua. Tuttavia, non è definito come Ctrl- cioè non è su OS X. Il suo scopo è mappare la chiave principale del modificatore del sistema host, che su OS X è Command. Ciò consente alle applicazioni che utilizzano GTK + di ottenere automaticamente scorciatoie che corrispondono alle applicazioni OS X native (ad es. Command+ ZPer annullare) e non sono inusuali / stonanti (poiché Ctrlviene utilizzato per cose diverse lì).
underscore_d

Questa risposta è molto confusa! <Primary>certamente significa <Control>( Ctrl) nel contesto di Gtk su non Mac e Command( ) su macchine Mac. Ad esempio, esci Ctrl+qora mappato automaticamente su ⌘+q. Anche la pagina wiki che hai citato non parla solo di <Super>nulla a che fare <Primary>.
Cas

@Cas bene, è bello sapere che hanno aggiornato il wiki.
muru,

Sarebbe possibile rimappare da Primario a Super su non quarzo (senza ricostruzione)?
Edoardo Vacchi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.