Wie kann ich eine Startanwendung in einem anderen Arbeitsbereich als # 1 ausführen lassen?

7

Ich möchte eine immer ausgeführte, aber selten verwendete Anwendung starten, um in einem anderen Arbeitsbereich zu starten, sodass ich sie nicht bei jedem Sitzungsstart manuell ausführen muss.

Kann das gemacht werden und wenn ja, wie?

keepitsimpleengineer
quelle
Ein anderer Desktop! = Ein anderer xserver, nehme ich an?
Bruno Pereira

Antworten:

4

Eine tolle App dafür ist devilspie. Es gibt auch einen GUI-Einstellungsmanager, gDevilspie.

sudo apt-get install gdevilspie
Scott Severance
quelle
7

Zuerst habe ich dank Scott Severance herausgefunden, wie das geht. Aber ich wollte seine Antwort konkretisieren, um es neuen Ubuntu-Benutzern zu erleichtern.

Hinweis: Dies funktioniert mit dem Metacity-Fenstermanager, dem Standardfenstermanager für den Ubuntu-Desktop.

Laden Sie zuerst gDevilspie herunter und installieren Sie es (ich habe Ubuntu Software Center verwendet)

Geben Sie hier die Bildbeschreibung ein

HOPPLA!

Als ich versuchte, es auszuführen, schlug es fehl. Aber dank AskUbuntu habe ich das Update gefunden ...

sudo apt-get install python-glade2
  • Dies ist ein Fehler in gDevilspie. Ein benötigtes Paket wird in den Abhängigkeiten nicht identifiziert. Wenn Sie dieses Paket bereits haben (einer meiner Computer hat es getan), müssen Sie dies nicht tun.

Starten Sie also die Anwendung, damit das Fenster geöffnet ist, und starten Sie dann gDevilspie ...

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf das Feld ✔, damit der Dämon beim Start gestartet wird, und klicken Sie dann auf die Schaltfläche Hinzufügen ...

Geben Sie hier die Bildbeschreibung ein

Geben Sie unserer Regel jetzt einen Namen.

Identifizieren Sie dann das Fenster der Anwendung für die neue Regel anhand ihrer Eigenschaften. Zwei Möglichkeiten, dies zu tun:

  1. Klicken Sie auf die Schaltfläche Get und Sie erhalten eine Liste mit Fensternamen oder

  2. Finden Sie die window_class mit xprop.

Der zweite Weg ist sicherer, da sich der Fenstername ändern kann. Öffnen Sie ein Terminal und geben Sie xprop | ein grep WM_CLASS Der Mauszeiger ändert sich in ein Plus. Bewegen Sie den neuen Cursor so, dass er sich über dem gewünschten Anwendungsfenster befindet, und klicken Sie darauf. Die wm_class erscheint im Terminal ...

-@-:~$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "skype", "Skype"

Klicken Sie nun auf die Registerkarte Aktionen und aktivieren Sie das Kontrollkästchen ✔ für den festgelegten Arbeitsbereich. Legen Sie dann den gewünschten Arbeitsbereich fest ...

Geben Sie hier die Bildbeschreibung ein

Wenn Sie möchten, lesen Sie die Regel ...

Geben Sie hier die Bildbeschreibung ein

Speichern Sie nun die Regel mit der Schaltfläche Speichern ...

Geben Sie hier die Bildbeschreibung ein

Starten Sie den Daemon, falls er noch nicht ausgeführt wird.

Hinweis: Mit gDevilspie ( devilspie) können Sie viel tun . Orte für weitere Informationen:

Sich selbst umhauen!

Viel Glück

keepitsimpleengineer
quelle
Tolle Erklärung. Diese Methode eignet sich hervorragend, wenn eine bestimmte Anwendung eine feste Fensterplatzierung haben soll, jedoch nur beim Start. Ich verwende es, um beim Start ein maximiertes Terminalfenster in einem Arbeitsbereich außerhalb des Bildschirms zu öffnen und weiterhin andere Terminalfenster in meinem aktiven Arbeitsbereich öffnen zu können.
KOVIKO
Es ist 2016 und ich habe hier gerade etwas Ähnliches gemacht. Jetzt, da Unity / Compiz die Norm ist, sollte eine kleine Einschränkung - set_workspaceersetzt durchset_viewport
jymbob
5

Sie können das Plugin "Windows platzieren" von Compiz verwenden (CompizConfig-Einstellungen -> Abschnitt "Fensterverwaltung" -> Windows platzieren):

Geben Sie hier die Bildbeschreibung ein

Und dann wählen Sie das Fenster und das Ansichtsfenster (in diesem Beispiel wähle ich Firefox):

Geben Sie hier die Bildbeschreibung ein

Wenn Sie möchten, dass dieses Fenster maximiert gestartet wird, können Sie dies auch festlegen Windows with fixed placement mode.

Salem
quelle
1

Installieren Sie wmctrl

sudo apt install wmctrl

Und erstellen Sie ein Skript (in diesem Beispiel Thunderbird im zweiten Arbeitsbereich ( -t 1)):

#!/bin/sh

 (thunderbird &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

Um Ihren Anwendungsnamen auf wmctrl zu erfahren, können Sie ihn anzeigen, indem Sie auf Ihr Terminal tippen:

wmctrl -l

Und ersetzen Sie es durch den richtigen Namen im Skript.

Seien Sie vorsichtig mit dem Großbuchstaben ("Thunderbird" nicht "Thunderbird") !!

Anderes Beispiel mit Firefox im 3D-Arbeitsbereich ( -t 2):

#!/bin/sh
(firefox &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Firefox` -t 2"

Bonus:

Hier ist der Befehl, der beim Start ausgeführt werden soll:

sh -c "thunderbird  & sleep 5 && wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

Arbeite mit Zimt an Debain 10. Sollte aber für alle funktionieren

pzim
quelle