Ich möchte die Feststelltaste neu zuordnen, um in X11 zu entkommen (dh das Drücken der physischen Feststelltaste wird von den Anwendungen als esc interpretiert und das Verhalten von esc ändert sich nicht). Die Lösung muss einen X-Neustart überstehen . xmodmap und setxkbmap sind akzeptable Lösungen (ebenso wie ähnliche Programme). Ich möchte mich nicht mit einer grafischen Benutzeroberfläche befassen, da die Lösung portabel und Teil meiner Punktedateien sein soll. Wenn mir eine bessere / einfachere / offensichtlichere Lösung fehlt, sagen Sie es mir bitte. Beachten Sie jedoch, dass ich kein DE verwende (i3wm ausprobieren).
Bisher habe ich versucht, xmodmap und setxkbmap mit wenig Erfolg zu verwenden.
Hier ist mein Versuch, xmodmap zu verwenden:
# ~/.xinitrc
xmodmap ~/.xmodmap
und
# ~/.xmodmap
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Das Ausführen $ xmodmap ~/.xmodmap
über die Befehlszeile funktioniert und macht, was ich will. Das Problem ist, dass dies bei jedem Neustart von x zurückgesetzt wird. Dort erwarte ich, dass xinitrc hereinkommt - sollte es nicht jedes Mal geladen werden, wenn x startet und den Befehl xmodmap ausführt? Wenn der Befehl funktioniert, warum macht er beim Lesen aus einer Datei nichts?
Ich habe ein paar Dinge mit setxkbmap ausprobiert, von denen keines funktioniert hat. Die beiden folgenden Versuche waren zu unterschiedlichen Zeiten in der Datei.
# ~/.xinitrc
setxkbmap -option caps:esc # attempt 1
setxkbmap -option esc:nocaps # attempt 2
Keiner der Befehle hat über die Befehlszeile etwas Wahrnehmbares bewirkt, daher gehe ich davon aus, dass ich den Befehl falsch verstanden habe. Ich mag die Idee dieser Lösung, weil sie ein Einzeiler ist und nichts in einer anderen Datei erfordert. Wenn es nur klappen würde.
Ist .xinitrc die falsche Datei? Ich weiß, dass startx von ~ / .xinitrc geladen wird.
Ich fordere, dass mögliche Lösungen die gesamte (n) Datei (en) enthalten, nicht nur eine Zeile (wenn mehr als eine in der Datei erforderlich ist), damit ich keinen Zwischenschritt durcheinander bringe. Wenn ich zum Beispiel etwas in .xinitrc und etwas in .xcapsrebind benötige, zeige bitte beide Dateien und alle erforderlichen Inhalte an (ich kann auch damit umgehen, dass ich aufgefordert werde, etwas an das Ende anzuhängen, aber wenn ein & oder ähnliches erforderlich sein kann, bitte sag mir).
.xinitrc
:setxkbmap -option caps:escape
xmodmap
in.xinitrc
funktionieren soll. Es ist was ich tue. Vielleicht etwas Ungewöhnliches zuordnen, um sicherzustellen, dass es tatsächlich läuft, wenn Sie x starten? Welche Fenstermanager- / Desktopumgebung verwenden Sie? KDE „korrigiert“ regelmäßig meine Tastaturbelegung, ohne dass ich es sage. Überprüfen Sie möglicherweise Ihre Desktop-Einstellungen, um sicherzustellen, dass nichtsxmodmap
hinter Ihrem Rücken läuft .~/.xinitrc
wird nicht gerannt . Ich benutze gerade i3wm und kein DE, obwohl das gleiche im Pantheon passiert ist, als ich es versucht habe. Soweit ich das beurteilen kann, spielt i3 nicht mit dem xinitrc oder lädt sein eigenes (aber ich bin ein Noob, also was weiß ich?).Option "XkbOptions" "caps:escape"
in eineX
Tastaturkonfigurationsdatei aufzunehmen, z. B./etc/X11/xorg.conf.d/10-keyboard.conf
Antworten:
BEARBEITEN: Wie ein hilfreicher Benutzer betont hat, wird meine ursprüngliche Lösung ein Update nicht überleben. Seine Lösung in den Kommentaren sollte funktionieren. Wenn Sie es vorziehen , Swap - Caps Lock und stattdessen zu entkommen, würde ich empfehlen , die folgenden Befehle das Hinzufügen von entweder .xinitrc oder von i3 config:
.xinitrc:
i3-Konfigurationsdatei (normalerweise unter .config / i3 / config oder unter .i3 / config)
Mir ist klar, dass diese Frage ziemlich alt ist, aber ich dachte, ich könnte eine Antwort für diejenigen von uns hinzufügen, die immer noch versuchen, dies herauszufinden.
Nachdem ich ähnliche Probleme mit einigen nicht geladenen DEs hatte
~/.xinitrc
, vermied ich xmodmap vollständig, ging zu/usr/share/X11/xkb/symbols
und änderte die Schlüsselzuordnung => direkt.Dazu habe ich die Konfigurationsdatei für meine Tastatur unter bearbeitet
/usr/share/X11/xkb/symbols
. Bei den meisten Tastaturen sollte dies diepc
Datei sein.Nach dem Öffnen der Datei habe ich manuell zwischen Escape und Caps_Lock für die jeweiligen Schlüssel gewechselt. Das Ergebnis ist unten dargestellt. Da dies Auswirkungen darauf hat, wie X die Hardware dem Schlüsselsymbol zuordnet, sollte es funktionieren, unabhängig davon, ob Sie GNOME oder i3 oder ähnliches verwenden.
Ein Ausschnitt meiner resultierenden Datei lautet wie folgt:
Das hat für mich wie ein Zauber gewirkt.
Beim Durchsuchen der zugehörigen Dateien fand ich wiederholte Erwähnungen und teilweise Implementierungen einer Art Flag, mit dem bestimmte Schlüssel umgeschaltet wurden, z. B. das Vertauschen von Escape und Caps Lock. Ich gehe davon aus, dass dies das Gnome Tweak Tool und setxkbmap verwenden. Ich konnte jedoch nicht herausfinden, wie diese Flags mit i3 Window Manager aktiviert bleiben sollen. Die obige Lösung sollte gut funktionieren.
Hoffe das behebt das Problem!
quelle
exec --no-startup-id setxkbmap -layout whatever -variant whatever -option caps:escape
...xkb/symbols/pc
beim nächsten Aktualisierenxkeyboard-config
oderxkb-data
Aktualisieren der Pakete überschrieben werden.Zwei Möglichkeiten:
1)
.xinitrc
wird nicht ausgeführt - es wird von xinit, startx und einigen anderen Methoden zum Starten von X-Sitzungen verwendet, wird jedoch nicht allgemein unterstützt - Sie verwenden möglicherweise einen Display-Manager, der es nicht ausführt. Wenn Sie .xinitrc etwas hinzufügen,touch /tmp/xinitrc-was-run
um festzustellen, ob dies der Fall ist.2) Xorg wird automatisch auf die Standardeinstellungen zurückgesetzt, wenn keine Clients verbunden sind. Wenn .xinitrc beendet wird, bevor der Fenstermanager oder etwas anderes ausgeführt wird, gehen die Änderungen an xmodmap oder setxkbmap verloren.
Wenn bereits eine XKB-Option definiert ist, die Sie verwenden möchten, anstatt Programme auszuführen, um die Einstellung bei jedem Start von Xorg zu ändern, können Sie Xorg einfach anweisen, bereits mit den richtigen Einstellungen zu starten. Zum Beispiel habe ich eine Datei mit dem Namen installiert, die Folgendes enthält, damit die Tasten Strg-Alt-Rücktaste meinen Xserver beenden können
/etc/X11/xorg.conf.d/90-zap.conf
:Weitere Informationen hierzu finden Sie in den X.Org-Dokumenten unter https://www.x.org/releases/X11R7.7/doc/xorg-docs/input/XKB-Config.html .
quelle