Какой ключ ""?

Какой ключ ""?

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

<Primary><Alt>KP_End

Что <Primary>?

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

Это также относится к XFCE и xfconf-query.

решение1

<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 на quartz.

он определен (вместе с другими ускорителями) в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:

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

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

Связанный контент