xrandr: Höchste Auflösung/Hertz vom externen Display ansteuern
xrandr ist ein Befehlszeilen-Tool unter Unix- und Linux-basierten Betriebssystemen, das für die Konfiguration der Bildschirmausgabe verwendet wird. Es ermöglicht das Anpassen von Bildschirmauflösungen, Bildwiederholraten und Bildschirmausrichtungen.
Das Szenario ist wie folgt: Ein Laptop ist mit einem externen Monitor verbunden. Der angeschlossene Monitor soll dann automatisch mit der höchsten Auflösung/Hertz angesteuert werden. Der Bildschirm des Laptops wird in diesem Szenario deaktiviert – wenn kein externer Monitor angeschlossen ist, bleibt er eingeschaltet bzw. wird als Fallback angesteuert. Dazu habe ich mir das folgende Bash-Skript gebaut:
#!/bin/sh ## xrandr: display setup ## external screen connected ## Variables # T480 display DISPLAY_LAPTOP="eDP-1" # Get external screen name EXTERNAL="$(xrandr | awk '/ connected/ && !/'$DISPLAY_LAPTOP'/ {print $1; exit}')" # Get external screen maximum resolution/hertz (Hz) MAXMODE="$(xrandr | grep --after-context=1 $EXTERNAL | tail -1)" RESOLUTION="$(echo $MAXMODE | grep -Po '[0-9]+x[0-9]+')" HZ="$(echo $MAXMODE | grep -Eo '\b[0-9]+(\.[0-9]+)?\b' | sort -g | tail -1)" ## Set screen # Reset to defaults xrandr -s 0 if [ -n "$EXTERNAL" ]; then # External screen on xrandr --output "$EXTERNAL" --mode "$RESOLUTION" --rate "$HZ" || exit 1 # Internal screen off xrandr --output "$DISPLAY_LAPTOP" --off else # Fallback # Internal screen on xrandr --output "$DISPLAY_LAPTOP" --auto --mode 1920x1080 fi
Bei der Anmeldung oder per Shortcut (STRG + ALT + E
) wird das Bash-Skript ausgeführt. Anpassen muss man die Variable DISPLAY_LAPTOP
und die Auflösung des Notebook-Displays (–mode 1920×1080).
Falls jemand Verbesserungsvorschläge hat, gerne einsenden.