Como descubro a resolução da minha tela em um script de shell?

Como descubro a resolução da minha tela em um script de shell?

Como descubro a resolução da minha tela em um script de shell?

Responder1

xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'

O comando xdpyinfoexibe várias informações sobre o seu servidor X. Ele grava muitas coisas na saída padrão, mas precisamos apenas da linha que começa com a palavra dimensions, por isso usamos grep. Finalmente usamos sedpara limpar o resultado.

Responder2

xdpyinfo | grep dimensionslhe dará a resolução total, se você tiver vários monitores será a soma de todos eles. xrandr --currentlhe dará a resolução para cada monitor.

Eu uso este trecho para encontrar a resolução máxima possível para o rDesktop sem ir para tela inteira:

Xaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f1)

Yaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)

Saída:

Xaxis = 1280
Yaxis = 1024

Menos decoração de janelas (mais ou menos):

MaxRes=$(($Xaxis-5))"x"$(($Yaxis-25))

Saída:

MaxRes = 1275x999

Qual é a resolução máxima para o rDesktop sem entrar em tela inteira.

Comando final:

rdesktop -u $User -P -z -5 -g $MaxRes $Host &

Funciona bem até agora, mas ainda não testei completamente.

Outro exemplo é para screencast com avconv:

avconv -f x11grab -r 15 -s `xrandr --current | grep  '*' | uniq | awk '{print $1}'` -i :0.0 -c:v libx264 ./output.mp4

Responder3

Um método muito simples é ler o modesarquivo no diretório sys:

cat /sys/class/graphics/*/modes

ou respectivamente

cat /sys/class/graphics/*/virtual_size

Responder4

#############################################
## Eu uso isso com um programa de gravação de vídeo.
# window size --root option - informações na janela raiz da tela
echo $(xwininfo -root | grep 'geometria' | awk '{print $2;}')
# saída(s): 1024x768+0+0
# altura x largura + posições x + y.
#####################
## Manual de referencia ##
homem xwininfo

informação relacionada