首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xkb中的隐式类型

xkb中的隐式类型
EN

Unix & Linux用户
提问于 2022-02-05 00:28:22
回答 1查看 29关注 0票数 1

运行.xkb可以获得当前XKB配置的keymap源(以xkbcomp $DISPLAY -格式)。到keysym的映射是在该文件的xkb_symbols部分完成的。本节中的一些定义显式地定义了键type,它指示哪些修饰符对各个keysym级别进行索引;例如:

代码语言:javascript
复制
key <AD01> {type= "ALPHABETIC", [q, Q]};

其他行没有指定它们的类型;例如:

代码语言:javascript
复制
key <AE01> {[1, exclam]};

在这种情况下,类型是模棱两可的,因为该文件的xkb_types部分定义了多个两级类型(TWO_LEVEL、字母表、键盘、SHIFT+ALT、PC_SUPER_LEVEL2等)。因此,对于给定数量的级别,必须存在隐式(或默认)类型(例如,当没有给定类型但存在两个级别时,则为隐式两级类型)。这些隐式类型是在哪里定义的?仅仅是xkb_types中出现的第一种类型具有所需的级别数吗?

EN

回答 1

Unix & Linux用户

发布于 2022-02-05 02:42:32

在第12.2.3节(第41-42页)和附录B的X键盘扩展:协议规范中为X11R6.4指定了默认值。具体来说,ONE_LEVEL、TWO_LEVEL、字母和键盘被认为是标准类型,并在字母数字展开后根据以下标准进行选择:

对于每个没有显式类型定义的键盘组,XKB从规范键类型中选择一个键类型。如果分配给组的第二个符号是NoSymbol (在字母表扩展后),服务器将指定键类型ONE_LEVEL。如果组包含单个字形的小写和大写形式(在字母数字展开后),则服务器将分配键类型为字母。如果组中的任何一个符号是数字键盘密钥系统(KP_*),则服务器将分配键类型键。否则,它将指定键类型TWO_LEVEL。

该协议不为具有两个以上级别的组指定规范类型。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/689341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档