Sha*_*jun 12 xorg xkb keyboard-layout
我正在尝试创建一个相当于人体工学泰卢固语键盘布局的 linux,称为 Sarala(Hard la)。到目前为止,我已经能够映射所有的键。布局对各个级别使用以下组合键。
None (Base): Level1
Shift: Level2
Ctrl + Alt: Level3
Ctrl + Alt + Shift:Level4
Run Code Online (Sandbox Code Playgroud)
linux 在各个级别使用以下内容。
None (Base): Level1
Shift: Level2
RAlt: Level3
RAlt + Shift:Level4
Run Code Online (Sandbox Code Playgroud)
为了能够将组合键与我的布局相匹配,我必须AltGr使用Ctrl+进行映射Alt。我在/usr/share/X11/xkb/. 有没有人知道我如何ISO_Level3_Shift用Ctrl+绑定Alt?
key <RALT> {
symbols[Group1]= [ Mode_switch, Multi_key ],
virtualMods= AltGr
};
Run Code Online (Sandbox Code Playgroud)
如果你想看看布局,它在这里
您需要定义一个新的 xkb 类型。您可以在 xkb/types 目录(通常为/usr/share/X11/xkb/types)中查看示例。在那里您可以定义修饰符的任意组合以获得不同级别的移位。对于您的问题,您可以使用以下方法:
type "C_A_to_L3" {
modifiers = Control+Alt+Shift;
map[None] = Level1;
map[Shift] = Level2;
map[Control+Alt] = Level3;
map[Control+Alt+Shift] = Level4;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Shift Alt";
};
Run Code Online (Sandbox Code Playgroud)
然后在您的符号文件中,您可以将该类型设置为默认类型,或者在每个键的基础上设置它是什么类型。请注意,您需要类型位于 types 目录中的文件中,以及符号目录中文件中的键定义——xkb 使用严格的文件系统层次结构来查找每个组件。
我自己对键盘布局进行了大量黑客攻击以构建我的自定义布局(https://github.com/willghatch/hatchak),它经历了各种迭代,我尝试过奇怪的事情。XKB 有时可能非常挑剔和奇怪,但它仍然是迄今为止我见过的最可配置的键盘系统。如果您遇到更多麻烦,最好的参考是:
[编辑:原始链接目前已关闭,但幸好archive.org 存在]
https://web.archive.org/web/20150722164820/http://www.charvolant.org/~doug/xkb/html/index.html
和
https://web.archive.org/web/20190419170426/http://pascal.tsu.ru/en/xkb/
当心——虽然这是我找到的最好的文档,但它留下了很多模糊的边缘情况。祝你好运。
小智 -2
从我看来,您需要一个支持 AltGr 的键盘布局,因此您只需在配置菜单中的“键盘 > 快捷键 > 替代字符键”中更改热键即可。通常,您可以通过更改为“有死键”或写为“AltGr 死键”的布局来看到它