10 авг. 2009 г.

Запуск программ на втором мониторе в Ubuntu 9.04

Приобрел недавно проектор для просмотра фильмов.

Подключил его вторым "монитором" к видеокарте (NVidia GeForce 7600 GT). После недолгих манипуляций с nvidia-settings удалось настроить проектор в режиме Separate X Screen (отдельный экран). Основной монитор и проектор заработали в родных разрешениях, а на проекторе появился пустой рабочий стол и две панельки от Gnome. Собственно это мне и нужно было.

Но вот незадача: все программы, запускаемые на втором мониторе через панели Gnome, открывались на первом мониторе! Единственным способом запустить что-либо на втором мониторе было использование комбинации alt+F2, что, согласитесь, не очень удобно.

Мучался я так пару дней. Потом надоело, я полез в свой любимый гугл и нашел вот это: http://bugzilla.gnome.org/show_bug.cgi?id=580103. Баг известен и пофикшен, но ждать пока он попадет в репозиторий долго. Поэтому пропатчил сам. Пакет для Ubuntu 9.04 amd64 лежит здесь: http://ls-it.googlecode.com/files/glib2.0_multimonitor.tar. Внутри архива 5 пакетов, их все нужно установить поверх имеющихся обычным способом.

Для тех, у кого не amd64, и для просто любопытных опишу процесс пропатчивания.
В первую очередь нужно добыть исходники glib2.0: apt-get source libglib2.0-0
Затем нужно установить зависимости, необходимые для сборки: sudo apt-get build-dep libglib2.0-0
Теперь нужно добыть патч: wget -O glibfix.patch http://bugzilla.gnome.org/attachment.cgi?id=135573
Патч нужно применить к файлу glib2.0-2.20.1/gio/gdesktopappinfo.c: patch -p1 < glibfix.patch
Необязательный шаг: поднять версию пакетов: debchange -i
Теперь можно собирать новые пакеты: cd glib2.0-2.20.1 && debuild
После успешного завершения в родительской папке вы должны получить набор пакетов, аналогичный моим, доступным по ссылке выше.