X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/4c392a6d980af9c72052145c6a7a812c51e6ecee..9bf20bf240fa55ed6e26fec8fbb1de5fd72c3e9f:/.config/awesome/lain/widget/temp.lua?ds=sidebyside diff --git a/.config/awesome/lain/widget/temp.lua b/.config/awesome/lain/widget/temp.lua index efe2ab9..e909b32 100644 --- a/.config/awesome/lain/widget/temp.lua +++ b/.config/awesome/lain/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", "-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