---
name: "flaw"
section: "7"
platform: "linux"
package: "awesome-extra"
version: "2023010601"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/flaw"
---

# flaw(7)

a Lua OO management framework for awesome WM widgets

## NAME

flaw - a Lua OO management framework for awesome WM widgets

## DESCRIPTION

**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.

- 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 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).

- provider

  **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

  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.

## USAGE

**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`

## DIAGNOSTICS

**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* ).

## BUGS

Certainly a lot.

## AUTHOR

David Soulayrol \<david.soulayrol at gmail dot net\>

## SEE ALSO

[**awesome**(1)](/awesome/1.md), [**awesome-client**(1)](/awesome-client/1.md), [**awesomerc**(5)](/awesomerc/5.md)
