在我的 Debian Linux 机器上,++Ctrl绑定到虚拟终端。我可以通过运行以下命令查看相应的条目:AltF1xmodmap -pke
keycode 67 = F1 XF86_Switch_VT_1 F1 XF86_Switch_VT_1
每此主题,我想补充的是,这与我在其他地方读到的内容一致,右侧的列=
对应于key、Shift+ key、AltGr+key和Shift+ AltGr+ key。
鉴于此,我不明白F1(上述) 的键码映射如何适用于Ctrl+ Alt+ F1。看来它实际上应该是Shift+F1或Shift+ AltGr+ F1?
xmodmap -pm
这是我的机器上的输出:
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x25)
control Control_L (0x42), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
有人可以解释一下吗?
答案1
它稍微复杂一点,Fn按键通常有 5 个级别,而不是通常的 4 个。可以通过ctrl+达到第 5 个级别alt。这允许您在文件中指定适当的键绑定~/.Xmodmap
。以下是 xkb 文件的一些摘录。有关它们的更多信息,请查看http://www.charvolant.org/~doug/xkb/html/node5.html
type "CTRL+ALT" {
modifiers = Control+Alt+Shift+LevelThree;
map[None] = Level1;
map[Shift] = Level2;
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[Control+Alt] = Level5;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Shift Alt";
level_name[Level5] = "Ctrl+Alt";
};
xkb_symbols "fkey2vt" {
key <FK01> {
type="CTRL+ALT",
symbols[Group1]= [ F1, F1, F1, F1, XF86_Switch_VT_1 ]
};
...
};