Lispelnder Sägefisch
Der Fenstermanager Sawfish
Ferngesteuert
Sawfish kann auf bestimmte Ereignisse reagieren und dann anhand vorgegebener Regeln automatisch bestimmte Aktionen ausführen. Auf diese Weise lässt sich beispielsweise ein Browserfenster nach dem Aufruf mit einem individuellen Theme belegen und gleichzeitig auf die Bildschirmgröße aufblasen. Um das zu erreichen, muss einfach nur eine entsprechende Regel her. Diese legen Sie in den Sawfish-Einstellungen im Bereich Windows-Rules fest. Hier fügen Sie über die entsprechende Schaltfläche eine neue Regel hinzu, woraufhin das neue Fenster aus Abbildung 7 erscheint. In ihm klicken Sie die Regel bequem mit der Maus zusammen.
In den oberen Ausklapplisten teilen Sie Sawfish mit, auf welche (Text-)Muster er achten soll. Im Beispiel soll etwas passieren, sobald ein Fenster mit dem Namen Mozilla Firefox erscheint. Wählen Sie daher in der linken oberen Ausklappliste Name und tippen Sie rechts daneben den Mozilla Firefox ein. Was Sawfish machen soll, wenn es ein Fenster mit diesem Namen entdeckt, legen Sie im unteren Bereich fest. Für das Beispiel finden Sie die relevanten Aktionen auf dem Register Aussehen.
Um dem Browserfenster eine andere Optik zuzuweisen, haken Sie Rahmenstil an und wählen aus der Ausklappliste ein passendes Theme. Darüber hinaus soll das Fenster direkt Maximiert erscheinen. Setzen Sie folglich noch einen Haken vor den gleichnamigen Punkt und entscheiden sich in der Ausklappliste für eine entsprechende Methode.
Sobald Sie die Regel mit OK endgültig angelegt haben und Firefox startet, erscheint sein Fenster im gewünschten Anstrich und in voller Bildschirmgröße.
Blick unter die Haube
Die Regeln und Einstellungen, die Sie im Einstellungsfenster vorgenommen haben, übersetzt das Programm automatisch in passende Befehle der Programmiersprache Lisp, die Sawfish dann direkt ausführt. Gleichzeitig landen die Befehle in der versteckten Datei ~/.sawfish/custom, die der Fenstermanager beim nächsten Start auswertet.
Eigene Lisp-Befehle gehören in die Datei ~/.sawfishrc oder alternativ ~/.sawfish/rc. Die darin geparkten Anweisungen wertet Sawfish ebenfalls beim Start aus. Um das dort hineingehörende, kryptische Gebräu zu verstehen, benötigt man allerdings Lisp-Kenntnisse. Dann lässt sich Sawfish jedoch hemmungslos flexibel an die eigenen Bedürfnisse anpassen und, basierend auf den mitgebrachten Grundfunktionen, um weitere Features erweitern. Es lassen sich sogar bestehende Funktionalitäten durch eigenen Programmcode ersetzen.
Listing 1 zeigt ein ganz kleines Beispiel für eine eigene ~/.sawfishrc-Datei. Zeilen mit einem Semikolon ignoriert Sawfish, sie dienen somit als Kommentare. Die zweite Zeile aktiviert die Chronik-Funktion. Sawfish erinnert sich damit an die Position und Größe der Fenster. Öffnet man sie später erneut, erscheinen Sie genau dort, wo man sie zuletzt geschlossen hatte. Was sich Sawfish genau merken soll, steuern Sie im Systemmenü des Fensters (je nach Theme auch mit einem Rechtsklick auf das Schließen-Symbol zu erreichen) hinter dem Punkt Chronik. Die vierte Zeile legt schließlich noch ein zusätzliches Tastenkürzel fest. Demnach holt ein Druck auf [Strg]+[B] ein Terminalfenster hervor.
Listing 1
; Chronik aktivieren (require 'sawfish.wm.ext.window-history) ; Tastenkuerzel einrichten (bind-keys global-keymap "C-b" '(system "xterm &"))
Wer Lisp spricht, findet unter [3] eine umfangreiche Programmierreferenz. Eine ganze Reihe von Beispielskripten gibt es zudem unter [4].



