Mika’s Devilspie HowtoAm Mittwoch, Juni 27, 2007 in Killer Application |
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)
Exotische Linux-Distributionen - Nova Linux | Exotische Linux-Distributionen - esun | Rattengift auf dem Desktop | ubuntu-Wallpaper | Maltes Xinerama | Kleiner Hinweis | Ubuntu-Distributionssalat | Eeebuntu nicht mehr mit Ubuntu | Launch Party Invitation | Ubuntu 9.10 "Karmic Koala" Beta |
Kommentare
7 Kommentare zu “Mika’s Devilspie Howto”
Einen Kommentar hinterlassen!





















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?
Sehr schönes Tutorial
Sobald mein Wlan klappt werde ich das direkt ausprobieren
@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.
Danke Mika für die Klasse Anleitung.
Danke für das Tutorial. Macht ‘nen netten eye candy effect
und funktioniert out of the box.
Thx
Geiles Tutorial
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?
[...] nötigen Infos dazu gibts in diesem netten Tutorial von [...]