"Startanwendungen" funktionieren nicht

8

Ich habe einen einfachen einzeiligen Befehl, der im Terminal perfekt funktioniert, aber in der App "Startup Applications" nicht funktioniert.

Die Codezeile lautet: xmodmap /home/seph/Code/Ubuntu\ Scripts/Xmodmap

Es ist nicht so mühsam, es aus "Startup Applications" zu kopieren und in das Terminal einzufügen, aber ich verstehe nicht wirklich, warum es nicht funktioniert. Ich habe die Anweisungen eines anderen befolgt, also habe ich vielleicht etwas falsch gemacht? Wäre es nicht die offensichtliche und logische Annahme, dass nur das eingegeben wird, was Sie in Terminal eingegeben haben?

Seph Reed
quelle
Das ist genau das gleiche Problem, das ich hatte! +1
jedi

Antworten:

13

Für Befehle, insbesondere für Tastatur-, Maus- und Touchpad-Einstellungen oder xrandr-Befehle, muss der Desktop häufig vollständig geladen sein. Wenn Sie sie einfach beim Anmelden (mithilfe von Startanwendungen) ausführen, werden sie häufig zu früh ausgeführt und brechen ab.

Daher müssen Sie eine kleine Pause einlegen, bevor der Befehl ausgeführt werden soll. Verwenden Sie stattdessen den folgenden Befehl, um Startanwendungen hinzuzufügen:

/bin/bash -c "sleep 15 && xmodmap /home/seph/Code/Ubuntu\ Scripts/Xmodmap"

Chooes Dash> Startanwendungen> Hinzufügen und fügen Sie den Befehl hinzu.

Das sollte den Trick machen.

Jacob Vlijm
quelle
Das ist was ich dachte. Ich frage mich, warum die Verzögerung benötigt wird. X sollte bei der Anmeldung vollständig betriebsbereit sein. Ich meine, ich weiß, dass es dieses Problem gibt. Es ist nicht das erste Mal, dass ich darüber lese. Ich frage mich nur, warum das so ist.
Kos
1
@kos Ich vermute, dass zu einem bestimmten Zeitpunkt die lokalen Einstellungen angewendet werden, wodurch der Befehl beim Start außer Kraft gesetzt wird (da sie später angezeigt werden).
Jacob Vlijm
1
Macht Sinn. Ich werde versuchen, dies ein wenig zu untersuchen, ich bin leicht neugierig darauf.
Kos
1
@kos ... In anderen Fällen es ist der Desktop, noch nicht bereit zu sein. Ich erinnere mich, dass ein Fehler in Dropbox, bei dem das Symbol auf der linken Seite (Einheit) des Bedienfelds angezeigt wurde, mit demselben Trick behoben werden konnte.
Jacob Vlijm
1
das erklärt viel. Fast jedes Startskript, das ich wirklich brauchte, hatte etwas mit dem Reparieren der Tastatur oder Maus zu tun. Ich finde es seltsam, dass dies kein Anwendungsfall ist, der geplant war.
Seph Reed
0

Fügen Sie dieses Code-Snippet in eine .confDatei ein in ~/.config/upstart/:

start on startup
task
exec xmodmap /home/seph/Code/Ubuntu\ Scripts/Xmodmap
Tung Tran
quelle
wo hinzufügen? upstart ist ein Ordner. Soll ich eine neue Datei erstellen? Welche Art von Erweiterung sollte es haben?
Seph Reed
in eine conf-Datei im Ordner. Ich habe meine Antwort aktualisiert.
Tung Tran
Ich habe es mit versucht, exec xrandr --output DP-1 --brightness 0.85aber es hatte keine Wirkung. könnte es sein, dass on startupes zu früh ist? Welches Ereignis bedeutet, dass der Unity-Desktop bereit ist?
Superole