Como posso obter a resolução do monitor usando a linha de comando?

51

Gostaria de encontrar um papel de parede que melhor se adapte à minha resolução. Como posso obter a resolução apenas escrevendo comandos na linha de comando?

Abdul Al Hazred
fonte

Respostas:

71

Retirado desta resposta :

xdpyinfo | grep dimensions

Ou para obter apenas a resolução:

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

OU

xdpyinfo  | grep -oP 'dimensions:\s+\K\S+'
aguslr
fonte
8
Ele trabalha para uma única configuração do monitor, mas com dois monitores que sintetiza ambas as dimensões, para mim as minhas duas telas voltar:3520x1200 pixels
Sylvain Pineau
3
Bom ponto. Por outro lado, isso ainda é útil se ele estiver procurando por um único papel de parede a ser espalhado por todos os monitores.
aguslr
Na verdade, você está certo, +1;)
Sylvain Pineau
@aguslr Qual seria o sentido disso? Tendo dois monitores de 2000 x 1000, qual seria a imagem de um papel de parede de 4000 x 2000?
12557 Jos Jos
1
@ Jos, eu entendi este comando retornaria 4000x1000, isto é, coloca os dois monitores próximos um do outro. Por exemplo, Sylvain tem dois monitores (1600x900 e 1920x1200) e ele obtém 3520x1200.
aguslr
30

Eu usaria apenas 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)

Aqui eu tenho duas telas, a resolução é:

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

Para obter apenas a resolução do seu monitor principal, você também pode usar este 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

Para obter a resolução da área de trabalho estendida (para uma configuração de vários monitores):

$ 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
fonte
xrandr + vesa = sem workee.
Joshua
Apenas a resolução dos monitores em uso:xrandr | grep " connected\|\*"
Pablo A
10

O pedido foi para a resolução . Isso é dado por

xdpyinfo | grep resolution
Bob R
fonte
4
Normalmente, as pessoas usam resolução para significar as dimensões. O DPI não é tão preocupante quanto as dimensões.
muru
3

Você também pode usar:

 xrandr | grep ' connected'

Exemplo de saída em uma das minhas máquinas:

LVDS connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
Billal Begueradj
fonte
1

Pelo que vale a pena, ao usar vários monitores conectados e / ou deslocamentos com o TwinView, o xdpyinfo fornecerá a resolução de todo o conjunto de monitores da maneira como eles são configurados. Se você precisar da resolução de um único monitor ou um monitor conectado a uma das portas do monitor, precisará usar o xrandr. No entanto, mesmo nessa configuração, o xrandr pode não ser confiável e não mostrar a resolução. Veja esta entrada de exemplo do meu arquivo de configuração do X windows:

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

A saída xrandr se parece com isso:

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

Você pode ver que o DP-3 não está mostrando uma resolução na linha que um grep para "conectado" mostraria. Portanto, o melhor comando, mais consistente e confiável que encontrei para identificar a resolução de qualquer monitor conectado individual é:

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

que produz isso:

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

Nesse ponto, é bastante trivial escolher as diferentes resoluções ou grep para apenas uma porta.

user930364
fonte