O
Conky possui uma API de programação Lua, que também é fornecida com ligações Lua para algumas bibliotecas úteis. Conky define certas funções e variáveis globais que podem ser acessadas a partir do código Lua em execução.
Para usar Lua, primeiro você precisa ter certeza de que você tenha uma versão do Conky com o suporte Lua habilitado. O "conky -v" informará isso.
conky -v
{...}
Lua bindings:
* Cairo
* Imlib2
* RSVG
Os scripts devem primeiro ser carregados usando a opção de configuração lua_load. Você então chama funções em Lua através de: $lua, $lua_read, e Lua hooks.
Tenha cuidado ao criar objetos enfocados através da API Lua. Você pode acabar com um monte de threads em execução se um segmento for criado com cada iteração, o que exige muitos recursos.
A API Lua não é considerada estável e pode mudar drasticamente de uma versão para outra à medida que ela amadurece.
NOTA: para acomodar certos recursos na API da biblioteca cairo, o Conky exportará algumas funções adicionais para a criação de certas estruturas. Estes são documentados abaixo.
conky_parse(string) function
Esta função leva uma sequência de caracteres que é avaliada conforme a seção 'texto' do Conky e, em seguida, retorna uma string com o resultado.
conky_set_update_interval(number) function
Define o intervalo de atualização do Conky (em segundos) para 'number.
conky_window table
Esta tabela contém algumas informações sobre a janela do Conky. Os objetos a seguir descrevem os valores contidos:
- drawable (Janela desenhável (Xlib desenhável), requer extras de Lua habilitados na hora da compilação.)
- visual (Visual da janela (Xlib Visual), requer extras de Lua habilitados na hora da compilação.)
- display (Tela da janela (Xlib Display), requer extras de Lua habilitados na hora da compilação.)
- width (Largura da janela (em pixels))
- height (Altura da janela (em pixels))
- border_inner_margin (Margem da borda interna da janela (em pixels).)
- border_outer_margin (Margem da borda externa da janela (em pixels).)
- border_width (Largura da borda da janela (em pixels).)
- text_start_x (O valor x da coordenada inicial do desenho de texto horizontal.)
- text_start_y (O valor y da coordenada inicial do desenho de texto vertical.)
- text_width (A largura da região de desenho do texto. )
- text_height (A altura da região de desenho do texto.)
NOTA: estes objetos acima só são válidos se o suporte X estiver habilitado.
conky_info table
Esta tabela contém algumas informações sobre os dados internos do Conky. Os objetos a seguir descrevem os valores contidos:
- update_interval (Intervalo de atualização do Conky (em segundos).)
- uptime (Tempo de funcionamento do sistema, (em segundos).)
conky_build_info string
Uma sequência de caracteres contendo as informações de compilação para esta instância específica do Conky, incluindo a versão, a data de compilação e a arquitetura.
conky_build_date string
Uma string contendo a data de compilação para esta instância particular do conky.
conky_build_arch string
Uma string contendo a arquitetura de compilação para esta instância específica do Conky.
conky_version string
Uma string contendo a versão da instância atual do Conky.
conky_config string
Uma string contendo o caminho do atual arquivo de configuração do Conky.
cairo_text_extents_t:create() function
Chame essa função para retornar uma nova estrutura cairo_text_extents_t. Uma função de criação para esta estrutura não é fornecida pela API cairo. Depois de chamar isso, você deve usar tolua.takeownership() no valor de retorno para garantir que a propriedade seja passada corretamente.
cairo_font_extents_t:create() function
Chame essa função para retornar uma nova estrutura cairo_font_extents_t. Uma função de criação para esta estrutura não é fornecida pela API cairo. Depois de chamar isso, você deve usar tolua.takeownership() no valor de retorno para garantir que a propriedade seja passada corretamente.
cairo_matrix_t:create() function
Chame essa função para retornar uma nova estrutura cairo_matrix_t. Uma função de criação para esta estrutura não é fornecida pela API cairo. Depois de chamar isso, você deve usar tolua.takeownership() no valor de retorno para garantir que a propriedade seja passada corretamente.