5

На моей машине с Debian Linux Ctrl+Alt+F1 связан с виртуальным терминалом. Я могу увидеть соответствующую запись, запустив xmodmap -pke

keycode 67 = F1 XF86_Switch_VT_1 F1 XF86_Switch_VT_1

За этой теме, которую я мог бы добавить это согласуется с тем, что я читал в другом месте, столбцы на правой стороне = соответствует ключу, Shift+клавиша, AltGr+ключ и Shift+AltGr+ключ.

Учитывая это, я не понимаю, как сопоставление кодов клавиш для 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 ответ1

2

Это немного сложнее, клавиши Fn обычно имеют 5 уровней вместо обычных 4. 5-й уровень может быть достигнут через Ctrl+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 ]
  };
  ...
};

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .