Sawfish: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
SiD (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
== Einführung ==  
== Einführung ==  


Sawfish ist ein weitgehend anpassbarer Fenstermanager. In früheren Gnome-Versionen war er mal der Standard-Fenstermanager, wurde aber aufgrund des Rückzugs eines wichtigen Betreuers des Projekts, und weil damit seine Zukunft ungewiss war, abgelöst. Inzwischen wird Sawfish aber wieder betreut. Hier soll es aber nur um die Benutzung als eigenständigen Fenstermanager gehen.  
Sawfish ist ein weitgehend anpassbarer Fenstermanager. In früheren Gnome-Versionen war er mal der Standard-Fenstermanager, wurde aber aufgrund des Rückzugs eines wichtigen Betreuers des Projekts, und weil damit seine Zukunft ungewiss war, abgelöst. Inzwischen wird Sawfish aber wieder betreut. Hier soll es aber erst einmal nur um die Benutzung als eigenständigen Fenstermanager gehen.  
== Installation ==
 
Sawfish ist im [extra]-Repositorium enthalten. Man kann ihn also einfach mit
{{installation|paket=sawfish|repo=aur}}
# pacman -S sawfish
 
installieren.
== Sawfish starten ==
== Sawfish starten ==
Wenn X mittels '''startx''' gestartet wird, schreibt man  
Wenn X mittels '''startx''' gestartet wird, schreibt man  
  exec ck-launch-session sawfish
  exec sawfish
an das Ende der <code>~/.xinitrc</code>. Bei Benutzung von Displaymanagern verfahre man ...
an das Ende der <code>~/.xinitrc</code>.


== Anpassung ==
== Anpassung ==
Zum Einen bringt Sawfish ein Menü mit, und darin einen Unterpunkt '''Anpassen'''. Das Menü erhält man durch Klick mit der mittleren Maustaste  auf den Hintergrund. Änderungen, die man über dieses Menü macht, landen in der Datei <code>~/.sawfish/custom</code>. Diese Datei sollte daher nicht manuell bearbeitet werden.  
Zum Einen bringt Sawfish ein Menü mit, und darin einen Unterpunkt '''Anpassen'''. Das Menü erhält man durch Klick mit der mittleren Maustaste  auf den Hintergrund. Änderungen, die man über dieses Menü macht, landen in der Datei <code>~/.sawfish/custom</code>. Diese Datei sollte daher nicht manuell bearbeitet werden. Der dort erzeugte Code ist allerdings Lisp-Code (siehe zwei Abschnitte weiter unten).
 
Interessant ist der Punkt '''Arbeitsflächen'''. Hie kann man mehrere Arbeitsflächen (Desktops) definieren. Auch interessant: '''Fensterregeln'''. Darüber kann definiert werden, was mit Fenstern, die gewissen Match-Regeln genügen, geschehen soll, und auf diese Weise zum Beispiele Anwendungen auf die verschiedenen Arbeitsflächen verteilen.  


=== Themes ===
Der resultierende Code könnte dann folgendermaßen aussehen.
(custom-set-typed-variable (quote match-window-profile)
                            (quote ((((WM_CLASS . "^Thunderbird/Mail$")) (workspace . 3) (new-viewport . #f))
                                    (((WM_CLASS . "^Conkeror/Navigator$")) (workspace . 2) (maximized . all))))
                            (quote match-window) (quote sawfish.wm.ext.match-window))
 
 
== Themes ==
Themes kann man im eingedeutschten Sawfish mit Hilfe des Unterpunktes '''Aussehen''' im Menü '''Anpassen''' ändern. Reichen die mitgelieferten Themes nicht aus, kann man [http://sawfish.wikia.com/wiki/Themes auf der Sawfish-Wiki-Seite] weitere bekommen.
Themes kann man im eingedeutschten Sawfish mit Hilfe des Unterpunktes '''Aussehen''' im Menü '''Anpassen''' ändern. Reichen die mitgelieferten Themes nicht aus, kann man [http://sawfish.wikia.com/wiki/Themes auf der Sawfish-Wiki-Seite] weitere bekommen.
   
   
=== Lisp-Code ===
== Lisp-Code ==
Zum Anderen kann man im gegebenenfalls anzulegenden Verzeichnis <code>~/.sawfish/lisp</code> auch eigene oder heruntergeladene Lisp-Dateien ablegen, die dann über die Datei <code>~/.sawfishrc</code> oder <code>~/.sawfish/rc</code> einbinden kann.
Zum Anderen kann man im gegebenenfalls anzulegenden Verzeichnis <code>~/.sawfish/lisp</code> auch eigene oder heruntergeladene Lisp-Dateien ablegen, die dann über die Datei <code>~/.sawfishrc</code> oder <code>~/.sawfish/rc</code> einbinden kann.


Als Beispiel soll hier die automatische Erstellung eines Menüs aufgezeigt werden. Die Anregung stammt aus dem englischsprachigen Arch Linux-Wiki. Da Arch Linux von Haus aus keinen Menügenerator für Sawfish bietet, muss man sich behelfen, z.B. mit dem von xfce4.
Sawfish verwendet einen Lisp-Dialekt namens rep, der als Bibliothek librep realisert ist. Der Dialekt ähnelt Emacs-Lisp, nimmt aber auch ein paar Anleihen bei Scheme.  
 
Dazu sind die folgenden Schritte notwendig:
* Falls nicht schon geschehen, das Verzeichnis <code>~/.sawfish/lisp/</code> anlegen.
*  Folgende Pakete installieren:
pacman -S libxslt archlinux-xdg-menu
* Die xml-Vorlage '''xfce4-menu-to-sawfish.xslt''' (siehe unten) unter diesem Namen unter <code>~/.sawfish</code> abspeichern.
 
xdg_menu --format xfce4 --root-menu /etc/xdg/menus/arch-applications.menu | xsltproc \
xfce4-menu-to-sawfish.xslt - > ~/.sawfish/lisp/arch-menu.jl
ausführen.
Dabei sollte eine Datei <code>~/.sawfish/lisp/arch-menu.jl</code> entstehen.
 
* Diese ist jetzt noch einzubinden, indem man die Datei <code>~/.sawfishrc</code> anlegt und folgendes hineinschreibt:
;;; sawfish configuration file
; 1. Load defaults
(require 'sawfish-defaults)
; 2. Load autogenerated arch-menu
(require 'arch-menu)
; 3. Replace Sawfish's apps-menu with ours
(setq apps-menu arch-menu)
* Sawfish neu starten
 
'''xfce4-menu-to-sawfish.xslt'''
 
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:strip-space elements="*"/>
  <xsl:param name="terminal">urxvt</xsl:param>
  <xsl:template name="indent">
    <xsl:text>
</xsl:text>
    <xsl:for-each select="ancestor-or-self::*">
      <xsl:text>  </xsl:text>
    </xsl:for-each>
  </xsl:template>
  <xsl:template match="/">
    <xsl:text>;;; Arch applications menu for Sawfish, generated from xfce4 menu
(defvar arch-menu nil)
(setq arch-menu '(</xsl:text>
    <xsl:apply-templates/>
    <xsl:text>))
</xsl:text>
  </xsl:template>
  <xsl:template match="menu[.//app]">
    <xsl:call-template name="indent"/>
    <xsl:text>("</xsl:text>
    <xsl:value-of select="@name"/>
    <xsl:text>"</xsl:text>
    <xsl:apply-templates/>
    <xsl:text>)</xsl:text>
  </xsl:template>
  <xsl:template match="app">
    <xsl:call-template name="indent"/>
    <xsl:text>(&quot;</xsl:text>
    <xsl:value-of select="@name"/>
    <xsl:text>&quot; (system &quot;</xsl:text>
    <xsl:if test="@term='true'">
      <xsl:copy-of select="$terminal"/>
      <xsl:text> -e </xsl:text>
    </xsl:if>
    <xsl:value-of select="@cmd"/>   
    <xsl:text> &amp;amp;&amp;quot;))</xsl:text>
  </xsl:template>
</xsl:stylesheet>


=== Tipps ===
== Zusatzprogramme ==  
 
* sawfish-pager: Ein Pager für Sawfish
Seit Version 1.6.? gibt es im Menü ein Untermenü "Sitzung". Darin befinden sich wiederum Punkte, die zum Rechnerneustart, zum Herunterfahren oder zum Versetzen in Bereitschaft/Ruhezustand verwendet werden können. Per Paket stehen dort Kommandos, die nur funktionieren, wenn sudo installiert ist und der Benutzer entsprechend auf die Ausführung des shudown-Befehls hin berechtigt ist.
* sawfish-Session-Dialog: Ein graphische Werkzeug zur Konfiguration und zum Start gewisser Aktionen wie dem Neustart des Rechners oder dergleichen.
 
Will man auf sudo verzichten, hat aber hal und dbus aktiviert, so kann man über das Menü -> Anpassen -> Verschiedenes -> Externe Anwendungen zum Beispiel
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Reboot
 
in das Feld "Befehl zum Neustart des Rechners" eintragen (andere hal-Kommandos analog).


== Weblinks ==  
== Weblinks ==  
Zeile 103: Zeile 40:


[[Kategorie:Fenstermanager]]
[[Kategorie:Fenstermanager]]
[[en:Sawfish]]

Aktuelle Version vom 13. Januar 2021, 11:51 Uhr

Sawfish mit microGUI als Theme und Liberation Sans 10 pt als Font

Einführung

Sawfish ist ein weitgehend anpassbarer Fenstermanager. In früheren Gnome-Versionen war er mal der Standard-Fenstermanager, wurde aber aufgrund des Rückzugs eines wichtigen Betreuers des Projekts, und weil damit seine Zukunft ungewiss war, abgelöst. Inzwischen wird Sawfish aber wieder betreut. Hier soll es aber erst einmal nur um die Benutzung als eigenständigen Fenstermanager gehen.

Installation

Das Programm ist als sawfishAUR im AUR verfügbar, und kann von dort zum Beispiel mit einem der AUR Hilfsprogramme installiert werden.

pakku -S sawfish

Bei der Verwendung von AUR-Hilfsprogrammen ist zu beachten, dass Pakete niemals „blind“ installiert werden sollten. Vor dem Installieren sollten die Kommentare im AUR gelesen, und das PKGBUILD geprüft werden.

Sawfish starten

Wenn X mittels startx gestartet wird, schreibt man

exec sawfish

an das Ende der ~/.xinitrc.

Anpassung

Zum Einen bringt Sawfish ein Menü mit, und darin einen Unterpunkt Anpassen. Das Menü erhält man durch Klick mit der mittleren Maustaste auf den Hintergrund. Änderungen, die man über dieses Menü macht, landen in der Datei ~/.sawfish/custom. Diese Datei sollte daher nicht manuell bearbeitet werden. Der dort erzeugte Code ist allerdings Lisp-Code (siehe zwei Abschnitte weiter unten).

Interessant ist der Punkt Arbeitsflächen. Hie kann man mehrere Arbeitsflächen (Desktops) definieren. Auch interessant: Fensterregeln. Darüber kann definiert werden, was mit Fenstern, die gewissen Match-Regeln genügen, geschehen soll, und auf diese Weise zum Beispiele Anwendungen auf die verschiedenen Arbeitsflächen verteilen.

Der resultierende Code könnte dann folgendermaßen aussehen.

(custom-set-typed-variable (quote match-window-profile) 
                           (quote ((((WM_CLASS . "^Thunderbird/Mail$")) (workspace . 3) (new-viewport . #f)) 
                                   (((WM_CLASS . "^Conkeror/Navigator$")) (workspace . 2) (maximized . all)))) 
                           (quote match-window) (quote sawfish.wm.ext.match-window))


Themes

Themes kann man im eingedeutschten Sawfish mit Hilfe des Unterpunktes Aussehen im Menü Anpassen ändern. Reichen die mitgelieferten Themes nicht aus, kann man auf der Sawfish-Wiki-Seite weitere bekommen.

Lisp-Code

Zum Anderen kann man im gegebenenfalls anzulegenden Verzeichnis ~/.sawfish/lisp auch eigene oder heruntergeladene Lisp-Dateien ablegen, die dann über die Datei ~/.sawfishrc oder ~/.sawfish/rc einbinden kann.

Sawfish verwendet einen Lisp-Dialekt namens rep, der als Bibliothek librep realisert ist. Der Dialekt ähnelt Emacs-Lisp, nimmt aber auch ein paar Anleihen bei Scheme.

Zusatzprogramme

  • sawfish-pager: Ein Pager für Sawfish
  • sawfish-Session-Dialog: Ein graphische Werkzeug zur Konfiguration und zum Start gewisser Aktionen wie dem Neustart des Rechners oder dergleichen.

Weblinks