1939056

Cuttlefish für Ubuntu: Auf Ereignisse reagieren

13.06.2016 | 13:49 Uhr |

Das Projekt Cuttlefish ermöglicht unter Ubuntu einfache Systemautomatismen, die im Prinzip weder Scripting noch tiefe Systemkenntnisse erfordern. In Kombination mit eigenen Shell-Scripts wird Cuttlefish allerdings noch flexibler.

Zeitgesteuert kann jedes Linux-System Programme starten oder auch komplexe Aufgaben abarbeiten, die als Script für einen der installierten Interpreter wie Bash und Python hinterlegt sind.

Der vorinstallierte Cron-Daemon läuft bei allen Distributionen ab dem Systemstart im Hintergrund, um in frei definierbaren Intervallen Ausgaben auszuführen, die in der Crontab definiert wurden. Das Gegenstück dazu ist das optionale At, das sich in den Paketquellen aller Distributionen findet. Es läuft auch zeitgesteuert, arbeitet aber keine wiederkehrenden Aufgaben ab, sondern führt diese zu einem bestimmten Zeitpunkt genau einmal aus, ähnlich eines Weckers. Mit dem kleinen Tool Cuttlefish lassen sich die Möglichkeiten noch erweitern.

Dieser Artikel stammt aus der LinuxWelt 2/2014

Linux Mint 16: Das beste Ubuntu! Warum Linux Mint zum Desktop-Favorit vieler Linux-Anwender aufgestiegen ist, wie Sie es installieren und richtig einstellen - das und mehr finden Sie in der neuen LinuxWelt 2/2014 .

Wenn-dann-Bedingungen mit Cuttlefish

Automatisierte Aktionen, die nicht zeitgebunden sind, sondern jeweils nur unter bestimmten Bedingungen ablaufen sollen, sind komplizierter umzusetzen: Beispiel wären etwa wechselnde WLAN-Verbindungen, Programmstarts, angesteckte USB-Laufwerke, verbundene Bluetooth-Geräte oder – bei Notebooks – der Anschluss des Stromkabels. Für diese Art von Eventgesteuerter Automatisierung bietet Ubuntu das Helferlein Cuttlefish.

Es handelt sich um ein Ereignissystem, das nach dem Wenn-dann-Schema funktioniert: Aus einer Liste lässt sich ein Systemereignis als Bedingung auswählen, die dann wiederum eine andere Aktion startet. Cuttlefish ist kein universelles Tool: Die Auswahl von Bedingungen und Aktionen ist jeweils auf rund zwei Dutzend Typen begrenzt, die dem Entwickler des Programms sinnvoll erschienen. Gerade bei Ubuntu-Desktops auf mobilen Computern erlaubt Cuttlefish mit seiner Auswahl an Aktionen und Reaktionen aber die Automatisierung recht vieler Handgriffe.

Installation aus den Paketquellen: Bei Ubuntu 12.04 LTS ist Cuttlefish über apt verfügbar. Neuere Ubuntu-Versionen verlangen eine manuelle Installation aus Einzelpaketen.
Vergrößern Installation aus den Paketquellen: Bei Ubuntu 12.04 LTS ist Cuttlefish über apt verfügbar. Neuere Ubuntu-Versionen verlangen eine manuelle Installation aus Einzelpaketen.

Die Zielgruppe für Cuttlefish-Automatisierung sind Desktop-Anwender. Anders als Cron und At erfolgt die Konfiguration deshalb nicht auf der Kommandozeile, sondern über ein komfortables grafisches Menüsystem. Es ist in Python geschrieben und basiert intern auf D-Bus, ein standardisierter Nachrichten-Bus für System-Events, über den Prozesse unabhängig von der verwendeten Desktop-Umgebung kommunizieren können.

So können Sie Ubuntu 13.10 optimieren

Installation von Cuttlefish

Cuttlefish war 2012 einer der Gewinner des „Ubuntu App Showdown“, ein von Canonical jährlich ausgerufener Programmierwettbewerb, der besonders gelungene Tools für Ubuntu prämiert. Die Standard-Paketquellen von Ubuntu 12.04 LTS haben daher Cuttlefish nachträglich aufgenommen. In dieser Ubuntu-Version ist das Tool im Terminal mit dem Kommando

sudo apt-get install cuttlefish

mit allen Abhängigkeiten unkompliziert installiert. Für Ubuntu-Versionen nach 12.04 LTS gibt es leider keine Pakete, denn das Projekt ruht bereits mehrere Monate. Mit etwas Vorbereitung kann man es aber auch auf Ubuntu 13.10 oder Linux Mint 16 Cinnamon nachrüsten. Zuerst installieren Sie die benötigten Python-Bibliotheken aus den normalen Paketquellen:

