如何使用 xkb 获得多个“3 级”修饰符

如何使用 xkb 获得多个“3 级”修饰符

我正在尝试xkb使用默认的 4 个级别(或者我应该说 2 个级别?我真的不知道这些术语)来改进我的键盘布局。

当我打开括号时,我发现 xkb 的记录非常少(或者我不知道如何搜索)..有些人谈到级别,有些组,有些将级别定义为shift是第一个,AltGr是第二个其他人则认为基本字符是第一个,然后递增每个组合。我的意思是有很多不一致的地方..)

M无论如何,这是某些键盘中默认的 4 个按键“组合” :

// Pressing   <M> <Shift+M> <AltGr+M> <Shift+AltGr+M>
key <AB07> { [ m ,    M    ,    mu   ,      mu       ] }; // m M µ µ

是否可以添加其他修饰符?

例如,使用一个额外的修饰符,例如R CtrlI 可以有 6 种组合:

// Pressing   <M> <Shift+M> <AltGr+M> <AltGr+Shift+M> <RCtrl+M> <RCtrl+Shift+M>
key <AB07> { [ m ,    M    ,    mu   ,    mu         , comma  , semicolon] };// m M µ µ , ;

或者甚至 8 种组合与所有三个修饰符..
事实上,某些文件中似乎已经存在symbol带有关键字的8 级映射EIGHT_LEVEL

不过我不希望一把钥匙有 42 个组合。

相反,我只是想避免手指的尴尬组合,为此我更喜欢仅与“直接访问”进行有限的组合,如下所示:

// Pressing   <M> <Shift+M> <AltGr+M>  <RCtrl+M>  <RWin>+M
key <AB07> { [ m ,    M    ,  comma  , semicolon ,    µ   ] }; // m M , ; µ

我还想映射其他角色甚至动作(箭头、起始/结束、向上/向下翻页)与其他未使用的修饰符(大写锁定、数字锁定)

我怎样才能做到这一点 ?

非常感谢。

答案1

您可以使用它group来实现“两次击键”的目标:

key <AB07> { 
type[group1]= "FOUR_LEVEL",
type[group2]= "TWO_LEVEL_BIS",
symbols[group1]= [ m ,    M    ,  comma  , NoSymbol],
symbols[group2]= [ semicolon ,    µ ] 
};

现在您必须type TWO_LEVEL_BIS使用所需的修饰符定义 for 。

值得了解的Mode_switch是增加实际组的键,因此请查看它的定义。

相关内容