Я хочу, чтобы X запустился с моей настроенной картой ключей XKB.
У меня есть файл символов xkb с именем hyper
, который сопоставляет ключ Hyper с правой клавишей управления. Я поместил это в /usr/share/X11/xkb/symbols/hyper
. Содержание:
partial modifier_keys
xkb_symbols "right_control" {
key <RCTL> { [ Hyper_R ] };
include "hyper(base)"
};
// I might want hyper on a different key, which needs the same modifier setup
partial modifier_keys
xkb_symbols "base" {
modifier_map Control { <LCTL> };
modifier_map Mod1 { <LALT>, <RALT> };
modifier_map Mod3 { Hyper_L, Hyper_R };
modifier_map Mod4 { <LWIN>, <RWIN> };
};
У меня также есть файл раскладки:
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)+ctrl(nocaps)+hyper(right_control)" };
xkb_geometry { include "pc(pc105)" };
};
Если я запускаю xkbcomp keymap-file
, все перераспределяется именно так, как я хочу, поэтому я знаю, что эта часть работает. Однако я не могу применить это при запуске X.
У меня есть следующий фрагмент в /etc/X11/xorg.conf.d/10-xps13-keyboard.conf
:
Section "InputClass"
Identifier "Dell XPS13 Keyboard"
MatchIsKeyboard "on"
Option "xkb_symbols" "pc+us+inet(evdev)+ctrl(nocaps)+hyper(right_control)"
EndSection
И я вижу параметры, применяемые в журнале сервера:
[ 11469.810] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event0)
[ 11469.810] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"
[ 11469.810] (**) AT Translated Set 2 keyboard: Applying InputClass "Dell XPS13 Keyboard"
[ 11469.810] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[ 11469.811] (II) systemd-logind: got fd for /dev/input/event0 13:64 fd 30 paused 0
[ 11469.811] Option "_source" "server/udev"
[ 11469.811] Option "name" "AT Translated Set 2 keyboard"
[ 11469.811] Option "path" "/dev/input/event0"
[ 11469.811] Option "device" "/dev/input/event0"
[ 11469.811] Option "major" "13"
[ 11469.811] Option "minor" "64"
[ 11469.811] Option "xkb_layout" "us"
[ 11469.811] Option "xkb_model" "pc105"
[ 11469.811] Option "xkb_options" "ctrl:nocaps"
[ 11469.811] Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input0/event0"
[ 11469.811] Option "driver" "libinput"
[ 11469.811] Option "xkb_symbols" "pc+us+inet(evdev)+ctrl(nocaps)+hyper(right_control)"
[ 11469.811] Option "fd" "30"
Однако таблица клавиш не загружается при запуске X.
Я предполагаю , что xkb_symbols
неправильный Option
но libinput(4)
не упоминает клавиатуры вообще, так что я не знаю , что Option
s доступны.
Я использую Debian Stretch.