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.
xkbcomp $DISPLAY some.dump
nach und vor dem Aufruf von IBus und führen Sie einen Vergleich der beiden Speicherauszüge durch (dies sind vollständige Tastaturdefinitionen). Sie werden wahrscheinlich Unterschiede sehen.setxkbmap -option caps:escape
funktioniert. IBus erinnerte sich an die vertauschten Tasten Esc und Caps_Lock. Dies gilt jedoch nicht für die vertauschten Tasten Left Shift und Left Control.Ich bin auf einige Probleme gestoßen, die sich
LALT
auf dieControl_L
Verwendung von Pablos Lösung beziehen. Anscheinend müssen Sie auch diemodifier_map
Optionen festlegen .Ich habe eine Vorlage von
/usr/share/X11/xkb/symbols/altwin
- look forxkb_symbols "ctrl_alt_win"
- kopiert und geändert, um die folgenden Änderungen vorzunehmen:Die endgültige
~/.xkb/symbols/myswap
Datei war:Ich
-w0
habe denxkbcomp
Befehl auch erweitert, um eine Warnmeldung beim Öffnen einer neuen Shell zu vermeiden.** Wenn ich häufig zwischen Mac und Linux umschalte, möchte ich unter Linux zwei Steuertasten haben, um die Mac-Tastatur für mein Muskelgedächtnis zu approximieren.
quelle