Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I currently experimenting with DWM and Conky to create a minimal looking desktop to use for coding and things like that. I've got something nice going on, but there's something I'm having an issue with at the moment. Right now, my Conky TEXT section is centre aligned, which looks nice, but it is also returning information about CPU usage. If the CPU usage is flickering between, say, 9 and 10 %, the overall size of the text is different, and because it's centre aligned, it moved around a bit. Colours removed for a second for clarity, here's a simple version of the line in question...

${alignc}CPU: ${cpu}%

The difference, of course, between the two of

CPU 9%

CPU 10%

is what's causing the issue. How would I go about left-padding the 9 with two zeroes, then 10 with one zero, and then 100 with no zeroes? The only thing I can see vaguely related in the documentation has to deal with decimal place padding, which isn't what I need at all.

share|improve this question

3 Answers 3

up vote 2 down vote accepted

A solution (can't find anything better now, but it works) involves the use of a custom Lua function, here's how you should do:

  1. Create a file for the Lua function, say ~/.conky_lua_scripts.lua with:

    function conky_pad( number )
        return string.format( '%3i' , conky_parse( number ) )
    end
    

    This will pad the number with spaces (imo nicer), if you want zeros just replace '%3i' with '%03i'.

  2. In your .conkyrc add before the TEXT section:

    lua_load ~/.conky_lua_scripts.lua
    
  3. Finally to print a padded value type in your TEXT section something like:

    ${alignc}CPU: ${lua_parse pad ${cpu}}%
    

I tried to keep the Lua function as simple as I can, but you can make a more generic one, if you want, so you can manage any number/value or even change its alignment.

share|improve this answer
    
I'm afraid I'm not in a position to test it, but it looks valid to my (reasonably novice) Conky eye. And it's a cool little hack to boot ^^ –  JBirch Aug 20 '10 at 9:28
    
Let me know, once you've tested it, for any issues. –  cYrus Aug 20 '10 at 9:50

Conky finally has it built-in. These options do the trick:

use_spacer left
pad_percents 2
share|improve this answer

I usually align the text (CPU) to the left and the values to the right, and specify their exact position. This way the values are "extending" (from 9 to 10 for example) into the empty space between CPU and value.

share|improve this answer
    
That was one consideration, but from a design standpoint, I really want them in the middle. –  JBirch Aug 20 '10 at 9:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.