Fluxbox: Vom Window-Manager zur Desktop-Umgebung

Dies und das zu Fluxbox

Fluxbox ist ein Window-Manager für unixoide Systeme - zum Beispiel Linux. Fluxbox gehört in vielen Distributionen zur Standardausstattung. Für mich ist Fluxbox der Window-Manager, der am besten zu mir passt.

Angefangen habe ich mit Linux, nachdem ich die blauen Bildschirme von Windows 95 Leid war. Sie lieferten mir keine Informationen darüber, warum von einem Moment zum anderen nichts mehr funktionierte. Ich stieg auf Linux um - auf die »Deutsche Linux Distribution« (DLD). Das war damals noch ziemlich abenteuerlich für jemanden, der auf dem Weg von DOS mit WordPerfect über Windows 3 mit WordPerfect und Windows 95 mit WordPerfect gekommen war (ja, ich habe Zeit meines Lebens mit Texten gearbeitet!) und jetzt irgendwie die Gerätetreiber für Festplatten, Soundkarten, Netzwerkkarten und etwas konfigurieren musste, das sich x-window nannte.

Aber irgendwie hat es funktioniert. Und als es die erste Desktopumgebung gab - für mich KDE, weil ich den Fußabdruck von Gnome nicht leiden konnte - habe ich alle Window-Manager hinter mir gelassen und KDE1, dann KDE2 und schließlich KDE3 installiert. Damit war ich immer zufrieden.

Dann kam KDE4. Und das meiste, das vorher für mich funktioniert hatte, tat das nicht mehr. Gnome hatte immer noch einen hässlichen Fußabdruck. Also kuckte ich mich um. Aber LXDE, RazorQT, später LXQT, XFCE, Cinnamon, Mate, Budgie und Co. haben mich nicht überzeugen können - nur manche Elemente aus manchen von ihnen. Warum also nicht wieder ein einfacher Window-Manager mit ein paar Ergänzungen?

Ich entschloss mich Fluxbox auszuprobieren. Fluxbox ist schnell, gut dokumentiert, extrem flexibel - und es macht das, was ich in seine Konfigurationsdateien hineinschreibe.

Alles weitere, was ich im Folgenden beschreibe, habe ich unter dem Betriebssystem Devuan gemacht. Unter Debian wird das alles genauso gehen. Unter anderen von Debian abstammenden Betriebssystemen wird das höchstwahrscheinlich auch alles funktionieren - und vermutlich, vielleicht etwas angepasst, so ähnlich dann auch auf anderen Linux-OS, sofern sie einen x-Server bereitstellen. Devuan hat für mich den Vorteil, dass es ohne systemd auskommt - systemd will alles im System selbst organisieren und ist mir deshalb viel zu kompliziert.

Im folgenden sind immer wieder Listings, vor allem von Scriptdateien, aufgeführt. Alle diese Listings und alle weiteren auf diser Seite erwähnten Dateien können bei Bedarf in einem Paket auf einmal heruntergeladen werden: sammlung-de.tar.gz.

Installation und Inbetriebnahme

1. Installation
Fluxbox ist in den Paketquellen vorhanden. Einfach als root apt install fluxbox ausführen. Wenn man das von einem Minimalsystem aus macht, ist dafür das x-window-system Voraussetzung (apt install xserver-xorg).

Systeme ohne x-server, zum Beispiel Fedora, sind für Fluxbox ungeeignet.
2. Login-Manager
Als Login-Manager benutze ich seit Jahrzehnten (mit einem kleinen vorübergehenden Seitensprung zu SLiM) xdm (apt install xdm).

Damit xdm ein bisschen mehr als die schlichte Login-Aufforderung wird, habe ich ihn ein bisschen angepasst. Ihn ergänzt eine kleine Leiste am unteren Bildschirmrand, mit deren Hilfe man eine virtuelle Tastatur einblenden, den Computer herunterfahren oder neu starten kann, und die außerdem noch kurze Informationen über den Ladezustand des Computers und Datum und Uhrzeit anzeigt. Außerdem übernimmt xdm für mich auch den Bildschirmhintergrund des Logins und meines Fluxbox-Desktops. Auch dafür sind ein paar Scripte erforderlich. xdm kann das alles, weil er extrem flexibel konfiguriert werden kann.

Fangen wir mit der Leiste an. Ich benutze polybar (apt install polybar), eine ganz einfache Leiste. Bei mir bekommt sie eine Datei /etc/X11/xdm/polybar.ini mit folgendem Inhalt:


Polybar enthält in dieser Konfiguration als virtuelle Tastatur onboard (apt install onboard), das man sich beim nächsten Login auf eine passende Größe ziehen kann.

Als Programm zur Aufnahme eines Bildschirmfotos verwendet Polybar hier scrot (apt install scrot), das das Verzeichnis /root/Bilder verwendet - vermutlich muss das eigens angelegt werden.

Für die Anzeige des Ladestandes braucht Polybar das Script /usr/local/bin/ladestand.sh, das wiederum die Installation von acpi (apt install acpi) voraussetzt:


