Dies ist eine Fortsetzung einer vorherigen Frage zum automatischen Starten von Anwendungen in einzelnen Arbeitsbereichen mit dem i3- Fenstermanager und zu den in der ~/.i3/config
Konfigurationsdatei möglichen und nicht möglichen Aktionen .
Zunächst die bereitgestellte Lösung, die auf Arch Linux- Dokumentation und einem von op bereitgestellten Update basiert, bei dem er die Logik weiter vorantreibt:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
Interessant ist auch dieser Austausch über die Nutzung eines Teils davon direkt in der Befehlszeile, ohne Folgendes zu duplizieren:
i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium
Ich habe jedoch noch nie eine Konfiguration gesehen, die viele Fenster / Apps in jedem Arbeitsbereich entsprechend einem gewünschten vertikalen oder horizontalen Layout automatisch startet. Mein Ziel ist es, diese einfache Konfiguration, die ich verwende, automatisch zu starten:
_____ _____ ___________ ___________
| lx | lx | | |u_| | | | proportions:
|_____|_____| | FF |lx| |spacefm | 1- 25% each
|medit| lx | | |__| | | vlc | 2- 75/25 x 25/50/25
|_____|_____| |________|u_| |_____|_____| 3- 50/50
1 2 3
Also fängt es in der config
Datei so an:
exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal; layout toggle split; layout splitv; split vertical; exec i3-sensible-terminal; exec i3-sensible-terminal; exec i3-sensible-terminal; workspace 2; exec firefox; exec urxvt; exec i3-sensible-terminal; exec urxvt; workspace 3; exec spacefm; exec vlc'
Aber wie um alles in der Welt erreichen Sie die gewünschte Art von Layout und vertikaler / horizontaler Aufteilung? Ich versuche es, aber es ist nicht klar, wie Sie Ausführung und Layout "mischen". Die Syntax fühlt sich beim Starten eigenartig an, da Sie i3-img
innerhalb der i3-Konfiguration ausgeführt werden. Verwenden Sie split h
(oder v) - layout split v
- exec layout split v
- focus down
(oder rechts) zwischen jedem exec
Anruf?
Für einen einzelnen Arbeitsbereich startet die Konfiguration alle Anwendungen entweder vertikal oder horizontal und ich kann das Layout anscheinend nicht beeinflussen - oder der letzte split
Befehl in der Kette entscheidet, ob die Fenster vertikal oder horizontal hinzugefügt werden. i3-msg
Ignoriert scheinbar Teile des Befehls, die in einigen Fällen nicht richtig formatiert sind, sodass das Debuggen schwierig ist. Dies wird durch die Tatsache noch verstärkt, dass Sie X wirklich startx
jedes Mal beenden müssen, um die Ergebnisse zu überprüfen, da das Aktualisieren der Konfiguration mit mod+shift+R
nicht zu einer Kürzung führt, selbst wenn Sie alle Arbeitsbereiche schließen.
Wie kann man das richtig konfigurieren? Hat jemand eine Lösung, die so etwas umsetzt? Die Dokumentation ist ziemlich gut, aber es ist nicht vorgesehen, dass ich ein detailliertes Beispiel sehe, das Ausführung und Layout auf mehreren Arbeitsbereichen mischt.
Antworten:
Ich glaube, Sie suchen nach der neuen Funktion zum Speichern von Layouts , die in i3 v4.8 (15.06.2014) eingeführt wurde. Die verknüpfte Dokumentation scheint ziemlich gründlich zu sein.
Zitat aus der Dokumentation:
... und die Release Notes :
1. Sie benötigen möglicherweise die Pakete perl-anyevent-i3 und perl-json-xs , um das
i3-save-tree
Dienstprogramm zu verwenden.quelle
lxterminal
oderurxvt
für einen einzelnen Arbeitsbereich möchten , diese unterscheiden müssen,--name something
wenn Sie sie in .i3 / config ausführen. Das Beispiel in der Dokumentation funktioniert, aber wenn ich einen Export aus einem meiner Arbeitsbereiche verwende, scheint es nicht zu funktionieren. Sie verwenden class für den Namen und die Instanz für das, was Sie mit --name verwendet haben. In diesem Fall kann ich nur ernsthaft auf ein GUI-Tool hoffen, da das JSON- Format so viele Klammern enthält !!.i3/config
auch bei früheren Versionen immer Probleme, die Dinge beim Anmelden zuverlässig zu starten , aber sobald ich richtig angemeldet bin, funktioniert alles einwandfrei. Was ich getan habe, ist, ein paar Layouts anzuordnen und sie zu speichern und dann nur die Klassenvariablen der JSON-Dateien zu bearbeiten. Dann sollte sowas wiei3-msg workspace 2\; append_layout mylayout.json\;
und danni3-msg exec lxterminal\; exec lxterminal\; exec lxterminal\; exec medit
dein erstes gewünschtes Layout wiederherstellen. // Danke, dass du meine Antwort verbessert hast, übrigens.