From 025508ce835c3a83484b4d32c179347e51498e9f Mon Sep 17 00:00:00 2001 From: Luca Capezzuto Date: Mon, 27 May 2019 13:12:00 +0100 Subject: [PATCH] widget.temp: autodetect tempfiles; closes #431 --- helpers.lua | 2 +- widget/cpu.lua | 4 +--- widget/temp.lua | 35 ++++++++++++++++++----------------- wiki | 2 +- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/helpers.lua b/helpers.lua index d3fa259..d6f6b3c 100644 --- a/helpers.lua +++ b/helpers.lua @@ -187,7 +187,7 @@ function helpers.trivial_partition_set(set) return ss end --- creates the powerset of a given set +-- create the powerset of a given set function helpers.powerset(s) if not s then return {} end local t = {{}} diff --git a/widget/cpu.lua b/widget/cpu.lua index 81638c2..f4cce73 100644 --- a/widget/cpu.lua +++ b/widget/cpu.lua @@ -25,9 +25,7 @@ local function factory(args) -- Read the amount of time the CPUs have spent performing -- different kinds of work. Read the first line of /proc/stat -- which is the sum of all CPUs. - local times = helpers.lines_match("cpu","/proc/stat") - - for index,time in pairs(times) do + for index,time in pairs(helpers.lines_match("cpu","/proc/stat")) do local coreid = index - 1 local core = cpu.core[coreid] or { last_active = 0 , last_total = 0, usage = 0 } diff --git a/widget/temp.lua b/widget/temp.lua index 3c93252..513bd38 100644 --- a/widget/temp.lua +++ b/widget/temp.lua @@ -7,33 +7,34 @@ local helpers = require("lain.helpers") local wibox = require("wibox") -local open = io.open local tonumber = tonumber -- coretemp -- 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 settings = args.settings or function() end + local temp = { widget = wibox.widget.textbox() } + local args = args or {} + local timeout = args.timeout or 30 + 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", "-name", "temp"}, function(f) + temp_now = {} + local temp_value + for t in f:gmatch("[^\n]+") do + temp_value = helpers.first_line(t) + if temp_value then + temp_now[tonumber(t:match("%d+"))] = temp_value / 1e3 + end + end + coretemp_now = temp_now[0] or "N/A" + widget = temp.widget + settings() + end) end - helpers.newtimer("coretemp", timeout, temp.update) + helpers.newtimer("thermal", timeout, temp.update) return temp end diff --git a/wiki b/wiki index e5a195c..aaeceb1 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit e5a195cfc013627f21d242fa5110b3added00eb2 +Subproject commit aaeceb1598cbbc27b1ee79d9a8d483fd10a4187a -- 2.39.2