Отримайте роздільну здатність дисплея з командного рядка для робочого столу Linux


32

Я шукаю спосіб повідомлення про дозвіл відображення. Я хочу налаштувати сценарії для запуску rdesktop, і я хочу запустити його на декількох машинах з різною роздільною здатністю, тому я хочу спосіб їх динамічного визначення.


Відповіді:


37

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

$ xrandr | fgrep '*'

Чи можете ви додати якийсь зразок виводу до відповіді? І я здогадуюсь, xrandr |g grep \*чи це трюк?
— Ehtesh Choudhury

11

Альтернативне рішення: xdpyinfo | grep dimensions. xdpyinfoстарше xrandr, тому може бути більш портативним, якщо вам трапляється використовувати дуже старий дистрибутив або інший X-сервер.


2
Дійсно, але деякі (всі?) Мультимоніторні налаштування відображаються як один екран, xdpyinfoпри цьому xrandrправильно перераховуються екрани та їх роздільна здатність. Це може бути або не бути проблемою залежно від контексту.
— Стефан Гурішон

Примітка. Хоча, xdpyinfoздається, повідомляються про правильні розміри в пікселях, він повідомляє про неправильну роздільну здатність (DPI). Наприклад, на моєму моніторі з розмірами 3840x2160 (власне та фактичне) та розміром 708 мм x 399 мм, як повідомлялося xrandr, xdpyinfoговориться, що роздільна здатність становить 96x96 точок на дюйм.
— Руслан

7

Ви можете отримати горизонтальну та вертикальну роздільну здатність, використовуючи таку команду:

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

1
xdpyinfo | awk -F '[x] +' '/ розміри: / {print $ 3, $ 4}'
— Peter.O

@ Peter.O, спасибі Це приємна компактна форма команди. Я оновив відповідь.
— crayzeewulf

Дійсно, але деякі (усі?) Мультимоніторні налаштування відображаються як один екран у xdpyinfo, тоді як xrandr правильно перераховує екрани та їх роздільну здатність. Це може бути або не бути проблемою залежно від контексту.
— Стефан Гурішон

5

Я повинен був виглядати трохи важче перед публікацією. xrandrбуде перегукуватися з поточними налаштуваннями дисплея, якщо не подано жодних інших аргументів.

За замовчуванням це скидає всі можливі налаштування дисплея. Це можна відфільтрувати наступним чином:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.