Mal*_*ous 5 xorg xkb keyboard-layout
我想将 XKB 配置为Caps Lock用作生成不同键的一种方式,但我不希望它显示为修饰符。例如:
F21
按键F1
按键(即没有修饰符)Shift + F1
按键(仅Shift
计数作为改性剂)我通过分配Caps Lockto部分成功了这一点Hyper_R
,但问题是这仅在Hyper_R
也设置为修饰符时才有效,例如Mod3
. 这意味着Shift+ Caps Lock+F1实际上产生Shift + Mod3 + F1
如此监听任何热键Shift + F1
,因为他们不喜欢没有工作的Mod3
存在。
有什么方法可以Caps Lock用来更改某些键的行为,而实际上不会将其作为修饰键出现在 X 应用程序中?
我读过的文档暗示这可以通过高级 XKB 配置实现,但我找不到任何详细信息。
抱歉,这很古老,但也许即使对您来说为时已晚,其他人也可能会发现此提示很有用:
在您的 中types
,添加:
type "CapsShiftSpecial" {
modifiers= Shift+Hyper;
map[Shift]= Level2;
preserve[Shift]= Shift;
map[Hyper]= Level3;
map[Shift+Hyper]= Level4;
preserve[Shift+Hyper]= Shift;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Hyper";
level_name[Level4]= "Shift Hyper";
};
Run Code Online (Sandbox Code Playgroud)
然后,在symbols
文件中,有类似
key <FK01> { type[group1]="CapsShiftSpecial",
symbols[group1]=[ F21, F21, F1, F1 ]};
Run Code Online (Sandbox Code Playgroud)
监视击键(xev
或emacs
,例如)的程序将看到按键,就像您按下了F21、Shift+F21、F1和Shift+F1。