Aufbau, Icons, Scripte und PNG-Support aktivieren

Fluxbox - schlank und ressourcensparend - ist nach der Installation recht karg. Nach dem ersten Start von Fluxbox erscheint lediglich eine schmale Taskbar am unteren Rand und das Menü, welches mit der rechten Maustaste geöffnet wird, ist minimal. Keine Icons, kein Desktop-Hintergrund, keine kleinen Helfer in Form von Widgets. So präsentiert sich Fluxbox und überzeugt durch minimalen Speicherbrauch.

Doch aus Fluxbox kann man so einiges herausholen, so dass Fluxbox auch optisch was hergibt. Nach der Installation beschäftigt man sich in der Regel zuerst mit dem Menü, welches man mit den Programmen, Funktionen und Menü-Icons bestückt. Zwar ist man beim Editieren des Menüs hauptsächlich auf Handarbeit angewiesen, dies hat aber den Vorteil, dass man das Menü individuell an seine eigenen Bedürfnisse anpasst, was sich langfristig positiv bemerkbar macht. Anstatt sich durch zahlreiche Menüeinträge zu navigieren, von denen die meisten wenig bis gar nicht benutzt werden, ist das eigenständig erstellte Menü übersichtlich und strukturiert.

Fluxbox-Menü mit Icons
So könnte das fertige Fluxbox-Menü aussehen

Vorbereitungen - Fluxbox mit PNG-Support

Fluxbox unterstützte ursprünglich nur xpm-Grafiken in dem Menü. Mittlerweile unterstützt Fluxbox aber auch PNG-Grafiken. Hierzu wird die imlib2-Bibliothek verwendet, welche als Abhängigkeit mit installiert werden muss. Unter der Linux-Distribution muss man dazu vor der Installation von Fluxbox in den USE-Flags den Eintrag imlib setzen. Dann werden auch PNG-Grafiken im Menü angezeigt.

Anleitung - Fluxbox-Menü editieren

Damit man ein Default-Menü mit den auf dem System installierten Programmen erhält, kann man den Befehl fluxbox-generate_menu verwenden. Somit erhält man ein dynamisch erstelltes Menü, welches man als Grundlage verwenden kann, um es an seine Bedürfnisse anzupassen.

Die Einträge des Fluxbox-Menüs editiert man nun in der Datei ~/.fluxbox/menu seines Heimatverzeichnisses, welche man mit einem herkömmlichen Editor bearbeitet. Die Syntax ist auf den ersten Blick etwas verwirrend, ist aber eigentlich kinderleicht. Die Konfig-Datei wird nach folgendem Schema aufgebaut.

# Anfang der Konfigdatei
[begin] (Fluxbox)

      # Zwei Einträge im 1. Level des Menüs
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>

# Erstes Untermenü mit der Bezeichnung Office
[submenu] (Office)
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
[end]

# Zweites Untermenü mit der Bezeichnung Spiele
[submenu] (Spiele)
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
[end]

[end]

Kurze Erklärung: Um einen Menüeintrag zu erstellen, leitet man eine Zeile mit [exec] ein. In den runden Klammern () trägt man die Bezeichnung des Menüeintrags ein, welche beliebig gewählt werden kann und keine Anführungszeichen oder ähnliches benötigt. Anschließend erfolgt der Programmaufruf in geschweiften Klammern {}. Dies kann ein absoluter Pfad (Bsp.: /usr/bin/thunderbird) oder lediglich der Programmname sein (Bsp.: thunderbird) sein. Zu guter letzt trägt man in spitzen Klammern <> den Pfad zum Icon ein, welches vor dem Menüeintrag erscheinen soll. Hierbei ist die Größe der Grafik nicht sonderlich wichtig, denn die Grafik wird automatisch heruntergerechnet. Also kann man bsp. auch 128x128px Grafiken verwenden.

Die Untermenüs können auch ineinander geschachtelt werden, also es kann ein weiteres Untermenü in einem Untermenü erstellt werden:

# Erstes Untermenü mit der Bezeichnung Office
[submenu] (Office)
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>

# 2. Untermenü im 1. Untermenü
[submenu] (Spiele)
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
      [exec] (Bezeichnung) {Programmaufruf} <Pfad zum Icon>
[end]
[end]

Tipp zu den Icons:

Es ist empfehlenswert, die Icons im .fluxbox-Verzeichnis zu speichern und die Menü-Icons mit einer relativen Pfadangaben (Bsp.: ~/.fluxbox/pixmaps/firefox.png) festzulegen. Somit ist es später problemlos möglich, die Fluxbox-Konfiguration inklusive Icons zu exportieren, indem man das ganze .fluxbox-Verzeichnis Verzeichnis kopiert.

Tipps zu den Menüeinträgen: Skripte und Programmparameter verwenden

Bei den Menüeinträgen kann man auch sämtliche Optionen und Parameter verwenden, die man normalerweise auch verwendet, wenn man Programme über die Bash startet. Ein Eintrag kann beispielsweise folgendermaßen lauten:

      [exec] (aterm) {aterm -sl 1000 -bg black -fg white} <~/.fluxbox/pixmaps/terminal.png>

