Протяните окно над двумя мониторами с «промежутком» между

У меня есть установка с двумя мониторами с Compiz в качестве оконного менеджера на Ubuntu 14.04. Я могу изменить размер окна, чтобы растянуть оба окна. Однако, хотя физические панели дисплея находятся на расстоянии нескольких сантиметров друг от друга, программное обеспечение по умолчанию думает, что они находятся рядом друг с другом без промежутка между ними. Это означает, что, например, диагональная линия выглядит следующим образом:

+----------+ +----------+ | | | / | | | | / | | | | / | | | |/ | | /| | | | / | | | +----------+ +----------+ 

То, что я хотел бы достичь, это нечто большее:

 +----------+ +----------+ | | | / | | | |/ | | | | | | | | | | /| | | | / | | | +----------+ +----------+ 

Это приведет к тому, что часть окна будет скрыта, но это приемлемо.

Я могу заставить X рассматривать дисплеи в промежутке между следующим:

 $ xrandr Screen 0: minimum 320 x 200, current 2048 x 1280, maximum 32767 x 32767 LVDS1 connected (normal left inverted right x axis y axis) 1366x768 60.0 + 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis) HDMI2 connected primary 1024x1280+0+0 left (normal left inverted right x axis y axis) 376mm x 301mm 1280x1024 60.0*+ 75.0 1280x960 60.0 1152x864 75.0 1024x768 75.1 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 640x480 75.0 72.8 66.7 60.0 720x400 70.1 HDMI3 connected 1024x1280+1024+0 right (normal left inverted right x axis y axis) 376mm x 301mm 1280x1024 60.0*+ 75.0 1280x960 60.0 1152x864 75.0 1024x768 75.1 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 640x480 75.0 72.8 66.7 60.0 720x400 70.1 DP2 disconnected (normal left inverted right x axis y axis) DP3 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) $ xrandr --fb 2184x1280 $ xrandr --output HDMI3 --pos 1160x0 

На первый взгляд кажется, что это работает отлично – когда я перемещаю мышь по диагонали по разрыву между мониторами, он исчезает «позади» мониторов и снова появляется там, где я ожидаю продолжения диагональной линии.

Однако я больше не могу перемещать или изменять размер окна, чтобы растянуть оба монитора. Ни мышь, ни wmctrl похоже, не могут этого сделать.

Есть ли способ достичь того, чего я хочу?

  • Xorg: выход источника поставщика в xorg.conf
  • Порт HDMI не работает после установки KDE Desktop Enviroment для Ubuntu
  • xrandr: границы отображения отключены
  • Потерял контроль над окнами, отправленными на монитор по HDMI, который xrandr не обнаруживает
  • Проверьте, включен ли дисплей в Linux
  • Разрешение 2560x1440 по HDMI с ноутбуком с NVIDIA Optimus и Ubuntu 15.10
  • Настройка трех мониторов в debian
  • «Xrandr: не удалось получить гамму для вывода по умолчанию» для Guest CENTOS 6.6, ОСНОВНОЙ ОС Windows 7
  • One Solution collect form web for “Протяните окно над двумя мониторами с «промежутком» между”

    Я нашел связанный с ним вопрос о Ask Ubuntu, который сделал для меня трюк. Инструкции для всего процесса, включая создание «разрыва» между мониторами (работает хотя бы на Ubuntu 14.04):

    • Узнайте текущий общий размер экрана (при условии, что в настоящий момент нет виртуального разрыва между мониторами):
      $ xrandr | grep Screen Screen 0: minimum 320 x 200, current $ xrandr | grep Screen Screen 0: minimum 320 x 200, current 2048 x 1280 , maximum 32767 x 32767
    • Добавьте желаемый размер зазора в пикселях в ширину (первое значение отображается после current – в моем случае – 2048). Я выбрал пробел в 136 пикселей, поэтому у меня будет новая ширина экрана 2184.
    • Установите новый размер экрана:
      xrandr --fb 2184x1280
    • Выясните отображаемое имя вашего правого монитора:
      $ xrandr | grep ^[^\(]*right $ xrandr | grep ^[^\(]*right HDMI3 connected 1024x1280+ 1024 +0 right (normal left inverted right x axis y axis) 376mm x 301mm
    • Практически переместите правый монитор дальше вправо, чтобы создать промежуток. Добавьте размер зазора в третье число, отображаемое вышеуказанной командой (выделено жирным шрифтом). В моем примере это 1024 + 136 = 1160:
      xrandr --output HDMI3 --pos 1160x0

    Теперь сделайте Compiz обработайте всю область как один экран

    • Запустите диспетчер настроек CompizConfig (можно установить с помощью sudo apt-get install compizconfig-settings-manager )
    • Перейдите в плагин «Общие параметры» (например, введите это в поле поиска)
    • Выберите вкладку «Настройки дисплея»
    • Снимите флажок «Обнаружение выходов»
    • Если это еще не сделано, щелкните правой кнопкой мыши по каждой строке, указанной в разделе «Выходы», выберите «Изменить» и удалите их содержимое.

    При максимизации окна он будет растягивать оба монитора. Полноэкранный режим также расширит оба монитора.

    Ясно, что это не идеально, так как большую часть времени желательно, чтобы максимизированные окна заполняли один монитор. Это означает, что опция «Определить выходные данные» Compiz должна быть проверена и снята с экрана в зависимости от того, какое поведение в настоящее время требуется.

    Заметка для пользователя с неанглийским языком: если вы не можете найти плагин CompizConfig и настройки, потому что вы не знаете, как их имена были переведены, запустите CompizConfig следующим образом:

     LANG=C ccsm 
    Linux и Unix - лучшая ОС в мире.