Ich möchte, dass X mit meiner angepassten XKB-Keymap gestartet wird.

Ich habe eine xkb-Symboldatei mit dem Namen hyper, die den Hyper-Schlüssel dem rechten Steuerschlüssel zuordnet . Ich habe das reingelegt /usr/share/X11/xkb/symbols/hyper. Inhalt:

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> };
};

Ich habe auch eine Keymap-Datei:

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)" };
};

Wenn ich xkbcomp keymap-filerenne, passt sich alles genau meinen Wünschen an, sodass ich weiß, dass dieser Teil funktioniert. Ich kann dies jedoch nicht anwenden, wenn X gestartet wird.

Ich habe den folgenden Ausschnitt in /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

Und ich sehe die Optionen, die im Serverprotokoll angewendet werden:

[ 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"

Die Tastaturbelegung wird jedoch nicht geladen, wenn X gestartet wird.

Ich gehe davon aus, dass xkb_symbolsdas falsch ist Option, aber libinput(4)nicht erwähnt , Tastaturen überhaupt , so dass ich weiß nicht , was Options zur Verfügung steht.

Ich verwende Debian Stretch.

ieure
quelle