X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/8f948b52ebd1ce35a20bf43708444a2bc01ad673..9120182f4950661a004e8231c3b330a76e53c53c:/widget/temp.lua?ds=inline diff --git a/widget/temp.lua b/widget/temp.lua index efe2ab9..2b97a4e 100644 --- a/widget/temp.lua +++ b/widget/temp.lua @@ -1,40 +1,42 @@ - --[[ - - Licensed under GNU General Public License v2 - * (c) 2013, Luke Bonham - + + Licensed under GNU General Public License v2 + * (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