[HowTo] Postsync-Script: Auflösung je nach Gerät setzen

Hi.
Wir haben aktuell das „Problem“, dass diverse Geräte in den unterschiedlichen Räumen andere maximale Auflösungen je nach Grafikkarte schaffen. Daher habe ich dieses kleine postsync-Script geschrieben, das pro Raum bzw Hardwareklasse eine andere Auflösung fest einstellt. Hinzu kommt natürlich, dass eine VM auch nochmal anders reagiert als eine bare-metal-Installation …

Da das ganze mit Wayland anders läuft als mit X11.org, gibt es beide Varianten … vielleicht kann das jemand von Euch gebrauchen :man_shrugging:

Voraussetzungen:
Alle VMs beginnen mit „vm“ als hostname; alle PCs in den Räumen beginnen mit „raumX“ und sind mit einem - vom Rest des Namens getrennt.
Das ist natürlich leicht anpassbar.

Script ablegen unter /opt/videosettings und ausführbar machen:
touch /opt/videosettings/xrandr-settings.sh
chmod +x /opt/videosettings/xrandr-settings.sh

Inhalt:


#!/bin/bash
#set -x
#alte Methode (X.org)
#xrandr --output VGA-0 --mode 1280x800 --output HDMI-0 --mode 1280x800 --same-as VGA-0 --scale-from 1280x800

#neue Methode (Wayland) -- python-Script nicht als root ausführbar!
#Neu: python-Script: https://gitlab.com/Oschowa/gnome-randr

cd /opt/videosettings/
#Primäres Display herausfinden mit xrandr:
primary=$(xrandr |grep  "connected primary"  |cut -d ' ' -f1)

#Entscheidung, welche Auflösung für welches Gerät eingestellt wird:
room=$(hostname |cut -f1 -d"-")
case $room in
   vm)    aufl=2048x1152
          xrandr --output $primary --mode $aufl;;
   raum1) aufl=1680x1050
          python3 ./gnome-randr.py --output $primary --mode $aufl;;
   raum2) aufl=1920x1200
          python3 ./gnome-randr.py --output $primary --mode $aufl;;
   raum3) aufl=1920x1080
          python3 ./gnome-randr.py --output $primary --mode $aufl;;
   *) break;;
esac

Wenn das ganze lokal funktioniert, kann man es natürlich auch auf den Server packen und per postsync auf die Clients verteilen lassen. Ich habe es bei uns unter {...}/common/ geparkt, damit man mit einem Script alle Clients ansprechen kann.
Hier nochmal die Infos zu den Postsync-Verzeichnissen:
https://docs.linuxmuster.net/de/latest/clients/postsync/postsync-patchclasses.html

Viele Grüße, :wave:
Michael