Archiv
Awesome Battery Widget
Seit einer Woche bin ich stolzer Besitzer eines Netbooks (Lenovo S10-3).
Auf dem Netbook läuft natürlich Gentoo mit aktuellem 2.6.38 Kernel (leider noch ~amd64), den brauche ich für den W-LAN-Chip (bcm4313) in dem Netbook. Dort wird nämlich der seit 2.6.37 enthaltene Staging Treiber brcm80211 benötigt. Über Google solltet ihr aber mehr dazu finden. Ein kleiner Tipp hier schon, wenn ihr die sys-kernel/linux-firmware installiert müssen die Symlinks noch angepasst werden ;).
Soviel also dazu.
Als Window-Manager setze ich awesome ein. Leider bietet awesome keine Widget zur Anzeige des Akku-Ladestandes bzw. wird eines angeboten über die Vicious Bibliothek, welches aber bei mir nicht funktioniert hat.
Deshalb hab ich mir gedacht, ich bau mir da selbst was.
Gesagt, getan….
Ich habe mir folgendes Script geschrieben, welches mit Hilfe von sys-power/acpi die Ladezustand bzw. die verfügbare Kapazität ausliest.
#!/bin/bash # Get ACPI-State str_ACPI=$(acpi | awk '{print $4}') str_State=$(acpi | awk '{print $3}') # Get Length of strings i_ACPI_Length=$(expr length $str_ACPI) i_State_Length=$(expr length $str_State) # Get length of the strings without comma let i_New=$i_ACPI_Length-1 let i_StLen=$i_State_Length-1 # Get substrings to delete comma i_State=${str_ACPI:0:$i_New} str_State=${str_State:0:$i_StLen} # Print state; # Return state to rc.lua echo " $str_State $i_State"
Der Zustand des Akkus und die Restkapazität werden dann mit Hilfe des echo-Befehls zurückgegeben.
Dieses Script wird automatisch alle 10 Sekunden aus der lua.rc aufgerufen.
Hier mal der Code dazu:
-- Eigenes Widget mybat = widget( {type = "textbox"} ) mytimer = timer( {timeout = 10 } ) mytimer:add_signal("timeout", function() local fd = io.popen("/home/fabi/Programmierung/Bash/bat_state.sh") mybat.text = fd:read("*a") fd:close() end) mytimer:emit_signal("timeout") mytimer:start()
Der Timer (mytimer) ruft das Script alle 10 Sekunden auf, und der übergebene Wert wird in den Inhalt des zuvor erstellten Text-Widget mybat geschrieben.
Dieses Widget muss nun noch in den Tray eingefügt werden:
mywibox[s].widgets = { { mylauncher, mytaglist[s], mypromptbox[s], layout = awful.widget.layout.horizontal.leftright }, mylayoutbox[s], mytextclock, mybat, s == 1 and mysystray or nil, mytasklist[s], layout = awful.widget.layout.horizontal.rightleft }
So, nun sollte das ganze funktionieren.
Hier mal ein paar Screenshots davon:
Laufen bzw. getestet ist das ganze unter awesome 3.4.8.
Das Script wurde auch schon hier im Winfuture-Forum veröffentlicht. Entstanden ist das ganze mit freundlicher Unterstützung von psychon aus dem Winfuture-IRC-Channel (irc.spotchar.org/#winfuture).
Für Kritik und Anregungen bin ich wie immer dankbar.
Viel Spaß damit.
Random Posts
Schlagwort-Wolke
Kategorien
- Allgemein
- Amazon
- Apple
- BASH
- C
- Calmz
- CPlusPlus
- Dashcode
- Data Display Debugger
- Debian
- Download
- Dumm gelaufen
- EyeTV
- Firefox
- Flash
- Gentoo
- GNU Debugger
- Hardware
- iChat
- iPhone
- iPod
- iTunes
- Java
- Kernel
- Lightning
- Linux
- Mac OS X
- MacPorts
- Microsoft
- mplayer
- Musik
- NetBeans
- Netwmpager
- Office
- Pixelmator
- Programmierung
- Safari
- Steam
- Sync
- Terminal
- Thunderbird
- Uncategorized
- VIM
- Widget
- Windows
- Wine
- WinSplit
- WLAN