Initial commit
This commit is contained in:
50
lib/lain/widget/temp.lua
Normal file
50
lib/lain/widget/temp.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
--[[
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user