31

Я ищу способ сообщения разрешения экрана. Я хочу настроить скрипты для запуска rdesktop , и я хочу запустить его на нескольких машинах с разными разрешениями, поэтому мне нужен способ его динамического определения.

5 ответов5

37

Используйте команду xrandr . Без аргументов он отображает доступные разрешения и текущее (со звездочкой), например:

$ xrandr | fgrep '*'
11

Альтернативное решение: xdpyinfo | grep dimensions . xdpyinfo старше xrandr , поэтому может быть более переносимым, если вы используете очень старый дистрибутив или какой-то другой X-сервер.

6

Вы можете получить горизонтальное и вертикальное разрешение, используя следующую команду:

xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'

или, в более компактной форме (как предложил Питер.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
5

Я должен был выглядеть немного сложнее, прежде чем отправлять. xrandr будет отображать текущие настройки отображения, если не будет задано никаких других аргументов.

По умолчанию это сбросит все возможные настройки отображения, это можно отфильтровать следующим образом:

xrandr | egrep '^[^ ]|[0-9]\*\+'
1

Чистый вывод xrandr для использования imagemagick

xrandr |grep \* |awk '{print $1}'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .