Xmodmap 配置

Xmodmap 配置

在我的 Debian Linux 机器上,++Ctrl绑定到虚拟终端。我可以通过运行以下命令查看相应的条目:AltF1xmodmap -pke

keycode 67 = F1 XF86_Switch_VT_1 F1 XF86_Switch_VT_1

此主题,我想补充的是,这与我在其他地方读到的内容一致,右侧的列=对应于keyShift+ keyAltGr+keyShift+ AltGr+ key

鉴于此,我不明白F1(上述) 的键码映射如何适用于Ctrl+ Alt+ F1。看来它实际上应该是Shift+F1Shift+ 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 ]
  };
  ...
};

相关内容