X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/046b0279b0f3eb827bcc2b2e395e6ea69c019733..acece6c05439884cfd2ecd2e658a63d6f42f44b9:/widgets/sysload.lua diff --git a/widgets/sysload.lua b/widgets/sysload.lua index 8583ccb..b15b1bf 100644 --- a/widgets/sysload.lua +++ b/widgets/sysload.lua @@ -7,14 +7,11 @@ --]] -local markup = require("lain.util.markup") -local helpers = require("lain.helpers") +local newtimer = require("lain.helpers").newtimer -local awful = require("awful") -local beautiful = require("beautiful") local wibox = require("wibox") -local io = io +local io = { open = io.open } local string = { format = string.format, match = string.match } @@ -24,47 +21,26 @@ local setmetatable = setmetatable -- lain.widgets.sysload local sysload = {} -function worker(args) +local function worker(args) local args = args or {} - local refresh_timeout = args.refresh_timeout or 5 - local show_all = args.show_all or false - local header = args.header or " Load " - local header_color = args.header_color or beautiful.fg_normal or "#FFFFFF" - local color = args.color or beautiful.fg_focus or header_color - local app = args.app or "top" + local timeout = args.timeout or 5 + local settings = args.settings or function() end - local mysysload = wibox.widget.textbox() + sysload.widget = wibox.widget.textbox('') - local mysysloadupdate = function() + function update() local f = io.open("/proc/loadavg") - local ret = f:read("*all") + local ret = f:read("*a") f:close() - if show_all - then - local a, b, c = string.match(ret, "([^%s]+) ([^%s]+) ([^%s]+)") - mysysload:set_text(string.format("%s %s %s", a, b, c)) - else - local a = string.match(ret, "([^%s]+) ") - mysysload:set_text(string.format("%s", a)) - end - mysysload:set_markup(markup(header_color, header) .. - markup(color, mysysload._layout.text .. " ")) - end - - local mysysloadtimer = timer({ timeout = refresh_timeout }) - mysysloadtimer:connect_signal("timeout", mysysloadupdate) - mysysloadtimer:start() - mysysloadtimer:emit_signal("timeout") + load_1, load_5, load_15 = string.match(ret, "([^%s]+) ([^%s]+) ([^%s]+)") - mysysload:buttons(awful.util.table.join( - awful.button({}, 0, - function() - helpers.run_in_terminal(app) - end) - )) + widget = sysload.widget + settings() + end - return mysysload + newtimer("sysload", timeout, update) + return sysload.widget end return setmetatable(sysload, { __call = function(_, ...) return worker(...) end })