Gibt es einen Befehl, um einen bestimmten Arbeitsbereich aufzurufen?

22

Ich versuche, eine Schnellliste für den Start von Workspace Switcher zu erstellen, mit der schnell zu einem bestimmten Arbeitsbereich gewechselt werden kann. (Mein Freund benutzt manchmal meinen Computer und mag keine Tastaturkürzel, deshalb möchte ich ihm helfen.)

Gibt es also einen Befehl, den man in ein Terminal eingeben könnte, um die Fokussierung auf einen bestimmten Arbeitsbereich zu erzwingen?

Leron
quelle
Es besteht auch die Möglichkeit, eine Tastenkombination in den Systemeinstellungen5 für kwin (Desktop wechseln oder anderes) oder einen anderen Desktop-Einstellungsmanager festzulegen. Verwenden Sie dann xdotool, um die Tastenkombinationen wie xdotool key ctrl + alt + b zu simulieren.
Intika

Antworten:

34

Sie können wmctrl verwenden .

Grundlegende Befehle:
wmctrl -dZeigen Sie alle Ihre Arbeitsbereiche an.
wmctrl -s <workspace_name>um zu einem bestimmten Arbeitsbereich zu wechseln.

Wenn Sie Compiz verwenden, müssen Sie einen Trick ausführen, da Compiz-Arbeitsbereiche eigentlich Ansichtsfenster eines einzelnen Arbeitsbereichs sind.

Trick Anweisungen

Überprüfen Sie die Ausgabe von wmctrl -dZum Beispiel ist meins:

0  * DG: 4098x2304  VP: 1366,0  WA: 0,23 1366x745  N/A  

Dies bedeutet, dass ich tatsächlich einen Arbeitsbereich von 4098 x 2304 anstelle dessen habe, was ich "denke" (neun "Arbeitsbereiche", 3 x 3).
Ich befand mich an dem, was eigentlich "Arbeitsbereich" 2 sein sollte, aber tatsächlich befand ich mich im Ansichtsfenster (VP) 1366,0 (4098/3 = 1366), wie aus der obigen Ausgabe hervorgeht.

So funktioniert es: Wir nehmen den gesamten Arbeitsbereich und teilen die Anzahl der "Arbeitsbereiche", die wir "für möglich halten". In meinem Fall: 4098/3 = 1366 und 2304/3 = 768.

Wenn ich zu meinem "Arbeitsbereich" 1 gehen möchte, lautet der Befehl:

wmctrl -o 0,0

Wenn ich dann zu meinem "Arbeitsbereich" 4 gehen möchte, lautet der Befehl:

wmctrl -o 0,768

Wenn ich zu meinem "Arbeitsbereich" 8 gehen möchte, lautet der Befehl:

wmctrl -o 1366,1536

Wenn ich zu meinem "Arbeitsbereich" 9 gehen möchte, lautet der Befehl:

wmctrl -o 2732,1536

Ich habs? ;-)

Das -oFlag "schneidet" ihre Werte ab. Mit anderen Worten, es ändert den "Arbeitsbereich", zu dem das tatsächliche Pixel gehört. Folgendes ist äquivalent:

wmctrl -o 0,0
wmctrl -o 1365,767
desgua
quelle
1
Gibt es eine Möglichkeit, zu "dem aktuellen Desktop + 1" zu gelangen?
3.
9

Es ist sehr einfach zu erreichen, was Sie wollen xdotool, und bietet mehrere Optionen zum Verwalten verschiedener Arbeitsbereiche (in der Programmdokumentation auch als "Desktops" bezeichnet). Ich finde es kann sehr interessant und kreativ sein, Befehle von zu reihen man xdotool; Die Befehle, die ich unten formuliert habe, könnten in Skripten nützlich sein.

Hinweis: Bei einigen Fenstermanagern oder wenn Sie verwenden compiz, müssen Sie möglicherweise xdotoolBefehle wie set_desktop_viewportund verwenden get_desktop_viewport. Sie können die Befehle in einer anderen Art und Weise angeben müssen , wie desgua oben schon sagt, aber für mich die set_desktopund set_desktop_for_windowBefehle erwiesen sich als am nützlichsten auf einem Nicht-Compiz - System.)

( Die Lösung ist am nützlichsten für Benutzer von Xubuntu / Lubuntu oder für Benutzer, die compiz nicht ausführen usw. )

Geben Sie ein, um die Anzahl der aktuellen Arbeitsbereiche anzuzeigen

xdotool get_num_desktops

Die folgenden Befehle funktionieren nur, wenn Sie mindestens einen anderen Arbeitsbereich haben.

Um den Fokus auf Ihren Arbeitsbereich zu ändern 1, geben Sie einfach ein

xdotool set_desktop 1 

Geben Sie dann ein, um zum Standardarbeitsbereich zurückzukehren

xdotool set_desktop 0

Der Arbeitsbereich muss lediglich als letzter Wert im Befehl angegeben werden (1 oder 2 oder 3 usw.).

Verwenden Sie diese Option, um die Nummer des Arbeitsbereichs zu ermitteln, in dem Sie sich gerade befinden

xdotool get_desktop

Diese Befehle könnten in Skripten verwendet werden und sie sollten sehr nützlich sein, um zu erreichen, was Sie was.

Informationen zum Wechseln von Anwendungen zu einem bestimmten Desktop finden Sie in meiner Antwort hier:

Weitere nützliche Optionen zum Wechseln des Arbeitsbereichs finden Sie unter man xdotool.

Gemeinschaft
quelle
Diese Antwort gefällt mir besser als die akzeptierte, danke. Ich habe dies verwendet, um zwei heiße Ecken festzulegen, um einfach zwischen zwei Arbeitsbereichen zu wechseln.
Zeitplan für den
Ebenfalls nützlich: xdotool set_desktop --relative -- -1
Wechseln Sie
1

Ich habe ein Skript implementiert, das macht, was Sie wollen. Hier ist es: https://github.com/norswap/wmov/blob/master/wmov.sh

Es funktioniert in der Tat wie in Desguas Post beschrieben. Es gibt auch die Möglichkeit, Fenster an andere Arbeitsbereiche zu senden.

Norswap
quelle
1
Hinweis: Funktioniert nicht für virtuelle Desktops> 9.
j6m8
0

Es gibt ein Skript namens compiz-send.py im compiz-Wiki , das Ihre Frage teilweise beantwortet: Es ist kein bestimmter Arbeitsbereich, aber Sie können zu dem daneben gelangen.

Mit diesem Befehl
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
können Sie das Ansichtsfenster um 1 nach links oder rechts verschieben.

Rinzwind
quelle
0

Mit Python und der Bibliothek pyautogui , mit der Python-Skripte Mausklicks, Tastatureingaben usw. ausführen können, können Sie einen bestimmten Arbeitsbereich aufrufen und dort Aktionen ausführen.

Ich habe im Forum für Peppermint OS ein kurzes Tutorial über das Starten einer App auf einem bestimmten Arbeitsplatz geschrieben.

The_Fritz
quelle