Numlock 键在当今时代几乎没有什么作用,但它在(标准)键盘布局中的位置非常突出。
由于我使用大量电子表格,因此使用键盘输入数据非常方便,但有一点需要注意:当您的右手放在键盘上时,很难触及等号。
我的想法是重新映射 Numlock,这样它就可以同时充当 Numlock 和 equals 的角色,前者可以通过修饰符访问。
为此,我决定制作自己的xkb
键盘映射,因为我尝试了同样的事情xmodmap
,但也得到了类似的糟糕结果。
(文件名为pb
)
default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1] = "PB (US intl with level 3 and level 5";
key.type[Group1] = "EIGHT_LEVEL";
include "us(altgr-intl)"
// (norm) NLOCK AltGr
key.type[Group1] = "FOUR_LEVEL_MIXED_KEYPAD";
key <NMLK> { [ KP_Equal, KP_Equal, Num_Lock, Q ] };
include "level3(ralt_switch)"
include "level5(rctrl_switch)"
};
现在,如您所见,当我稍后想要扩展自定义布局时,我添加了级别 3 和级别 5,但我在没有使用它的情况下进行了测试,并且它不会干扰 Numlock。
当按下 Numlock 键时,由此产生的行为如下:
(数字锁定关闭)
- Numlock: '='
- Shift+ Numlock: '='
- AltGr+ Numlock: (打开数字锁定)
- AltGr+Shift + Numlock: '问'(我添加这个是为了测试)
没关系,按住 AltGr 和 Shift 时打印“Q”只是为了看看我是否可以达到该移位级别。然而,当 Num lock 打开时,行为根本不令人满意:
(数字锁定已打开)
- Numlock:(关闭数字锁定)
- Shift+ Numlock: (关闭数字锁定)
- AltGr+ Numlock: (关闭数字锁定)
- AltGr+ Shift+ Numlock: (关闭数字锁定)
似乎不可能让 Num lock 表现得像KP_Equal
无论我如何尝试,
本来,我想按Numlock打印等号,按住 时Shift来打开和关闭 Num Lock。由于这似乎不可能,我选择了 ISO 级别 3 ( AltGr),但这似乎也不起作用。我想要的是,Numlock无论 Num lock 打开还是关闭,都打印一个等号,并在按住 mod 键时切换 Num Lock(哪一个对我来说并不重要,最好是Shift或AltGr)。
答案1
所以。如果您查看“xev”的输出,请注意状态,
- 如果将键符号保留Num_Lock在该键上,即使按下该键符号的键,您也会看到状态 10 KP_equal ,而不会被锁定。正因为如此,当你被锁定时,按下KP_Equal就会解锁你。
- 现在你想摆脱Num_Lock这个键,这样它就不会生成这种讨厌的状态,同时仍然锁定适当的层,它是这样完成的:
replace key <NMLK> { type[Group1]= "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group1]= [ KP_Equal, KP_Equal, Num_Lock, Q ], actions[Group1]= [ NoAction(), NoAction(), LockMods(modifiers=NumLock), NoAction() };
注意不要有下划线,否则无法工作。
- 现在您可以验证状态;在任何情况下都应该没问题,但显然这种状态不再意味着任何事情,因为您已经Num_Lock从地图中删除了键符号。所以你需要找到一个你不使用的备用键码,并为他分配Num_Lock键符号。在此示例中,我将采用密钥代码 249
replace key <I249> { symbols[Group1]= [ Num_Lock ] };
现在它应该可以正常工作了:)