ディスプレイ解像度を報告する方法を探しています。 を起動するスクリプトを設定しrdesktop
、解像度の異なる複数のマシンで起動したいので、解像度を動的に決定する方法が必要です。
答え1
コマンドを使用しますxrandr
。引数を指定しないと、使用可能な解像度と現在の解像度(アスタリスク付き)が表示されます。例:
$ xrandr | fgrep '*'
答え2
代替の解決策:xdpyinfo | grep dimensions
はxdpyinfo
よりも古いためxrandr
、非常に古いディストリビューションや別の X サーバーを使用している場合は、 の方が移植性が高くなる可能性があります。
答え3
次のコマンドを使用して、水平解像度と垂直解像度を取得できます。
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
または、より簡潔な形式(Peter.Oが提案したように)では、これコメント):
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
答え4
xrandr
imagemagick で使用するためのクリーンな出力
xrandr |awk '/\*/ {print $1}'
/\*/
アスタリスクを含む行を検索します*
。