Jetzt zum Desktop-Hintergrund. Zuständig für die Auswahl eines Hintergrundbildes ist das Grafikprogramm feh (apt install feh. Damit feh vernünftig arbeiten kann und das Hintergrundbild während einer Fluxbox-Sitzung leicht gewechselt werden und dann auch bei der nächsten Anmeldung über xdm wieder zur Verfügung steht, habe ich das Script xdm-hg.sh geschrieben. Es hat folgenden Inhalt:


Wichtig ist, dass dieses Script durch eine »normale« BenutzerIn verändert werden darf, weil die enthaltene Bilddatei auch durch normale BenutzerInnen während der Fluxbox-Sitzung geändert werden darf. Bei mir steht es deshalb nicht im üblichen Scriptverzeichnis /usr/local/bin, sondern im Verzeichnis /usr/local/usrbin. Da ist es auch das einzige Script und darf eben mit den Rechten xbeliebiger BenutzerInnen geschrieben/geändert werden.

Damit dieses Script überhaupt von xdm aufgerufen wird, müssen wir es in die Datei /etc/X11/xdm/Xsetup schreiben. In dieses Script gehört auch die Startdatei von Polybar - so sieht die Datei aus:


Damit Polybar und die möglicherweise im Polybar-Menü gestartete virtuelle Tastatur onboard auch wieder beendet werden, muss das in die Datei /etc/X11/xdm/Xstartup geschrieben werden. Die Datei enthält auch noch andere Einträge - folgendes muss hinzukommen:


xdm mit polybar
Der xdm Login-Manager mit der Leiste Polybar

xdm sieht in der Auslieferungsform von Devuan/Debian relativ unproportioniert aus. Um den Login-Manager ein bisschen aufzuhübschen, haben wir ja schon ein Hintergrundbild gesetzt - aber wir sollten auch seine Proportionen und sein verwendetes Logo ein bisschen anpassen. Dazu schlage ich folgende angepasste Datei /etc/X11/xdm/Xresources vor:


Achtung: Die Datei /etc/X11/xdm/Xresources enthält bei mir, bevor der eigentliche Text kommt, 45 (!) Leerzeilen. Möglicherweise sind die wichtig - am besten bleiben sie da.

Wichtig ist, dass die Logodatei /usr/local/share/pixmaps/xdm.xpm auch tatsächlich eine Grafikdatei im .xpm-Format enthält - sonst zeigt xdm einfach kein Logo beim Login an.

Soviel zu xdm. Damit sind schon einmal einige Eingangsvoraussetzungen für den Betrieb eines Fuxbox-Desktops gegeben.

xdm mit onboard und polybar
Der xdm Login-Manager mit der virtuellen Tastatur onboard und der Leiste Polybar
3. Inbetriebnahme
Für den Fall, dass xdm nicht automatisch fluxbox startet, ist der folgende Eintrag in der Datei ~/.xsession erforderlich: exec startfluxbox. Wenn es die Datei (noch) nicht gibt, muss sie angelegt werden. Falls man X nicht mit einem Loginmanager wie xdm startet, sondern über den Befehl startx, muss der gleiche Eintrag stattdessen in der Datei ~/.xinitrc stehen - es schadet nicht, wenn beide Dateien mit diesem Eintrag vorhanden sind.

Das Allerbeste an Fluxbox ist sein Menü. Es kann auf jedem freien Platz auf dem Desktop mit der rechten Maustaste aufgerufen werden. Es kann beliebig angepasst werden und total auf die eigenen Ansprüche zugeschnitten werden - ist aber leider nicht automatisch nach der Installation »einfach so« vorhanden.

Deshalb sollten wir zuallererst ein Menü aller auf dem Computer vorhandenen Programme erzeugen (»Wurzelmenü«).

Dafür gibt es zwei Möglichkeiten. Die erste, ungenaue, funktioniert mit Hilfe des Scripts dt2fbmenu-de.sh (oder dt2fbmenu-en.sh, wenn es englischsprachig ausfallen soll). Das sollten Sie allerdings nur verwenden, wenn Sie die folgende etwas (aber wirklich auch nur etwas) kompliziertere Variante scheuen - lesen Sie das und entscheiden Sie sich dann.

Das Script befindet sich unter den Downloads.

Besser funktioniert das mit Hilfe des Programms fbmenugen. Das ist ein Perl-Script, das nur funktioniert, wenn durch die Installation der folgenden Pakete die Rahmenbedingungen stimmen: apt install libgtk3-perl libdata-dump-perl libfile-desktopentry-perl libmodule-build-perl libxapp-gtk3-module. Danach muss trotzdem noch ein Perl-Modul von Hand installiert werden. Dazu laden wir von https://github.com/trizen/Linux-DesktopFiles das gesamte Verzeichnis als zip-Archiv heruner und entpacken es zum Beispiel im Verzeichnis ~/Linux-DesktopFiles-master. Dann wechseln wir in einem Terminal (xterm, st, lxterminal ...) dorthin mit cd ~/Linux-DesktopFiles-master und führen mit den Rechten einer einfachen BenutzerIn folgende Schritte durch:


Danach muss nur noch aus demselben Verzeichnis heraus als root alles an seinen im System vorhergesehenen Platz gebracht werden:


Das war schon das Schwierigste. Jetzt brauchen wir von https://github.com/trizen/fbmenugen die Datei fbmenugen, die wir im Verzeichnis /usr/local/bin speichern und die Datei schema.pl, die wir in das Verzeichnis ~/.config/fbmenugen kopieren (das Verzeichnis müssen wir vorher erstellen).

Ein deutschsprachiges »Wurzelmenü« wird mit folgender Programmzeile erzeugt:


Ein englischsprachiges »Wurzelmenü« wird mit der gleichen Programmzeile, aber ohne alle Ersetzungen durch sed erzeugt:


Das erzeugte »Wurzelmenü« befindet sich jetzt schon in unserem Fluxbox-Verzeichnis ~/.fluxbox und wir müssen jetzt, um darauf zugreifen zu können, noch zwei weitere Menüs erstellen.

Zuerst erstellen wir jetzt Fluxbox' »Hauptmenü«, von dem aus das »Wurzelmenü« abzweigen wird - und ein weiteres Menu, das »Personalmenü«, das unsere mit Vorliebe benutzten Programme und unsere eigene Menüordnung enthält.

Das »Hauptmenü« heißt als Datei schlicht und ergreifend menu und gehört ins Verzeichnis ~/.fluxbox - hier ist mein Beispiel:


Wir sehen, dass dieses »Hauptmenü« Untermenüs namens [submenu], darunter das weiter oben erstellte »Wurzelmenü« mit dem Namen fbsysmenu. [submenu] ist eines der Schlüsseausdrücke aus Fluxbox' Menüsystem und verweist auf ein vom Obermenü aus erreichbares Untermenü.

Wir legen ein weiteres Untermenü namens personal im Verzeichnis ~/.fluxbox an, das unser »Vorliebemenü« werden soll. Hier ist mein »Vorliebemenü«, das zum Basteln geeignet ist:


Für Fluxbox-Menüs gelten die folgenden Regeln:

Ein vorangestelltes # macht einen Menüeintrag inaktiv.
[exec] kündigt ein Programm an. In den runden Klammern () befindet sich der Menüname des Programms, der frei gewählt werden kann. In den geschwungenen Klammern {} befindet sich der Ort des auszuführenden Programms, mit absolutem Pfad oder mit relativem Pfad, sofern er in der PATH Variable steht. In den Tag-Klammern <> befindet sich der Pfad zu einem Icon.
[submenu] eröffnet ein Untermenü mit dem Untermenünamen in Klammern und dem Pfad zum Icon in Tag-Klammern.
[separator] trennt einen Menüpunkt vom nächsten.
[begin] markiert den Anfang eines Menüs oder Untermenüs.
[end] beendet ein Menü oder Untermenü.
[include] bindet eine extra Menüdatei an dieser Stelle ein.
[config] blendet die Fluxbox-Konfiguration ein.
[stylesmenu] lässt uns ein Fluxbox-Thema auswählen.
[workspaces] konfiguriert die virtuellen Desktops unter Fluxbox.
[reconfig] aktiviert in den Konfigurationsdateien gemachte Änderungen in Fluxbox.
[restart] startet Fluxbox neu.

fluxbox-menü
Das Fluxbox-Menü

Hiermit sollte es jetzt ein funktionierendes Linuxsystem mit xdm als Login-Manager und Fluxbox als Window-Manager geben. Wie dieses System weiter eingerichtet werden kann, beschreibe ich im Folgenden.


Anmerkung: In dem Menüs und weiter unten im Dock benutze ich oft einen Wrapper um auf einfache Weise Programme mit superunser-Rechten in der X Umgebung zu starten. Der heißt sux bzw. suxterm). suxterm gab es früher als Devuan/Debian-Paket, inzwischen aber nicht mehr. Für mich macht »sux« das Linux-Leben leichter - hier kann es heruntergeladen werden: sux_1.0.1-6_all.deb. Installiert wird es mit dpkg -i sux_1.0.1-6_all.deb.

