22

У моего нового ноутбука большой экран 16:9, и мне трудно использовать его в полной мере в 95% случаев, когда я не смотрю фильмы HD на нем.

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

Есть ли какой-нибудь плагин для этого?

9 ответов9

24

Вы можете использовать « fakexinerama » для достижения желаемого:

 Fake Xinerama is a replacement libXinerama library that instead 
 of querying the XServer reads ~/.fakexinerama and provides fake 
 information about Xinerama screens based on this file. It can be 
 used to fake a Xinerama setup even on computers with just one monitor
 or to fake Xinerama setup other than one specified in the XServer 
 configuration (e.g. making one screen smaller when using two same 
 screens). It's probably only useful for developers.
16

Чтобы расширить совет Акиры выше об использовании "поддельной ксинерамы" Лубоса Лунака, вот как я это сделал:

  1. Я скачал этот файл Xinerama.c с поддельного сайта Xinerama.
  2. Я открыл терминал и перешел в папку, в которой я сохранил Xinerama.c.
  3. Я выполнил:
    gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0.0 -shared
  4. Я открыл nautilus (файловый менеджер gnome) от имени пользователя root, набрав Alt-F2, а затем:
    gksu nautilus
  5. Я перешел в /usr /lib, нашел libXinerama.so.1.0.0 и сделал его резервную копию.
  6. Я скопировал libXinerama.so.1.0.0 из моего каталога загрузки в каталог /usr /lib, переопределив там копию (которую я только что скопировал на шаге 5, поэтому я могу отменить это позже, если потребуется). Для ясности было полезно отметить, что размер файла "поддельной" версии был больше (12,6 КБ), чем "реальной" версии, которую я заменял (8,6 КБ).
  7. Я создал новый текстовый файл с именем .fakexinerama в моем каталоге /home /dave и поместил его в него: (в зависимости от моего физического размера экрана 1440x900)
    2
    0 0 720 900
    720 0 720 900

Поддельный Xinerama позволяет вам определить любой вид виртуального экрана, который вы хотите, но я просто хочу вертикальный разделенный экран. Чтобы добиться этого на вашем мониторе, размер X на Y пикселей, в примере с моим файлом, просто замените 720 на X/2 и замените 900 на Y.

Вот и все. Я вышел из системы и снова вошел.

Еще раз спасибо Lubos Lunak за создание этого мода и akira за указание на это.

6

В настоящее время существует новый проект под названием FakeXRandR, который работает действительно прямо.

Это инструмент для обмана сервера X11, чтобы полагать, что мониторов больше, чем есть на самом деле. Он подключается к libXRandR и libXinerama и заменяет некоторые настраиваемые конфигурации мониторов несколькими виртуальными мониторами. Инструмент, который поставляется с этим пакетом, можно использовать для настройки разделения мониторов.

2

Это можно сделать в XRandR 1.5 без дополнительного программного обеспечения. Хотя ни Fakexinerama, ни FakeXRandR не работали для меня в Xubuntu, это решение окончательно разделило экран на две части.

Чтобы разделить монитор, сделайте следующее:

  1. Введите xrandr в терминал, чтобы проверить имя выхода и текущее разрешение дисплея, который вы хотите разделить.
    На моей системе результат был:

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
    HDMI1 disconnected (normal left inverted right x axis y axis)
    HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
       1920x1080     60.00*+  50.00    59.94
       1920x1080i    60.00    50.00    59.94  
       1600x900      60.00  
       1280x1024     75.02    60.02  
       1152x864      75.00  
       1280x720      60.00    50.00    59.94  
       1024x768      75.08    60.00  
       800x600       75.00    60.32  
       720x576       50.00  
       720x576i      50.00
       720x480       60.00    59.94
       720x480i      60.00    59.94
       640x480       75.00    60.00    59.94
       720x400       70.08
    VGA1 disconnected (normal left inverted right x axis y axis)
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    Мы видим, что мой монитор подключен к HDMI2, а разрешение установлено на 1920x1080.

  2. Добавьте 2 виртуальных монитора с помощью команды xrandr --setmonitor чтобы они перекрывались с вашим физическим дисплеем и располагались рядом друг с другом. Синтаксис команды (без кавычек):

    xrandr --setmonitor "monitor_name" "width_px"/"width_mm"x"height_px"/"height_mm"+"x_offset_px"+"y_offset_px" "output_name" 
    

    Для моей системы это было:

    xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2
    xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
    
  3. Хотя вышеприведенное уже настроило виртуальные мониторы в моей системе, изменения не были применены, пока я не выполнил (кажется, обновляет xrandr):

    xrandr --fb 1921x1080
    xrandr --fb 1920x1080
    

Чтобы сохранить изменения после перезагрузки, вы захотите выполнить эти команды при входе в систему. Вы можете сделать это, добавив команды в конец файла ~/.profile .

1

Я использовал решение этих точных вопросов в течение нескольких лет, используя triplehead2go. Это устройство объединит до 3 мониторов и сообщит об одном огромном мониторе X.

Вот как разделить этот огромный монитор на виртуальные рабочие пространства в xorg.conf:

Section "Device"
    # ... your other settings above
    Option         "TwinViewXineramaInfoOverride" "1280x1024+0+0, 1280x1024+1280+1, 1280x1024+2560+0"
EndSection

И если вы используете последние драйверы nvidia, эти драйверы имеют собственное расширение xinerama, которое, похоже, игнорирует вышеуказанные настройки, поэтому вы должны добавить следующее в этот раздел устройства:

Option         "NoTwinViewXineramaInfo" "true"
1

Я наткнулся на статью о omgubuntu, которая дает довольно простой способ имитировать функциональность Windows Snap в Ubuntu/Gnome с помощью панели управления Compiz. Эта оснастка Windows оставляет мне один широкоэкранный рабочий стол, но сами окна можно легко закрепить, чтобы заполнить любую половину экрана. (Это не совсем то, что я искал изначально, но все же довольно удобно.)

0

Если вы используете compiz, вы можете найти его плагин сетки более простым и гибким решением. Вы можете настроить его так, чтобы он перетаскивал окно над левой / правой половиной экрана при перетаскивании его к краю.

Это функция привязки окна, описанная в статье, на которую ссылается Дэвид. Более того, вы можете настроить ярлыки и сделать так, чтобы окно занимало верхнюю / нижнюю половину или четверть экрана.

Xinerama вызывает заметное снижение производительности (так как он повторяет действия X на всех экранах Xinerama) и плохо работает с композитными оконными менеджерами.

0

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

Вы можете получить больше удовольствия от оконного менеджера, такого как xmonad, или даже от запуска compiz, чтобы контролировать, как окна открываются, закрываются и мозаичны.

0

Хорошо работает для меня:

Я использовал следующее для двух мониторов (1280x1024 + 2048x1152):

3
0 0 1280 1024
1280 0 1024 1152
2304 0 1024 1152

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .