Wie formuliere ich ein Skript, das die Bildschirmauflösung mit xrandr prüft und die Auflösung je nach aktuellem Stand ändert? Das heißt, es schaltet die Auflösung um.
Beispielausgabe vonxrandr -q
1920x1080 59.98 + 59.97 59.96 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1600x900 59.99* 59.94 59.95 59.82
Wie muss es formuliert werden, um zu prüfen, ob die aktuelle Auflösung 1600 x 900 ist, und dann auszuführen xrandr -s 0
, aber wenn die aktuelle Auflösung 1920 x 1080 ist, auszuführen xrandr -s 4
?
Kurz gesagt lautet die Frage, wie man das Skript dazu bringt, die Ausgabe von xrandr -q zu erkennen, um die Auflösung umzuschalten. Beispiel:
#!/bin/bash
if <current resolution is 1920x1080>
then
xrandr -s 5
elif <current resolution is 1600x900>
then
xrandr -s 0
else
<do nothing>
fi
Im Grunde brauche ich eine Möglichkeit, mit der das Skript erkennt, in welcher Zeile sich das Sternchen befindet, und es auf die andere umschaltet. Wie könnte das erreicht werden?
Antwort1
Beispiel einer Lösung
Die Lösung kann Ihren Bedürfnissen entsprechend angepasst werden.
#!/bin/bash
MYRES=$(xrandr -q | grep "\*" | awk '{ print $1; }')
echo -e "\nResolution is $MYRES\n"
case "$MYRES" in
"1920x1080")
echo "Size = 5"
xrandr -s 5
;;
"1680x1050")
echo "Size = 4"
xrandr -s 4
;;
"1600x1024")
echo "Size = 4"
xrandr -s 4
;;
"1400x1050")
echo "Size = 3"
xrandr -s 3
;;
"1600x900")
echo "Size = 0"
xrandr -s 0
;;
*)
echo "Do nothing."
;;
esac