Призначте робочі простори на i3 на декілька дисплеїв


15

Я ввімкнув використання i3 на своєму ноутбуці Linux. Зазвичай я використовую лише внутрішній монітор ноутбука (дисплей eDP1), але коли я працюю, я, як правило, підключаю вторинний монітор до порту HDMI свого комп'ютера (дисплея HDMI2). Поки я зробив цю роботу чудово, додавши ці команди до свого конфігураційного файлу i3:

# use workspaces on different monitors
workspace "1: P1" output eDP1
workspace "2: P2" output eDP1
workspace "3: P3" output eDP1
workspace "4: P4" output eDP1
workspace "5: P5" output eDP1
workspace "6: S1" output HDMI2 
workspace "7: S2" output HDMI2
workspace "8: S3" output HDMI2
workspace "9: S4" output HDMI2
workspace "10: S5" output HDMI2

# add HDMI monitor when connected
exec --no-startup-id xrandr --output HDMI2 --right-of eDP1
bindsym $mod+m exec --no-startup-id xrandr --output HDMI2 --auto --right-of eDP1

Іншими словами, коли я підключаю свій дисплей HDMI, я просто натискаю клавішу Mod+, Mщоб отримати i3, щоб її виявити, розмістити її праворуч від мого основного дисплея та делегувати їй 5 названих робочих просторів (6-10).

Ось проблема: Вдома у мене є ще один монітор, який я можу з'єднати з VGA (дисплеєм DP2). Я можу виконати xrandrкоманду вище, щоб розмістити цей дисплей праворуч від мого основного дисплея, але я не можу отримати робочі простори, призначені для цього дисплея за замовчуванням, якщо я не заміню правила, які у мене вже є для монітора HDMI. Я хотів би, щоб обидва ці робочі простори працювали однаково, незалежно від того, який монітор я використовую, тому це не варіант.

TL; DR Чи є спосіб призначити робочі простори двом різним дисплеям, залежно від того, який дисплей підключений (якщо припустити, що вони ніколи не будуть підключені одночасно)?

Відповіді:


21

Ви не можете призначити кілька виходів для однієї робочої області, див. Https://github.com/i3/i3/isissue/555

Тож єдиний спосіб - змінити конфігурацію i3 динамічно. Ви можете призначити сценарій гарячої клавіші, який буде виконувати 2 речі: зміна виходів монітора за допомогою xrandrта переміщення робочих просторів за допомогою i3-msg:

xrandr --output DP2 --auto --right-of eDP1
i3-msg "workspace 6, move workspace to output DP2"
...
i3-msg "workspace 10, move workspace to output DP2"

З вищевказаним сценарієм ви перемістите 6-10 робочих просторів на DP2 і в кінцевому підсумку залишаєтеся на робочій області 10.

Оновлення 2019: Призначення декількох виходів було здійснено починаючи з v4.16, див. Https://i3wm.org/docs/userguide.html#workspace_screen . Тепер ви можете використовувати їх так:

workspace "6: S1" output HDMI2 VGA

Потім буде використаний перший доступний вихід.


2

Відповідно до посібника користувача , синтаксис:

workspace 1 output eDP1
...
workspace 6 output HDMI2 VGA

повинні працювати.

Або ви можете визначити первинний вихід на своїх машинах, якщо він не встановлений ( xrandr --output <output> --primary), і використовувати цей синтаксис:

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