Как получить разрешение монитора с помощью командной строки?

51

Я хотел бы найти обои, которые лучше всего подходят для моего разрешения. Как я могу получить разрешение, просто написав команды в командной строке?

Абдул Аль Хазред
источник

Ответы:

71

Взято из этого ответа :

xdpyinfo | grep dimensions

Или получить только разрешение:

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

ИЛИ ЖЕ

xdpyinfo  | grep -oP 'dimensions:\s+\K\S+'
aguslr
источник
8
Он работает для настройки одного монитора, но с двумя мониторами суммирует оба измерения, для меня возвращаются два экрана:3520x1200 pixels
Сильвен Пино
3
Хорошая точка зрения. С другой стороны, это все еще полезно, если он ищет одиночные обои для всех мониторов.
aguslr
Действительно, ты прав, +1;)
Сильвен Пино
@aguslr Какой в ​​этом смысл? С двумя мониторами 2000x1000, какое использование будет иметь обои размером 4000x2000?
Йос
1
@ Jos, я понял, что эта команда вернет 4000x1000, то есть, она помещает оба монитора рядом друг с другом. Например, у Сильвена есть два монитора (1600x900 и 1920x1200), и он получает 3520x1200.
aguslr
30

Я бы просто использовал 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)

Здесь у меня есть два экрана, разрешение:

  • 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
Сильвен Пино
источник
xrandr + vesa = нет дела.
Джошуа
Только разрешение используемых дисплеев:xrandr | grep " connected\|\*"
Пабло А
10

Запрос был для разрешения . Что дано

xdpyinfo | grep resolution
Боб Р
источник
4
Как правило, люди используют разрешение для обозначения размеров. DPI не так важен, как размеры.
Муру
3

Вы также можете использовать:

 xrandr | grep ' connected'

Пример вывода на одну из моих машин:

LVDS connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
Биллаль Бегерадж
источник
1

Для чего стоит, при использовании нескольких подключенных дисплеев и / или смещений с TwinView, xdpyinfo предоставит вам разрешение всего набора дисплеев, как они настроены. Если вам требуется разрешение одного монитора или монитора, подключенного к одному из портов дисплея, вам необходимо использовать xrandr. Однако даже в такой конфигурации xrandr может быть ненадежным и не показывать разрешение. Смотрите этот пример записи из моего файла конфигурации X Windows:

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*+

В этот момент довольно просто выбрать разные разрешения или grep только для одного порта.

user930364
источник