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)