Die großen Helfer

1. Icons
Nach dem Umstieg aus der Windows-Welt dachte ich, man braucht am besten viele bunte Bildchen auf dem Desktop - Icons. Obwohl ich mir schon damals bessere und leichter selbst konfigurierbare Menüs gewünscht hätte. Die hat Fluxbox ja, aber wer trotzdem bunte Bilder möchte, braucht eine Icon-Verwaltung. Eine Weile habe ich dafür idesk benutzt (und benutze es noch auf dem Raspberry Pi 2, der auf meiner Drehorgel die gewünschten MIDI-Dateien abspielt). Die Installation funktioniert als root mit apt install idesk. Idesk ist leider relativ arbeitsaufwändig zu konfigurieren. Inzwischen gibt es auch vdesk - aber das habe ich nicht ausprobiert.
Hier ist ein Beispiel für eine idesk-Konfigurationsdatei in ~/.ideskrc:


Dazu gehört für jedes Icon ein Eintrag ins Verzeichnis ~/.idesktop mit der Endung .lnk nach folgendem Muster:


Wir müssten dabei für jedes einzelne Icon den X: und Y: Wert kalkulieren, um es an die gewünschte Position zu bekommen.

Um idesk mit Fluxbox zusammen zu starten, sollte folgende Zeile in der Datei ~/.fluxbox/startup stehen:


Das setzt natürlich voraus, dass sich im Verzeichnis /usr/local/share/icons/128/ die entsprechenden Icons befinden. Wenn das nicht so ist, startet idesk nicht.

