Я ищу способ сообщения разрешения экрана. Я хочу настроить скрипты для запуска rdesktop
и хочу запустить его на нескольких машинах с разным разрешением, поэтому мне нужен способ динамически определять его.
решение1
Используйте команду xrandr
. Без аргументов она отображает доступные разрешения и текущее (со звездочкой), например:
$ xrandr | fgrep '*'
решение2
Альтернативное решение: xdpyinfo | grep dimensions
. xdpyinfo
старше, чем xrandr
, поэтому может быть более переносимым, если вы используете очень старый дистрибутив или какой-то другой X-сервер.
решение3
Вы можете получить горизонтальное и вертикальное разрешение с помощью следующей команды:
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
решение4
Чистый xrandr
вывод для использования imagemagick
xrandr |awk '/\*/ {print $1}'
Поиск /\*/
строки, содержащей звездочку *
.