Wie lassen sich die Tastatureinstellungen für das Tastaturlayout beibehalten?

1071
nh2

Ich verwende xmodmap(und manchmal auch xkbcompstattdessen), um mein Tastaturlayout anzupassen (z. B. Mapping von Caps Lock dem Mod3-Modifikator).

Wenn ich eine USB-Tastatur an meinen Laptop anschließe oder einen YubiKey einsetze (der wie eine Tastatur wirkt), gehen die Einstellungen für meine Laptoptastatur sofort verloren, sodass Mod3 nicht mehr funktioniert und ich meinen Fenstermanager nicht mehr verwenden kann.

Wie kann ich meine xmodmap/ xkbcompEinstellungen pro X-Sitzung für meine interne Tastatur dauerhaft oder zumindest dauerhaft machen, sodass das Layout beibehalten wird, unabhängig davon, ob ich andere Tastaturen anhänge?

3

2 Antworten auf die Frage

2
andrewsh

Möglicherweise versuchen Sie inputplug, einen Daemon, der eine Verbindung zu Ihrem X-Server herstellt und auf XInput-Ereignisse wartet. Es kann Ihr Skript ausführen, das die Keymap neu lädt:

inputplug -c ~/.xkb_load_hook 

Und ~/.xkb_load_hookin meinem Fall ist:

#!/bin/sh  xkbcomp -I$HOME/.xkb ~/.xkb_keymap :0 2>/dev/null 1>/dev/null xmodmap ~/.xmodmaprc  sun_id=$(xinput list | grep "HID 0430:0005" | grep -o 'id=[0-9]*' | cut -d = -f 2)  if [ -n "$sun_id" ] then xkbcomp -i "$sun_id" -I$HOME/.xkb ~/.xkb_keymap_sun :0 2>/dev/null 1>/dev/null fi 

Das letzte Bit erkennt eine Sun Type 6-Tastatur und wendet andere Einstellungen dafür an.

1
nh2

Es sieht so aus, als wäre es kein X, aber gnome-settings-daemondas setzt meine Layouts zurück, wenn ich eine neue Tastatur ansteue.

Dies half: udev-Regel zum automatischen Laden des Tastaturlayouts, wenn die USB-Tastatur angeschlossen wurde

dconf write /org/gnome/settings-daemon/plugins/keyboard/active false 

um es zu deaktivieren.