Как узнать разрешение экрана с помощью скрипта оболочки?
решение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