Настройка 2-х мониторов в PuppyRus-A xfce

Описание в статье дано на примере:

  • дистрибутива pra02-1409fat-xfce
  • и компьютера, с одновременно подключенными к нему 2-мя мониторами: VGA - с разрешением 1280х1024 (стоит слева) и DVI - с разрешением 1920х1200 (стоит справа).

Включение или выключение питания любого из мониторов на результат не влияло.
Для настройки совместной работы 2-х мониторов используем связку xrandr + xfce-настройки. Практическое решение - приведено в конце текста.

1. Использование xrandr

Кроме pra02-1409fat-xfce, опыты также проводились над дистрибутивами Runtu-12.04-xfcе и Mint-17-xfcе.
Ситуация с ними оказалась аналогичной, хоть и с некоторыми нюансами, в худшую для них сторону
(в Runtu 12.04 xfcе и Mint-17 xfcе у меня не корректно производилось переключение панели с меньшего монитора на больший).

Результат проведенных экспериментов показал, что в этом вопросе использование одних xfcе-настроек не дает полного решения.
Лучший результат дает использование - xrandr + xfce-настройки.

Для начала набираем в Терминале xrandr и получаем примерно такой текст:

Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 4096 x 4096
VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis)
   1280x1024     60.0*+   76.0     75.0     72.0
   1152x864       75.0
   1024x768       75.1      70.1     60.0
   832x624         74.6
   800x600         72.2      75.0
   640x480         75.0      72.8
   720x400         70.1
   640x350         70.1
S-video disconnected (normal left inverted right x axis y axis)
DVI-0 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis)
   1920x1200     60.0*
   1920x1080     60.0
   1600x1200     60/0
   1680x1050     59.9
   1280x1024     60.0 +
   1280x960       60.0
   1024x768       60.0
   800x600        60.3
   640x480        60.0
   720x400        70.1

Из этой записи получаем:

  • S-video выход отключен или отсутствует;
  • монитор, подключенный к VGA-выходу в системе именуется как VGA-0 и имеет основное разрешение 1280×1024 с частотой развертки 60.0 (отмечено +);
  • монитор, подключенный к DVI-выходу в системе именуется как DVI-0, считается главным (primary) и имеет меньшее, чем основное разрешение 1280×1024 с частотой развертки 60.0 (отмечено +);
  • Рабочий стол отображается в режиме дублирования - одинаково на обоих мониторах (отмечено +0+0 - для обоих мониторов).

Примечание:
такое наименование типично для видеокарт ATI, а для видеокарт других производителей наименование мониторов в системе будет немного другим.

2. Настройка 2-х и более мониторов с помощью xrandr:

  • установка нужного разрешения мониторов - команда:
    --mode 1280x1024
  • выбор главного монитора (вот это у меня и не работает) - команда:
    --primary
  • отключение монитора - команда:
    --off
  • дублирование (клонирование, зеркалирование) Рабочего стола на обоих мониторах (может быть полным или частичным) - команда:
    --same-as; --pos 0x0 (именно со значениями 0x0)
  • растягивание Рабочего стола на 2 монитора и выбор размещения мониторов - команды:
    --left-of (слева от); --right-of (справа от); --above (выше); --below (ниже); --same-as (так же); --pos 1280x0 (задает смещение экрана от точки 0x0 в пикселях)

Примечание:

  1. В режиме дублирования экранов компьютер старается задать одинаковое разрешение экрана для обоих мониторов. Причем он ориентируется, естественно, на меньший монитор. Для изменения этой ситуации приходится задавать параметры разрешения обоих мониторов принудительно.
  2. В режиме растягивания Рабочего стола на два монитора практически (у меня всегда) главным получается левый или верхний монитор. Возможно это зависит от видеодрайверов или видеокарты.

Есть и другие возможности настройки с помощью xrandr, но для решения поставленной задачи - и этих оказалось достаточно.