sudo apt-get install python-psutil python-pyudev

Die weiteren Abhängigkeiten müssen Sie manuell über drei DEB-Pakete erfüllen, die in einem inoffiziellen Benutzer-Repository auf Launchpad liegen. Passend zur Prozessorarchitektur des Zielsystems, i386 oder AMD64, laden Sie von dort die drei Pakete „liblaunchpad-integration-common“, „liblaunch pad-integration“ und „gir1.2-launchpad-integration“ herunter. Für ein Ubuntu 13.10 64 Bit benötigen Sie beispielsweise „gir1.2-launchpad-integration-3.0_0.1.56.2.1~saucy~Noobs Lab.com_amd64.deb“, während „lib launchpad-integration-common“ als plattformunabhängiges Paket vorliegt. Wieder in der Kommandozeile, installieren Sie die DEB-Pakete mit

sudo dpkg -i [Paketname]

und können dann Cuttlefish auch aus einer inoffiziellen Paketquelle holen. Es liegt als Paket bereit und wird nach dem Download ebenfalls mittels dpkg installiert.

Erste Einrichtung und automatischer Start

Sie starten Cuttlefish über den „Ausführen“-Dialog beziehungsweise in der Dash-Übersichtsseite von Unity über diesen Aufruf:

/opt/extras.ubuntu.com/cuttlefish/bin/cuttlefish
Cuttlefish im Infobereich: Über das Symbol des Tools stehen alle eingerichteten Wenndann-Einträge als Menüpunkt bereit, um diese manuell auszuführen.
Vergrößern Cuttlefish im Infobereich: Über das Symbol des Tools stehen alle eingerichteten Wenndann-Einträge als Menüpunkt bereit, um diese manuell auszuführen.

Das Tool präsentiert eine einfache englischsprachiges Menüoberfläche, in der noch keine Aktionen definiert sind. Mit einem Klick auf „New“ erstellen Sie den ersten Eintrag. Jeder Eintrag besteht aus einer optionalen Bedingung auf der Registerkarte „Basics“ und der auszuführenden Aktion unter „Reaction“. Einträge ohne Bedingung sind einfach manuell ausführbare Menüpunkte, die dann über das Cuttlefish-Symbol im Infobereich des Desktops zur Verfügung stehen. Für automatische Aktionen erstellen Sie eine Bedingung mit dem Schalter „Activated by stimulus“. Nach dessen Aktivierung stellen Sie mit einem Klick auf dem unteren Feld „None“ ein Systemereignis ein. Die angezeigte Liste präsentiert unter „All Categories“ alle verfügbaren Ereignisse und dazu selbige nochmal in Kategorien sortiert. „Applications“ enthält beispielsweise Definitionen für den Start oder das Ende von definierbaren Programmen, „Network“ bietet für hergestellte oder abgebrochene WLAN-Verbindungen eigene Ereignisse. Auf der Registerkarte „Reaction“ stehen als Gegenstücke die ausführbaren Aktionen. Cuttlefish kann als Folge Scripts starten, Programme ausführen, Proxy-Server und Standarddrucker wechseln, den Bildschirmhintergrund ändern und Einiges mehr. Auch diese Reaktionen sind wieder nach Kategorien sortiert, und es dürfen mehrere ausgewählt werden. 

Damit Cuttlefish beim Systemstart nicht manuell aufgerufen werden muss, ist es nützlich, das Tool als Autostart-Programm einzurichten. Zwar gibt es dazu in der Menüleiste mit „Edit -> Preferences“ einen Schalter, dieser hat aber keine Wirkung. Stattdessen richten Sie Cuttlefish zu Fuß ein: Rufen Sie über die Dash-Übersichtsseite die „Startprogramme“ („gnome-session-properties“) auf. Gehen Sie dort zunächst auf „Hinzufügen“; als Namen tragen Sie „Cuttlefish“ ein und als Befehl Folgendes:

/opt/extras.ubuntu.com/cuttlefish/bin/cuttlefish -H

Damit startet das Programm im Hintergrund (Schalter „-H“).

DualBoot von Windows und Ubuntu

Cuttlefish zum Systemstart: In Unity und Gnome-artigen Desktop-Umgebungen richten Sie das Tool über „Startprogramme“ im Autostart ein.
Vergrößern Cuttlefish zum Systemstart: In Unity und Gnome-artigen Desktop-Umgebungen richten Sie das Tool über „Startprogramme“ im Autostart ein.

Beispiele: Cuttlefish in der Praxis

