Criando variáveis de texto Conky com preenchimento zero?

4

Eu tenho um problema estranho com minha configuração do Conky:

Oqueeuestouolhandoparamelivrarde/fixéofatodequeminhasporcentagensdeCPU(usando${cpucpuX})nãoparecemserpreenchidascorretamente.Eugostariaquetodososvaloresfossemalinhadosverticalmenteparaqueosstatusnuncasealterassem.Aquiestãotrechosdomeuarquivoconky:

#...pad_percents3#...${cpubarcpu16,135}$alignr${...}${cpucpu1}%

ComopossoalinharcorretamenteeinserirvalorespercentuaisdeCPUparaqueelesparemdejogarforameulayout?Oprintfequivalenteseria%3.0f,demodoqueosvaloresaparecerãoassim:

$"%3.0f" % (1,) 
'  1'
$ "%3.0f" % (13,)
' 13'
$ "%3.0f" % (100,)
'100'

Como posso fazer isso acontecer em Conky para minha porcentagem de CPU?

    
por Naftuli Kay 06.12.2012 / 21:54

2 respostas

6

Uma solução fornecida por @jasonwryan acima:

  1. Crie um script Lua para o Conky usar. Eu criei a minha em uma pasta que fiz em ~/.config/conky/scripts , mas você pode criar a sua onde quiser:

    $ mkdir -p ~/.config/conky/scripts/
    $ vim ~/.config/conky/scripts/conky_lua_scripts.lua
    
  2. Preencha o arquivo com a seguinte função Lua:

    function conky_format( format, number )
        return string.format( format, conky_parse( number ) )
    end
    
  3. Importe seu arquivo de script Lua para o arquivo de configuração do Conky usando a diretiva lua_load

    # ...
    lua_load ~/.config/conky/scripts/conky_lua_scripts.lua
    
    TEXT
    # ...
    
  4. Sempre que você quiser formatar um valor, chame a função format que definimos anteriormente. Observe que, embora tenhamos chamado conky_format , acessamos como format usando a variável lua_parse :

    # ...
    lua_load ~/.config/conky/scripts/conky_lua_scripts.lua
    
    TEXT
    # ...
    ${lua_parse format %3.0f ${cpu cpu1}}%
    

Esse bom script permite chamar o mecanismo de formatação Lua com qualquer valor e string de formato. A saída agora parece conforme o esperado:

Se você estiver familiarizado com printf , poderá usar o utilitário para fazer outros truques impressionantes de formatação.

    
por 07.12.2012 / 02:48
0

Quase o mesmo efeito pode ser alcançado também sem script de lua usando condições:

${if_match ${cpu cpu1} < 10}${offset 10}${cpu cpu1}%

Seu código seria algo semelhante a:

${cpubar cpu1 6,135}$alignr${...}${if_match ${cpu cpu1} < 10}${offset 10}${endif}${cpu cpu1}%

Nota: O valor de deslocamento (no caso 10 acima) precisa ser ajustado de acordo com a fonte usada.

Um exemplo mais completo também pode usar mais condições:

${cpubar cpu1 6,135}$alignr${...}${if_match ${cpu cpu1} < 10}${offset 20}${else}${if_match ${cpu cpu1} < 100}${offset 10}${endif}${cpu cpu1}%
    
por 28.02.2018 / 21:42

Tags