web-dev-qa-db-ja.com

コマンドラインを使用してモニターの解像度を取得するにはどうすればよいですか?

自分の解像度に最適な壁紙を見つけたいです。コマンドラインにコマンドを書くだけで解像度を取得するにはどうすればよいですか?

46
Abdul Al Hazred

この回答 から取得:

xdpyinfo | grep dimensions

または、ちょうど解像度を取得するには:

xdpyinfo | awk '/dimensions/{print $2}'

OR

xdpyinfo  | grep -oP 'dimensions:\s+\K\S+'
66
aguslr

使用するのはxrandr

$ xrandr 
Screen 0: minimum 320 x 200, current 3520 x 1200, maximum 32767 x 32767
LVDS1 connected 1600x900+1920+0 (normal left inverted right x axis y axis) 310mm x 174mm
   1600x900       60.0*+
   1440x900       59.9  
   1360x768       59.8     60.0  
   1152x864       60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200      60.0*+
   1920x1080      60.0     50.0     59.9     24.0     24.0  
   1920x1080i     60.1     50.0     60.0  
   1600x1200      60.0  
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1280x720       60.0     50.0     59.9  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        75.0     60.0     59.9  
   720x400        70.1  
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

ここには2つの画面があり、解像度は次のとおりです。

  • 1600x900(ラップトップ)
  • 1920x1200(モニター)

プライマリモニターの解像度のみを取得するには、このpython onelinerを使用することもできます。

$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \
geo = screen.get_monitor_geometry(screen.get_primary_monitor()); \
print(geo.width, "x", geo.height)'
1920 x 1200

拡張デスクトップの解像度を取得するには(マルチモニター設定の場合):

$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \
print(screen.get_width(), "x", screen.get_height())'
3520 x 1200
29
Sylvain Pineau

リクエストはresolutionに対するものでした。それは

xdpyinfo | grep resolution
10
Bob R

以下も使用できます。

 xrandr | grep ' connected'

私のマシンの1つでの出力の例:

LVDS connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
3

価値のあることに、TwinViewで複数の接続されたディスプレイやオフセットを使用する場合、xdpyinfoは設定された方法でディスプレイのセット全体の解像度を提供します。単一のモニターまたはディスプレイポートの1つに接続されたモニターの解像度が必要な場合は、xrandrを使用する必要があります。ただし、その構成であっても、xrandrは信頼性が低く、解像度が表示されない可能性があります。私のXウィンドウ構成ファイルからこのエントリ例を参照してください。

Option "MetaModes" "DP-1: 1440x900 +0+0, DP-3: 1440x900 +1568+0, DP-5: 1440x900 +3136+0"

Xrandrの出力は次のようになります。

DVI-D-0 disconnected primary (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 410mm x 256mm
   1440x900      59.89*+
   1280x1024     60.02
   1280x960      60.00
   1280x800      59.81
   1280x720      60.00
   1152x864      75.00
   1024x768      70.07    60.00
   800x600       75.00    60.32    56.25
   640x480       75.00    72.81    59.94
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected (normal left inverted right x axis y axis)
   1440x900      59.89 +  74.98
   1280x1024     60.02
   1280x960      60.00
   1280x800      59.81
   1280x720      60.00
   1152x864      75.00
   1024x768      70.07    60.00
   800x600       75.00    60.32    56.25
   640x480       75.00    72.81    59.94
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 connected 1440x900+1568+0 (normal left inverted right x axis y axis) 410mm x 256mm
   1440x900      59.89*+
   1280x1024     60.02
   1280x960      60.00
   1280x800      59.81
   1280x720      60.00
   1152x864      75.00
   1024x768      70.07    60.00
   800x600       75.00    60.32    56.25
   640x480       75.00    72.81    59.94

DP-3は、「接続済み」のgrepが表示する解像度をラインで表示していないことがわかります。したがって、個々の接続されたディスプレイの解像度を識別するために私が見つけた最高の、最も一貫性のある、信頼できるコマンドは次のとおりです。

/usr/bin/xrandr --query|/usr/bin/grep -A 1 connected|grep -v connected

これはこれを生成します:

   1440x900      59.89*+
--
   1440x900      59.89*+  74.98
--
   1440x900      59.89*+

その時点で、1つのポートのみで異なる解像度またはgrepを選択するのは非常に簡単です。

1
user930364