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

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

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

решение1

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

Команда xdpyinfoотображает различную информацию о вашем X-сервере. Она записывает много вещей в стандартный вывод, но нам нужна только строка, начинающаяся со слова dimensions, поэтому мы используем grep. Наконец, мы используем sedдля очистки результата.

решение2

xdpyinfo | grep dimensionsвыдаст вам общее разрешение. Если у вас несколько мониторов, это будет сумма их всех. xrandr --currentвыдаст вам разрешение для каждого монитора.

Я использую этот фрагмент, чтобы найти максимально возможное разрешение для rDesktop без перехода в полноэкранный режим:

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

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

Выход:

Xaxis = 1280
Yaxis = 1024

Минус оформление окон (более или менее):

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

Выход:

MaxRes = 1275x999

Какое максимальное разрешение для rDesktop без перехода на весь экран?

Конец команды:

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

Пока все работает нормально, но я еще не проверял все досконально.

Другой пример — скринкаст с avconv:

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

решение3

Очень простой метод — прочитать modesфайл в каталоге sys:

cat /sys/class/graphics/*/modes

или соответственно

cat /sys/class/graphics/*/virtual_size

решение4

#############################################
## Я использую это с программой для записи видео.
# размер окна --root option - информация о корневом окне экрана
echo $(xwininfo -root | grep 'geometry' | awk '{print $2;}')
# выход(ы): 1024x768+0+0
# высота x ширина + x + y позиции.
######################
## Справочное руководство ##
человек xwininfo

Связанный контент