Flaw

Flaw is a LUA object oriented library providing a thin abstraction layer above awesome widgets. It is aimed at being simple and resources efficient. flaw provides the following concepts.


 * gadgets
 * 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 text boxes, image boxes, graphs or progress bars. Flaw provides many gadgets for common system information (like CPU, memory or network activity).


 * provider
 * Flaw tries to minimise system access and data refresh, so data fetching is dedicated to provider objects. Since some gadgets can share information, providers can be shared by gadgets. Gadgets can update their view at will but providers refresh only when necessary (ie. when the gadget with the shortest refresh rate demands it). At last, providers can also gather non-cyclic information like mouse events.


 * events
 * 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 each time when data is refreshed. Both the condition and the action are provided by the user.

Caution
Comparatively to Obvious, Vicious and other widget libraries, Flaw was developped by a single person until now, and so is rarely (at best) used or tested. It is only available from its Git repository and should always run with quite recent versions of awesome.

Getting Flaw
Flaw is hosted on https://github.com/dsoulayrol/flaw. It comes with (quite a big) documentation, which is available at http://david.soulayrol.name/en/projects/flaw. Note that Flaw depends on lua-filesystem.