Ich suche nach einer Methode zur Meldung der Bildschirmauflösung. Ich möchte Skripts zum Starten einrichten rdesktop
und diese auf mehreren Computern mit unterschiedlichen Auflösungen starten. Daher brauche ich eine Möglichkeit, diese dynamisch zu bestimmen.
Antwort1
Verwenden Sie den Befehl xrandr
. Ohne Argument werden die verfügbaren Auflösungen und die aktuelle (mit einem Sternchen) angezeigt, zum Beispiel:
$ xrandr | fgrep '*'
Antwort2
Alternative Lösung: xdpyinfo | grep dimensions
. xdpyinfo
ist älter als xrandr
und könnte daher portabler sein, wenn Sie zufällig eine sehr alte Distribution oder einen anderen X-Server verwenden.
Antwort3
Die horizontale und vertikale Auflösung können Sie mit dem folgenden Befehl abrufen:
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
oder in kompakterer Form (wie von Peter.O inDasKommentar):
xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}'
Auf einem 1600 x 900-Bildschirm wird dadurch beispielsweise die folgende Ausgabe erzeugt:
1600 900
Sie können die Werte dann mit dem folgenden Befehl in separate Variablen einfügen:
read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')
Zeigen Sie die Werte der obigen Variablen mit dem folgenden Befehl an:
echo $RES_X, $RES_Y
Auf einem 1600 x 900-Display lautet die Ausgabe:
1600, 900
Antwort4
Saubere xrandr
Ausgabe für die Verwendung mit ImageMagick
xrandr |awk '/\*/ {print $1}'
Es /\*/
wird nach der Zeile gesucht, die ein Asterisk enthält *
.