awesome: Laptop Batteriestatus anzeigen

Hier ein weiterer Tipp für awesome: der Laptop Batteriestatus soll angezeigt werden. Zuerst kopiert man das von mir gestern programmierte Tool cbatt nach /home/name/cbatt.sh, dann trägt man folgendes in der rc.lua ein:

mybattmon = widget({ type = "textbox", name = "mybattmon", align = "right" })
function battery_status ()
        local fd=io.popen("/home/name/cbatt.sh", "r")
        local line=fd:read()
        return line
end
 
mybattmon.text = " " .. battery_status() .. " "
my_battmon_timer=timer({timeout=30})
my_battmon_timer:add_signal("timeout", function()
    mybattmon.text = " " .. battery_status() .. " "
end)
my_battmon_timer:start()

Unter mywibox[s].widgets = { … } fügt man dann noch an der gewünschten Stelle mybattmon hinzu, und fertig ist die Chose. Der Timeout legt fest, wie oft das Script aufgerufen wird; jede Sekunde wäre m.A. arg übertrieben und verkürzt die Akkulaufzeit sicherlich.

Wer wie im Vorpost mehrere Rechner hat, und die Batterieanzeige z.B. nur auf dem Laptop anzeigen will, nutzt folgenden Schnippsel um das Ganze zu erweitern:

    -- hostname auslesen
    a=io.popen("uname -n");
    io.input(a)
    if io.read() == "laptop" then
    	batt=1
    end
 
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = {
        {
            mylauncher,
            mytaglist[s],
            mypromptbox[s],
            layout = awful.widget.layout.horizontal.leftright
        },
        mylayoutbox[s],
        mytextclock,
	batt == 1 and mybattmon,		-- Batterie nur beim richtigen Host hinzufügen
        s == 1 and mysystray or nil,
        mytasklist[s],
        layout = awful.widget.layout.horizontal.rightleft
    }

6 thoughts on “awesome: Laptop Batteriestatus anzeigen

  1. ein floh

    da ich rot bei ladenden akku etwas irritierend finde und keinen github account habe:

    floh@fc6u:/tmp/cbatt$ git diff 2e85ee492d93e70708edca4e7e2f0d93cb114046 -- cbatt.sh diff --git a/cbatt.sh b/cbatt.sh
    index e8da5b7..537af4f 100755
    --- a/cbatt.sh
    +++ b/cbatt.sh
    @@ -8,10 +8,30 @@ echo -n '['

    if [ "$1" = "color" ]
    then
    - echo -n ''
    +## first check for charging, then specify color
    +# echo -n ''
    + COLOR=true
    +else
    + COLOR=false
    fi

    -grep -q 1 /sys/class/power_supply/AC/online && echo -n "+"
    +if grep -q 1 /sys/class/power_supply/AC/online
    +then
    + CHARGING=true
    +else
    + CHARGING=false
    +fi
    +
    +if $COLOR
    +then
    + if $CHARGING; then
    + echo -n ''
    + else
    + echo -n ''
    + fi
    +fi
    +
    +$CHARGING && echo -n "+"

    acpiout=$(acpi)
    if [ -n "$(echo -n ${acpiout} | grep 'charging at zero rate - will never fully charge.')" ]
    @@ -37,4 +57,3 @@ then
    fi

    echo -n ']'
    -

    Reply
    1. ein floh

      wenn man sich die muehe mit dem $COLOR macht sollte man es natuerlich auch nochmail am ende benutzen… grml…

      Reply
  2. admin Post author

    +if $COLOR
    +then
    + if $CHARGING; then
    + echo -n ”
    + else
    + echo -n ”
    + fi
    +fi

    Was soll der part denn?

    Reply
    1. ein floh

      Je nachdem ob ge- oder entladen wird ein span-tag mit color=green bzw color=red ausgeben. Dem CMS haben diese Tags natuerlich nicht geschmeckt und es hat sie rausgefiltert. Ich probierse mal zu escapen:
      if $COLOR
      then
      if $CHARGING; then
      # ‘span color=”green”‘ when charging
      echo -n ‘\’
      else
      # ‘span color=red’ when discharging
      echo -n ‘\’
      fi
      fi

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *