The, mboxc, widget supplements the mbox widget. The mbox widget
returns the subject of the last e-mail in a mbox, while the mboxc
widget returns the count of total, old and new messages. Dealing with
potentially *HUGE* files is not easy, I tried to find some middle
ground for now, comments in the file discuss it in detail. Having the
LuaFileSystem lib would be nice, so we could do caching and avoid 90%
of the reads, but I didn't rely on external libraries to this point so
I'm not going to start now.
The widget reads /proc/acpi/battery/*/{info,state} and doesn't require
an external utility like 'acpi' or 'acpitool'. It returns state,
charge and remaining time information, just like the old bat (now
batat) widget. Using /sys/class/power_supply we would need to open
much more file descriptors so we use /proc for now.
It's time for a standalone battery widget that reads
/proc/acpi/battery/*/{info,state} alone. However the old battery
widget that uses 'acpitool' will not be deleted, let it serve as an
alternative widget as a convenience. Some might also prefer it over
reading multiple files in /proc
The widget uses 'wget' to grab the information. The Lua socket library
would be nicer, of course, but let's not introduce external libraries
at this point. Wget will write to stdout with a timeout of 5s. This
has the potential to block everything else in case of problems... But
let's not introduce temporary files at this point. Besides having to
handle files, operations while running on battery power are to be
avoided.
Vicious is a modular widget library for 'awesome' window manager,
derived from the 'Wicked' widget library.
Summary of changes:
* Original wicked code modularized
* Widgets ported from Wicked:
- CPU, MEM, FS, NET, Date, Uptime, MPD
* CPU widget rewritten, uses pattern matching
* MEM widget rewritten, uses pattern matching
- Swap widget merged with MEM widget type
* FS widget rewritten, uses pattern matching
- Also fixed padding in the process
* NET widget rewritten, uses pattern matching
* MPD widget rewritten, a bit more versatile
* Removed deprecated helper functions
* Widgets written for Vicious:
- Thermal, Battery, Mbox, OrgMode, Volume, Entropy,
Disk I/O, System Load, Wireless, Pacman, Maildir