Die Einsatzmöglichkeiten erschließen sich allein durch Experimentieren, da Cuttlefish keine Dokumentation mitliefert. Als Anregung folgen einige nützliche Automatismen, die das Potenzial zeigen.

Mehrere Anwendungen starten: Als manuelle Aktion, die über das Menü im Infobereich des Panels bereitsteht, können Sie den Start von mehreren Programmen über einen einzigen Menüpunkt festlegen. Dazu legen Sie in Cuttlefish einen neuen Eintrag ohne Stimulus an. Als Reaktion wählen nach einem Klick auf das Plus-Symbol zunächst „Start Application“ und dann das gewünschte Programm aus der angebotenen Liste installierter Programme. Um ein eigenes Script oder ein nicht aufgeführtes Programm auszuführen, dient stattdessen „Start Application (advanced mode)“. Auf diese Weise können Sie mehrere Einträge hinzufügen. Ein Klick auf das Cuttlefish-Symbol im Infobereich lässt Sie dann alles zusammen starten.

Vom WLAN abhängiger Standarddrucker: Cuttlefish bietet als Stimulus die Verbindung zu einem Drahtlosnetzwerk, um je nach Netzwerknamen (SSID) einen bestimmten Drucker zu verwenden.
Vergrößern Vom WLAN abhängiger Standarddrucker: Cuttlefish bietet als Stimulus die Verbindung zu einem Drahtlosnetzwerk, um je nach Netzwerknamen (SSID) einen bestimmten Drucker zu verwenden.

Klangausgabe ein- und ausschalten: Mit einer Wenn-dann-Verknüpfung ist es möglich, die Sound-Ausgabe nur dann zu aktivieren, wenn ein bestimmter Player gestartet ist, und ansonsten stummzuschalten. Legen Sie dazu einen neuen Eintrag an, beispielsweise mit dem Namen „Sound an“, und aktivieren Sie als Stimulus „Application starts“. Als Programm wählen Sie den gewünschten Player und als Reaktion „Unmute Volume“. Als Gegenstück zum Stummschalten brauchen Sie jetzt noch einen Eintrag „Sound aus“ mit dem Stimulus „Application stops“, für den Sie wieder den Player auswählen. Die Reaktion ist nun aber „Mute Volume“. Den jeweils letzten Zustand der Klangausgabe merkt sich die Desktop-Umgebung zwischen Neustarts.

Standarddrucker wechseln: Andere Netzwerke, andere Drucker. Wenn das Notebook zuhause und im Büro einen anderen Standarddrucker verwenden soll, können Sie dies abhängig vom WLAN machen. Der Stimulus dazu ist „Connect to WLAN“, darunter wird die SSID des Drahtlosnetzwerks ausgewählt. Außerdem ist es sinnvoll, „Also check on startup“ einzuschalten, um die Bedingung gleich nach dem Start von Cuttlefish zu überprüfen. Als Reaktion dient dann „Change default printer“, und eine anklickbare Liste zeigt die eingerichteten Drucker auf dem Ubuntu-System an.

Sound automatisch ein- und ausschalten: Hier ist der Start von Rhythmbox mit dem Einschalten der Lautstärke verknüpft. Eine Hinweisbox informiert über ausgeführte Cuttlefish-Aktionen.
Vergrößern Sound automatisch ein- und ausschalten: Hier ist der Start von Rhythmbox mit dem Einschalten der Lautstärke verknüpft. Eine Hinweisbox informiert über ausgeführte Cuttlefish-Aktionen.

Angeschlossenes Stromkabel: Um sofort zu erkennen, ob das Notebook aktuell vom Akku läuft oder mit dem Netzteil verbunden ist, kann Cuttlefish je nach Stromversorgung ein anderes Hintergrundbild anzeigen. Der Stimulus dazu heißt in diesem Fall „Power cable plugged in“ und die Reaktion „Change desktop background“. Eine Bilddatei können Sie über einen Datei-Browser einrichten. Das Gegenstück dazu wäre ein Eintrag mit dem Stimulus „Power cable plugged in“, der wiederum einen anderen Desktop-Hintergrund zeigt.

Nützlich ist übrigens auch die Reaktion „Unlock Screen“ in Verbindung mit dem Stromkabel, um die Bildschirmsperre automatisch aufzuheben. Diese Beispiele sind lediglich ein kleiner Ausschnitt aus sinnvollen Wenn-dann-Kombinationen, die mit Cuttlefish automatisch ablaufen. Ob das Tool auch wieder in den regulären Paketquellen der nächsten Ubuntu-LTS-Ausgabe vorhanden sein wird, steht leider noch nicht fest.

0 Kommentare zu diesem Artikel
1939056