Jak uzyskać rozdzielczość monitora za pomocą wiersza polecenia?

50

Chciałbym znaleźć tapetę, która najlepiej pasuje do mojej rozdzielczości. Jak mogę uzyskać rozdzielczość, pisząc polecenia w wierszu poleceń?

Abdul Al Hazred
źródło

Odpowiedzi:

71

Na podstawie tej odpowiedzi :

xdpyinfo | grep dimensions

Lub uzyskać tylko rozdzielczość:

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

LUB

xdpyinfo  | grep -oP 'dimensions:\s+\K\S+'
aguslr
źródło
8
Działa w konfiguracji z jednym monitorem, ale z dwoma monitorami sumuje oba wymiary, dla mnie powracają moje dwa ekrany:3520x1200 pixels
Sylvain Pineau
3
Słuszna uwaga. Z drugiej strony jest to nadal przydatne, jeśli szuka jednej tapety, która ma być rozłożona na wszystkich monitorach.
aguslr
Rzeczywiście masz rację, +1;)
Sylvain Pineau
@aguslr Jaki byłby tego sens? Mając dwa monitory 2000 x 1000, jaki byłby obraz tapety 4000 x 2000?
Jos
1
@Jo, rozumiem, że to polecenie zwróciłoby 4000 x 1000, to znaczy, że stawia oba monitory obok siebie. Na przykład Sylvain ma dwa monitory (1600 x 900 i 1920 x 1200), a on dostaje 3520 x 1200.
aguslr
30

Chciałbym po prostu użyć 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)

Tutaj mam dwa ekrany, rozdzielczość to:

  • 1600x900 (laptop)
  • 1920x1200 (monitor)

Aby uzyskać tylko rozdzielczość głównego monitora, możesz również użyć tego onelinera pythonowego:

$ 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

Aby uzyskać rozdzielczość rozszerzonego pulpitu (w przypadku konfiguracji z wieloma monitorami):

$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \
print(screen.get_width(), "x", screen.get_height())'
3520 x 1200
Sylvain Pineau
źródło
xrandr + vesa = brak pracownika.
Joshua
Tylko rozdzielczość wyświetlanych ekranów:xrandr | grep " connected\|\*"
Pablo A
10

Wniosek dotyczył rezolucji . To jest podane przez

xdpyinfo | grep resolution
Bob R.
źródło
4
Zazwyczaj ludzie używają rozdzielczości do oznaczania wymiarów. DPI nie ma tak dużego znaczenia, jak wymiary.
muru
3

Możesz także użyć:

 xrandr | grep ' connected'

Przykład danych wyjściowych na jednym z moich komputerów:

LVDS connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
Billal Begueradj
źródło
1

Jeśli chodzi o to, co warto, w przypadku korzystania z wielu połączonych wyświetlaczy i / lub przesunięć z TwinView, xdpyinfo poda rozdzielczość całego zestawu wyświetlaczy w sposób, w jaki są skonfigurowane. Jeśli potrzebujesz rozdzielczości pojedynczego monitora lub monitora podłączonego do jednego z portów wyświetlacza, musisz użyć xrandr. Jednak nawet w tej konfiguracji xrandr może być zawodny i nie wyświetlać rozdzielczości. Zobacz ten przykładowy wpis z mojego pliku konfiguracyjnego X Windows:

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

Wyjście xrandr wygląda następująco:

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

Widać, że DP-3 nie wyświetla rozdzielczości w linii, którą pokazywałby grep dla „połączonego”. Zatem najlepszym, najbardziej spójnym i niezawodnym poleceniem, które znalazłem do identyfikacji rozdzielczości każdego podłączonego wyświetlacza jest:

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

co powoduje:

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

W tym momencie wybranie różnych rozdzielczości lub grep dla tylko jednego portu jest dość trywialne.

użytkownik930364
źródło