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 xdpyinfo
exibe 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 sed
para limpar o resultado.
Responder2
xdpyinfo | grep dimensions
lhe dará a resolução total, se você tiver vários monitores será a soma de todos eles. xrandr --current
lhe 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 modes
arquivo 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