it-swarm-ja.com

Linuxデスクトップのコマンドラインからディスプレイの解像度を取得する

ディスプレイの解像度を報告する方法を探しています。 rdesktopを起動するスクリプトを設定し、解像度の異なる複数のマシンで起動したいので、動的に決定する方法が必要です。

33

コマンドxrandrを使用します。引数がない場合、使用可能な解像度と現在の解像度(アスタリスク付き)が表示されます。たとえば、次のようになります。

$ xrandr | fgrep '*'
40
Diego Woitasen

代替ソリューション:xdpyinfo | grep dimensionsxdpyinfoxrandrより古いため、非常に古いディストリビューションや別のXサーバーを使用している場合は、移植性が高くなる可能性があります。

12
liori

次のコマンドを使用して、水平解像度と垂直解像度を取得できます。

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
8
crayzeewulf

投稿する前にもう少し厳しく見ていたはずです。 xrandrは、他の引数が指定されていない場合、現在の表示設定をエコーし​​ます。

デフォルトでは、すべての可能な表示設定がダンプされます。これは、次のようにフィルタリングできます。

xrandr | egrep '^[^ ]|[0-9]\*\+'
5

Imagemagickで使用するxrandr出力をクリーンアップ

xrandr |grep \* |awk '{print $1}'
1