From 0a7bdb85283accf120e2898724aec8e1a5eff311 Mon Sep 17 00:00:00 2001 From: artem Date: Sun, 7 Feb 2021 00:20:09 +0700 Subject: fix to prevent stdout from passing a null string --- volumearc-widget/volumearc.lua | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'volumearc-widget/volumearc.lua') diff --git a/volumearc-widget/volumearc.lua b/volumearc-widget/volumearc.lua index a62abde..b104ad3 100644 --- a/volumearc-widget/volumearc.lua +++ b/volumearc-widget/volumearc.lua @@ -74,15 +74,18 @@ local function worker(user_args) widget = wibox.container.arcchart } - local update_graphic = function(_, stdout, _, _, _) - local mute = string.match(stdout, "%[(o%D%D?)%]") -- \[(o\D\D?)\] - [on] or [off] - local volume = string.match(stdout, "(%d?%d?%d)%%") -- (\d?\d?\d)\%) - volume = tonumber(string.format("% 3d", volume)) - + local update_graphic = function(widget, stdout, _, _, _) + local mute = "on" + local volume = 0 + if not (stdout == nil or stdout == '') then + mute = string.match(stdout, "%[(o%D%D?)%]") -- \[(o\D\D?)\] - [on] or [off] + volume = string.match(tostring(stdout), "(%d?%d?%d)%%") -- (\d?\d?\d)\%) + volume = tonumber(string.format("% 3d", volume)) + end widget.value = volume / 100; widget.colors = mute == 'off' - and { mute_color } - or { main_color } + and { mute_color } + or { main_color } end local button_press = args.button_press or function(_, _, _, button) -- cgit v1.2.3