A lua oo management framework for awesome wm widgets
flaw stands for Fully Loaded AWesome. It is a LUA object oriented library providing a thin abstraction layer above awesome widgets. It is aimed at being simple and resources efficient.
To achieve these goals, flaw provides the following concepts.
To add functionality to awesome widgets, flaw defines gadget objects, which are a wrapper around a widget. All gadgets have properties, events, a refresh mechanism and a data provider (see below). Gadgets can wrap all awesome widget type, namely text boxes, image boxes, graphs or progress bars. flaw provides many gadgets for common system information (like CPU or memory activity).
flaw tries to minimise system access and data refresh. Since all information do not have the same expiration rate, all gadgets refresh independently. And since some gadgets can share information, all data is provided by providers which can be shared among gadgets. Providers maintain status data from the system and refreshes only when necessary (ie. when the gadget with the shortest refresh rate demands it).
Events are a way for the user to modify the gadget behaviour or properties when some conditions are met. An event is composed of a trigger, which computes the condition, and an action. Event triggers are tested by the providers only when data changes. Both the condition and the action are provided by the user.
flaw depends on the lua-filesystem package which can be found http://luaforge.net/projects/luafilesystem. Once installed, the following statement must be inserted in awesome configuration before any flaw gadget or mechanism is used.
require('flaw')
Using flaw consists in creating gadgets, passing them parameters to customize their display and events to add some behaviour to them, and then adding them in a wibox like any other awesome widget. flaw and awful gadgets can live together. The complete flaw documentation is available in Luadoc format. Enter the following command to generate it.
LUA_PATH="path_toflaw/doclet/html/?;;" luadoc -d html --nofiles *.lua
flaw tries to recover upon bad invocations. When something wrong occurs, it outputs warning or error messages to stderr (for example, if awesome was started with xsession, output will be found in ~/.xsession-errors ).
Certainly a lot.
David Soulayrol <david.soulayrol at gmail dot net>