密钥的<主要>是什么?


18

我刚刚在dconf-editor中看到了一个奇怪的快捷方式:

<Primary><Alt>KP_End

什么<Primary>

我也看到了一把Above-Tab钥匙。我完全理解这是指什么,但是这些键名是否已定义?

Answers:


16

<Primary>是一gtk+件事。
gtk+ 2.24.7gtk+ 3.2.1介绍了平台无关的加速器修改器的概念,该修改器<Primary>可用于代替<Control>

Gtk +中提供了一个新功能(在撰写本文时,它已在Git中用于Gtk + -2.24,并在Gtk + -3.2.0中发布了)以使用<Primary> 描述符代替<Control>加速器和绑定。这会将加速器映射到OSX上的Command并映射到Control进行其他操作。1个

根据此提交

gtk:允许以与平台无关的方式指定加速器。介绍<Primary>加速器字符串,该字符串在X11 / Win23上解析为GDK_CONTROL_MASK,在石英上解析为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

我们希望在应用程序的窗口之间切换是一种易于访问的操作。方便且令人难忘的键绑定是Tab键上方的键-但是该键的键符在不同的键盘布局中不一致。添加从XKB几何图形中找出密钥的代码和引用该密钥的魔术键符号名称“ Above_Tab”,并将cycle_group的默认绑定切换为Above_Tab

另见本承诺mutter和源文件meta-accel-parse.cmeta-accel-parse.h


天哪,真令人困惑。您是说这通常是GNOME的东西,除了Above-Tab和Primary是仅喃喃自语的吗?(也就是说,只有杂念者才能理解包含这些内容的快捷方式说明吗?)
Robert Siemer,2014年

5

<Primary>通常意味着(又名Windows按钮),但可以重新定义(我在某些地方看到了它的映射)。在GNOME维基说Ctrl SuperCtrlShift

系统主修改键应为(超级/ Windows /命令键)。

啊 这里有些混乱。尽管GNOME Wiki称“主系统修改键”,但实际上可能与“主键”不同。正如我最初认为的那样,有两个论坛 帖子指出Primary是Ctrl。在Ubuntu中存在一个关于混淆Ctrl和Primary提出的存在两年的(已修复)错误compiz,内容为:

以前我们曾经调用过控制键,<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>当然在非Mac上的Gtk上下文中肯定是<Control>Ctrl),在Mac机器上是Command)。例如,退出Ctrl+q现在自动映射到⌘+q。同样,您引用的Wiki页面仅是与<Super>无关<Primary>
卡斯

@Cas好,很高兴知道他们更新了Wiki。
muru

是否可以将非石英上的Primary映射到Super(无需重建)?
Edoardo Vacchi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.