Ich habe das Startskript für das GDM (/ etc / gdm / Init / Default) bearbeitet, um meine Anzeigeauflösung dauerhaft zu ändern.
Wie kann ich das mit LigthDM in Ubuntu Oneiric machen?
Ich habe das Startskript für das GDM (/ etc / gdm / Init / Default) bearbeitet, um meine Anzeigeauflösung dauerhaft zu ändern.
Wie kann ich das mit LigthDM in Ubuntu Oneiric machen?
Antworten:
Ich denke, Sie können die Anzeigemodi hinzufügen /etc/X11/xorg.conf
.
Wenn Sie keine haben xorg.conf
, können Sie die folgenden als Grundlage verwenden. Sie müssen die Einträge mit den Namen ersetzen Modeline
, Driver
und Modes
mit den richtigen Einträge für Ihr System. Abhängig von Ihrer Hardware benötigen Sie möglicherweise zusätzliche Einträge, z. B. wenn Ihr System über mehr als einen Grafikchip verfügt.
Section "Monitor"
Identifier "Monitor0"
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Modes "1280x1024_60.00" "1024x768_60.00"
EndSubSection
EndSection
Section "Device"
Identifier "Card0"
Driver "nvidia"
EndSection
Wenn Sie den Namen des Grafiktreibers, den Ihr System verwendet, nicht kennen, erhalten Sie möglicherweise den folgenden Namen (wenn Sie einen Intel-Grafikchip haben, lautet der Treibername nur "Intel"):
lshw -class display | grep "driver"
Die Modelines können erzeugt werden mit cvt
:
cvt <h-resolution> <v-resolution> [refresh]
cvt
Befehl und den Treiber aus dem anderen verwendet (und es auch versucht vesa
), aber es hing nur ohne Fehlermeldungen. Die Lösung von Jon Roberts hat für mich perfekt funktioniert und ist unabhängig von Dingen wie dem Grafikkartentreiber, den Sie hier erwähnen und der für Neulinge leicht schief gehen könnte. Deshalb stimme ich für seine Antwort.
lshw
ausgegeben i915
, jedoch der richtige Treiber intel
.
Ändern Sie /etc/lightdm/lightdm.conf
, um die folgenden Optionen hinzuzufügen:
display-setup-script> ruft mycustomloginvideo.sh auf, bevor der Anmeldebildschirm angezeigt wird
session-setup-script> ruft mycustomdesktopvideo.sh auf, bevor die Benutzerdesktopsitzung beginnt
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh
Möglicherweise müssen Sie mit dem GUI-Tool "arandr" das obige SH-Skript generieren und dabei Parameter aus der X-Konfiguration Ihrer aktuellen Sitzung auswählen.
Stellen Sie sicher, dass Ihr Shell-Skript ausführbar ist:
chmod a+x /usr/share/mycustom*video.sh
und Sie können testen, ob es funktioniert (dh, Sie haben keine Tippfehler oder Konfigurationsfehler in Ihrem xrandr-Befehl), indem Sie es einfach in einem Terminal ausführen:
/usr/share/mycustomdesktopvideo.sh
Wenn das Anmeldeskript aus irgendeinem Grund nicht funktioniert, führt Ihr Computer den Startvorgang für den Anmeldebildschirm möglicherweise nicht aus. Wenn das Desktop-Skript fehlschlägt, wird nach der Anmeldung möglicherweise kein Desktop angezeigt. Wenn Sie einen externen Monitor einrichten, schlagen diese Skripts fehl, wenn Sie die Verbindung trennen, und die X-Sitzung wird nicht gestartet.
display-setup-script
Skript, da Xfce es bereits in den Anzeigeeinstellungen gesetzt hatte, also session-setup-script
hat mich das gerade auf den Anmeldebildschirm geworfen.
Jemand hat eine andere Problemumgehung gepostet, obwohl ich sagen muss, dass es bei mir nicht funktioniert hat. Es könnte wahrscheinlich für Sie arbeiten. In meinem Fall bricht es die Einheit und ich kann nur meinen Mauszeiger bewegen. Das obere Bedienfeld der App-Anzeige sieht leer aus, aber nachdem ich meinen LCD-Bildschirm vom Stromnetz getrennt habe, konnte ich die hinzugefügten Zeilen löschen und alles wurde wieder normal.
Bearbeiten Sie die Datei /usr/sbin/lightdm-session
So sieht der erste Teil dieser Datei jetzt aus:
#!/bin/sh
#
# LightDM wrapper to run around X sessions.
echo "Running X session wrapper"
# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
if [ -f "$file" ]; then
echo "Loading profile from $file";
. "$file"
fi
done
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode CRT1 1368x768_60.00
xrandr --output CRT1 --mode 1368x768_60.00
# Load resources
Beachten Sie, dass die Xrandr-Einstellungen an Ihre angepasst werden sollten.
Ich habe schon seit einiger Zeit versucht, ein ähnliches Problem zu lösen und eine Lösung gefunden, die für mich funktioniert. Hoffentlich hilft sie ...
Ich habe einen alten Aspire AOA110, bei dem ich den Bildschirm zu oft zerbrochen habe, und nach dem Kauf eines neuen Laptops habe ich beschlossen, ihn in einen HTPC umzuwandeln, aber das externe Display, das ich habe, wird von X nicht erkannt, so dass ich es musste "Tweak" es mehrmals, um es mit der richtigen Auflösung arbeiten zu lassen.
Folgendes habe ich getan:
Nachdem ich dieses http://ubuntuforums.org/showthread.php?t=1112186 Tutorial bis Schritt 5 verwendet habe, konnte ich in xrandr eine funktionierende und akzeptable Auflösung finden, aber dies funktionierte nicht auf dem LightDM-Anmeldebildschirm.
Befolgen Sie nicht die oben beschriebenen Schritte, um eine dauerhafte Funktionsweise zu erzielen, aber ich denke, dies ist die richtige Vorgehensweise in 11.10. Ich habe diesen Beitrag im ArchWiki https://wiki.archlinux.org/index.php/Xorg gefunden, das ich an meine Bedürfnisse angepasst habe.
Zuerst erstelle hier eine Datei: /etc/X11/xorg.conf.d/10-monitor.conf
Fügen Sie dann die entsprechenden X-Details für Ihr Display hinzu.
Section "ServerLayout"
Identifier "DualSreen"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option "Xinerama" "1" #To move windows between screens
EndSection
Section "Monitor"
Identifier "LVDS1"
Option "ignore" "true"
EndSection
Section "Monitor"
Identifier "VGA1"
Option "Enable" "true"
Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
EndSection
Section "Device"
Identifier "Device0"
Driver "intel"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "intel"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "VGA1"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
Modes "1440x900_60.00"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "LVDS1"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Die wichtigen Bits, die hinzugefügt werden müssen, befinden sich unter dem entsprechenden Section "Monitor"
Eintrag Modeline
, den Sie bei der Verwendung gefunden haben, gtf 1440 900 60.00
und dann unter dem entsprechenden Section "Screen"
Eintrag mit dem richtigen Eintrag Modes
.
Sie werden bemerken, dass ich versucht habe, die VGA1-Verbindung nicht nur auf eine geeignete Auflösung einzustellen, sondern sie auch anzuweisen, meinen LVDS1-Ausgang nicht zu verwenden. Natürlich müssen Sie Ihre Einstellungen entsprechend anpassen, um die richtige Anzahl von Ausgängen und die richtigen Geräte-, Bildschirm- und Anzeigebereiche für Ihr Setup anzupassen.
Entschuldigung für den epischen Beitrag, ich habe xorg.conf-Dateien seit einiger Zeit mit dem von mir verwendeten Hannspree-Display optimiert und die alten xorg.conf-Setups, die ich vor 11.10 verwendet habe, funktionieren einfach nicht mehr richtig einzige lösung die ich gefunden habe die funktioniert.
Viel Glück!
xrandr -q
sollte Ihnen die richtigen Informationen darüber geben, welches Display verwendet wird und welche Modi möglich sind.
Xorg :1 -configure
, die einen neuen X - Server macht und erzeugt eine Konfigurationsdatei von ihm - das kann das kopiert werden /root/xorg.conf.new
zu /etc/X11/xorg.conf
. Ich fand einen besseren Weg, war die obige Antwort
Ich hatte ein ähnliches Problem mit meinem Laptop wie oben und wollte dem Gespräch etwas hinzufügen. Wenn Sie sich nicht für die Anmeldeauflösung interessieren (ich nicht), aber möchten, dass der tatsächliche Arbeitsbereich die richtige Auflösung aufweist, können Sie Ihre Monitorinformationen zu LightDM hinzufügen, die volle Auflösung jedoch erst aktivieren, wenn Sie sich anmelden.
Ich habe gerade das folgende Skript für meinen Monitor in eine Datei eingefügt: lighdmxrandr
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00
dann rufe ich es an /etc/lightdm/lightdm.conf
display-setup-script=/usr/bin/lightdmxrandr
Sobald ich mich angemeldet habe, kann ich meinen Monitor in Displays einrichten und er funktioniert auch nach dem erneuten Anmelden (hat mir einen großen hässlichen Fehler verursacht).
Lassen Sie mich als Erweiterung für Jon Roberts Antwort spezifizieren, dass arandr nicht alle in der aktuellen Sitzung funktionierenden Parameter in seine sh-Skript-Generierung einbezieht. Primärer Monitor (falls Sie eine Konfiguration mit zwei Monitoren verwenden), sind beispielsweise die Einstellungen für Bildwiederholfrequenz und Gamma für jeden Monitor nicht enthalten. Mein Sitzungsskript sieht so aus:
#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55
Ich habe die Optionen --rate und --primary in der ersten Zeile manuell hinzugefügt und dann manuell eine zweite Zeile mit der Gammakorrektur hinzugefügt, da anscheinend die xrandr- Gammaeinstellungen verloren gehen, wenn Sie einen Monitor auf primär schalten .
Ich weiß nicht, ob dieses bestimmte Verhalten mit den Gamma-Einstellungen beim Erstellen eines primären Monitors beabsichtigt ist oder ein Fehler ist.
Darüber hinaus wird das Sitzungsshell-Skript nicht von Lightdm aufgerufen, sondern als Startanwendung, da es den Anschein hat, dass Lightdm das Skript aufruft, bevor die Dinge für xrandr bereit sind und seltsame Dinge passieren.
Ich hatte das Problem, dass ich eine erweiterte Anzeige für meine neue LXDE-Box haben wollte (kein doppelter Klon), fand den richtigen Befehl, konnte ihn aber nicht dauerhaft machen.
xrandr --output VGA-0 --right-of DVI-0
Die oben genannten Methoden schienen alle zu schwierig / nicht der richtige Weg, dies zu tun.
Ich fand schließlich dieses: http://www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/
Das hat gut geklappt, aber ich habe stattdessen gedit verwendet:
gksu gedit /etc/xdg/lxsession/LXDE/autostart
Fügen Sie dann die Zeile am Ende mit einem @ -Symbol am Anfang hinzu:
@xrandr --output VGA-0 --right-of DVI-0
Hoffe das hilft und danke an sudo-juice.
PS Beachten Sie das Double -
im Befehl xrandr --
(auf meinem Bildschirm wurde es nicht so deutlich angezeigt).
Erstellen Sie ein neues Dokument und benennen Sie es zB /home/yourusername/yourscriptname.sh
Geben Sie ein
#!/bin/bash
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace
und speichern Sie es in Ihrem Home-Ordner (dies setzt die Auflösung auf 1600x900)
Öffnen Sie die Startanwendungen (oder führen Sie sie aus gnome-session-properties
) und klicken Sie auf "HINZUFÜGEN". Geben Sie einen Namen und die Befehlszeile ein:
bash /home/yourusername/yourscriptname.sh
Speichern Sie es, und jetzt wird das Skript bei jeder Anmeldung ausgeführt. Sie müssen sich also zuerst abmelden, damit es wirksam wird. Das Ausführen des Befehls (z. B. bash /home/yourusername/yourscriptname.sh
) in einem Terminal ist auch eine gute Idee, um zu überprüfen, ob das Skript funktioniert.
/usr/bin
hat nicht funktioniert, aber das Hinzufügen dieses Skripts zu meinen Start-Apps mit gnome-session-properties
war erfolgreich!
Basierend auf den Antworten oben habe ich einige Tests durchgeführt und eine nützliche Methode gefunden, die für mich funktioniert. Dann habe ich ein einfaches Skript erstellt, um es mit meinen automatischen Installationen zu automatisieren. Aber es wird in allen anderen Fällen funktionieren.
Erstellen Sie eine scriptinstallxrandrfixed.sh Fügen Sie diese Zeilen hinzu:
#Variables for lightdm script and xrandr script to setup fixed resolution for old displays:
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf
#Added old style configuration for lightdm:
sudo ln -s /usr/share/lightdm/lightdm.conf.d /etc/lightdm/lightdm.conf.d
#A fix to some old displays in high school at Fray Bentos, fix to 1024x768
#Some useful information comes from: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
sudo sh -c "echo '[SeatDefaults]' > $lightdmstartscript"
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
# for your desktop session
sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
sudo chmod +x $xrandrscript
Es werden die Skripte und die Dateien für die LightDM-Anzeige und -Sitzung erstellt. Vergiss nicht, ihm die Erlaubnis zur Ausführung zu geben
chmod + x scriptinstallxrandrfixed.sh
Und ausführen
./scriptinstallxrandrfixed.sh (Sie müssen sich in demselben Verzeichnis befinden, in dem Sie die Datei haben.)
Wenn nicht im selben Verzeichnis: /path/to/script/scriptinstallxrandrfixed.sh
Passen Sie es Ihren Bedürfnissen an. Mit freundlichen Grüßen. Pablo.