iso_level3_shift和latch之间的区别

时间:2013-02-07 04:36:00

标签: keyboard x11

ISO_Level3_Shift和ISO_Level3_Latch之间有什么区别,例如,在/ usr / share / X11 / xkb / symbols中找到的level3配置文件(在archlinux和许多其他发行版中,我确定)。 / p>

例如,我将此条目添加到我正在处理的自定义键盘中(对于逻辑学家,不要担心,⊥→太棒了)。

// make right control do level3 shift stuff
default partial modifier_keys
 xkb_symbols "rctrl_switch" {
  key <RCTL> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  include "level3(modifier_mapping)"
};

它按预期工作(按住右侧控件可以访问3级符号,例如,我对于us-intl布局变体大多数是unicode代码点),但我想知道为什么有些条目使用ISO_Level3_Latch,甚至意味着什么。

1 个答案:

答案 0 :(得分:4)

移位样式修改器以这样一种方式工作,即在按下要修改的键的另一个键的同时必须按住它。这就是常规资本转换键在普通键盘上的工作原理。

闩锁式修改器的作用相同,但与移位式修改器相反,如果在按下另一个键之前释放它,则该修改器将被锁定,这意味着 next 关键词你将被修改。此外,如果在锁定时按下,则修改器将被锁定,直到再次按下修改键。

使用大写字母的常规班次的示例。考虑以下按键顺序:

- Press a
- Release a
- Press & release space
- Press shift
- Press a
- Release a
- Press a
- Release a
- Release shift
- Press & release space
- Press shift
- Release shift
- Press a
- Press a
- Press & release space
- Press shift
- Release shift
- Press shift
- Release shift
- Press a
- Press a
- Press a
- Press shift
- Release shift
- Press a

如果将shift设置为shift-style,您将获得以下输出:

a AA aa aaaa

如果将shift设置为latch-style,您将获得以下输出:

a AA Aa AAAa

因为在第三组之前的按下释放循环之后,移位被锁定,并且当您按下一个键时该锁存器被消耗。在第四组中,在锁定时再次按下闩锁会使您进入锁定模式。