Anzeigeeinstellungen auf alle Benutzerkonten anwenden?

Anzeigeeinstellungen auf alle Benutzerkonten anwenden?

Ich habe einige Zeit damit verbracht, meine Einstellungen für mehrere Monitore richtig anzupassen. Wenn ich angemeldet bin, funktioniert das problemlos, auf dem Anmeldebildschirm oder für andere Benutzer jedoch nicht.

Wie stelle ich die Anzeigeeinstellungen global für alle Benutzer und den Anmeldebildschirm ein?

Antwort1

Abhängig davon, wie Sie Ihr System eingerichtet haben, kann es so einfach sein wie das Kopieren der monitors.xmlDateivom richtig eingerichteten Benutzeran alle Benutzer:

So testen Sie dies für einen Benutzer:

cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /home/TestUser/.config/

dann TestUser abmeldenwenn Sie bereits angemeldet sind, melden Sie sich erneut an und prüfen Sie, ob alles korrekt ist.

Der Befehl für alle Benutzer:

cp /home/CorrectUser/.config/monitors.xml /tmp/
for szUser in /home/* ; do sudo cp --preserve=timestamps /tmp/monitors.xml $szUser/.config/ ; done

Der Befehl für den Anmeldebildschirm:

sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /var/lib/lightdm/.config/

Der Befehlfür alle zukünftigen Benutzer¹:

sudo mkdir -p /etc/skel/.config
sudo cp --preserve=timestamps /home/CorrectUser/.config/monitors.xml /etc/skel/.config/

Hinweis¹:Alle Benutzer, die Sie in Zukunft erstellen werden

Antwort2

So legen Sie Ihre Bildschirmkonfiguration festfür jeden Benutzer bei der Anmeldung(dadurch wird die Konfiguration auf dem Anmeldebildschirm nicht geändert), können Sie eine .desktopDatei erstellen in/etc/xdg/autostart

Wie geht das

  1. Finden Sie den Namen des Bildschirms heraus, den Sie drehen möchten, indem Sie ausführen xrandr. Es werden mehrere Zeilen ausgegeben, darunter einige Zeilen, die wie folgt aussehen:

    VGA-0 connected
    

    Hier erhalten Sie Informationen zu den Namen der angeschlossenen Bildschirme.

  2. Wählen Sie das aus, das Sie rotieren lassen möchten, in meinem Beispiel untenVGA-0
  3. Erstellen Sie einen Launcher mit (zB) gedit:

    sudo -i gedit /etc/xdg/autostart/set_screens.desktop
    

    Fügen Sie den folgenden Text in die Datei ein:

    [Desktop Entry]
    Name=set_screens
    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    Type=Application
    

    Ersetzen Sie in der Zeile:

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    Die Zeichenfolge: VGA-0durch den Namen Ihres (gedrehten) Bildschirms.

Wichtige Notizen

  • In der Schlange

    Exec=/bin/bash -c "sleep 10&&xrandr --output VGA-0 --rotate left"
    

    Ich habe eine eingefügt sleep 10. Das liegt daran, dass xrandrBefehle manchmal unterbrochen werden, wenn sie zu früh ausgeführt werden, bevor der Desktop "fertig" geladen ist. Möglicherweise müssen Sie die Unterbrechung verlängern, oder Sie können versuchen, sie wegzulassen. Im Befehl, so wie er ist, dreht sich der Bildschirm 10 Sekunden nach der Anmeldung vonbeliebigBenutzer.

  • Der Befehl:

    xrandr --output VGA-0 --rotate left
    

    dreht den Bildschirm nach links. Wenn Sie eine andere Art der Drehung wünschen, können Sie entweder left, right, normal, wählen inverted(siehe auchHier).

Erläuterung

Sie können Befehle beim Start (eigentlich beim Anmelden) ausführen, indem Sie eine .desktopDatei (Launcher) in platzieren ~/.config/autostart. Dadurch wird der Launcher nur für einen einzelnen Benutzer ausgeführt. Wenn Sie dasselbe tun, den Launcher aber in platzieren /etc/xdg/autostart, wird der Befehl immer ausgeführt, wennbeliebigBenutzer meldet sich an, es sei denn, ein bestimmter Benutzer deaktiviert den Launcher für ihn unter Dash > Startanwendungen

Zusätzlich, können Sie Ihre lokale ~/.config/monitors.xmlDatei einfach kopieren /var/lib/lightdm/monitors.xml, damit die Einstellungen auch auf dem Anmeldebildschirm funktionieren.

Meiner Meinung nach ist die Kombination aus diesem und der obigen Lösung (ein Launcher in /etc/xdg) die einfachste Lösung, um genau das zu erreichen, was Sie sowohl für den Anmeldebildschirm als auch (jeden) Benutzer möchten. Außerdem kann die Lösung mit einem Launcher in /etc/xdg(sehr) einfach rückgängig gemacht oder geändert werden, falls Sie ein anderes Setup vornehmen müssen, ohne viele Dateien auf (jedem) Benutzerebene bearbeiten zu müssen, da sowohl die Benutzereinstellungen als auch der Anmeldebildschirm für alle Benutzer gleichzeitig in zwei einfachen Dateien verwaltet werden.

Antwort3

Ich wollte nur einen Kommentar für alle hinzufügen, die mit einem ähnlichen Problem zu kämpfen haben. Ich blieb bei jeder Anmeldung bei der Auflösung meines alten Monitors (1280 x 1024) hängen, aber der Anmeldebildschirm und die Gastbenutzeranmeldung verwenden die korrekte Standardauflösung von 1680 x 1050.

Ich habe in den letzten vier Monaten viele Beiträge gelesen, um eine Antwort zu finden, und mich überxorg.conf, monitors.xml, lightdmUndxrandrund andere Vorschläge – aber einige Konfigurationsänderungen sind kompliziert und bergen das Risiko, die Anzeige vollständig zu beschädigen. Daher habe ich am Ende bei jeder Anmeldung die GUI verwendet, um die Monitoreinstellungen manuell zu ändern.

Heute habe ich mit grep nach der alten Auflösung in meinem .config-Ordner gesucht.

grep -HrnIF '1280' .config | less

Das erste Ergebnis war die Datei ~/.config/autostart/xrandr.desktop, die Folgendes enthielt:

Exec=xrandr -s 1280x1024 -r 75

also habe ich die Datei einfach von dort weg verschoben. Und Bingo, ich melde mich an und bekomme die Standardauflösung von 1680 x 1050.

Ich habe mehrere Stunden gesucht und konnte keine Antwort finden, die nahe genug herankommt. Deshalb poste ich es hier, falls es jemandem nützlich ist.

Antwort4

Möglicherweise möchten Sie etwas anhängen /etc/lightdm/lightdm.conf. Hier erstellen wir ein Skript, das einen xrandrBefehl zum Einrichten Ihrer Anzeige(n) verwendet. Sie können ein grafisches RandR-Tool verwenden, um einen Befehl für Sie zu erstellen, z. B. arandr. In meinem Fall würde das Skript folgendermaßen aussehen:

#!/bin/sh
xrandr --output DVI-I-1 --mode 1600x1200 --pos 0x0 --rotate left --output DVI-I-0 --off --output DP-3 --off --output DP-2 --off --output DP-1 --mode 1600x900 --pos 1200x700 --rotate normal --output DP-0 --off

Sie können dieses Skript einfügen /usr/shareoder wo immer Sie möchten. Ihr Skript sieht möglicherweise weitaus weniger komplex aus, da es sich um eine komplexe Dual-Monitor-Konfiguration handelt. Fügen Sie dann etwas wie Folgendes hinzu:

session-setup-script=/usr/share/mycustomxrandr.sh

Und:

display-setup-script=/usr/share/mycustomxrandr.sh

Stellen Sie sicher, dass die Datei ausführbar ist. Folgendes ist erforderlich:

chmod a+x mycustomxrandr.sh

Damit session-setup-scriptwird die Anzeige eingestellt fürnachSie melden sich über LightDM an und display-setup-scriptändern die Anzeige für den Anmeldebildschirm.

verwandte Informationen