Alle von mir im Laufe der Jahre gesammelten Icons finden sich targezippt in der Datei icons.tar.gz.

Icons mit idesk
Fluxbox-Desktop mit dem Icon-Manager idesk

2. Dock
Viel besser gefällt mir als Ergänzung zum Fluxbox-Menü ein Dock wie in der Macintosh-Welt. Das am wenigsten Ressourcen verbrauchende ist das Warlock-Dock (apt install wbar). Wbar kann unschöne grafische Artefakte auf dem Fluxbox-Desktop hinterlassen, wenn es zu früh gestartet wird. Falls das passiert, sollte wbar in der Datei ~/.fluxbox/startup nicht direkt gestartet werden, sondern stattdessen die neu anzulegende ausführbare Datei /usr/local/bin/wbar.sh mit folgendem Inhalt:


Ob »sleep 3« (drei Sekunden) eine vernünftige Einstellung ist, sollte ausprobiert und gegebenfalls angepasst werden.

Hier ist ein Beispiel für eine einfache wbar-Konfigurationsdatei ~/.wbar:


Das setzt natürlich voraus, dass sich im Verzeichnis /usr/local/share/icons/128/ die entsprechenden Icons befinden.

Wenn das nicht so ist, startet wbar nicht.

Weil ich wbar so gut finde, starte ich es sogar noch ein zweites mal, diesmal oben rechts mit der folgenden Konfiguration und ihrer Konfigurationdatei ~/.wbarost:


Diese Konfiguration startet das Dock oben rechts auf dem Desktop. Um wbar und wbarost mit Fluxbox zusammen zu starten, sollten folgende zwei Zeilen in der Datei ~/.fluxbox/startup stehen:


Und hier ist das zweite benutzte Script:

wbarost.sh


Alle von mir im Laufe der Jahre gesammelten Icons finden sich targezippt in der Datei icons.tar.gz.

Fluxbox aufgeräumt
Fluxbox-Desktop mit den beiden wbar-Docks

3. Dateimanager
Um einen Dateimanager unter Fluxbox zu nutzen, hat man eine große Auswahl. Rox (apt install rox-filer) und Thunar (apt install thunar) sind vernünftige ressourcenschonende Exemplare ihrer Art.

Ich bevorzuge xfe (apt install xfe), weil der alles kann, was ich von einem Dateimanager erwarte - und das auch nur, wenn ich überhaupt einen grafischen Dateimanager brauche. Meistens reicht mir der Midnight Commander in einem Terminalfenster vollkommen.
Xfe wird für mich am sinnigsten mit dem Befehl


gestartet. Damit öffnet xfe links einen Dateibaum, daneben eins seiner großen Fenster und rechts das andere.

Ein kleiner Trick: xfe hat eine mausgesteuerte Lesezeichenverwaltung. Die finde ich umständlich und deshalb unbequem. Viel einfacher ist es, ein Verzeichnis anzulegen, in das man symbolische Links seiner wichtigsten Verzeichnisse legt (eben der, die als Lesezeichen vohanden sein sollen) - z. B. /dokumente/lesezeichen.
Wenn man dann xfe mit


aufruft (und /dokumente/text das allerwichtigste Verzeichnis von allen ist), hat man links das root-Verzeichnis in einer Baumdarstellung, daneben alle wichtigen Lesezeichen und rechts das allerwichtigste Verzeichnis von allen. Voilà!
Ins Fluxbox-Menü kommt xfe so:


Für das Wbar-Dock würde man in die Datei ~/.wbar schreiben:





Dateimanager xfe
Der Dateimanager xfe

Die kleinen Helfer

Fluxbox hat eine Werkzeugleiste (Toolbar), die eine freedesktop.org-kompatible Ablage (Systemtray) enthält. Hier können wie in ausgewachsenen Desktopumgebungen laufende Programme angezeigt werden. Das kann man für verschiedene kleine Hilfsprogramme nutzen - aber auch für Selbstgeschriebenes. Im Folgenden dazu ein bisschen was Nützliches, wie ich finde:
1. Mounter
Um USB-Sticks, externe Festplatten, CDs, DVDs, SD-Karten oder andere Datenträger (und sogar .iso-Dateien) bequem ins Dateisystem einzubinden, kann man udiskie benutzen (apt install udiskie). Wenn das Programm mit der Option -t (für tray) aufgerufen wird, erscheint ein Icon im Systemtray, mit dessen Hilfe die Datenträger verwaltet werden können. In der Datei ~/.fluxbox/startup muss dafür folgendes stehen:


Das gleiche Ergebnis mit ein paar mehr Wahlmöglichkeiten erzielt man auch, wenn man in die Datei ~/.config/udiskie/config.yaml folgendes schreibt:


Diese Datei müsste höchstwahrscheinlich erst angelegt werden. Aber in ihr kann man auch die Icons von udiskie und dem zu verwendenden Dateimanager angeben.

In diesem Fall würde udiskie in ~/.fluxbox/startup ohne die Option -t gestartet.
2. Kalender
Fluxbox hat keinen eigenen Kalender, der aufklappt, wenn man auf Zeit/Datum klickt. Ich benutze dafür ein selbst zusammengebasteltes Script mit Hilfe des mächtigen gtk-Script-Programms yad (yet another dialogue | apt install yad). Yad ist eine weiterentwickelte Alternative zu zenity.

