Warum wirken sich meine lightdm.conf-Änderungen nicht auf die Bildschirmauflösung meines Desktops aus?

13

Ich wollte meine Desktop-Bildschirmauflösung auf ändern 1366x768. Aber ich VESA drivers(AMD REDWOOD)habe diese Auflösung nicht entdeckt. Also habe ich ein Shell-Skript wie folgt erstellt:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

Ich habe es als lightdmxrandr.shin gespeichert /usr/binund es ausführbar gemacht. Dann habe ich die folgenden Zeilen hinzugefügt /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(das entspricht dem bekannten /etc/lightdm/lightdm.conf. Ich verwende die obige Datei wie am 14.04, wo es keine gibt /etc/lightdm/lightdm.conf.): -

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

und rettete es. Theoretisch hätte dies sowohl die Anmeldebildschirmauflösung als auch die Desktopbildschirmauflösung in ändern müssen 1366x768. Aber überraschenderweise änderte dies nur die Auflösung des Anmeldebildschirms. Die Desktopauflösung wurde nicht geändert. Später habe ich das Skript zu Startup-Anwendungen hinzugefügt und dadurch meine Desktop-Auflösung geändert.

Daher möchte ich wissen, warum die Änderungen, die ich an der lightdm.confDatei (oder besser gesagt an der 50-ubuntu.confDatei) vorgenommen habe, sich nicht auf meine Desktopauflösung ausgewirkt haben. Handelt es sich um einen Fehler, der auf dem Launchpad gemeldet werden muss, oder ist es falsch zu behaupten, dass Änderungen in Lightdm Auswirkungen auf den Desktop-Bildschirm haben?

PS: - Meiner Meinung nach ist dies nicht nur für Ubuntu 14.04 spezifisch.

VenkiPhy6
quelle

Antworten:

11

Ich habe eine ähnliche Sache ausprobiert und nach einigem Debuggen glaube ich herausgefunden zu haben, was los ist. Ihr Skript wahrscheinlich wird ausgeführt und wahrscheinlich die Auflösung richtig ist gesetzt. Da es jedoch vom Anmeldemanager ausgeführt wird, wird es ausgeführt, bevor Unity die Einrichtung Ihrer Desktop-Umgebung abgeschlossen hat und Unity die eigenen Einstellungen liest und die Auflösung auf die von Ihnen vorgenommenen Einstellungen zurücksetzt. Also, ich denke, was passiert, ist:

  1. lightdm führt Ihr Skript korrekt aus
  2. Hiermit stellen Sie Ihre gewünschte Auflösung ein
  3. Unity wird gestartet, liest die Einstellungen und stellt die Standardauflösung wieder her, die Sie dort haben
  4. Ihre Auflösung geht zurück auf das, was es vorher war

Dies geschieht jetzt, weil der VESA-Treiber die gewünschte Auflösung nicht automatisch erkennt. Dies bedeutet, dass Sie beim Ändern der Auflösung im Bereich "Anzeigen" der Unity-Einstellungen eine Auflösung festlegen, die nur verfügbar ist, wenn Sie die xrandrBefehle ausführen. Daher wird dies beim nächsten Neustart ignoriert und Unity wird auf die Standardauflösung zurückgesetzt.

Sie müssen also die Auflösung für Unity verfügbar machen, sie als Standard festlegen und sie verarbeiten lassen. Dazu müssen Sie zuerst diese Zeile hinzufügen zu /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf:

session-setup-script=/usr/bin/lightdmxrandr.sh

Stellen Sie dann sicher, dass das so /usr/bin/lightdmxrandr.shaussieht:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  

Beachten Sie, dass ich die Auflösung nicht wirklich einstelle , sondern nur zur Verfügung stelle. Nachdem Sie diesen Neustart durchgeführt haben, melden Sie sich an. Die neue Auflösung sollte nun unter Einstellungen => Anzeigen verfügbar sein. Wenn ja, wählen Sie es dort aus, melden Sie sich ab und wieder an, und die Auflösung sollte korrekt eingestellt sein. Sie sollte nun auch nach einem Neustart bestehen bleiben.


Alternative Ansätze:

  1. Erstellen Sie eine /etc/X11/xorg.confDatei mit der gewünschten Auflösung. Etwas wie das:

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. Fügen Sie das Skript hinzu, mit dem die xrandrBefehle in den Startanwendungen Ihrer Sitzung ausgeführt werden.

terdon
quelle
Das Bearbeiten der Dateien unter /usr/share/lightdm/lightdm.conf.d/ ist die falsche Art, lightdm.conf zu ändern. Die LightDM-Projektseite besagt, dass Systemadministratoren die Standardkonfiguration in /etc/lightdm/lightdm.conf.d/ oder /etc/lightdm/lightdm.conf überschreiben können. Sie sollten Dateien unter / usr / share / lightdm / because while nicht bearbeiten Es kann eine Weile
dauern
3
Ich habe nicht genug Reputation, um einen einfachen Kommentar hinzuzufügen, aber ich wollte darauf hinweisen, dass die sh-Datei die Berechtigung zum Ausführen erhalten muss. Das OP erwähnte, dass er / sie dies getan hatte, aber Terdons Antwort bezog es nicht in die Schritte ein. Wenn es nicht ausführbar ist, müssen Sie eine Eingabeaufforderung aufrufen, da es sich nicht anmeldet (zumindest für mich nicht). Es war ein einfaches Versehen von meiner Seite, aber nur für den Fall, dass jemand diesen Schritt übersieht, wollte ich es hier wiederholen.
Kirk Spencer