Co to jest <Primary> dla klucza?

18

Właśnie zobaczyłem dziwny skrót w edytorze dconf:

<Primary><Alt>KP_End

Co to jest <Primary>?

Widziałem też Above-Tabklucz. Rozumiem, do czego to się odnosi, ale czy zdefiniowano te kluczowe nazwy?

Robert Siemer
źródło

Odpowiedzi:

16

<Primary>jest gtk+rzeczą.
gtk+ 2.24.7i gtk+ 3.2.1wprowadził koncepcję niezależnego od platformy modyfikatora akceleratora <Primary>, którego można używać zamiast <Control>:

w Gtk + dostępna jest nowa funkcja (w chwili pisania tego tekstu jest ona dostępna w Git dla Gtk + -2,24 i wydana w Gtk + -3,2.0) do używania <Primary> deskryptora zamiast <Control>akceleratorów i powiązań. Spowoduje to mapowanie akceleratora na Command w OSX i Control na cokolwiek innego. 1

Zgodnie z tym zatwierdzeniem :

gtk: pozwala określić akceleratory w sposób niezależny od platformy. Wprowadź <Primary>w ciągach akceleratora, który rozwiązuje do GDK_CONTROL_MASK na X11 / Win23 i do GDK_META_MASK na kwarcu.

jest zdefiniowany (wraz z innymi akceleratorami) w 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>jest menedżerem okien.
Zgodnie z tym zatwierdzić w metacity:

Chcemy, aby przełączanie między oknami aplikacji było operacją łatwo dostępną. Wygodne i niezapomniane przypisanie klawiszy jest klawiszem nad klawiszem Tab - ale kombinacja klawiszy dla tego klawisza nie jest spójna w różnych układach klawiatury. Dodaj kod, który rozpoznaje klucz z geometrii XKB i magiczną nazwę klucza „Above_Tab”, która odnosi się do tego klucza, i przełącz domyślne powiązanie dla grupy_kolek na Above_Tab

Zobacz także to zobowiązać się mutteri plików źródłowych meta-accel-parse.cimeta-accel-parse.h

don_crissti
źródło
Rany, jak mylące. Czy masz na myśli, że normalnie jest to sprawa GNOME, z wyjątkiem tego, że Above-Tab i Primary są tylko dla mutterów? (Czyli tylko mamrotanie może zrozumieć opisy skrótów zawierające je?)
Robert Siemer,
5

<Primary>zwykle oznacza (inaczej przycisk Windows), ale można go przedefiniować (widziałem go w niektórych miejscach). Wiki GNOME mówi :Ctrl SuperCtrlShift

Podstawowym klawiszem modyfikującym system powinien być (klawisz Super / Windows / Command).

Argh. Jest tu trochę zamieszania. Chociaż Wiki GNOME mówi „główny klucz modyfikujący system”, może on w rzeczywistości różnić się od „klucza podstawowego”. Dwa posty na forum zauważają, że Primary jest , jak pierwotnie myślałem. Istnieje dwuletni (naprawiony) błąd dotyczący pomyłki i zgłoszenia głównego w Ubuntu, który mówi:CtrlCtrlcompiz

Wcześniej dzwoniliśmy do klawisza sterującego, <Control>ale teraz został on zmieniony w GNOME, więc po naciśnięciu klawisza sterującego <primary>jest zwracany. W compiz ustawiamy skróty klawiszowe jako (na przykład) <Control><Alt><Left>.

Pozostały mi próby i błędy: Ctrlnajpierw spróbuj Super.

muru
źródło
2
<Primary>nie jest Super, jak sobie uświadomiłeś; to niestety niejednoznaczne sformułowanie. Mimo to bardzo nie zdefiniowane jako Ctrl- to znaczy, że nie jest na OS X. Jej celem jest mapa do głównej klawisz modyfikujący systemu hosta, który na OS X jest Command. Pozwala to aplikacjom korzystającym z GTK + automatycznie uzyskiwać skróty, które pasują do natywnych aplikacji OS X (np. Command+ ZAby cofnąć) i nie są niczym niezwykłym / zgrzytającym (jak Ctrljest tam używane do różnych rzeczy).
underscore_d
Ta odpowiedź jest bardzo zagmatwana! <Primary>z pewnością oznacza <Control>( Ctrl) w kontekście Gtk na komputerach innych niż Mac i Command( ) na komputerach Mac. Na przykład zamknij Ctrl+qteraz automatycznie mapowane na ⌘+q. Również cytowana strona wiki mówi tylko, że <Super>nie ma z tym nic wspólnego <Primary>.
Cas
@Cóż, dobrze wiedzieć, że zaktualizowali wiki.
muru
Czy możliwe byłoby ponowne mapowanie Podstawowego na Super na kwarcu innym niż kwarcowy (bez odbudowy)?
Edoardo Vacchi,