xmodmap
ist obsolet; Also sollte es tatsächlich mit den xkb
Werkzeugen gemacht werden.
Der von Ihnen gewünschte Swap scheint standardmäßig nicht in X11-Dateien enthalten zu sein. also musst du es selbst schreiben.
Die Seite http://madduck.net/docs/extending-xkb/ hat mir geholfen, dies zu verstehen und einen Weg zu finden.
Erstellen Sie eine Datei, ~/.xkb/keymap/mykbd
in der Sie die Ausgabe setxkbmap
ablegen. Dies ist Ihre Basis-Tastaturdefinition. z.B:
setxkbmap -print > ~/.xkb/keymap/mykbd
Erstellen Sie anschließend eine Symboldatei, um den Schlüsselaustausch zu definieren, und fügen Sie sie beispielsweise ein ~/.xkb/symbols/myswap
dort setzen Sie die folgenden Zeilen:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
Bearbeiten Sie anschließend die ~/.xkb/keymap/mykbd
Datei und ändern Sie die xkb_symbols
Zeile, die hinzugefügt werden soll
+myswap(swap_l_shift_ctrl)
Schließlich können Sie es mit laden xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
(Sie können nicht "~" für den -I
Parameter verwenden). Es wird wahrscheinlich eine Menge Warnungen über undefinierte Symbole für einige seltene Schlüssel ausgeben, aber Sie können sie ignorieren (z. B. Fehler an dave umleiten:) 2> /dev/null
.
Wenn Sie in der Lage sein möchten, einfach zwischen einem normalen und einem invertierten Strg- / Shift-Modus zu wechseln; Erstellen Sie einfach eine ~/.xkb/keymap/
andere Datei ohne die zusätzliche Option "myswap" und laden Sie sie mit xkbcomp
. Sie können zwei kleine Skripte erstellen, um sie zu laden.