51 lines
1.2 KiB
Lua
51 lines
1.2 KiB
Lua
|
--[[
|
||
|
|
||
|
Licensed under GNU General Public License v2
|
||
|
* (c) 2013, Luca CPZ
|
||
|
|
||
|
--]]
|
||
|
|
||
|
local helpers = require('lain.helpers')
|
||
|
local wibox = require('wibox')
|
||
|
local tonumber = tonumber
|
||
|
|
||
|
-- {thermal,core} temperature info
|
||
|
-- lain.widget.temp
|
||
|
|
||
|
local function factory(args)
|
||
|
args = args or {}
|
||
|
|
||
|
local temp = { widget = args.widget or wibox.widget.textbox() }
|
||
|
local timeout = args.timeout or 30
|
||
|
local tempfile = args.tempfile or '/sys/devices/virtual/thermal/thermal_zone0/temp'
|
||
|
local format = args.format or '%.1f'
|
||
|
local settings = args.settings or function() end
|
||
|
|
||
|
function temp.update()
|
||
|
helpers.async({ 'find', '/sys/devices', '-type', 'f', '-name', '*temp*' }, function(f)
|
||
|
temp_now = {}
|
||
|
local temp_fl, temp_value
|
||
|
for t in f:gmatch('[^\n]+') do
|
||
|
temp_fl = helpers.first_line(t)
|
||
|
if temp_fl then
|
||
|
temp_value = tonumber(temp_fl)
|
||
|
temp_now[t] = temp_value and temp_value / 1e3 or temp_fl
|
||
|
end
|
||
|
end
|
||
|
if temp_now[tempfile] then
|
||
|
coretemp_now = string.format(format, temp_now[tempfile])
|
||
|
else
|
||
|
coretemp_now = 'N/A'
|
||
|
end
|
||
|
widget = temp.widget
|
||
|
settings()
|
||
|
end)
|
||
|
end
|
||
|
|
||
|
helpers.newtimer('thermal', timeout, temp.update)
|
||
|
|
||
|
return temp
|
||
|
end
|
||
|
|
||
|
return factory
|