diff --git a/batteryarc-widget/batteryarc.lua b/batteryarc-widget/batteryarc.lua index 55a76940..1702b88b 100644 --- a/batteryarc-widget/batteryarc.lua +++ b/batteryarc-widget/batteryarc.lua @@ -88,18 +88,30 @@ local function worker(user_args) local function update_widget(widget, stdout) local charge = 0 - local status + local batteries = 0 + local status = 'Unknown' for s in stdout:gmatch("[^\r\n]+") do local cur_status, charge_str, _ = string.match(s, '.+: ([%a%s]+), (%d?%d?%d)%%,?(.*)') if cur_status ~= nil and charge_str ~=nil then local cur_charge = tonumber(charge_str) - if cur_charge > charge then - status = cur_status - charge = cur_charge + if cur_status ~= 'Unknown' then + if status == 'Charging' or cur_status == 'Charging' then + status = 'Charging' + else + status = cur_status + end + charge = charge + cur_charge + batteries = batteries + 1 end end end + if batteries > 0 then + charge = charge // batteries + else + charge = 0 + end + widget.value = charge if status == 'Charging' then diff --git a/mpdarc-widget/mpdarc.lua b/mpdarc-widget/mpdarc.lua index f1d69308..d643725f 100644 --- a/mpdarc-widget/mpdarc.lua +++ b/mpdarc-widget/mpdarc.lua @@ -50,7 +50,7 @@ local mpdarc_icon_widget = wibox.container.mirror(mpdarc, { horizontal = true }) local mpdarc_current_song_widget = wibox.widget { id = 'current_song', widget = wibox.widget.textbox, - font = 'Play 9' + font = beautiful.font or 'Play 9' } local update_graphic = function(widget, stdout, _, _, _) @@ -87,13 +87,20 @@ mpdarc:connect_signal("button::press", function(_, _, _, button) elseif (button == 5) then awful.spawn(PREV_MPD_CMD, false) -- scroll down end + local reset_garbage_collector = 0 spawn.easy_async(GET_MPD_CMD, function(stdout, stderr, exitreason, exitcode) update_graphic(mpdarc, stdout, stderr, exitreason, exitcode) + reset_garbage_collector = reset_garbage_collector + 1 + if (reset_garbage_collector > 10) then + collectgarbage() + reset_garbage_collector = 0 + end end) end) local notification local function show_MPD_status() + local reset_garbage_collector = 0 spawn.easy_async(GET_MPD_CMD, function(stdout, _, _, _) notification = naughty.notify { @@ -103,6 +110,11 @@ local function show_MPD_status() hover_timeout = 0.5, width = 600, } + reset_garbage_collector = reset_garbage_collector + 1 + if (reset_garbage_collector > 10) then + collectgarbage() + reset_garbage_collector = 0 + end end) end