Як вертикально розділити широкоекранний на два віртуальних робочих простори на Ubuntu / Gnome?


23

Мій новий ноутбук має великий екран 16: 9, і мені важко повністю використовувати його протягом 95% часу, коли я не переглядаю на ньому фільми HD.

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

Чи є в наявності якийсь штекер для цього?


Якщо ви використовуєте compiz, ви, можливо, будете зрозуміти, що плагін для мережі є більш простим, дивіться мою відповідь нижче.
кинан

Відповіді:


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.

1
Дякую, це працює чудово, і краще, ніж я насправді сподівався. Мої доки, панелі панелей та плаваючі вікна охоплюють фізичний екран, але максимізовані та "повноекранні" програми (включаючи мої гостьові екземпляри vmware) ввічливо зберігають свою половину екрану. Я досить новачок у Linux, тому хакерство моїх налаштувань дисплея було трохи ризикованим, але в роботі не дуже багато. Я документую свої точні кроки для інших любителів Linux (як я) у додатковій відповіді нижче.
Девід

2
Посилання розірвано. Будь-яка ідея, де я могла знайти це програмне забезпечення?
Максим

17

Щоб розгорнутись на підказку Акіри вище про використання "підробленої синерами" Любоса Лунака, ось як я змусив це працювати на мене:

  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.

Це воно. Я вийшов із системи та знову увійшов, і працював.

Ще раз дякую Любосу Лунаку за те, що створив цей мод, і Акірі за те, що він на мене вказував.


Це мені дуже допомогло за допомогою дисплея з трьома головами. Xinerama досить повільний з трьома робочими стільницями, тому використання цього дозволило мені поставити два з них в Twinview, не дратуючи максимізувати обидва випуски, а третій - як окремий екран X, приєднаний до Twinview з Xinerama. Дякуємо, що знайшли час, щоб виписати кроки, Девід!
Кайл Брандт

7

Зараз є новий проект під назвою FakeXRandR, який працює справді прямо.

Це інструмент для обману сервера X11, щоб повірити, що моніторів більше, ніж насправді. Він з'єднується з libXRandR та libXinerama і замінює певні, що настроюються конфігурації монітора кількома віртуальними моніторами. Інструмент, що постачається з цим пакетом, може бути використаний для налаштування розподілу моніторів.


Я часто використовував fakexrandr успішно. На жаль, мій екран вимкнувся, коли у мене є xorg.conf (який мені потрібен для власної роздільної здатності для мого ультраширокого монітора). Я змушений видалити конфігурацію fakexrandr, перезапустити X і перенастроїти fakexrandr.
JAponte

3

Це можна зробити в XRandR 1.5 без додаткового програмного забезпечення. Хоча ні факексинерама, ні 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
Добре, що він існує прямо в xrandr, чудово. Але це робить лише ліву частину мого монітора корисною, права частина нічого не показує. І я не показую жодної помилки. - О, схоже, Awesome WM не підтримує монітори, а використовує лише виходи. Тож вам потрібна підтримка і в WM.
nert

О, ніколи не маю на увазі, у awesome є підтримка моніторів xrandr, це просто не спрацювало для мене. Але приголомшливий може зробити це сам: awesomewm.org/apidoc/classes/screen.html#screen:fake_add
nert

1

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


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"

0

Я впевнений, що ви можете це зробити, налаштувавши свій X-конфігураційний файл, але я цього не зробив, бо я, мабуть, зламав конфігурацію дисплея. Якщо ви спробуєте це, будьте дуже обережні, створюйте резервну копію конфігурації та переконайтеся, що у вас є альтернативний логін, який ви можете використовувати, якщо вам доведеться виправити показ.

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



0

Якщо ви використовуєте compiz, ви можете знайти його плагін з сітки більш простим і гнучким рішенням. Ви можете налаштувати його на плитку вікна над лівою / правою половиною екрана, перетягуючи його на край.

Це функція "Вікно оснащення", описана в статті, на яку посилається Девід. Крім того, ви можете налаштувати ярлики і зробити так, щоб вікно займало верхню / нижню половину або чверть екрану.

Xinerama спричиняє помітний показник продуктивності (оскільки він повторює дії X на всіх екранах Xinerama) і не працює добре з композиційними менеджерами вікон.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.