Estou procurando um método de relatar a resolução da tela. Quero configurar scripts para iniciar rdesktop
e quero iniciá-lo em várias máquinas com diferentes resoluções, por isso quero uma maneira de determiná-lo dinamicamente.
Estou procurando um método de relatar a resolução da tela. Quero configurar scripts para iniciar rdesktop
e quero iniciá-lo em várias máquinas com diferentes resoluções, por isso quero uma maneira de determiná-lo dinamicamente.
Respostas:
Use o comando xrandr
. Sem nenhum argumento, ele exibe as resoluções disponíveis e a atual (com um asterisco), por exemplo:
$ xrandr | fgrep '*'
xrandr |g grep \*
faz o truque?
Solução alternativa: xdpyinfo | grep dimensions
. xdpyinfo
é mais antigo que xrandr
, portanto, pode ser mais portátil se você usar uma distribuição muito antiga ou algum servidor X diferente.
xdpyinfo
enquanto xrandr
enumera corretamente as telas e sua resolução. Isso pode ou não ser um problema, dependendo do contexto.
xdpyinfo
pareça relatar dimensões corretas em pixels, ele informa a resolução incorreta (DPI). Por exemplo, no meu monitor com dimensões de 3840x2160 (nativas e reais) e tamanho 708mm x 399mm, conforme relatado por xrandr
, xdpyinfo
diz que a resolução é de 96x96 pontos por polegada.
Você pode obter as resoluções horizontal e vertical usando o seguinte comando:
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
ou, de forma mais compacta (como sugerido por Peter.O neste comentário):
xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}'
Por exemplo, em uma tela de 1600x900, isso produzirá a seguinte saída:
1600 900
Você pode colocar os valores em variáveis separadas usando o comando:
read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')
Exiba os valores das variáveis acima usando o comando:
echo $RES_X, $RES_Y
Em uma tela de 1600x900, a saída é:
1600, 900
Eu deveria ter olhado um pouco mais antes de postar. xrandr
ecoará as configurações de exibição atuais, se não houver outros argumentos.
Por padrão, isso irá despejar todas as configurações de exibição possíveis, e pode ser filtrado da seguinte maneira:
xrandr | egrep '^[^ ]|[0-9]\*\+'
xrandr
Saída limpa para uso de imagemagickxrandr |grep \* |awk '{print $1}'