Warum wird mein xmodmap-Befehl beim Start / Anmelden nicht ausgeführt?

10

Ich möchte diesen Befehl jedes Mal ausführen, wenn ich mich anmelde (oder jedes Mal, wenn ich starte, wenn das nicht funktioniert): xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

Ich habe viele Dinge ausprobiert. Ich habe den Befehl eingegeben System > Preferences > Startup Applications. Ich habe es in eine .shDatei eingefügt, markiert chmod +xund eingefügt System > Preferences > Startup Applications. Ich habe das Skript eingefügt /etc/init.d. Ich habe die Befehle eingegeben ~/.profile. Nichts scheint zu funktionieren.

Schließlich habe ich dies in meine ~/.profile:

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2

Sowohl test1 als auch test2 werden erstellt, aber die Schlüssel werden immer noch nicht neu zugeordnet. Wenn ich den Befehl einfach kopiere / einfüge und manuell ausführe, funktioniert er einwandfrei. Bei der Anmeldung wird es jedoch nicht ausgeführt. Irgendwelche Ideen?

Matthew
quelle

Antworten:

11

~/.profileläuft früh in der Anmeldesequenz. Wenn Ihre Desktop-Umgebung ein Tastaturlayout konfiguriert, kann sie die gerade geladenen Einstellungen überschreiben.

Fügen Sie Ihre Einstellungen in eine Datei mit dem Namen ein ~/.Xmodmap:

keysym Delete = Menu
keysym Menu = Delete

In der Standard-Gnome-Umgebung in Ubuntu 10.04 werden Sie beim nächsten Anmelden gefragt, ob Sie laden möchten ~/.Xmodmap. Laden Sie es und kreuzen Sie "Frag mich nicht noch einmal" an. Dann wird Ihr .Xmodmapnach den Standardeinstellungen angewendet.

Gilles 'SO - hör auf böse zu sein'
quelle
Danke, das hat perfekt funktioniert. Wie würde ich aus Neugier zu dem Dialog zurückkehren, für den ich "Nicht mehr fragen" aktiviert habe, wenn ich in Zukunft etwas Zeit haben möchte?
Matthew
1
@Matthew: Ungetestet: Starten gconf-editor, navigieren /desktop/gnome/peripherals/keyboard/generalund bearbeiten Sie den known_file_listzu entfernenden Eintrag .Xmodmap.
Gilles 'SO - hör auf böse zu sein'
Dies funktionierte für mich in der Beta-Version von Ubuntu 10.10, als Sie diese Frage zum ersten Mal beantworteten. Ich habe gestern eine Neuinstallation von Ubuntu 10.10 durchgeführt und eine identische .Xmodmap-Datei in meinem Home-Ordner abgelegt. Als ich mich wieder anmeldete, bekam ich den Dialog, lud .Xmodmap und aktivierte das Kästchen wie zuvor. Aber es scheint nicht, die Tasten neu zuzuordnen. Ich habe gconf eingecheckt und .Xmodmap ist definitiv in der Liste der bekannten Dateien. Irgendwelche Ideen?
Matthew
Dies funktioniert auch nicht für mich unter Gnome 3.10.1 / Archlinux. Ich frage mich, ob etwas nicht in der Reihenfolge angepasst wurde, in der Gnome Tastaturlayouts lädt.
Caleb
Für Gnome 3.10, das ~ / .xmodmap nicht mehr lädt, habe ich eine Lösung gefunden, die unter bbs.archlinux.org/viewtopic.php?pid=1194968#p1194968 funktioniert : Deaktivieren Sie das Gnome-Tastatur-Plugin. $ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
plnx
2

Ich habe festgestellt, dass an der oben genannten Stelle im Gconf-Editor der Name Ihres überarbeiteten Tastaturlayouts zweimal angezeigt werden sollte, einmal unter "unknown_file_list" und einmal unter "update_handlers". Warum Ubuntu manchmal den letzteren Eintrag einfügt und manchmal nicht ... nun, es hält dich auf Trab, nicht wahr?

Übrigens habe ich nach vielen Recherchen die obige Optimierung verwendet, um die linke Windows-Taste neu zuzuweisen. Ich habe die folgende Anweisung in mein eigenes Tastaturlayout eingefügt, damit die linke Pfeiltaste dupliziert wird: -

Schlüsselcode 133 = 0xFF51

(Überprüfen Sie, ob dies die richtigen Codes für Sie sind, indem Sie in xev gehen und zuerst eine Taste und dann die andere drücken.)

Es ist nur ein kleiner Punkt, aber während ich im Internet bin, gibt es mir eine praktische "Zurück" -Taste - Alt + Win mit der linken Hand. Ich kann es tun, ohne zu schauen.

Alan
quelle
1
Alan schrieb: "Ich habe festgestellt, dass an der oben genannten Stelle im Gconf-Editor der Name Ihres überarbeiteten Tastaturlayouts zweimal erscheinen sollte, einmal unter" bekannte_Dateiliste "und einmal unter" update_handlers "." Ich kann bestätigen, dass Alan korrekt ist. In Ubuntu 10.10 muss ".Xmodmap" sowohl in der Liste "bekannte_Dateiliste" als auch in der Liste "update_handlers" unter / desktop / gnome / peripherals / keyboard / general in gconf erscheinen, damit Ihre ~ / .Xmodmap-Datei einen Effekt hat -Editor. Danke, Alan.
1

Einige Systeme suchen nach einer Datei mit dem Namen ~/.Xmodmapund führen die dort gefundenen Befehle aus. Versuchen Sie, diese Zeilen in diese Datei einzufügen:

keysym Delete = Menu
keysym Menu = Delete
Garyjohn
quelle