staging.inyokaproject.org

Bildschirmauflösung für alle User am Laptop fest einstellen

Status: Ungelöst | Ubuntu-Version: Xubuntu 22.04 (Jammy Jellyfish)
Antworten |

sdoubleu

Anmeldungsdatum:
2. Oktober 2010

Beiträge: Zähle...

Hallo Zusammen,

ich habe einen Laptop mit einer nativen Bildschirmauflösung von 2880x1800 bei 14". Da das Fractional Scaling unter XFCE (noch) nicht so richtig funktioniert (GTK2, GTK3, Java) bzw. für mich nicht zufriedenstellend, wollte ich die Auflösung auf 1680x1050 einstellen. Wenn ich unter XFCE in den Einstellungen - Anzeige, die Bildschirmauflösung auf 1680x1050 ändere, dann wird diese nicht dauerhaft gespeichert. D.h. wenn der Laptop aus dem Standby aufwacht ist wieder die native Auflösung von 2880x1800 aktiv, genauso verhält es sich auch wenn ich den Laptop neu starte. Auch wenn ich über den Displayport (USB-C), bzw. HDMI-Port einen externen Bildschirm anschließe und dann wieder entferne, ist wieder die 2880x1800 eingestellt.

Über xrandr kann ich die Auflösung auf 1680x1050 ändern. Wenn ich das ganze in ein Skript speichere und beim Systemstart ausführen lasse funktioniert das auch erst einmal. Aber leider nicht, wenn ich dann die Laptop aus dem Standby aufwecke, oder zwischenzeitlich mal den externen Monitor angeschlossen habe und dann wieder entferne. Weiterhin habe ich festgestellt, dass das Script auch nicht funktioniert, wenn ich zwischendurch den Benutzer wechsel (der 1. Benutzer ist noch angemeldet). Hier habe ich festgestellt, dass die Bezeichnungen für die Grafikausgabe sich bei den Benutzern unterscheidet und somit dann das Skript nicht funktioniert.

Benutzer 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
xrandr
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 16384 x 16384
eDP connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 302mm x 188mm
   2880x1800     90.00 +
   1920x1200     90.00  
   1920x1080     90.00  
   1600x1200     90.00  
   1680x1050     90.00* 
   1280x1024     90.00  
   1440x900      90.00  
   1280x800      90.00  
   1280x720      90.00  
   1024x768      90.00  
   800x600       90.00  
   640x480       90.00  
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 disconnected (normal left inverted right x axis y axis)
DisplayPort-3 disconnected (normal left inverted right x axis y axis)
DisplayPort-4 disconnected (normal left inverted right x axis y axis)
DisplayPort-5 disconnected (normal left inverted right x axis y axis)

Benutzer 2 (wenn Benutzer 1 auch noch angemeldet ist):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
xrandr
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 16384 x 16384
eDP-1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 302mm x 188mm
   2880x1800     90.00 +
   1920x1200     90.00    59.88    59.95  
   1920x1080     90.00    60.01    59.97    59.96    59.93  
   1600x1200     90.00    85.00    75.00    70.00    65.00    60.00  
   1680x1050     90.00*   84.94    74.89    69.88    59.95    59.88  
   1280x1024     90.00    85.02    75.02    60.02  
   1440x900      90.00    59.89  
   1280x800      90.00    59.99    59.97    59.81    59.91  
   1280x720      90.00    60.00    59.99    59.86    59.74  
   1024x768      90.00    85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   800x600       90.00    85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   640x480       90.00    85.09    60.00    85.01    72.81    75.00    59.94  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
DP-6 disconnected (normal left inverted right x axis y axis)

Script beim Systemstart:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/sh

# define variables
intern=eDP
hdmi=HDMI-A-0
dp0=DisplayPort-0
dp1=DisplayPort-1

if xrandr | grep "$hdmi connected "; then
   xrandr --output $intern --off --output $hdmi --auto
elif xrandr | grep "$dp0 connected "; then
   xrandr --output $intern --off --output $dp0 --auto
elif xrandr | grep "$dp1 connected "; then
   xrandr --output $intern --off --output $dp1 --auto
else
   xrandr --output $intern --mode 1680x1050 --rate 90
fi

Wie man sieht kann das Script beim Benutzer 2 nicht funktionieren wegen den unterschiedlichen Bezeichnungen.

Wie kann ich sicherstellen, dass immer und bei allen Nutzern die Auflösung von 1680x1050 eingestellt ist, auch wenn der Laptop aus dem Standby erwacht oder ich zwischenzeitlich auch mal einen externen Monitor anschließe und wieder trenne?

Denke ich hier zu kompliziert und ich könnte das ganze auch viel einfacher umsetzten?

Danke für eure Hilfe, Hinweise und Tipps!

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Hallo!

xrandr ist immer nur temporär. Dafür ist es da. Man kann das scripten oder einfach klassisch eine xorg.conf anlegen → https://wiki.ubuntu.com/X/Config/Resolution

Was das ändern nach Schlafzuständen angeht, musst du da eventuell was basteln wenn du proprietäre Treiber verwendest und diese sich da querstellen.

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 7756

Keine xorg.conf, sondern "/usr/share/X11/xorg.conf.d/20-intel.conf" (intel als Beispiel), das soll ja nicht nur einmalig geladen werden. Eine andere Auflösung als die native ist auch eine schlechte Idee. Du kannst aber in besagter Datei dpi setzen.

sdoubleu

(Themenstarter)

Anmeldungsdatum:
2. Oktober 2010

Beiträge: 76

von.wert schrieb:

Eine andere Auflösung als die native ist auch eine schlechte Idee.

Warum ist das eine schlechte Idee? Eine andere Möglichkeit fällt mir im Moment nicht ein, wenn die Umsetzung von Fractional Scaling unter XFCE für mich nicht akzeptabel umgesetzt ist.

Aber was ich noch nicht verstehe, warum die Bezeichnung für die Grafikausgabe bei der Abfrage von xrandr bei unterschiedlichen Benutzer nicht gleich ist?

Benutzer-1: [eDP, HDMI-A-0, DisplayPort-0, etc.]

Benutzer-2: [eDP-1, HDMI-1, DP-1, etc.]

Habt ihr eine Idee?

Theoretisch kann ich das Skript auch für diese Bezeichnungen erweitern, aber wenn vielleicht noch weitere Benutzer dazukommen, müsste ich das ja dann wieder anpassen. Oder gebe es eine Möglichkeit, dass Skript universeller zu schreiben?

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 7756

sdoubleu schrieb:

von.wert schrieb:

Eine andere Auflösung als die native ist auch eine schlechte Idee.

Warum ist das eine schlechte Idee?

Ich muß jetzt wirklich erklären, daß es keine halben Pixel gibt? Native Auflösung bedeutet, 1 eingestellter Pixel entspricht 1 Pixel in Hardware.

Eine andere Möglichkeit fällt mir im Moment nicht ein,

Ich habe Dir dpi genannt. Es gibt in 'Section "Monitor"' die Möglichkeit des Setzens einer Zeile 'Option "DPI"' mit einem entsprechenden Wert.

Antworten |