Те, кто не желает использовать Терминал, могут воспользоваться программой arandr (это GUI-оболочка для xrandr), который позволяет все нижеописанные действия (и еще многие другие) выполнять в графическом режиме - просто передвигая в окне программы маленькие экранчики мышкой. Однако установка arandr в систему - выходит за рамки написания данной статьи. Может быть среди Вас найдутся желающие сделать отдельный подключаемый модуль. Размер arandr - около 0,5 Мб.
Есть еще интересная программа lxrandr, которая уже имеется в системе. Она позволяет очень удобно настраивать разрешение монитора, а также включать и отключать его. Но она не может устанавливать расположение мониторов. И поэтому, для работы с 2-мя мониторами, не очень подходит.

Теперь набираем в Терминале определенные команды и смотрим их выполнение. Оно происходит сразу, без всяких перезагрузок и каких-либо других дополнительных действий.

2.1. Изменение разрешения монитора:

Команда устанавливает на мониторе VGA-0 разрешение экрана 1280×1024. Вы не увидите результата, если на мониторе уже стоит это разрешение.

xrandr --output VGA-0 --mode 1280x1024

2.2. Определение монитора главным:

Команда делает монитор DVI-0 - главным. У меня это работает так - монитор может числиться главным, но все ярлычки и панель находятся на другом мониторе, который левый.

xrandr --output DVI-0 --primary

2.3. Отключение монитора:

Команда отключает монитор VGA-0 - при этом его экран гаснет и что важнее, система начинает считать его отключенным.

xrandr --output VGA-0 --off

Оставшийся включенным монитор (DVI-0) продолжает работать и автоматически становится главным (он же единственный!). На нем слева отображаются ярлычки и внизу панель.

2.4. Установка двух мониторов по горизонтали (один рядом с другим) с расширенным на оба монитора Рабочим столом:

Команда размещает монитор VGA-0 слева от монитора DVI-0 и расширяет Рабочий стол на оба монитора.
При этом, главным монитором является левый (VGA-0) и на нем слева находятся ярлычки и внизу панель.

xrandr --output VGA-0 --left-of DVI-0

или

xrandr --output DVI-0 --right-of VGA-0

или

xrandr --output DVI-0 --mode 1920x1200 --pos 1280x0 --output VGA-0 --mode 1280x1024 --pos 0x0

Аналогично, только мониторы поменяли местами.
Команда размещает монитор VGA-0 справа от монитора DVI-0 и расширяет Рабочий стол на оба монитора.
При этом, главным монитором является левый (DVI-0) и на нем слева находятся ярлычки и внизу панель.

xrandr --output VGA-0 --right-of DVI-0

или

xrandr --output DVI-0 --left-of VGA-0

или

xrandr --output DVI-0 --mode 1920x1200 --pos 0x0 --output VGA-0 --mode 1280x1024 --pos 1920x0

2.5. Установка двух мониторов по вертикали (один над другим) с расширенным на оба монитора Рабочим столом:

Команда размещает монитор VGA-0 выше монитора DVI-0 и расширяет Рабочий стол на оба монитора.
При этом, главным монитором является верхний (VGA-0) и на нем слева находятся ярлычки и внизу панель.

xrandr --output VGA-0 --above DVI-0

или

xrandr --output DVI-0 --below VGA-0

или

xrandr --output DVI-0 --mode 1920x1200 --pos 0x1024 --output VGA-0 --mode 1280x1024 --pos 0x0

2.6. Установка двух мониторов по вертикали с дублированием Рабочего стола

(Рабочий стол на одном мониторе дублирует Рабочий стол на другом мониторе):

Команда размещает Рабочий стол на мониторе VGA-0 и дублирует Рабочий стол на мониторе DVI-0.
При этом, на обоих мониторах слева находятся ярлычки и внизу панель. Разрешение мониторов (если оно не указано в команде в явном виде) автоматически ставится одинаковым.

xrandr --output VGA-0 --same-as DVI-0

или

xrandr --output DVI-0 --same-as VGA-0

2.7. Получение режима дублирования Рабочих столов, но с разным разрешением мониторов.

Для этого надо использовать другую команду:

xrandr --output DVI-0 --mode 1920x1200 --pos 0x0 --output VGA-0 --mode 1280x1024 --pos 0x0

