X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/1b12fd2319e1cd02706fd3a7ec0f0203ca2782d2..bd636ca4184bb83db3db02a2ee34d8cf80f22c24:/widget/temp.lua diff --git a/widget/temp.lua b/widget/temp.lua index cc9f056..2b97a4e 100644 --- a/widget/temp.lua +++ b/widget/temp.lua @@ -1,39 +1,42 @@ --[[ Licensed under GNU General Public License v2 - * (c) 2013, Luke Bonham + * (c) 2013, Luca CPZ --]] local helpers = require("lain.helpers") local wibox = require("wibox") -local open = io.open local tonumber = tonumber --- coretemp +-- {thermal,core} temperature info -- lain.widget.temp local function factory(args) local temp = { widget = wibox.widget.textbox() } local args = args or {} - local timeout = args.timeout or 2 - local tempfile = args.tempfile or "/sys/class/thermal/thermal_zone0/temp" + local timeout = args.timeout or 30 + local tempfile = args.tempfile or "/sys/devices/virtual/thermal/thermal_zone0/temp" local settings = args.settings or function() end function temp.update() - local f = open(tempfile) - if f then - coretemp_now = tonumber(f:read("*all")) / 1000 - f:close() - else - coretemp_now = "N/A" - end - - widget = temp.widget - settings() + helpers.async({"find", "/sys/devices/virtual/thermal", "-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 + coretemp_now = temp_now[tempfile] or "N/A" + widget = temp.widget + settings() + end) end - helpers.newtimer("coretemp", timeout, temp.update) + helpers.newtimer("thermal", timeout, temp.update) return temp end