TagCloud

Mika’s Devilspie Howto

Juni 27th, 2007 von buergermeister

Da einige nach der Veröffentlichung von Mikas Linuxdesktop nachfragten, wie er das mit dem Devilspie gemacht hat und auch schon ne ganze Weile hier via Suchmaschinen Leute aufschlagen, die nach Devilspie gesucht haben. Hab ich Mika gebeten doch ein kleines Howto zu verfassen. Und er hat sich dafür die Zeit genommen:

DevilsPie Mini How To

Kurz gesagt ist DevilsPie ein Programm, das im Hintergrund läuft und die Art und Weise wie Anwendungen geöffnet werden beeinflussen kann. Soviel zur Theorie, aber was kann man genau machen? Zum Beispiel kann eine Anwendung…

- immer auf einer bestimmten Arbeitsfläche geöffnet werden
- zwar laufen, aber nicht in der Taskleiste auftauchen
- immer maximiert,zentriert,minimiert o.ä. gestartet werden

Aber bevor es losgeht müssen wir das Paket “devilspie” (Universe Repository) erstmal installieren. Je nachdem wie ihr’s mögt, entweder über Synaptic oder mit einem einfachen:

sudo apt-get install devilspie

Nun könnten wir das Ganze auch schon starten, aber da ja noch keine Anweisungen bekannt sind, hätte das wenig Sinn. Im Terminal erfahren wir sogar:

“No s-expressions loaded, quiting”

Wir legen erstmal einen Ordner in unserem Home an, in dem wir später Regeln für bestimmte Programme ablegen:

mkdir ~/.devilspie

In diesen Ordner wechseln wir und erstellen uns dort eine erste Test-Datei, um die Wirkungsweise von DevielsPie auszuprobieren. Es ist prinzipiell egal wie ihr diese nennt, passende Namen helfen aber immer ;-) . Einzig wichtiger Punkt ist jedoch die Endung der Datei, und zwar “.ds” nur dann wird Sie von DevilsPie erkannt. Hier mal der Inhalt meiner ersten test.ds:

(if
(is (window_name) “Totem Video-Player”)
(maximize)
)

Soo, jetzt können wir DevilsPie das erste mal wirklich starten. Einfach “devilspie” im Terminal oder Alt+F2 und dann “devielspie”.
Wenn ihr jetzt mal den erwähnten Totem startet oder einen Film damit öffnet, sieht man was wir eben festgelegt haben: er wird auf jeden Fall maximiert gestartet.
In der Syntax, wie im Beispiel hätten wir nur ein Problem, nach dem “(maximize)” würde der Parser aufhören und keine weiteren Anweisungen befolgen. Dafür machen wir einfach einen “begin”-Block auf:

(if
(is (window_name) “Totem Video-Player”)
(begin
(geometry “800×800″)
(center)
)
)

Soo jetzt würde der Totem immer zentriert geöffnet werden und zwar in der Größe 800×800 Pixel. Wobei man mit geometry auch noch explizit die X/Y Position angeben könnte.
Kommen wir aber zum ursprünglichen Stein des Anstoßes zurück, mein “Desktop”-Terminal. Diese Aufgabe kann so gelöst werden, meine desktop-terminal.ds:

(if
(is (application_name) “mikas-terminal”)
(begin
(geometry “300×300″)
(center)
(undecorate)
(skip_tasklist)
(pin)
(below)
)
)

Wobei ich die folgenden zusätzlichen Optionen verwende:
(undecorate) – um die Fensterrahmen verschwinden zu lassen
(skip_tasklist) – damit das Terminal nicht in der Taskleiste erscheint
(pin) – dadurch erscheint das Terminal auf allen workspaces
(below) – hält das Terminal immer “unter” allen Fenstern

Damit alleine hätten wir jetzt aber noch keinen Blumentopf gewonnen, denn wenn wir ein Terminal starten heißt das ja noch lange nicht “mikas-terminal”, es fehlen außerdem noch ein paar weitere Einstellungen. Abhilfe schaffen wir mit einem extra anzulegenden Desktop Terminal Profil. Dafür gehen wir in einem bereits geöffneten Terminal auf Bearbeiten –> Profile –> Neu, geben einen Namen ein “desktop”, basierend auf Vorgabe und klicken dann auf “Anlegen”. In diesem neuen Profil ändern wir jetz folgende Einstellungen:

- Haken raus bei “Menüleiste in neuen Terminals per Vorgabe zeigen”
- als Titel den Titel auf den DevilsPie wartet, bei mir also mikas-terminal
- als Effekt “Transparenter Hintergrund” und den Regler auf “Keine” ziehen
- Rollbalken sollen nicht sichtbar sein

Achso und je nachdem wie eure Desktop aussieht könnt ihr natürlich auch noch die Schriftfarbe anpassen. Das Profil speichern wir jetzt ab und starten ein Terminal mit folgender Kommandozeile:

gnome-terminal –tab-with-profile=desktop

Jetzt sollte das gewünschte Desktop Terminal im Hintergrund auf euch warten. Sollte das Terminal wider erwarten nicht zentriert werden, dann probiert mal ob es besser klappt, wenn ihr das “(center)” als letzte Option angebt. Wenn ihr das Ganze immer so haben wollt müsst ihr natürlich sowohl DevilsPie als auch das Terminal per Autostart (http://wiki.ubuntuusers.de/Autostart?highlight=%28autostart%29) starten lassen.

Solltet ihr eure eigenen .ds Dateien schreiben wollen empfehle ich euch eine debug.ds zu erstellen mit folgendem Inhalt:

(debug)

Wenn ihr nun per Kommandozeile devilspie starte wird bei jedem neuen Fenster window_name, application_name, Class und Geometry angezeigt. Kann wirklich ziemlich hilfreich sein. Solltet ihr jetzt Lust bekommen haben, lohnt sich ein Blick:

- in die man page: man devilspie
- auf diese englische Seite (http://wiki.foosel.net/linux/devilspie)
- das deutsche ubuntu wiki (http://wiki.ubuntuusers.de/Devilspie)

Geschrieben in Killer Application | 8 Kommentare »

ähnliche Artikel:
  • None
  • 8 Kommentare

    1. Vince Vice Sagt:

      Also mit KDE und den Special-Window/Application-Settings geht das hervorrangend auch menübasiert!

      Die Frage ist nun allerdings ob devilspie auch mit Beryl so funktioniert, obwohl ein Hinweis für Compiz auf der Wikiseite existiert, der besagt:

      > Hinweis:
      > Devilspie funktioniert nicht mit dem Windowmanager Compiz zusammen,
      > wenn man Xgl nutzt.

      Schon jemand mit beryl ausprobiert?

    2. Streuner Sagt:

      Sehr schönes Tutorial :)
      Sobald mein Wlan klappt werde ich das direkt ausprobieren ;)

    3. Mika Sagt:

      @Vince Vice:
      Also mit Beryl alleine hab ich’s noch nicht probiert, aber mit compiz fusion und den von Ubuntu direkt angebotenen “eingeschränkten” Treibern läuft’s wunderbar.

    4. fayol Sagt:

      Danke Mika für die Klasse Anleitung.

    5. Klempner Sagt:

      Danke für das Tutorial. Macht ‘nen netten eye candy effect
      und funktioniert out of the box.

      Thx

    6. codecocktail Sagt:

      Geiles Tutorial :D
      Hat alles auf Anhieb funktioniert. Gibt es auch eine Möglichkeit, dass das Terminal auf dem Desktop “kleben” bleibt, wenn ich diesen “Desktop anzeigen”-Button klicke, der alle Fenster verbirgt?

    7. Desktop Terminal « Codecocktail Sagt:

      [...] nötigen Infos dazu gibts in diesem netten Tutorial von [...]

    8. rfpuppy Sagt:

      kake ! , geht nüscht bei 8.04

    Einen Kommentar abgeben

    Bitte beachte: Die Kommentare werden moderiert. Dies kann zu Verzögerungen bei Deinem Kommentar führen. Es besteht kein Grund den Kommentar erneut abzuschicken.