我之前写过关于输入的内容(这里 和 这里),最近,Carlos 和我还在 Guadec 上就输入相关主题做了一个演讲(幻灯片)。在这些文章中,我解释了死键的工作原理,以及如何输入
<dead_acute> A
以产生 Á 字符。
但输入充满了惊喜,我刚刚了解了一种替代死键的方法,值得在此介绍。
背景
首先,让我们回顾一下当您向 GTK 发送 <dead_acute> A
序列时会发生什么。
我们收到第一个按键事件,并注意到它是一个死键,因此我们将其存储在我们所谓的预编辑中,并等待下一个事件。当下一个键到达,并且它表示一个字母(更准确地说,是在 Unicode 类别 Ll、Lu、Lt、Lm 或 Lo 之一中)时,我们查找与 dead_acute 匹配的 Unicode 组合标记,即 U+301 组合锐音符,然后我们将序列翻转。因此,提交的文本是
A <combining acute>
我们必须翻转的原因是,组合标记位于基本字符之后,而死键位于基本字符之前。
这可行,但对于编写多重音字符来说有点不直观。您必须从上到下考虑要应用的重音,因为它们会向后应用。例如,要创建一个顶部带有锐音符的 Â,您需要输入
<dead_acute> <dead_circumflex> A
然后将其翻转,最终变为
A <combinining circumflex> <combining acute>
更好的方法
对我来说,按照这样的顺序指定重音感觉更自然
- 给我一个 A
- 然后在顶部放一个 ^
- 然后在顶部放一个 ´
好消息是:我们可以做到!键盘布局可以使用任何 Unicode 字符作为键码,因此我们可以直接使用组合标记,而无需通过死键绕道。
例如,“英语(美国,国际,AltGr Unicode 组合)”布局包含组合标记的键。使用此布局的一个小障碍是它默认不会显示在 GNOME 设置键盘面板中。您必须运行
gsettings set org.gnome.desktop.input-sources show-all-sources true
使其显示出来。
此布局中的组合标记放置在“第 3 级”中。要使用它们,您需要设置一个“第 3 级选择器”键。在键盘面板中,这称为“替代字符键”。常见的选择是右 Alt 键。
完成所有这些准备工作后,您现在可以输入 A Alt+^ Alt+’ 以获得顶部带有 ́ 的 Â 。太棒了!