20080325

Как включить VGA-выход на проектор (используя xrandr)

Не прошло и месяца с тех пор, как мне пришлось подключать ноутбук с видеокарточкой Nvidia к проектору, как пришлось подключать к проектору и свой ноутбук, со встроенным видео Intel 915GM. В этот раз всё было гораздо проще. Рецепт ниже. Насколько я понимаю, он подходит и для большинства владельцев ноутбуков с видео ATI.

В общем, самым простым и универсальным способом мне показалось использование утилиты xrandr, позволяющей управлять видеовыходами и их видеорежимами на лету. Насколько я понимаю, для этого достаточно, чтобы в системе был установлен более-менее свежий X.org и видеодрайвер с поддержкой расширения RandR (Resize and Rotate).

Чтобы посмотреть какие видеовыходы и видеорежимы доступны, нужно выполнить команду xrandr -q:
~$ xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1280 x 1280
VGA disconnected (normal left inverted right)
LVDS connected 1280x800+0+0 (normal left inverted right) 331mm x 207mm
1280x800 60.0*+ 60.0
1280x768 60.0
1024x768 60.0
800x600 60.3
640x480 59.9
TV disconnected (normal left inverted right)

Как видно, в данный момент у меня включен только основной экран ноутбука (LVDS) в режиме 1280×800, VGA выход на проектор отключен.

Чтобы включить тот или иной режим на том или ином выходе можно использовать команду:
$ xrandr --output название_выхода --mode порядковый_номер_или_описание_режима

Чтобы отключить видео выход:
$ xrandr --output название_выхода --off


Теперь о подключении к проектору. Проекторы в большинстве случаев рассчитаны на вполне определённое разрешение. Чаще всего 1024×768. Совсем старые могут быть 800×600. Прошу заметить, что это разрешение отличается от разрешения распространённого нанче широкого ноутбучного экрана с соотношением сторон 16:10. Я же предпочитаю видеть на экране ноутбука во время презентации то же изображение, что и на проекторе. Это значит, что прежде чем подключать ноутбук к проектору, необходимо переключить разрешение на экране ноутбука, а затем включить вывод идентичного изображения на VGA. При этом изображение на ЖК-экране ноутбука станет замыленным, но это нормально и связано с интерполяцией разрешения 1024×768 на физическую матрицу 1280×800. Вести презентацию это не мешает. После же презентации нужно отключить внешний VGA-выход и вернуть экранное разрешение к нормальному.

В результате я написал себе два однострочных скрипта, чтобы включить «режим презентации»:
xrandr --output LVDS --mode 1024x768 && xrandr --output VGA --mode 1024x768
и чтобы вернутья в нормальный видео-режим:
xrandr --output VGA --off && xrandr --output LVDS --mode 1280x800


Вызывать их можно из терминала, или по кнопке на панели, или по комбинации клавиши (например, с помощью xbindkeys). Это уже детали.

Ссылки по теме (по-английски):
How to use Linux laptop in presentations
Use XRandR 1.2 to Swtich on External Display for Thinkpad Laptop
Xorg RandR 1.2 (в ThinkWiki)
How to use RandR 1.2 (в Debian Wiki)