Ubuntu und 21:9 Monitore

Ich habe sowohl auf der Arbeit als auch zuhause die 29 Zoll Variante der LG Monitore im 21:9 Format. Ich genieße es einfach so viel Platz in der Breite zu haben um Fenster anordnen zu können.

Wer so einen Monitor schon mal unter Ubuntu betrieben hat wird aber das Problem kennen: Ohne ein paar Tricks gibt es nur ein 16:9 Bild mit zwei großen schwarzen Balken links und rechts.

Daher hab ich mir mithilfe von XRandR ein kleines Bash-Skript zusammengebaut, was ich einfach durch einen kleinen Befehl beim Start des PC aufrufen kann. Falls XRandr bei dir noch fehlt, dem ist schnell Abhilfe geschaffen

sudo apt install xrandr -y

Dann kommt hier auch schon das passende Skript. Gegebenenfalls müsst ihr die OUTPUT Variable noch für euch anpassen. Einen Überblick welche Monitore anschlossen sind gibts mit einem einfachen Konsolenstart von xrandr.

#!/bin/bash
RESO="2560 1080 50"
OUTPUT="HDMI-2"

CONNECTED=$(xrandr --current | grep -i $OUTPUT | cut -f2 -d' ')

if [ "$CONNECTED" = "connected" ]; then
    MODELINE=$(cvt $RESO | cut -f2 -d$'\n')
    MODEDATA=$(echo $MODELINE | cut -f 3- -d' ')
    MODENAME=$(echo $MODELINE | cut -f2 -d' ')

    echo "Adding mode - " $MODENAME $MODEDATA
    xrandr --newmode $MODENAME $MODEDATA
    xrandr --addmode $OUTPUT $MODENAME >/dev/null 2>&1
    xrandr --output $OUTPUT --mode $MODENAME
else
    echo "Monitor is not detected"
fi

Das Skript habe ich mir natürlich nicht allein ausgedacht. Nur finde ich die Quelle gerade nicht mehr… Falls sie mir wieder über den Weg läuft bekommt der ursprüngliche Autor (vermutlich auf StackOverflow) noch seine verdienten Credits

Das zweite kleine Skript stammt aber von mir 😉 – ich habe als zweiten Monitor neben dem „Großen“ noch einen 16:9 Bildschirm hängen. Dieser möchte natürlich passend auch auf dem „Desktop“ rechts ansteuerbar sein. Das erledigen folgende Zeilen für mich:

#!/bin/bash

xrandr --output "HDMI-2" --primary --mode "2560x1080_50.00" --pos 0x0
xrandr --output "HDMI-3" --mode 1680x1050 --pos 2560x0

Auch hier gilt im Zweifel wieder, dass ihr die „–output“ an eure Bildschirme anpassen müsst sowie natürlich den „–mode“ beim zweiten Bildschirm, falls ihr eine andere Auflösung habt. Die verfügbaren Modes werden auch in der oben erwähnten Übersicht von XRandr aufgelistet.

Diese sieht (verkürzt) so aus:

Screen 0: minimum 320 x 200, current 4240 x 1080, maximum 8192 x 8192
LVDS-1 connected (normal left inverted right x axis y axis)
   1366x768      60.02 +
   1360x768      59.80    59.96  
   1280x720      60.00    59.99    59.86    59.74  
[...]
HDMI-2 connected primary 2560x1080+0+0 (normal left inverted right x axis y axis) 673mm x 284mm
   1920x1080     60.00    60.00    50.00    59.94  
   1920x1080i    60.00    60.00    50.00    59.94  
[...]
   "2560x1080_50.00"  49.95* 
HDMI-3 connected 1680x1050+2560+0 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050     59.95*+
   1600x1200     60.00  
[...]

„LVDS-1“ ist mein Laptopbildschirm mit „HD“-Auflösung. Dieser bleibt aus, was er im zugeklappten Zustand ohnehin ist. „HDMI-2“ ist der 21:9 Monitor und „HDMI-3“ ist der zweite Bildschirm. Die Auflösung ist gleichzeitig der Name des „Modes“ den ihr ggf. wählen müsst.

Ich hoffe euch geholfen zu haben. Falls ja oder auch nein lasst es mich ruhig wissen 🙂

Als Extra habe ich die Skripte noch in meine Bash_Aliases eingebaut um nicht jedes Mal zum Skript navigieren und es starten zu müssen. Das sieht dann zum Beispiel so aus:

## Bildschirme
alias moni_init="bash ~/pfad/zum/skript/monitor_init.sh"
alias moni_cr="bash ~/pfad/zum/skript/monitor_centerright.sh"
alias moni_start="moni_init && moni_cr"