¿Qué es <Primary> para una clave?

18

Acabo de ver un acceso directo extraño en dconf-editor:

<Primary><Alt>KP_End

¿Qué es <Primary>?

También vi una Above-Tabllave. Entiendo completamente a qué se refiere, pero ¿se definieron esos nombres clave?

Robert Siemer
fuente

Respuestas:

16

<Primary>es una gtk+cosa
gtk+ 2.24.7& gtk+ 3.2.1introdujo el concepto de un modificador acelerador agnóstico de plataforma <Primary>, que puede usarse en lugar de <Control>:

se proporciona una nueva instalación en Gtk + (a partir de este escrito está en Git para Gtk + -2.24, y se lanzó en Gtk + -3.2.0) para usar el <Primary> descriptor en lugar de <Control>aceleradores y enlaces. Esto asignará el acelerador a Command en OSX y a Control para cualquier otra cosa. 1

Según este compromiso :

gtk: permite especificar aceleradores de forma independiente de la plataforma. Introducir <Primary>en las cadenas del acelerador, que resuelve GDK_CONTROL_MASK en X11 / Win23 y GDK_META_MASK en cuarzo.

se define (junto con otros aceleradores) en 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>es una cosa de administrador de ventanas.
Según este compromiso en metacity:

Queremos cambiar entre las ventanas de una aplicación para que sea una operación de fácil acceso. La combinación de teclas conveniente y memorable es la tecla encima de la tecla de tabulación, pero el símbolo de esa tecla no es consistente en diferentes diseños de teclado. Agregue código que descubra la clave de la geometría XKB y un nombre mágico de teclado "Above_Tab" que se refiere a esta clave y cambie el enlace predeterminado para cycle_group a Above_Tab

Ver también este cometen en mutterarchivos fuente meta-accel-parse.cymeta-accel-parse.h

don_crissti
fuente
Dios, qué confuso. ¿Quiere decir que normalmente es algo de GNOME, excepto que Above-Tab y Primary son solo para murmurar? (Es decir, solo murmurar puede entender las descripciones de atajos que las contienen)
Robert Siemer
5

<Primary>generalmente significa (también conocido como botón de Windows), pero se puede redefinir (lo he visto asignado en algunos lugares). El wiki de GNOME dice :Ctrl SuperCtrlShift

La clave modificadora principal del sistema debe ser (Super / Windows / tecla de comando).

Argh Hay cierta confusión aquí. Aunque el Wiki de GNOME dice la "clave modificadora del sistema primario", de hecho puede ser diferente de la "clave primaria". Dos publicaciones en el foro señalan que Primaria es , como originalmente pensé. Hay un error (fijo) de dos años sobre la confusión y el archivo primario presentado en Ubuntu, que dice:CtrlCtrlcompiz

Anteriormente solíamos llamar a la tecla de control, <Control>pero ahora se ha cambiado en GNOME, por lo que cuando se presiona la tecla de control <primary>se devuelve. En compiz establecemos atajos de teclado como (por ejemplo) <Control><Alt><Left>.

Me queda la prueba y error: intente Ctrlprimero, luego Super.

muru
fuente
2
<Primary>no es Super, como te diste cuenta; esa es, lamentablemente, una redacción ambigua. Aún así, es mucho no define como Ctrl- es decir, no está en OS X. Su objetivo es trazar un mapa de teclas de modificación principal del sistema anfitrión, que en OS X es Command. Esto permite que las aplicaciones que usan GTK + obtengan atajos automáticamente que coinciden con las aplicaciones nativas de OS X (por ejemplo, Command+ Zpara deshacer) y no son inusuales / discordantes (como Ctrlse usa para diferentes cosas allí).
underscore_d
¡Esta respuesta es muy confusa! <Primary>ciertamente significa <Control>( Ctrl) en contexto Gtk en equipos que no son Mac y Command( ) en máquinas Mac. Por ejemplo, salir Ctrl+qahora se asigna automáticamente a ⌘+q. Además, la página wiki que citó solo no habla de <Super>nada que ver <Primary>.
Cas
@Cas bien, es bueno saber que actualizaron la wiki.
muru
¿Sería posible reasignar Primario a Súper en no cuarzo (sin reconstrucción)?
Edoardo Vacchi