Что такое <Primary> для ключа?

18

Я только что увидел странный ярлык в dconf-editor:

<Primary><Alt>KP_End

Что такое <Primary>?

Я также видел Above-Tabключ. Я полностью понимаю, о чем идет речь, но были ли определены эти ключевые имена?

Роберт Симер
источник

Ответы:

16

<Primary>это gtk+вещь.
gtk+ 2.24.7& gtk+ 3.2.1представила концепцию не зависящего от платформы модификатора ускорителя <Primary>, который можно использовать вместо <Control>:

в Gtk + предоставляется новое средство (на момент написания статьи оно было в Git для Gtk + -2.24 и выпущено в Gtk + -3.2.0) для использования <Primary> дескриптора вместо <Control>ускорителей и привязок. Это отобразит акселератор на Command на OSX и Control для всего остального. 1

Согласно этому коммиту :

gtk: позволяет указывать ускорители независимо от платформы. Введем <Primary>в ускорительных строк, которые решает GDK_CONTROL_MASK на X11 / Win23 и 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>это менеджер окон
Согласно этому совершению в metacity:

Мы хотим, чтобы переключение между окнами приложения было легко доступной операцией. Удобное и запоминающееся связывание клавиш - это клавиша над клавишей табуляции, но раскладка клавиатуры для этой клавиши не одинакова для разных раскладок клавиатуры. Добавьте код, который вычисляет ключ из геометрии XKB, и волшебное имя ключевого слова «Above_Tab», которое ссылается на этот ключ, и переключите привязку по умолчанию для cycle_group на Above_Tab

Смотрите также этот коммит в mutterисходных файлах meta-accel-parse.cиmeta-accel-parse.h

don_crissti
источник
Черт возьми, как запутанно. Ты имеешь в виду, что обычно это GNOME, за исключением того, что Above-Tab и Primary предназначены только для бормоча? (Т.е. только бормотатель может понимать краткие описания, содержащие их?)
Роберт Симер
5

<Primary>обычно означает (он же кнопка Windows), но может быть переопределен (я видел это в некоторых местах). Вики GNOME говорит :Ctrl SuperCtrlShift

Основной ключ модификатора системы должен быть (Super / Windows / Command key).

Argh. Здесь есть некоторая путаница. Хотя в GNOME Wiki сказано «первичный ключ модификатора системы», на самом деле это может отличаться от «первичного ключа». В двух сообщениях на форуме отмечается, что Primary , как я изначально думал. Существует двухлетняя (исправленная) ошибка, связанная с путаницей в Primary, поданной в Ubuntu, которая гласит:CtrlCtrlcompiz

Ранее мы раньше вызывали управляющую клавишу, <Control>но теперь это изменилось в GNOME, поэтому при нажатии управляющей клавиши <primary>возвращается. В compiz мы устанавливаем комбинации клавиш как (например) <Control><Alt><Left>.

Я остался с методом проб и ошибок: Ctrlсначала попробуй , потом Super.

Мур
источник
2
<Primary>нет Super, как вы поняли; это просто к сожалению двусмысленная формулировка. Тем не менее, он в значительной степени не определен как Ctrl- то есть он не на OS X. Его цель - сопоставить с основным ключом модификатора хост-системы, который на OS X есть Command. Это позволяет приложениям, использующим GTK +, автоматически получать ярлыки, которые соответствуют родным приложениям OS X (например, Command+, Zчтобы отменить) и не являются необычными / раздражающими (поскольку там Ctrlиспользуется для разных вещей).
underscore_d
Этот ответ очень запутанный! <Primary>определенно означает <Control>( Ctrl) в контексте Gtk на не-Mac и Command( ) на компьютерах Mac. Например, выход Ctrl+qтеперь автоматически сопоставлен с ⌘+q. Кроме того , вики - странице вы процитировали говорит только о <Super>ничего общего с <Primary>.
Cas
@ Хорошо, приятно знать, что они обновили вики.
Муру
Можно ли переназначить Первичный в Супер на не кварцевый (без перестройки)?
Эдоардо Вакки