ディスプレイの解像度を報告する方法を探しています。 rdesktop
を起動するスクリプトを設定し、解像度の異なる複数のマシンで起動したいので、動的に決定する方法が必要です。
コマンドxrandr
を使用します。引数がない場合、使用可能な解像度と現在の解像度(アスタリスク付き)が表示されます。たとえば、次のようになります。
$ xrandr | fgrep '*'
代替ソリューション:xdpyinfo | grep dimensions
。 xdpyinfo
はxrandr
より古いため、非常に古いディストリビューションや別のXサーバーを使用している場合は、移植性が高くなる可能性があります。
次のコマンドを使用して、水平解像度と垂直解像度を取得できます。
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
または、よりコンパクトな形式(Peter.Oが this コメントで提案したとおり):
xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}'
たとえば、1600x900のディスプレイでは、次の出力が生成されます。
1600 900
次に、次のコマンドを使用して、値を個別の変数に配置できます。
read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')
次のコマンドを使用して、上記の変数の値を表示します。
echo $RES_X, $RES_Y
1600x900ディスプレイの場合、出力は次のようになります。
1600, 900
投稿する前にもう少し厳しく見ていたはずです。 xrandr
は、他の引数が指定されていない場合、現在の表示設定をエコーします。
デフォルトでは、すべての可能な表示設定がダンプされます。これは、次のようにフィルタリングできます。
xrandr | egrep '^[^ ]|[0-9]\*\+'
xrandr
出力をクリーンアップxrandr |grep \* |awk '{print $1}'