# Can Conky perform basic maths nativly?

I would like to perform basic, arbitrary maths without writing a lua function for it.

One (non-working) example might be: `\${\${loadavg 1}*100)}%` If this were possible then many other uses might be imagined.

• Now that I think about it, 0.16 might actually be my average CPU usage but I'd still like to know how to do basic math in Conky variables.
– bp.
Oct 20, 2016 at 7:46

The answer depends on how you look at it. If you consider Conky's built-in Lua support and the associated use of Lua to be part of Conky, then yes. Otherwise, no.

Using Lua to do calculations is fairly straightforward. Here's an example Lua file called `temps.lua` for doing some calculations (I threw in your example, too)...

``````function conky_F2C(f)
local c = (5.0/9.0)*(f-32.0)
return c
end

function conky_C2F(c)
local f = c*(9.0/5.0)+32.0
return f
end

function conky_acpitempF()
local c = conky_parse("\${acpitemp}")
return conky_C2F(c)
end

end
``````

At the top of the `conky.config` section of my `.conkyrc` file, I put the following...

``````lua_load = '~/bin/lua_scripts/temps.lua',
``````

And in the `conky.text` section, I put the following lines...

``````ACPI Temp... \${acpitemp}°C
Conv to F... \${lua conky_acpitempF}°F

Body Temp... 98.6°C
Conv to C... \${lua conky_F2C 98.6}°C

``````

The resulting display on Conky should appear similar to...

``````ACPI Temp... 43°C
Conv to F... 109.4°F

Body Temp... 98.6°C
Conv to C... 37°C

Note that, as far as I've been able to tell, you can't pass a Conky object like `\${loadavg 1}` to a Lua function. But you can access an object within a Lua function as in the example code above.