Окремий робочий простір для другого екрана


16

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

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

Чи така поведінка вже можлива?


Мені вже вдалося ввімкнути робочі простори із зовнішнім виглядом -> Поведінка та відключені вертикальні робочі простори за допомогою диспетчера налаштувань CompizConfig. Є також плагіни Expo та Viewport Switcher, які, здається, здатні робити те, що я хочу, але боюся змінити налаштування без знань там.
Велоп

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

2
Я знайшов опцію Compiz -> Стіна робочого столу -> Перемикання перегляду портів -> Поведінка мультимонітора -> Переключення окремо. Але зовні це не працює.
велоп

@velop, чи можете ви редагувати ці коментарі у питанні?
SDsolar

Відповіді:


1

Чи така поведінка вже можлива?

Все можливо в Linux. Вам знадобляться основні знання про Xserver , деякий час та система для перевірки, оскільки ви возитесь зі своїм X і вам, звичайно, потрібен браузер, якщо вам потрібна допомога :-)

На мою думку, є три можливі рішення:

  • Мультимоніторні установки використовують Xinerama . Найпростіше рішення, про яке я можу придумати, - це додати третій віртуальний екран до своєї конфігурації та просто перемістити вікна туди за допомогою xdotool. У цьому рішенні є деякі недоліки, але це не вимагає зусиль переміщення вікон між різними Xservers, що взагалі неможливо.

  • Оскільки неможливо переміщувати вікна між різними Xservers , для цього нам потрібен такий проксі, як xmove або Xpra . Я думаю, що тоді Windows живе в окремому сеансі Xfvb, щоб приховати вікна. Ви можете приєднати та відключити до сеансу.

  • Незалежно від того, яким методом ви користуєтесь, вам потрібна подія, коли монітор вимкнеться з розетки. Подія має спрацьовувати, коли екран відключається, а також при повторному підключенні. Ви можете демонструвати сценарій, щоб спостерігати за подією.

Я б вважав за краще рішення з використанням Xpra з різних причин. Я можу дати вам лише деякі підказки, як це зробити. Рішення не є завершеними, але слід розпочати.

Рішення Xinerama

Налаштування

Настройка Xinerama має бути розширена, щоб мати статичну конфігурацію: Див. Https://help.ubuntu.com/community/XineramaHowTo

див. також підроблений третій екран та Xdummy

отримати уражені вікна

Ми можемо використовувати xdotool для пошуку вікон. Після цього ми можемо перевірити їх положення та перемістити їх. Я припускаю два монітора з 1920x1080конфігурацією. Далі буде переміщено всі вікна праворуч на лівий екран xinerama.

while read xwindowid; do
    eval $(xdotool getwindowgeometry --shell "$xwindowid")
    if (( X > 1920 && X <= (1920 * 2))); then
        xdotool windowmove --relative $WINDOW -1920 y
    fi
done <<< "$(xdotool search --screen 0 '.*')"

Тепер ви можете перемістити всі вікна з екрана ноутбука (screen0) на третій (віртуальний) екран, якщо монітор підключений. Одночасно ви можете перемістити будь-яке вікно, яке зберігається на третьому екрані, на перший екран.

Рішення XPRA

Для того, щоб використовувати Xpra для переміщення вікон, усіма вікнами слід керуватися Xpra раніше. Потрібно запустити весь робочий стіл за допомогою Xpra при запуску системи. Два рази один - ваш основний робочий стіл, де ви працюєте, а інший - це головним чином віртуальний робочий стіл.

xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach

Тепер ви можете мати Windows для відключеного екрана, який працює в окремому сеансі xpra, і приєднувати / відключати від нього, коли монітор перемикається.

xpra attach :99
xpra detatch :99

Також є розширене розширення оболонки gnome, яке може бути корисним, якщо ви хочете вручну перемістити вікно від прихованого :99до нормального :0між запущеними дисплеями xpra.

Подія

  • Ви можете спостерігати за відключенням / підключенням певного дисплея

  • можливо, слідкуйте за зміненими розмірами вашої xinerama, використовуючи xwininfo, щоб вона була незалежною від відключеного монітора, якщо ви хочете, тобто розширити налаштування на 3 монітори та відключити довільний пристрій. Зауважте, що це буде працювати лише для рішення xpra.

    xwininfo -display :0 -root | grep -e "-geometry"

    -geometry 5760x2160+0+0

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