При этом, разрешение мониторов становится разным. Рабочие столы дублируются в пределах 1280×1024.
А все, что размещено на мониторе DVI-0 за пределами 1280×1024 - не дублируется (не показывается) на другом мониторе (VGA-0).
Таким образом, монитор VGA-0 дублирует (показывает) лишь часть Рабочего стола монитора DVI-0.

3. xrandr и панель xfce

(А точнее - опять о настройке 2-х мониторов).

Кому-то всего вышеперечисленного уже достаточно для достижения своих целей.
Но мне, как оказалось, мало. Мне все же нужен главный монитор (где панель) - справа.

Из пункта 2.4. по установке 2-х мониторов по горизонтали (один рядом с другим) с расширенным на оба монитора Рабочим столом выполняем команду:

xrandr --output VGA-0 --left-of DVI-0

Получаем монитор VGA-0 слева от монитора DVI-0 и расширенный Рабочий стол на оба монитора. При этом, ярлычки и панель находятся на левом мониторе (VGA-0), т.е. он у нас главный.
Использование команды –primary - у меня ситуацию не меняет. А мне нужно управлять компьютером с правого монитора. Значит обязательно надо иметь на нем панель.
Так как стандартные варианты от xrandr - у меня до конца не срабатывают, то ищем обходное решение.
Идем в настройки панели: Диспетчер настроек > Панель > закладка Экран > пункт Вывод
Видим варианты настроек «Вывода»:

  • Автоматически;
  • VGA-0;
  • DVI-0.

Устанавливаем - «DVI-0».

И о чудо - панель перемещается с левого монитора на правый! Говорили же мне - учи матчасть!

4. Итоговое практическое решение.

А также сохранение настроек и оперативное управление двумя конфигурациями мониторов.

Теперь надо заставить компьютер запомнить все эти настройки, чтобы при загрузке они ставились автоматически.
Настройки, сделанные командами xrandr - просто так не сохраняются.
В моем случае - надо создать скрипт с нужными командами xrandr и положить его в Автозагрузку (/home/live/Startup/) и сделть его исполняемым (chmod 755)

Однако, на практике я работаю в двух разных вариантах конфигурации мониторов:

  • вариант 1-й - включен один монитор - DVI-0;
  • вариант 2-й - включены два монитора VGA-0 и DVI-0, причем DVI-0 должен быть справа и иметь панель.

И еще мне нужна возможность оперативного переключения между этими вариантами конфигурации мониторов.
Таким образом задача сводится к получению 3-х режимов работы:

  • режим 1 - после загрузки - включен один монитор - DVI-0 с разрешением 1920×1200;
  • режим 2 - включение двух мониторов VGA-0 с разрешением 1280×1024 и DVI-0 с разрешением 1920×1200, с расширением Рабочего стола на оба монитора, причем DVI-0 должен быть справа и иметь панель;
  • режим 3 - включение одного монитора - DVI-0 с разрешением 1920×1200;

Решение:

Сначала в Geany пишем два скрипта для xrandr. Первый скрипт:

#!/bin/ash
xrandr --output VGA-0 --off --output DVI-0 --primary --mode 1920x1200 --pos 0x0

и сохраняем с именем 2-display-off (файл понадобится дважды).

Второй скрипт:

#!/bin/ash
xrandr --output DVI-0 --primary --mode 1920x1200 --pos 0x0 --output VGA-0 --mode 1280x1024 --left-of DVI-0

и сохраняем с именем 2-display-on.

Примечание:

  1. В скрипте, после строки команды, в тексте должна быть пустая строка.
  2. Если с написанием скрипта есть какие-то затруднения, то можно скопировать файл какого-нибудь скрипта из системы, переименовать его в 2-display-off или 2-display-on и затем изменить в нем текст так, как написано выше.

Затем делаем pfs-модуль с файлами, которые должны быть размещены следующим образом:

  • файл 2-display-off - в папке /home/live/Startup/
  • копия файла 2-display-on и файл 2-display-off - в папке /usr/bin/