Das Script zeigt ein Kalender-Icon im Systemtray. Wenn man darauf mit der linken Maustaste klickt, erscheint ein kleiner Kalender. Wenn man mit der rechten Maustaste klickt, kann man den Kalender abstellen und außerdem weitere Helferlein aufrufen:

1. Eine Eieruhr/einen Teetimer
2. Einen Timer
3. Eine Stoppuhr
4. Eine analoge Uhr
5. Einen Schummelzettel mit Linux-Tastenkombinationen
6. Notizen
7. Einen weißen (Memo-)Zettel und
8. dessen Bearbeitung
7. Eine ToDo-Liste und
8. deren Bearbeitung

Hier ist das Script:


Und so wird das Script in die Datei ~/.fluxbox/startup eingebunden:


Fluxbox-Desktop mit Kalender
Fluxbox-Desktop mit Kalender

Das setzt natürlich voraus, dass sich im Verzeichnis /usr/local/share/icons/128/ die entsprechenden Icons befinden.

Alle von mir im Laufe der Jahre gesammelten Icons finden sich targezippt in der Datei icons.tar.gz.

Zusätzlich braucht yad für die korrekte Icon-Anzeige in der Fluxboxleiste noch ein paar systemweit installierte Icons. Sie finden sich im Devuan/Debianpaket icons.deb (dpkg -i install icons.deb).

Kalendermenü
Fluxbox-Desktop mit dem Kalendermenü
3. AudioCDs
Ebenfalls mit yad lässt sich ein simples Abspiel-Script für AudioCDs schreiben. Hier ist es:


yadcd.sh benötigt die Programme cvlc (apt install vlc) und playerctl (apt install vlc playerctl) und, natürlich, yad.

Hier ist, was dafür in der Datei ~/.fluxbox/startup stehen muss:


Das setzt natürlich voraus, dass sich im Verzeichnis /usr/local/share/icons/128/ die entsprechenden Icons befinden.
Alle von mir im Laufe der Jahre gesammelten Icons finden sich targezippt in der Datei icons.tar.gz.

Audio-CD-Menü
Das Audio-CD-Menü
4. Netzwerkmanager
Ein Netzwerkmanager ist insbesondere dann wichtig, wenn fluxbox auf einem mobilen Gerät läuft und man die Netzwerkverbindung immer mal wieder ändern muss. Der Klassiker ist NetworkManager. Er hat ein Applet für den Systemtray namens nm-tray (apt install nm-tray nm-tray-l10n).

