Angenommen, ich verwende 4 Arbeitsbereiche und benötige im Übrigen mehr. Gibt es einen automatisierten Prozess oder, falls nicht möglich, eine einfache Möglichkeit, im Übrigen mehr Arbeitsbereiche hinzuzufügen (anstatt zu installieren Ubuntu tweak
usw. usw.) ?
14.04
unity
workspaces
automation
workspace-switcher
kernel_panic
quelle
quelle
Antworten:
Stellen Sie die Anzahl der Arbeitsbereiche automatisch ein. Fügen Sie entsprechend Ihren Anforderungen Spalten und Zeilen hinzu und entfernen Sie sie
Unterhalb einer Version eines Backround-Skripts, das automatisch Arbeitsbereiche hinzufügt, wenn Sie die letzte Spalte oder Zeile Ihrer Arbeitsbereichsmatrix eingegeben haben.
So funktioniert es:
Wenn Sie an der letzten Spalte oder Zeile ankommen, werden zusätzliche Ansichtsfenster hinzugefügt:
Wenn Ihre Arbeitsbereiche 5-10 Sekunden lang nicht verwendet werden und keine Fenster angezeigt werden, werden die zusätzlichen Arbeitsbereiche wieder entfernt. Sie behalten jedoch immer eine zusätzliche Zeile darunter und eine zusätzliche Spalte rechts von Ihrem aktuellen Ansichtsfenster:
Das Drehbuch:
Wie benutzt man
add_space.py
Bearbeiten Sie im Kopfteil des Skripts die Zeilen, wenn Sie andere Einstellungen möchten (maximale Anzahl von Arbeitsbereichen, Standardmatrix, z. B. 2x2):
Teste es mit dem Befehl:
Wenn alles in Ordnung ist, fügen Sie es Ihren Startanwendungen hinzu: Dash> Startanwendungen> Fügen Sie den Befehl hinzu:
Hinweis
Wie immer ist das Skript extrem "saftarm" und belastet Ihren Prozessor nicht merklich.
Erläuterung
Die folgende Geschichte ist etwas kompliziert und erklärt eher das Konzept und die Vorgehensweise als die Codierung. Lesen Sie nur, wenn Sie interessiert sind.
Berechnung der benötigten Arbeitsbereiche (Beispielspalten)
Die Ausgabe von
wmctrl -d
sieht so aus:Gibt in der Ausgabe an,
VP: 1680,1050
wo sich der übergreifende Arbeitsbereich befindet (die Matrix aller Ansichtsfenster). Diese Information ist nur dann nützlich, wenn wir auch die Bildschirmauflösung haben, da zB1680
die Breite von zwei (unwahrscheinlich, aber immer noch) oder ein Mal der Bildschirm sein könnte.Zum Glück können wir die Bildschirmauflösung aus dem Befehl herausfiltern
xrandr
.Wenn wir dann wissen, dass die Größe des Bildschirms x ist
1680
und wir gerade eingeschaltet sindVP: 1680,1050
, wissen wir, dass wir uns in der zweiten Spalte der Matrix des Arbeitsbereichs befinden. Da wir auch die Größe der Gesamtmatrix kennen (DG: 3360x2100
auch aus der Ausgabe vonwmctrl -d
), wissen wir, dass die aktuelle Matrix zwei Spalten enthält (3360/1680), und wir sind auf der "letzten".Das Skript sendet dann eine Anweisung zum Hinzufügen einer Spalte zur Matrix mit dem folgenden Befehl:
Das ist das Prinzip.
Berechnung der zu entfernenden Arbeitsbereiche (Beispielspalten)
Das Skript führt alle 10 Sekunden den folgenden Befehl aus, um alle aktuell geöffneten Fenster aufzulisten:
Dies gibt uns auch Informationen über die Position des Fensters, die so aussehen:
In der Ausgabe
3425
ist die x-Position des Fensters. Diese Zahl bezieht sich jedoch auf den aktuellen Arbeitsbereich (linke Seite). Um die absolute Position des Fensters (x-weise) in der Arbeitsbereichsmatrix zu kennen, müssen wir die erste Nummer der aktuellen Ansichtsfensterinformationen hinzufügen (z. B.VP: 1680,1050
aus der Ausgabe vonwmctrl -d
).Lassen Sie uns jedoch aus Vereinfachungsgründen nehmen wir auf Ansichtsfenster sind
1,1
(topleft Ansichtsfenster), so dass die relative Position des Fensters gleich seiner absoluten Position.Aufgrund der Bildschirmauflösung
1680
wissen wir, dass sich das Fenster in einer Spalte befindet3425/1680
, die aufgerundet ist, da sich alles dazwischen3360 and 5040
in derselben Spalte in der Matrix befindet (zwischen dem 3- und 4-fachen der Auflösung). Für die korrekte Berechnung verwenden wirmath.ceil()
(python
)Da das Skript auch die Regel anwendet, um rechts / unten immer einen zusätzlichen Arbeitsbereich zu haben, müssen wir die Anzahl der Spalten auf den höchsten Wert setzen von:
Und so macht das Drehbuch :)
Die Zeilen werden in genau derselben Prozedur verwaltet.
quelle
Technisch gibt es keine Verknüpfung zum Ändern der Größe von Arbeitsbereichen, aber Sie können den einfachen Skript-Balg verwenden und ihn an eine Verknüpfung binden.
.local/share/applications
Ordner oder wo immer Sie möchten.chmod 755 /path/to/script
Zum Beispiel habe ich dieses Setup:
Das Skript ist gebunden an ShiftCtrlAltI. Könnte CtrlAltIaber auch funktionieren. Ich gebe den vollständigen Pfad zum Skript an
Und so sollte es aussehen:
Skript
Sehr einfach zu bedienen, sehr einfach einzurichten
quelle