Integrating widgets into awesome/de

From awesome
Jump to: navigation, search

Dieses kleine Tutorial soll näherlegen wie man kleine Textwidgets in die Statusbar von awesome 2.3 einbindet. Ein wenig verständnis für Bashscripte sollte vorhanden sein.

Awesome statusbar awesomewiki.jpg

Eine textbox vorbereiten

Zuerst wird in die .awesomerc eine Sektion für die neue Textbox angelegt.

screen 0
{
    general
    {
    ...
    }
    ...
    statusbar mystatusbar
    {
        taglist mytaglist
        {
        ...
        }
        ### HIER BEGINNT DIE TEXTBOX ###
        textbox uhrzeit
        {
            align = "right"
            text_align = "right"
            width = "120"
        }
    }

Die breite sollte angepasst werden sobald Daten in der textbox vorhanden sind.

Die Daten durch ein Bashscript ausgeben lassen

Der normale Weg Daten in eine textbox zu bekommen ist folgendes Kommando:

echo <screen> widget_tell <statusbar> <textbox name> text `<befehl>` | awesome-client

Legen wir nun das Bashscript ~/.awesome/widgets mit folgendem Inhalt an:

#!/bin/bash
while true
    do
        echo 0 widget_tell mystatusbar uhrzeit text `date | awk '{print "["$4"]"}'` | awesome-client
        sleep 1
    done

Der Befehl in den ` ` ist natürlich nur ein Beispiel. Anderen Leuten fällt da bestimmt besseres ein.

Machen wir nun die Datei ausführbar mit

chmod +x ~/.awesome/widgets

und tragen unser Script in die .xinit / .xsession ein:

~/.awesome/widgets &
exec awesome

Nach einem Neustart von awesome sollte in dem neuen Widget die Uhrzeit zu sehen sein.

Graphen einbinden

Dies ist ein Beispiel um den RAM Verbrauch in der Statusleiste anzuzeigen:

graph mem {
    width = "40"
    data mem_used {
        scale = false
        max = 512           # <--- Das hier natürlich auf die Größe des Arbeitsspeicher einstellen
        draw_style = bottom
    }    
}

Eingebunden wird das ganze wie oben beschrieben über ein kleines Bashscript. Folgende Zeile übergibt den RAM Verbrauch an das Widget:

echo 0 widget_tell mystatusbar mem data mem_used `free -m | tail -n 2 | head -n 1 | awk '{print $3}'` | awesome-client
Personal tools