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

13

Ich möchte diesen Befehl jedes Mal ausführen, wenn ich mich anmelde (oder bei jedem Start, 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 legte es in eine .shDatei, markierte es chmod +xund legte diese Datei in System > Preferences > Startup Applications. Ich habe das Skript eingefügt /etc/init.d. Ich habe die Befehle eingegeben ~/.profile. Nichts scheint zu funktionieren.

Zum Schluss schreibe ich folgendes in meine ~/.profile:

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

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

Matthew
quelle
Veröffentlichen Sie nicht dieselbe Frage auf mehreren Stack Exchange-Sites (es sei denn, die Frage ist auf beiden Sites aktuell und Sie haben lange gewartet und auf der ersten Site keine gute Antwort gefunden. Fügen Sie dann einen Link zum Original hinzu Frage).
Gilles 'SO- hör auf böse zu sein'
@ Gilles: Ist das die offizielle Politik? Es scheint so, als ob beide Sites davon profitieren können, wenn es auf beiden Sites zum Thema gehört. Aber wenn dies bereits besprochen und entschieden wurde, werde ich in Zukunft vorsichtig sein.
Matthew
Ich dachte, es gibt einen offiziellen FAQ-Eintrag dazu, aber ich kann ihn nicht finden. Ich habe auf Meta gefragt .
Gilles 'SO - hör auf böse zu sein'

Antworten:

5

Abhängig von Ihrer Distribution wird die ~/.xsessionDatei beim Einloggen in X ausgeführt (ein Shell-Skript) und / oder die ~/.XmodmapDatei wird von einem xmodmapProzess bezogen.

Die ~/.profileDatei wird nur von einer Login-Shell (mit oder ohne X) ausgeführt, es ist also nicht der richtige Ort

maxschlepzig
quelle
6

Legen Sie es in ~/.Xmodmap. Einige Distributionen suchen ~/.Xmodmapstatt ~/.xmodmaprc. Es funktioniert für mich auf Fedora 16.

Bank Qian
quelle
Dies ist die beste Lösung für Debian
UnLoCo
1

Legen Sie es ein ~/.xsessionrcund stellen Sie sicher, dass es /etc/X11/Xsession.optionsenthält allow-user-xsession.

Peter Eisentraut
quelle