Ich habe die folgende ~/.Xmodmap
Datei gemäß dieser Antwort erstellt .
keysym Delete = Menu
keysym Menu = Delete
clear Lock
keycode 0x42 = Escape
Mit anderen Worten, tauschen Sie Delete
und Menu
und machen Sie Caps Lock
eine zusätzliche Escape
.
Wenn ich mich das nächste Mal anmelde, fragt mich Ubuntu, ob ich ~/.Xmodmap
wie erwartet laden möchte . Ich habe es geladen, aber es ist nichts passiert (entweder dann oder bei nachfolgenden Anmeldungen). Wenn ich es manuell ausführe xmodmap ~/.Xmodmap
, funktioniert es wie erwartet.
Ich weiß, dass dies zu Beginn der 10.10-Beta funktioniert hat, aber bei meiner neuen 10.10-Installation schlägt dies fehl. Ich habe bis 10.10 noch nichts ausprobiert. Irgendwelche Ideen?
Bearbeiten: Ich habe einige Debugging-Anweisungen eingefügt /etc/gdm/Xsession
, um sicherzustellen, dass ~/.Xmodmap
geladen wurde und alles auf magische Weise funktioniert hat. Ich habe nichts geändert, außer ein paar Echos hinzuzufügen, und es funktioniert immer noch, nachdem ich meine Änderungen rückgängig gemacht und erneut gestartet habe. Merkwürdigste Sache, die ich je gesehen habe.
Eine Sache, die mir aufgefallen ist, ist die Tatsache, dass der Teil "Feststelltaste neu zuordnen, um zu entkommen" auf der Xmodmap immer funktioniert hat. Es war nur der Delete / Menu-Swap, der fehlgeschlagen ist. Ich lasse diese Frage für den Fall offen, dass jemand das gleiche Problem hat, da ich eigentlich nicht weiß, warum das Problem aufgehört hat.
Antworten:
Ich weiß, es ist albern, aber als Workaround könnten Sie einfach einen Autostart durchführen
xmodmap ~/.Xmodmap
.Sie können auch
/etc/gdm/Xsession
nach der Zeileusermodmap="$HOME/.Xmodmap"
suchen und sie am Ende der Datei anhängen, wenn sie nicht vorhanden ist. Wenn Sie der einzige Benutzer des Systems sind, geben Sie einfach Ihre Änderungen ein/etc/X11/Xmodmap
.quelle
Settings->Session and Startup
oder etwas in diese Richtung.Spät zur Party, aber das hat mich auch verrückt gemacht; und, so hartnäckig ich auch bin, aufzugeben war keine Option.
Grundsätzlich ist es das, was ich versucht habe (als mein Benutzer oder root, wenn nötig)
(Tatsächlich hat das Hinzufügen des
xmodmap
Befehls~/.bashrc
funktioniert, aber es muss jedes Mal nach der Anmeldung ein Terminal gestartet werden.)Wurde vor ein paar Jahren (?)
xkb
Ausgewählt, um die Tastenbelegung und -konfiguration (Schnittstelle zu X) zu übernehmen.xmodmap
Möglicherweise werden jedoch auch wichtige Änderungen an X angefordert, nachdemxkb
diese während der Initialisierung der X-Sitzung ausgeführt wurden.Das Problem ist, wann sollten diese xmodmap-Einstellungen erfolgen?
Es scheint, dass die oben genannten Dateien zu früh verarbeitet werden und entweder X nicht bereit war, xmodmap-Änderungen zu akzeptieren, oder xkb würde sie überschreiben.
Hinweis: Ich habe diesen Dateien ein "Tracking" hinzugefügt, um sicherzustellen, dass sie tatsächlich zu einem bestimmten Zeitpunkt ausgeführt werden.
Eine Lösung, die zu funktionieren scheint
Ich wollte
.desktop
anfangs keine Datei hinzufügen (ein einfaches einzeiliges Skript musste ausreichen), aber das funktioniert, hier ist es also.Die Lösung kommt von Wie kann man spezielle Tastaturtasten unter Linux neu zuordnen oder austauschen? Lösung 1
Grundsätzlich erstellen Sie eine
~/.config/autostart/my-xmodmap.desktop
Datei und fügen Sie sie ein:Ersetzen Sie ihn
me
durch Ihren Benutzernamen (beachten Sie, dass ich nicht versucht habe,~/
oder$HOME
dass dies gleich gut funktioniert/home/me
und der vollständige Pfad von xmodmap wahrscheinlich nicht erforderlich ist ...) und fügen Sie das Ausführungsbit hinzuDie xmodmap-Befehle müssen
~/.Xmodmap
in diesem Fall in einer Datei sein (oder verwenden Sie die-e
Option oder wählen Sie einen anderen Dateinamen!). Melden Sie sich ab und wieder an.Beachten Sie, dass Sie das Startprogramm möglicherweise über "Startup Applications" erstellen.
Eine andere Lösung wäre, xmodmap zu vergessen und zu lernen, wie man konfiguriert
xkb
!Bearbeiten (erneut)
Manchmal, vielleicht 25% der Anmeldungen,
xmodmap
scheint das immer noch nicht zu funktionieren - während der Befehl tatsächlich ausgeführt wird (ein Tracker beweist das). Die einzige Schlussfolgerung, zu der ich zu diesem Zeitpunkt kommen könnte, ist, dass derxkb
Prozess zu spät im Anmeldevorgang ausgeführt wird und möglicherweise endet, nachdem der Prozessxmodmap
ausgeführt wurde. Sieht nach einer Racebedingung aus ... Also habe ich endlich die Autostart-Desktop-Dateizeileexec
auf geändert(beachte das
&
)mystart
ist ein Skript in einem neuen Verzeichnis, dasbin
ich erstellt habeund
Das Skript wartet 5 Sekunden vor dem Ausführen von xmodmap und verfolgt, wann es ausgeführt wurde (in der Datei
/tmp/xmodmap-has-run
).Hoffentlich ist das alles!
quelle
Hier ist vielleicht eine bessere Antwort: http://cweiske.de/howto/xmodmap/ar01s06.html
Sie müssen es vielleicht ein wenig optimieren, um für Sie zu arbeiten, aber die Anweisungen sind alle da.
quelle
/etc/gdm/Xsession
) anschaue , sind die Zeilen, die der Link zum Hinzufügen sagt, bereits enthalten.Vielleicht haben Sie einen Syntaxfehler in Ihrer
~/.Xmodmap
Datei?Versuche es mit:
Das sollte einen Fehler auslösen, wenn es welche gibt.
quelle
Ich hatte das selbe seltsame Problem, als ich versuchte, meine Xmodmap zu starten, während ich mich in meiner Sitzung anmeldete (Ubuntu 13.04). Ich habe es endlich geschafft, mit einer .xinitrc-Datei in meinem Home-Ordner, in der ich meinen Befehl abgelegt habe, zu arbeiten, aber mit absoluten Pfaden:
/usr/bin/xmodmap/home/MYNAME/.Xmodmap
Dann musste ich neu starten (nicht nur neu anmelden), damit es ausgeführt wurde.
quelle