Lua API
Conky features a Lua Programming API, and also ships with Lua bindings for some useful libraries. Note that the bindings require tolua++, which currently only compiles against Lua 5.1.
To use Lua Conky, you first need to make sure you have a version of
Conky with Lua support enabled (conky -v
will report this).
Conky defines certain global functions and variables which can be
accessed from Lua code running in Conky. Scripts must first be loaded
using the lua_load configuration option. You then call functions in Lua
via Conky's $lua, $lua_read, and Lua hooks.
Be careful when creating threaded objects through the Lua API. You could wind up with a whole bunch of threads running if a thread is created with each iteration.
NOTE: In order to accommodate certain features in the cairo library's API, Conky will export a few additional functions for the creation of certain structures. These are documented below.
cairo_place_image(file, cr, x, y, width, height, alpha)
Renders an image onto a cairo_t, using imlib2. In some cases using a cairo_t and exact coordinates is more useful.
Argument | Description |
---|---|
file | Path to the image to render. |
cr | The cairo_t to render to. |
x,y | Position to render the image. |
width, height | The width and height to draw the image |
alpha | The transparency of the image 1.0 is solid 0.0 is fully translucent. |
require('cairo_imlib2_helper') in your lua file.
conky_window
This table contains some information about Conky's window. The following table describes the values contained:
Key | Value |
---|---|
drawable | Window's drawable (Xlib Drawable), requires Lua extras enabled at compile time. |
visual | Window's visual (Xlib Visual), requires Lua extras enabled at compile time. |
display | Window's display (Xlib Display), requires Lua extras enabled at compile time. |
width | Window width (in pixels). |
height | Window height (in pixels). |
border_inner_margin | Window's inner border margin (in pixels). |
border_outer_margin | Window's outer border margin (in pixels). |
border_width | Window's border width (in pixels). |
text_start_x | The x component of the starting coordinate of text drawing. |
text_start_y | The y component of the starting coordinate of text drawing. |
text_width | The width of the text drawing region. |
text_height | The height of the text drawing region. |
NOTE: This table is only defined when X support is enabled.
ret_scale_x,ret_scale_y:cairo_draw_image(file, cs, x, y, scale_x, scale_y)
Renders an image onto a cairo_surface_t, using imlib2. Returns the amount the image was scaled by
Argument | Description |
---|---|
file | Path to the image to render. |
cs | The cairo_surface_t to render to. |
x,y | Position to render the image. |
scale_x, scale_y | The amount to scale the image, 1.0 provides no scaling, 2.0 for twice the size and |
0.5 for half size etc. | |
Default value: No Scaling (1.0,1.0) |
require('cairo_imlib2_helper') in your lua file.