--]]
-local markup = require("lain.util.markup")
-
-local beautiful = require("beautiful")
+local newtimer = require("lain.helpers").newtimer
local wibox = require("wibox")
-
-local io = io
+local io = { open = io.open }
local tonumber = tonumber
-
local setmetatable = setmetatable
-- coretemp
-- lain.widgets.temp
local temp = {}
-function worker(args)
- local args = args or {}
- local refresh_timeout = args.refresh_timeout or 5
- local header = args.header or " Temp "
- local header_color = args.header_color or beautiful.fg_normal or "#FFFFFF"
- local color = args.color or beautiful.fg_focus or header_color
- local footer = args.footer or "C "
-
- local mytemp = wibox.widget.textbox()
-
- local mytempupdate = function()
- local f = io.open("/sys/class/thermal/thermal_zone0/temp")
- local ret = f:read("*all")
- f:close()
-
- ret = tonumber(ret) / 1000
-
- mytemp:set_markup(markup(header_color, header) ..
- markup(color, ret .. footer))
+local function worker(args)
+ 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
+
+ temp.widget = wibox.widget.textbox()
+
+ function update()
+ local f = io.open(tempfile)
+ if f then
+ coretemp_now = tonumber(f:read("*all")) / 1000
+ f:close()
+ else
+ coretemp_now = "N/A"
+ end
+
+ widget = temp.widget
+ settings()
end
- local mytemptimer = timer({ timeout = refresh_timeout })
- mytemptimer:connect_signal("timeout", mytempupdate)
- mytemptimer:start()
- mytemptimer:emit_signal("timeout")
+ newtimer("coretemp", timeout, update)
- return mytemp
+ return temp.widget
end
return setmetatable(temp, { __call = function(_, ...) return worker(...) end })