Для этого идем в меню Разработка > Упаковка pfs–пакета и штатными средствами делаем pfs-модуль 4-conf5-2display-startup-f11-f12-pra.
Вы, конечно, можете назвать модуль иначе. Затем сделанный pfs-модуль кладем в папку /pra/modules

Файл, размещаемый в папке /home/live/Startup/ понадобится для отключения второго монитора при загрузке - режим 1. Файлы, размещаемые в папке /usr/bin/ понадобятся для управления режимами 2 и 3.

Перезагружаемся.

При загрузке системы происходит автозагрузка файла 2-display-off находящегося в папке /Startup/, команда, содержащаяся в нем исполняется и монитор VGA-0 отключается.
Получается - загрузка «по-умолчанию» с одним монитором DVI-0 (причем с разрешением 1920×1200).
Итак, режим 1 - сделан!

Теперь делаем оперативное переключение между режимом 2 и 3, для этого обращаемся к xfce-настройкам.

Сначала идем в: Диспетчер настроек > Клавиатура > вкладка Комбинации клавиш > Добавить.
В окне Команда выбираем в папке /usr/bin/ созданный ранее нами файл 2-display-on, нажимаем ОК и задаем этой команде клавишу F12.
Повторяем, но теперь в окне Команда выбираем в папке /usr/bin/ созданный ранее файл 2-display-off, нажимаем ОК и задаем этой команде клавишу F11.
Логика выбора клавиш простая - удобство для запоминания - последняя цифра обозначает количество работающих мониторов.

Далее устанавливаем размещение панели (из пункта 3 мы уже знаем - как это делать).
Для этого идем в настройки панели: Диспетчер настроек > Панель > закладка Экран > пункт Вывод
Видим варианты настроек Вывода:

  • Автоматически;
  • VGA-0;
  • DVI-0.

Устанавливаем - «DVI-0».

И завершающий этап - сохранение настроек для работы режимов 2 и 3.
Сохранение xfce-настроек делается через создание pfs-сохраненки штатными средствами, через: Настройки > Создание файла сохраненной сесии (pfs–сохраненки)
Наконец режимы 2 и 3 - сделаны!

Перегружаемся и проверяем - что получилось:

  • режим 1 - после загрузки - включен один монитор - DVI-0 с разрешением 1920×1200;
  • режим 2 - клавиша F12 - включает два монитора - VGA-0 с разрешением 1280×1024 и DVI-0 с разрешением 1920×1200, расширяет Рабочий стол на оба монитора, причем (как я и хотел) DVI-0 справа и имеет панель;
  • режим 3 - клавиша F11 - включает один монитор - DVI-0 с разрешением 1920×1200.

Все РАБОТАЕТ!

Заключение

Ну вот, с настройкой двух мониторов для себя - разобрался.
Варианты модуля для настройки другого расположения 2-х мониторов - делаются аналогично.

Внимание: модуль НЕ универсальный!
Он содержит индивидуальные настройки подключенных у меня мониторов!
Для создания своего модуля Вам необходимо подставить свои значения всех приведенных в статье настроек (разрешение экрана, наименование мониторов, порядок расположения мониторов и т.д.).

Описанный в статье модуль предназначен для pra02-1409fat-xfce и позволяет выполнять включение:

  • одного монитора (из двух подключенных) по-умолчанию при загрузке системы;
  • двух мониторов по клавише F12 (с растяжкой Рабочего стола);
  • одного монитора по клавише F11.

Примечание (дополнено 26.09.2014):
Обнаружен недостаток xfce - проявляющийся при включении режима «прозрачности» одновременно с работой 2-х мониторов.
Он проявляется только в случае, если при работе в режиме с расширением Рабочего стола на оба монитора, Вы одновременно включите режим «прозрачности» (Диспетчер настроек > Диспетчер окон (дополнительно) > вкладка Эффекты > пункт Включить эффекты) - тогда экран большего монитора обрезается по размерам экрана меньшего монитора.
Это относится к Панели, и к тем элементам окон, для которых настроена «прозрачность».
Отключение в Диспетчере настроек режима «прозрачности» - восстанавливает нормальную работу 2-х мониторов.

Автор: Александр Д. 23.09.2014

Печать/экспорт