summaryrefslogtreecommitdiff
path: root/lain/widgets/cpu.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lain/widgets/cpu.lua')
-rw-r--r--lain/widgets/cpu.lua77
1 files changed, 0 insertions, 77 deletions
diff --git a/lain/widgets/cpu.lua b/lain/widgets/cpu.lua
deleted file mode 100644
index 7c1ecb0..0000000
--- a/lain/widgets/cpu.lua
+++ /dev/null
@@ -1,77 +0,0 @@
-
---[[
-
- Licensed under GNU General Public License v2
- * (c) 2013, Luke Bonham
- * (c) 2010-2012, Peter Hofmann
-
---]]
-
-local first_line = require("lain.helpers").first_line
-local newtimer = require("lain.helpers").newtimer
-
-local wibox = require("wibox")
-
-local math = { ceil = math.ceil }
-local string = { format = string.format,
- gmatch = string.gmatch }
-local tostring = tostring
-
-local setmetatable = setmetatable
-
--- CPU usage
--- lain.widgets.cpu
-local cpu = {
- last_total = 0,
- last_active = 0
-}
-
-local function worker(args)
- local args = args or {}
- local timeout = args.timeout or 5
- local settings = args.settings or function() end
-
- cpu.widget = wibox.widget.textbox('')
-
- function update()
- -- 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 = first_line("/proc/stat")
- local at = 1
- local idle = 0
- local total = 0
- for field in string.gmatch(times, "[%s]+([^%s]+)")
- do
- -- 4 = idle, 5 = ioWait. Essentially, the CPUs have done
- -- nothing during these times.
- if at == 4 or at == 5
- then
- idle = idle + field
- end
- total = total + field
- at = at + 1
- end
- local active = total - idle
-
- -- Read current data and calculate relative values.
- local dactive = active - cpu.last_active
- local dtotal = total - cpu.last_total
-
- cpu_now = {}
- cpu_now.usage = tostring(math.ceil((dactive / dtotal) * 100))
-
- widget = cpu.widget
- settings()
-
- -- Save current data for the next run.
- cpu.last_active = active
- cpu.last_total = total
- end
-
- newtimer("cpu", timeout, update)
-
- return cpu.widget
-end
-
-return setmetatable(cpu, { __call = function(_, ...) return worker(...) end })