Alternativ kann man auch die Netzwerkverbindung mit wicd (apt install wicd) oder connman/cmst (apt install cmst) organisieren. Ich selbst bevorzuge eine Installation von iwd mit seinem Fontend iwgtk (apt install iwd iwgtk.

Der Eintrag in der Datei ~/.fluxbox/startup sollte so aussehen (natürlich nur einer dieser vier):


Dabei ist zu beachten, dass iwd Verbindungen nur über WiFi-Schnittstellen verwaltet. Für die Verwaltung von kabelgebundenen Netzwerk-Schnittstellen eignet es sich nicht - da würde ich auf eine Konfiguration von ifupdown setzen.
5. Lautstärke
Abhängig vom Soundsystem, kann ein Soundmonitoricon im Systemtray verankert werden. Ich benutze ALSA, und das entsprechende Miniprogramm ist volumeicon-alsa (apt install volumeicon-alsa). In der Datei ~/.fluxbox/startup muss dafür folgendes stehen:


Für andere Soundsysteme gibt es natürlich alternative Systemtray-Programme - für ALSA auch. Ein von mir selbst geschreibenes Script für Pulseaudio findet sich in den Downloads.
6. Nachrichten
Fluxbox besitzt kein System zum Veröffentlichen von Systemnachrichten. Das lässt sich aber leicht nachträglich mit Hilfe der Pakete libnotify-bin (apt install libnotify-bin) und dunst (apt install dunst) einrichten.

Dunst Systemnachricht
Oben rechts: Dunst-Systemnachrichten (links oben: buici-clock)
7. Zwischenablage
Die Zwischenablage funktioniert natürlich out of the box. Etwas komfortabler wird sie allerdings durch qlipper (apt install qlipper). In der Datei ~/.fluxbox/startup muss dafür folgendes stehen:

8. Gelbe Zettel
Gelbe Notizzettel benutze ich gern für oft benötigte aber nicht leicht zu merkende Texte und Zahlen - zum Beispiel meine IBAN-Nr., die IP-Adresse meines virtuellen Servers. Das einfachste Programm dafür hieß früher xpad (apt install xpad), hat aber zuletzt bei mir nicht mehr funktioniert. Daher bin ich auf den »Weißen Zettel« weiter oben im Bereich »Kalender« gekommen. Für die, die es trotzdem mit xpad versuchen möchten, sollte in der Datei ~/.fluxbox/startup dafür folgendes stehen:

9. Systemmenü
Ich mache fast nie Bildschirmfotos - außer für diese Webseite. Trotzdem, ein praktisches Programm dafür ist scrot (apt install scrot). Scrot steht in unserer Konfiguration schon bei xdm/polybar zur Verfügung. Anders als manche andere Programme für diesen Zweck (etwa flameshot (apt install flameshot) muss scrot in Scripte eingebettet werden. Ich nutze diesen scheinbaren Nachteil für die Entwicklung eines Extra-Systemmenüs, in dem sich dann auch noch viele andere kleine Programme unterbringen lassen.

Mit Hilfe von yad lässt sich, wie oben schon beim Kalender, ein hübsches Extra-Systemmenü erstellen, das mit der rechten Maustaste geöffnet werden kann. Das kann etwa so aussehen:


Der Eintrag in der Datei ~/.fluxbox/startup sollte so aussehen:


Fluxbox mit Extra-Systemmenü
Fluxbox-Desktop mit dem Extra-Systemmenü
10. Beenden
Fluxbox kann mit Hilfe seines eigenen Menüs beendet werden. Wenn man x mit startx benutzt, ist man dann wieder ganz normal in einem Terminal.

Wenn man Fluxbox aus einem Login-Manager heraus gestartet hat, erscheint dieser nach dem Beenden von Fluxbox wieder. Das ist gut für einen BenutzerInnenwechsel, aber umständlich, wenn man den Computer eigentlich herunterfahren wollte. In unserer Konfiguration müsste man dann das Polybar-Menü aufrufen und auf »Herunterfahren« klicken. Das sollte einfacher gehen - und das tut es auch.

Ich finde es bequem, im Menu und auch im Dock zwei kleine Extrasripts zum Herunterfahren des Computers und zu den anderen Optionen an dieser Stelle (Neustart, BenutzerInnenwechsel) zu haben. Dazu habe ich wieder zwei kleine YAD-Scripts geschrieben - eins einfach zum Abschalten des Computers ohne Rückfragen und ein weiteres mit mehreren Optionen. Damit das für eine »normale« BenutzerIn ohne Superuser-Rechte funktioniert, ist es am einfachsten, sudo zu installieren (apt install sudo) und dort das Herunterfahren ohne Passwort zu erlauben. Das ist auf einem Desktop-Computer, Notebook oder Tablet auch kein Sicherheitsrisiko - auf einem Backup- Server würde ich das hingegen nicht machen.

Für das Herunterfahren ohne Passwort benötigt sudo die folgenden Einträge in der Datei /etc/sudoers:


Dabei ist unbedingt darauf zu achten, dass diese Zeilen weit unten in die Datei eingefügt werden, weil die Datei von sudo der Reihe nach gelesen wird. Außerdem muss /etc/sudoers nach der Bearbeitung der BenutzerIn root gehören und die Zugriffsrechte 100440 haben - sonst wird sie nicht abgearbeitet.

Hier ist das Script yadlogout.sh, das nach diesen Anpassungen vermutlich auf jedem Linux-System funktioniert:


Das ist das Script mit den Abfragen der Optionen. »Fluxbox beenden« funktioniert nur, wenn in der Datei ~/.fluxbox/init folgende Zeile das »true« hat:


Fluxbox mit Exit-Menü
Fluxbox-Desktop mit dem Exit-Menü

Und hier ist das Shutdown-Script shutdown.sh ohne alle Rückfragen:


Im Menü wären diese beiden Scripts so unterzubringen:


Und in wbar so:


Einzelheiten zu den Fluxbox-Konfigurationsdateien

1. Grundsätzlich: ~/.fluxbox/init
Die Datei ~/.fluxbox/init legt die grundlegende Konfiguration von Fluxbox fest. Sie ist im Prinzip so, wie Fluxbox sie in den Grundeinstellungen vorsieht, gut durchdacht.

Viele Einstellungen in dieser Datei können grafisch per rechtem Mausklick oder im Menü (siehe weiter unten) verändert werden.

Grundsätzlich gibt es aus meiner Sicht nur wenige Einstellungen, die ich nicht auch anders ändern kann als die Datei ~/.fluxbox/init zu editieren. Eine kam eben schon vor: Um Fluxbox aus einem Script heraus beenden zu können (etwa in einem Shutdown-Script), sollte in ~/.fluxbox/init die folgende Zeile stehen:


Aber auch die Anordnung der Elemente der Taskleiste kann man hier leicht editieren. Mein übersichtlicher Vorschlag lautet:


Das war es aus meiner Sicht aber auch schon.
2. Menüs: ~/.fluxbox/menu
Diese Datei beschreibt das »Wurzelmenü« von Fluxbox - das habe ich weiter oben ausführlich beschrieben.
3. Programme: ~/.fluxbox/apps
Die Einstellungen in der Datei ~/.fluxbox/apps benutze ich vor allem für einen Zweck - um das »Simple Terminal« (apt install stterm) als einziges Terminal für ein von Bildschirmauflösung und -größe unabhängiges maximiertes Terminal für Arbeiten im Terminal oder mit dem »Midnight Commander« mit lesbaren Schriften zur Verfügung zu haben. Dafür gibt es die Scripts terminalflex.sh und mcflex.sh im Downloadpaket. ~/.fluxbox/apps bestimmt für einzelne Anwendungen deren Aussehen und Verhalten.

Details kann man gut in der Manpage von apps nachlesen (man fluxbox-apps). Hier sind ein paar Beispiele daraus:

So können z. B. die ersten beiden Terminals (genauer: die ersten beiden Programme, die ein *term oder *Term im Namen tragen), auf der Arbeitsfläche 3 geöffnet werden:


So kann das Programm geany mit der Größe 800x600 geöffnet werden, und dafür werden beim Schließen die aktuellen Werte eingetragen:


So wird Firefox auf Arbeitsfläche 1 gestartet, und Fluxbox wechselt dorthin:


So startet jedes aterm-Terminal ohne Fensterdekoration:


So startet xterm immer maximiert:

4. Tastatur: ~/.fluxbox/keys
Die Datei ~/.fluxbox/keys hilft bei der Tastaturbelegung. Man kann mit ihrer Hilfe Sondertasten von Notebooks oder Multimediatastaturen ihrer wahren Bestimmung zuführen oder auch gängige Tasten oder Tastenkombinationen anderen als den standardmäßig voreingestellten Zwecken zuführen.

Das mit den Sondertasten hat da eine Grenze, wo das System eine Taste nicht erkennt. Ich hatte zum Beispiel ein Lenovo x220 Notebook mit einer blauen Taste namens »Thinkvantage« - mit der kann auch Fluxbox nichts anfangen.
Aber zum Beispiel für Lautstärke- oder Bildschirmhelligkeitstasten besteht eine ziemlich reelle Chance, sie auch bestimmungsgemäß einrichten zu können.

Oft funktionieren die Lautstärketasten bereits »out of the box«. Sollte das der Fall sein, besteht kein Handlungsbedarf in ~/.fluxbox/keys etwas zu ändern. Sollten sie aber nicht funktionieren, kann man das ändern.

Dazu muss man allerdings wissen, was eine Taste eigentlich tut. Das lässt sich mit Hilfe des Programms xev herausfinden. In einem Terminal einfach xev eingeben und dann die gesuchte Taste drücken. Wenn man das tut, erscheint im Terminal eine ganze Reihe von Text. Wichtig für ~/.fluxbox/keys ist ein Eintrag namens »keycode nn« (wobei nn eine ganze ein- zwei- oder dreistellige Zahl ist). Dieser Keycode kann zum Beispiel in der Datei ~/.fluxbox/keys dafür eingestzt werden, die Lautstärketasten richtig zu belegen.

Wenn sich zum Beispiel die Taste für »Lautstärke erhöhen« unter xev als keycode 123 erwiesen hat, die für »Lautstärke vermindern« als keycode 122 und die für »Stumm/Lautschaltung« als keycode 121 und das nicht bereits ordnungsgemäß funktioniert, kann folgendes in die Datei ~/.fluxbox/keys eingetragen werden:


Voraussetzung dafür ist die Verwendung von ALSA als Soundsystem. Für Pulseaudio könnte folgendes eingetragen werden:


Genauso kann mit allen anderen Sondertasten verfahren werden.

In keys kann aber auch eine bestimmte Tastenkombination für das Starten eines bestimmten Programms eingetragen werden. Der folgende Eintrag startet Firefox, wenn Strg-f gedrückt wird:


Dabei ist zu beachten, dass Control die Strg-Taste ist, Shift die Umschalttaste, aber Mod1 die Alt-Taste und Mod4 die Windows- oder Pinguintaste.

Die Datei ~/.fluxbox/keys kontrolliert auch die Mausaktionen und kann auch sehr flexibel konfiguriert werden, um zum Beispiel das »Wurzelmenü« auch dann anzuzeigen, wenn man ein Lenovo Yoga 11s Notebook/Tablet hat und bei zugeklappter Tastatur nur noch eine Taste zur Verfügung hat, sagen wir die mit dem keycode 188:


Jede Menge Beispiele stehen in der Datei ~/.fluxbox/keys, die Fluxbox selbst konfiguriert hat - und alles weitere in der zugehörigen Manpage (man fluxbox-keys).
5. Autostart: ~/.fluxbox/startup
Die Datei ~/.fluxbox/startup gibt vor, welche Programme zusammen mit Fluxbox gestartet werden und startet am Ende auch Fluxbox - mit oder ohne Log. Da es sich bei dieser Datei um ein simples Script handelt, ist es entscheidend, dass es »unfallfrei« durchläuft - sonst startet Fluxbox nicht. Die Grundregel dafür ist, dass alle zusätzlich zu Fluxbox gestarteten Programme im Hintergund starten müssen und nur Fluxbox im Vordergrund starten darf. Da wir es mit Linux zu tun haben, ist das einfach: Alle Programmaufrufe außer Fluxbox müssen ein & hinter ihrem Aufruf stehen haben. Das kam weiter oben bei allen besprochenen Programmen genauso vor. Mein Startscript ~/.fluxbox/startup sieht so aus:


Sonstiges

1. gtk-Einstellungen
Jetzt ist fluxbox so eingestellt, wie wir es gerne hätten. Was fehlt, ist ein einigermaßen ähnlicher Look der Programme, die wir im Fluxbox-Menü aufrufen. Wenn sie auf gtk basieren, hilft das LXDE-Programm lxappearance (apt install lxappearance).
2. qt-Einstellungen
Für Programme auf qt-Basis geht das mit qt5ct (apt install qt5ct) für Programme, die auf qt5 basieren, und mit qt6ct (apt install qt6ct) für Programme, die auf qt6 basieren.

Die drei Programme können folgendermaßen ins Menü eingetragen werden:

3. Fluxbox-Themen (»Styles«)
Auch Fluxbox kann man selbstverständlich grafisch gestalten. Dafür gibt es den Menüeintrag styles. Der hier in allen Bildschirmfotos benutzte Style gehört allerdings nicht zum Fluxbox-Standard. Es gibt ihn in einer etwas gröberen Auflösung für ältere Bildschirme als Zitronen-dekoriert und für besser auflösende Bildschirme als Zitronen-dekoriert.1920x1080 oder für beide, allerdings ohne grafische Elemente, als Zitronen in den Download-Dateien. Die entsprechenden Verzeichnisse müssen mit superuser-Rechten in das Verzeichnis /usr/share/fluxbox/styles kopiert werden und stehen dann als Styles in Fluxbox zur Verfügung.

Die Auswahl eines neuen Fluxbox-Styles verändert das Aussehen von Fluxbox sofort. Trotzdem ist für die komplette Übernahme eines neuen Fluxbox-Styles meist ein Neustart von Fluxbox notwendig.
4. Systemmonitor
Conky ist ein sehr flexibler Monitor für aktuelle Daten des Computers. Die Datei ~/conkyrc konfiguriert Conky so, wie das auf den Bildschirmfotos immer wieder zu sehen ist:


Conky wird am besten mit etwas Verzögerungvom Script /usr/local/bin//conky.sh aufgerufen:


Conky kann folgendermaßen in die Datei ~/.fluxbox/startup eingetragen werden:


Das setzt natürlich voraus, dass sich im Verzeichnis /usr/local/share/icons/128/ die entsprechenden Icons befinden.

Alle von mir im Laufe der Jahre gesammelten Icons finden sich targezippt in der Datei icons.tar.gz.
5. Uhr
Wer Fluxbox ein bisschen »androidisieren« möchte, kann auch eine Uhr auf dem Desktop einbinden. Die von mir auf einem Computer benutzte Uhr heißt buici-clock (apt install buici-clock und kann mit Hilfe des Scripts /usr/local/bin/uhr.sh in Form gebracht werden:


Das Script wird dann in der Datei ~/.fluxbox/startup so eingebunden:


Die Uhr ist im Dunst-Bildschirmfoto zu sehen.

YAD Extras

1. Akkumonitor
Für die Überwachung des Akkus eines Notebooks gibt es die verschiedensten einfachen Werkzeuge, zum Beispiel cbatticon (apt install cbatticon) oder fdpowermon (apt install fdpowermon). Fdpowermon kann sehr leicht konfiguriert werden - in der Standardkonfiguration zeigt es allerdings bei 100%iger Akkuladung kein Icon und führt im Netz teilweise zu unberechtigten Beschwerden darüber, dass es gar kein Monitorsymbol im Systemtray zeige und also völlig funktionslos sei. Das stimmt nicht. Fdpowermon ist hervorragend.

Fdpowermon ist ein Perlscript. Ich hätte gern meine Anzeige auf deutsch (ja, ein bisschen Luxus) und habe leider keine Ahnung von Perl - sonst hätte ich es bestimmt hinbekommen, fdpowermon so umzuschreiben, dass es seine Informationen auf deutsch ausgibt.

Stattdessen habe ich, als ich mir einmal das Bein gebrochen hatte, ein eigenes Shellscript mit yad geschrieben. Hier ist es:


Und so kann es in ~/.fluxbox/startup eingebunden werden:


Das Script benötigt yad, acpi und die installierten icons aus yadicons.deb.

Akkumenü
Fluxbox-Desktop mit Akkumenü
2. Grafisches sudo
Das Werkzeug um unter xorg ganz einfach ein grafisches Programm mit root-Rechten zu starten (zum Beispiel den Paketmanager), war lange Zeit gksu. Das ist wegen möglicher Sicherheitsrisiken aus den Repositories der debianbasierten Distributionen verschwunden. Eine Alternative ist su-to-root (apt install su-to-root) oder das folgende yad-Script:


Und so wird es benutzt:


um den Paketmanager Synaptic mit Administratorrechten zu starten. Ob in yadsu das Administratorpasswort oder das eigene BenutzerInnenpasswort eingegeben werden muss, entscheidet sich danach, ob in der Datei /etc/sudoers der Eintrag


eingetragen ist. Wenn dieser Eintrag fehlt, ist es das eigene Passwort.

Das Script benötigt natürlich yad und sudo ( apt install sudo).

Superuser-Script
Fluxbox-Desktop mit yadsu-Eingabe
3. Hilfe
Fluxbox ist gut dokumentiert. In Distributionen mit Manpages bekommt man ganz einfach Hilfe mit den folgenden Aufrufen - am besten in einem maximierten Terminal:


Falls es auf dem eigenen System keine Manpages gibt, finden sie sich auch im Netz über Ihre Lieblings-Suchmaschine.

Gute Fluxbox- Dokumentation gibt es darüber hinaus vor allem bei ArchLinux und Gentoo.

So weit erst mal.