Weisen Sie Arbeitsbereiche auf i3 mehreren Anzeigen zu

15

Ich habe mit i3 auf meinem Linux-Laptop eingeschaltet. Normalerweise verwende ich nur den internen Monitor (Display eDP1) des Laptops , aber wenn ich auf der Arbeit bin, schließe ich normalerweise einen sekundären Monitor an den HDMI-Anschluss (Display HDMI2) meines Computers an . Bisher habe ich die folgenden Befehle zu meiner i3-Konfigurationsdatei hinzugefügt, um das Problem zu beheben:

# 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

Mit anderen Worten, wenn ich mein HDMI-Display anschließe, drücke ich einfach Mod+ M, damit i3 es erkennt, platziere es rechts von meinem primären Display und delegiere 5 benannte Arbeitsbereiche (6-10) an dieses.

Hier ist das Problem: Zu Hause habe ich einen anderen Monitor, den ich mit VGA (Display DP2) verbinden kann. Ich kann den xrandrobigen Befehl ausführen , um diese Anzeige auch rechts von meiner primären Anzeige zu platzieren, aber ich kann die Arbeitsbereiche nicht standardmäßig dieser Anzeige zuweisen, es sei denn, ich ersetze die Regeln, die ich bereits für meinen HDMI-Monitor habe. Ich möchte, dass beide Arbeitsbereiche gleich funktionieren, egal welchen Monitor ich benutze, daher ist dies keine Option.

TL; DR Gibt es eine Möglichkeit, zwei verschiedenen Bildschirmen Arbeitsbereiche zuzuweisen, je nachdem, welcher Bildschirm angeschlossen ist (vorausgesetzt, sie werden niemals gleichzeitig angeschlossen)?

Frxstrem
quelle

Antworten:

20

Sie können einem Arbeitsbereich nicht mehrere Ausgaben zuweisen, siehe: https://github.com/i3/i3/issues/555

Die einzige Möglichkeit besteht darin, die i3-Konfiguration dynamisch zu ändern. Sie können einem Hotkey-Skript zwei Aufgaben zuweisen: Ändern der Monitorausgaben mit xrandrund Verschieben von Arbeitsbereichen mit 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"

Mit dem obigen Skript verschieben Sie 6-10 Arbeitsbereiche nach DP2 und bleiben am Ende auf Arbeitsbereich 10.

Update 2019: Die Zuweisung mehrerer Ausgänge wurde ab Version 4.16 implementiert (siehe https://i3wm.org/docs/userguide.html#workspace_screen) . Jetzt könnten Sie sie so benutzen:

workspace "6: S1" output HDMI2 VGA
anlar
quelle
2

Laut Benutzerhandbuch lautet die Syntax:

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

sollte arbeiten.

Oder Sie können die primäre Ausgabe auf Ihren Computern definieren, falls nicht set ( xrandr --output <output> --primary), und diese Syntax verwenden:

workspace 1 output primary
...
workspace 6 output secondary
caseneuve
quelle