Fluxbox Toolbar: Mehrere Zeitzonen und dynamischen Text anzeigen

Fluxbox bietet grundsätzlich nur wenige Möglichkeiten die Toolbar um eigene Inhalte zu erweitern.

Möchte man dennoch kurze Ausgaben von Kommandos und Skripts im Blickfeld behalten, so lassen sich dazu die Arbeitsflächennamen zweckentfremden.

In folgendem Beispiel wird die Arbeitsfläche so umbenannt, dass die Uhrzeiten unterschiedlicher Zeitzonen eingeblendet werden.

Kommandozeilenzugriff zu Fluxbox erlauben

Die Arbeitsflächennamen sind unter session.screen0.workspaceNames in der Datei ~/.fluxbox/init hinterlegt.

Ein direktes Bearbeiten der init-Datei kann allerdings elegant mit dem kaum bekannten Kommando fluxbox-remote vermieden werden.

fluxbox-remote ermöglicht es, die aus fluxbox-keys bekannten Kommandos auch direkt über die Shell auszuführen, fern manuell oder mit folgendem Befehl die entsprechende Erlaubnis erteilt wurde:

sed --in-place=_before_editing_allowRemoteActions \
's/\(session.screen[0-9]\+.allowRemoteActions\).*/\1:\ttrue/g' \
~/.fluxbox/init

sed(1)

Arbeitsflächenname mit dynamischem Text füllen

Die meisten von fluxbox -list-commands aufgelisteten Kommandos können nun direkt via fluxbox-remote ausgeführt werden.

Folgendes Skript macht sich dies zu Nutze um jede Sekunde die aktuelle Stunde von jeweils drei Zeitzonen in den Arbeitsflächennamen zu schreiben.

rename_fluxbox_workspace_with_tztimes.sh

#!/bin/sh
# See /usr/share/zoneinfo for supported time zones

while [ true ]; do
  utc=`export TZ && TZ=UTC && date +"%H"`
  cet=`export TZ && TZ=Europe/Vienna && date +"%H"`
  sgt=`export TZ && TZ=Asia/Singapore && date +"%H"`

  workspace_number=`xprop -root _NET_CURRENT_DESKTOP | awk '{print $3+1}'`
  workspace_name="|${utc}|${cet}|${sgt}|"

  fluxbox-remote "setworkspacename #${workspace_number}     ${workspace_name}     +"

  sleep 1
don

fluxbox-remote(1)

Wie im Skript erkennbar, kann man jederzeit per fluxbox-remote "setworkspacename $NAME" einen neuen Namen vergeben, was sonst nur in der graphischen Oberfläche von Fluxbox möglich wäre.