--[[ 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