Openbox ist ein toller Fenstermanager und für mich in Kombination mit dem Panel Xfces ein guter Ersatz für komplette Desktopumgebungen. Auf meinem Laptop habe ich parallel zu Openbox noch Xfce.

Das Whiskermenu im Xfce-Panel hat als Standardbefehl zum Abmelden xfce4-session-logout gesetzt. Das funktioniert unter Xfce natürlich super, unter Openbox gibt es hier aber eine Fehlermeldung, da ja keine Xfce-Session läuft.

Ein entsprechendes Pentant für Openbox gibt es im Rootmenu (REchtsklick auf den Desktop) unter “Exit”. Alternativ mit mehr Auswahlmöglichkeiten gibt es den Befehl obsession-logout. Theoretisch könnte man jetzt also den Befehl xfce4-session-logoutdurch obsession-logout ersetzen. Dann könnte ich die Schaltfläche aber nicht einfach unter Xfce einsetzen. Also muss eine Lösung her - z.B. ein Skript.

Der Aufbau ist eigentlich denkbar einfach: Ein Skript überprüft, ob gerade Xfce oder Openbox läuft. Wenn Xfce verwendet wird wird der Befehl xfce4-session-logout aufgerufen und unter Openbox der andere Befehl. Theoretisch wäre dieses Skript dann beliebig erweiterbar (Habe ich aber nicht probiert).

Welche Desktopumgebung man verwendet kann man mit folgendem Befehl herausfinden:

printenv XDG_SESSION_DESKTOP

herausfinden.

Ein Skript (nennen wir es z.B. obxfceausloggen) sähe z.B. so aus:

#!/bin/bash
desktop=$(printenv XDG_SESSION_DESKTOP)
if [ "$desktop" == "openbox" ]
	then
		obsession-logout
	elif [ "$desktop" == "xfce" ]
		then
			xfce4-session-logout
	else
		echo "Desktopumgebung nicht unterstützt. Beende."
		exit 1
fi

Das kann man jetzt zum Beispiel unter ~/bin abspeichern und (das Folgende setzt voraus, dass ~/bin Teil des “Paths” ist) im Whiskermenu als Befehl beim Abmelden obxfceausloggen eintragen. Die Einstellungsmöglichkeit dazu findet man wie folgt:

Rechtsklick auf das Whiskermenu –> “Eigenschaften” –> “Befehle” –> “Abmelden”. Dort kann man dann das Skript als Befehl eintragen.