Frage Ausführen eines Skripts beim Start, das xrandr zum Festlegen von Anzeigeoptionen verwendet


Ich habe verschiedene Methoden ausprobiert, um die folgenden Befehle beim Start auszuführen

xrandr --output DFP10 --rotate left
xrandr --output DFP11 --right-of DFP10

Dies ist notwendig, weil mein linker Monitor im Hochformat ist. Wenn ich starte Ubuntu Gnome 14.04.2es setzt DFP10 (Der portait Monitor, der auf der linken Seite ist), um auf der rechten Seite zu sein, und dreht es nicht nach portait).

Ich habe versucht, ein Skript zu schreiben /etc/rc.local & usr/share/applicationsHinzufügen des Befehls zum Starten von Anwendungen in der Form: xrandr --output DFP10 --rotate left && xrandr --output DFP11 --right-of DFP10.

Keine davon funktioniert. Aber ich weiß, dass die Befehle funktionieren, wenn ich sie selbst im Terminal laufen lasse.

Hier ist etwas Hintergrund die Situation, die ich denke Macht relevant sein:

Ich bin definitiv kein Experte in diesem Bereich. Ich weiß, dass es eine Reihe von verschiedenen Konfigurationsdateien zum Bearbeiten von Anzeigeoptionen gibt. xorg.conf, xorg.conf~ (eine Sicherung), xorg.conf.fglrx-0 und xorg.conf.fglxr-0 ~ (Sicherung) sind alle vorhanden /etc/X11 aber sie zu bearbeiten, löst mein Problem nicht.

Die Situation mit dem Bildschirmtreiber ist ziemlich komplex. Ich laufe das Neueste fglrx-updates auf meinem AMD R9 280X, was etwas Arbeit gekostet hat ... Ich habe einen Workaround für die Installation des Treibers auf 14.04.2 verwendet (notwendig wegen eines Fehlers mit LTS Enablement Stacks)

TLDR; wie mache ich das: xrandr --output DFP10 --rotate left und das xrandr --output DFP11 --right-of DFP10 beim Start ausführen?

Danke im Voraus


1
2018-04-15 07:14


Ursprung


Ich habe vergessen hinzuzufügen: monitors.xml wurde auch bearbeitet. Vielleicht sind alle diese Konfigurationsdateien widersprüchlich? - Joe Thorpe


Antworten:


Normalerweise müssen Sie in diesen Situationen eine kleine Pause im Befehl einfügen nach dem Login. Fügen Sie dies Ihren Startanwendungen hinzu:

/bin/bash -c "sleep 15&&xrandr --output DFP10 --rotate left && xrandr --output DFP11 --right-of DFP10" 

(Wenn das der normal funktionierende Befehl ist)

Der Grund ist wahrscheinlich, dass der Befehl zu früh ausgeführt wird, während der Desktop noch geladen wird. Es wird dann brechen.

Sie können ein wenig mit dem experimentieren sleep 15 Dauer um zu sehen, was benötigt oder möglich ist.


2
2018-04-15 08:07



Hallo. So viel wie das funktionieren sollte, hat es nicht. Ich verstehe, warum Sie den Schlaf 15 gemacht haben, aber ich bin nicht sicher, was das / bin / bash-c tut - Joe Thorpe
@JoeThorpe Versuchen Sie die Zeit zu erhöhen, es sollte wirklich funktionieren ob der Befehl: xrandr --output DFP10 --rotate left && xrandr --output DFP11 --right-of DFP10 arbeitet nach dem Login vom Terminal aus. Das /bin/bash ist, dass es im erschaffenen funktioniert .desktop Datei. Startanwendungen erstellt a .desktop Datei in ~/.config/autostart. Der gemischte Befehl macht die /bin/bash notwendig in Shell-Befehle, von a laufen .desktop Datei. - Jacob Vlijm
@JoeThorpe könntest du die Ausgabe von xrandr irgendwo posten? Wahrscheinlich dauert es einige Zeit, bis das System den zweiten Bildschirm erkennt. In diesem Fall würde ein Skript, das vor einer Aktion auf den Bildschirm "wartet", den Prozess synchronisieren. Andernfalls stellen Sie bitte den Schlaf 15 auf (z. B.) Schlaf 100 ein und verringern Sie, bis Sie die richtige Wartezeit haben. Wirklich, ich bin mir ziemlich sicher. - Jacob Vlijm
Hallo, Entschuldigung, dass ich nicht früher zu dir zurück gekommen bin. Ich habe versucht, Schlaf 40, aber ich werde versuchen, Schlaf 100. Wo finde ich die Ausgabe von Xrandr? Ich googelte es, aber verständlicherweise sprachen die Ergebnisse über Displayausgaben. - Joe Thorpe
Oh ja, tut mir leid, das habe ich vergessen. Danke für deine Hilfe und deine Antwort ist so markiert! - Joe Thorpe