Ubuntu 12.04, Gnome Shell и два монитора


Встал я сегодня рано-рано утром, а делать-то в такую рань нечего, поэтому решил разобраться со своим офисным компьютером, на котором накопилась уйма ненужного барахла, да и браузер к тому же начал висеть. Решаю такие проблемы я обычно переустановкой операционной системы. Так поступил и в этот раз.

А нам, надо сказать, несколько дней назад сделали внутренний сервер IPTV, по которому, правда, пока можно смотреть только «Russian Music Box» и ГТРК Крым, но все же интереснее, чем радио. У меня как раз имеется второй монитор, который когда-то давно ставили для того, чтобы на одном я писал код, а на втором отслеживал результаты своего творчества, но это дело у меня так и не прижилось и большую часть времени своего существования второй монитор прослужил подставкой для планшета (не для iPad'а, а для обычного планшета, к которму прикрепляются листы формата А4 и шариковая ручка). Я решил, что второй монитор можно использовать в качестве телевизора и подключил его к компьютеру. IPTV работает нормально, все хорошо, но есть одно но: после включения компьютера, когда выводится экран приветствия и форма для ввода пароля, изображение выводится только на меньший (в моем случае второй) монитор, да и то в меньшем разрешении, чем это нужно.

После авторизации эта проблема решается при помощи панели управления мониторами, но как исправить эту ошибку до авторизации? Почитал я старинные темы на русскоязычных форумах. Большинство решений там уже устарело и в системе даже нет требуемых для их реализации конфигурационных файлов. Решил искать на забугорных сайтах. Поиски заняли у меня десять минут, наверное.

Итак, во-первых нужно узнать, в каких же режимах могут работать Ваши мониторы и самое главное ― их названия в системе. Для этого открываем консоль (администраторские права пока не нужны) и набираем следующую команду:

xrandr -q

В ответ получаем список подключенных (распознанных системой) мониторов и поддерживаемые ими режимы работы. У меня мониторы именуются весьма просто: «DVI-0» и «DVI-1»; оптимальные режимы для них соответственно 1680x1050 и 1280x1024. Теперь, когда эти данные нам известны, открываем в текстовом редакторе один из файлов gdm:
sudo gedit /etc/gdm/Init/Default

В этом файле находим строку, начинающуюся с «/sbin/initctl», и прямо над ней (т.е. выше) приписываем следующие строки:
xrandr --output DVI-0 --mode 1680x1050 --pos 0x0;
xrandr --output DVI-1 --mode 1280x1024 --pos 1681x0;

В этом моем коде, я думаю, будет понятно, что откуда взялось. Поясню только насчет «--pos». Этот параметр указывает роль монитора и если его опустить, то на оба экрана будет выводится одинаковое изображение (и почему-то в одинаковом разрешении). В приведенном коде «--pos 0x0» означает, что это ― главный экран; «--pos 1681x0» ― что этот экран находится справа от первого (отступ ― ширина первого экрана+1). Сама форма авторизации всегда выводится на тот экран, у которого имеется параметр «--pos 0x0».

Теперь даже на этапах до авторизации на моем компьютере все выглядит прилично и даже фоновый рисунок не размножается (до этого почему-то фоновый рисунок на экране был размножен, несмотря на то, что его ширина более 2000px). Кстати, не знаю точно в этом ли дело, но сейчас даже проигрыватель YouTube, развернутый во весь экран, выводится на том экране, на котором был развернут, а не на первом, как это было раньше, в т.ч. до переустановки (вполне, правда, возможно, что просто обновился flashplugin).


22.08.2012, 20:46
  Ubuntu, Gnome, gdm.
Просмотров: 3792.
8