Viel nützlicher aber ist die Tatsache, dass man auch selbstgeschrieben Skripte in das Fluxbox-Menü implementieren kann. Jeder Linux-Anhänger hat diverse Skripte parat, die einem die tägliche Arbeit erleichtern. Folgendes Beispiel zeigt ein Untermenü mit den häufig verwendeten Skripten. Anstatt bei jeder Verwendung der UMTS die unterschiedlichen Befehle in die Bash einzutippen, um eine Verbindung mit dem Provider herzustellen, wurden die Befehle in einer Skriptdatei gespeichert.

Fluxbox-Menü mit Icons und Skripte

Anschließend erstellt man einen Eintrag in der Datei ~/.fluxbox/menu. Was aber tun, wenn man auf die Ausgabe des Skriptes angewiesen ist? Ganz einfach, man startet die jeweilige Bash und übergibt dieser dann die Befehle bzw. den Pfad zum Skript, welches ausgeführt werden soll. Bei aterm lautet die entsprechende Option -e / --execute:

      [exec] (UMTS-Connection) {aterm -e ~/bin/umts.sh} <~/.fluxbox/pixmaps/E-Plus.png>

Der Befehl aterm -s ~/bin/umts.sh startet nun die aterm-Konsole, in der das Skript bin/umts.sh ausgeführt wird.

Auzug aus einer kompletten Beispielkonfiguration

[begin] (Fluxbox)
      [exec] (fbrun) {fbrun} <~/.fluxbox/pixmaps/tux.png>
      [exec] (aterm) {aterm -sl 1000 -bg black -fg white} <~/.fluxbox/pixmaps/terminal.png>
      [exec] (Firefox Browser) {firefox} <~/.fluxbox/pixmaps/firefox.xpm>
      [exec] (Thunderbird Mail) {thunderbird-bin} <~/.fluxbox/pixmaps/thunderbird-icon.png>
      [exec] (Sunbird Kalender) {sunbird} <~/.fluxbox/pixmaps/sunbird.png>
      [exec] (Gimp Bildbearbeitung) {gimp-2.4} <~/.fluxbox/pixmaps/gimp-icon.png>
      [exec] (Gvim Editor) {gvim} <~/.fluxbox/pixmaps/kate.png>
      [exec] (krusader) {krusader} <~/.fluxbox/pixmaps/kfm_home.png>
      [exec] (Rechner) {xcalc} <~/.fluxbox/pixmaps/calc.png>

[submenu] (Skripte)
      [exec] (Websync PC-E) {aterm -e web-sync-pc-e.sh} <~/.fluxbox/pixmaps/gnome-session-switch.png>
      [exec] (Websync PCE-Forum) {aterm -e web-sync-pce.sh } <~/.fluxbox/pixmaps/gnome-session-switch.png>
      [exec] (SQL-Backup PC-E) {aterm -e bck_sql_pc-e.sh} <~/.fluxbox/pixmaps/gnome-session-switch.png>
      [exec] (websrv-start.sh) {websrv_start.sh} <~/.fluxbox/pixmaps/web-browser.png>
      [exec] (UMTS-Connection) {aterm -e umts.sh} <~/.fluxbox/pixmaps/E-Plus.png>
      [exec] (Resolution) {aterm -e resolution.sh} <~/.fluxbox/pixmaps/preferences-desktop-wallpaper.png>
[end]

[submenu] (Browsers)
    [exec] (firefox) {firefox}</usr/share/pixmaps/chrystel/apps/firefox.png>
    [exec] (konqueror) {kfmclient openProfile webbrowsing} <~/.fluxbox/pixmaps/konqueror.png>
    [exec] (opera) {opera} <~/.fluxbox/pixmaps/opera.png>
    [exec] (seamonkey) {seamonkey} <~/.fluxbox/pixmaps/seamonkey.png>
    [exec] (Internet Explorer 6.0) {/home/chef/bin/ie6} <~/.fluxbox/pixmaps/ie.png>
[end]

[submenu] (IM)
      [exec] (pidgin) {pidgin}
      [exec] (skype) {skype}
[end]

[submenu] (Editors)
      [exec] (vi) {aterm -e vi}
      [exec] (nano) {aterm -e nano}
      [exec] (gvim) {gvim}
      [exec] (bluefish) {bluefish}
[end]

[submenu] (Multimedia)
      [exec] (k3b) {k3b}
      [exec] (alsamixer) {aterm -e alsamixer}
[end]

[submenu] (fluxbox menu)
      [config] (Configure)
[submenu] (Styles) {Select a Style}
      [include] (/usr/share/fluxbox/menu.d/styles/)
[end]
      [workspaces]   (Workspace List)
[submenu] (Tools)
      [exec] (Window name) {xprop WM_CLASS|cut -d \" -f 2|xmessage -file - -center}
      [exec] (Regen Menu) {fluxbox-generate_menu}
[end]
[submenu] (Window)
      [restart] (kde) {startkde}
[end]
      [commanddialog] (Fluxbox Command)
      [reconfig] (Reload config)
      [restart] (Restart)
      [separator]
      [exit] (Exit)
[end]
[end]