From 7e928f2d6646a092c5757c112bc3359433716134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albin=20Wahl=C3=A9n?= Date: Sun, 19 Feb 2023 18:55:42 +0100 Subject: [PATCH] Find CPU frequencies --- widget/cpu.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/widget/cpu.lua b/widget/cpu.lua index 6c51115..a255a51 100644 --- a/widget/cpu.lua +++ b/widget/cpu.lua @@ -28,7 +28,7 @@ local function factory(args) 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 } + { last_active = 0 , last_total = 0, usage = 0, frequency = 0 } local at = 1 local idle = 0 local total = 0 @@ -60,8 +60,21 @@ local function factory(args) end end + -- Read the frequency at which the CPUs are operating + -- This info is found in /proc/cpuinfo + local freq_sum = 0 + local cpu_count = 0 + for coreid,line in pairs(helpers.lines_match("cpu MHz", "/proc/cpuinfo")) do + local frequency = tonumber(string.match(line, "%d+%.%d+")) + cpu.core[coreid].frequency = frequency + freq_sum = freq_sum + frequency + cpu_count = cpu_count + 1 + end + cpu.core[0].frequency = freq_sum / cpu_count -- coreid 0 is for average + cpu_now = cpu.core cpu_now.usage = cpu_now[0].usage + cpu_now.frequency = cpu_now[0].frequency widget = cpu.widget settings()