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!