Получить разрешение экрана из командной строки для Linux Desktop
Я ищу способ сообщения разрешения экрана. Я хочу настроить скрипты для запуска rdesktop
и я хочу запустить его на нескольких машинах с разными разрешениями, поэтому я хочу, чтобы его можно было динамически определить.
5 ответов
Используйте команду xrandr
, Без аргументов он отображает доступные разрешения и текущее (со звездочкой), например:
$ xrandr | fgrep '*'
Альтернативное решение: xdpyinfo | grep dimensions
, xdpyinfo
старше чем xrandr
, поэтому может быть более переносимым, если вы используете очень старый дистрибутив или другой X-сервер.
Вы можете получить горизонтальное и вертикальное разрешение, используя следующую команду:
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
или, в более компактной форме (как предложено Peter.O в этом комментарии):
xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}'
Например, на дисплее 1600x900 это даст следующий результат:
1600 900
Затем вы можете поместить значения в отдельные переменные, используя команду:
read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')
Выведите значения вышеуказанных переменных с помощью команды:
echo $RES_X, $RES_Y
На дисплее 1600x900 вывод:
1600, 900
Я должен был выглядеть немного сложнее, прежде чем отправлять. xrandr
будет отображать текущие настройки дисплея, если не задано никаких других аргументов.
По умолчанию это сбросит все возможные настройки отображения, это можно отфильтровать следующим образом:
xrandr | egrep '^[^ ]|[0-9]\*\+'
чистый xrandr
вывод для использования imagemagick
xrandr |grep \* |awk '{print $1}'