Sawfish
Rückkehr eines GNOME-Urgesteins
Erweiterte Konfiguration
Viewports
Viele glauben, dass Viewports mit Version 1.0.1 aus Sawfish entfernt wurden, aber sie wurden durch die Entscheidung, in GNOME 2 nur noch Arbeitsflächen bereitzustellen, lediglich als veraltet markiert.
Viewports aktiviert man, indem man in ~/.sawfishrc folgendes einfügt:
; Standardeinstellungen laden ( require 'sawmill-defaults ) ; Viewport-Funktion laden ( require 'sawfish.wm.viewport ) ; Viewport-Kürzel in sawfish-ui bereitstellen ( define-special-variable customize-command-classes '(default viewport) ) ; 3 x 3 Viewports pro Arbeitsfläche ( setq viewport-dimensions '(3 . 3) )
Kantenblättern
Kantenblättern (Edge Flipping) bedeutet nichts anders, als dass der Zeiger beim »Verlassen« des Bildschirms auf der nächstbesten Arbeitsfläche oder dem nächstbesten Viewport landet. Code für ~/.sawfishrc:
; Kantenblättern aktivieren ( require 'sawfish.wm.ext.edge-flip ) ; Kantenblättern-Typ ( define-special-variable edge-flip-type 'workspace ) ;( define-special-variable edge-flip-type 'viewport ) ; Wartezeit vor dem Blättern (in ms) ( define-special-variable edge-flip-delay 100 )
Inhalt oder Drahtmodell?
Sawfish kann beim Verschieben/Größe Ändern entweder den Inhalt oder ein Drahtmodell anzeigen.
; Drahtmodell beim Verschieben/Größe Ändern ( define-special-variable move-outline-mode 'box ) ( define-special-variable resize-outline-mode 'box ) ; Inhalt beim Verschieben/Größe Ändern ( define-special-variable move-outline-mode 'opaque ) ( define-special-variable resize-outline-mode 'opaque )
Fenster-History
Sawfish unterstützt Fenster-History, das heißt, dass Sawfish sich Position, Größe u.ä. von Fenstern merken kann, und sofern diese keine bestimmte Größe/Position verlangen, wiederherstellt.
; Fenster-History aktivieren ( require 'sawfish.wm.ext.window-history )
Die Optionen können via sawfish-ui angepasst werden ().
Animiertes Bewegen von Fenstern
Eines der Benutzer-Skripte erlaubt es, Fenster animiert zu bewegen. Laden Sie von der Homepage das Skript »Animated-Move« herunter und speichern es als ~/.sawfish/lisp/animated-move.jl (Groß/Kleinschreibung beachten!)
; Animiertes Fenster-Bewegen laden ( require 'animated-move )
Die Optionen können via sawfish-ui geändert werden (). Legen Sie z.B. auf Strg+Alt+C und probieren Sie es aus ;)
Tabbed Windowing
Neben Fluxbox und PWM ist Sawfish der dritte im Bunde derer, die Tabbed Windowing unterstützen. Tabbed Windowing bedeutet, dass man mehrere Fenster innerhalb eines Rahmens zusammenfassen kann, so wie Tabs in Firefox oder Nautilus. Um die Fenster zusammenzufassen, klickt man einfach mit der mittleren Maustaste auf eine Titelleiste, dann auf die des anderen Fensters, und schon sind beide Fenster innerhalb desselben Rahmens gefangen (natürlich kann man auch Tastenkürzel setzen). Um die Fenster zu lösen, einfach wieder auf die Tabs klicken. Um Tabbed Windowing zu benutzen, benötigt man ein Thema, das dies unterstützt. Zur Zeit gibt es leider nur eines: Toyberg.
; Tabbed Windowing aktivieren ( require 'tab ) ( require 'tabgroup ) ( require 'tab-keymap ) ( require 'marks )
Merlin/Ugliness
Merlin ist eine Skriptsammlung, welche Ihnen mehr Kontrolle über das Verhalten von Sawfish gibt. Im Tarball findet man drei Dinge: ein Unterverzeichnis merlin, x.c.patch und 50merlin.jl.
cp merlin/50merlin.jl /etc/X11/sawfish/site-init.d/ mkdir -p $HOME/.sawfish/lisp cp -r merlin/merlin $HOME/.sawfish/lisp
Die gewünschten Skripte kann man zu .sawfishrc hinzufügen. Die vollständige Merlin-Suite ergibt:
( require 'merlin.clock ) ( require 'merlin.fishbowl ) ( require 'merlin.iconbox ) ( require 'merlin.icons ) ( require 'merlin.menu ) ( require 'merlin.message ) ( require 'merlin.mp3 ) ( require 'merlin.pager ) ( require 'merlin.pile ) ( require 'merlin.placement ) ( require 'merlin.sawlet ) ( require 'merlin.sawlet-placement ) ( require 'merlin.uglicon ) ( require 'merlin.ugliness ) ( require 'merlin.util ) ( require 'merlin.wmresize ) ( require 'merlin.x-util )
Optional kann man Sawfish mit x.c.patch patchen:
cd /some/where/sawfish-1.3.3 patch -Np0 -i /some/where/merlin/x.c.patch ./configure --prefix=/usr --sysconfdir=/etc \ --enable-cappet --enable-gnome-widgets make sudo make install
Sawfish und Komposit
Sawfish hat zwar keinen eingebauten Kompositor, allerdings kann man hierzu ja den xcompmgr zu Rate ziehen. Man benötigt hierzu sowohl transset als auch xcompmgr.
Achtung ATI-Nutzer: Wer eine Version von FGLRX älter als 8.5 hat, sollte sicherstellen, dass die Option Textured2D deaktiviert ist.
Optionen von XCompMgr
Schatten
| -c | Schatten aktivieren |
|---|---|
| -C | Kein Schatten, wenn Fenster ein Dock oder Panel ist |
| -r | Blurring-Radius |
| -l | Linker Versatz der Schatten |
| -t | Oberer Versatz der Schatten |
| -o | Transparenz der Schatten |
Ein/Ausblende-Animationen
| -f | aktivieren |
|---|---|
| -F | aktivieren (für Transparenz-Änderungen) |
| -I | Fade-in Schritte |
| -O | Fade-out Schritte |
Beispiel:
xcompmgr -cCfF -r7 -o 0.65 -l-10 -t-8 -D7 -I 0.020 -O 0.020
xcompmgr --help gibt die gesamte Liste aus.
Jetzt kann man auch den AWN (Avant-Window-Navigator), Gnome-Terminal-Transparenz oder die Gnome-Panel-Effekte nutzen.
Transparenz für nicht-fokussierte Fenster
Von der Homepage das Skript native-focus-transparency herunterladen und als ~/.sawfish/lisp/native-focus-transparency.jl speichern.
; Fokus-Transparenz aktivieren ( require 'native-focus-transparency ) ; Transparenz auf 25% setzen [nicht fokussiert] ( define-special-variable out-of-focus-trans '0x25000000 ) ; Transparenz auf 0% setzen [fokussiert] ( define-special-variable in-focus-trans '0x00000000 )
Fazit
Sawfish ist ein extrem flexibler Fenstermanager, der dem Benutzer allen Freiraum lässt, den er sich nur vorstellen kann. Jeder, der sich dies wünscht, sollte zumindest mal einen Blick auf Sawfish geworfen haben. Benutzer von Fluxbox und PWM werden die Tabbed Windowing-Funktion sicherlich sehr nützlich finden. Den größten Konkurrenten, MetaCity, stellt Sawfish mit Leichtigkeit in den Schatten.

