X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/233768f0963167af1d2621d10157cd64a87c904c..9120182f4950661a004e8231c3b330a76e53c53c:/widget/alsabar.lua diff --git a/widget/alsabar.lua b/widget/alsabar.lua index 9b9f4b9..b2f7b44 100644 --- a/widget/alsabar.lua +++ b/widget/alsabar.lua @@ -39,6 +39,10 @@ local function factory(args) local paddings = args.paddings or 1 local ticks = args.ticks or false local ticks_size = args.ticks_size or 7 + local tick = args.tick or "|" + local tick_pre = args.tick_pre or "[" + local tick_post = args.tick_post or "]" + local tick_none = args.tick_none or " " alsabar.cmd = args.cmd or "amixer" alsabar.channel = args.channel or "Master" @@ -48,8 +52,7 @@ local function factory(args) alsabar.notification_preset = args.notification_preset if not alsabar.notification_preset then - alsabar.notification_preset = {} - alsabar.notification_preset.font = "Monospace 10" + alsabar.notification_preset = { font = "Monospace 10" } end local format_cmd = string.format("%s get %s", alsabar.cmd, alsabar.channel) @@ -115,22 +118,32 @@ local function factory(args) end -- tot is the maximum number of ticks to display in the notification - -- fallback: default horizontal wibox height - local wib, tot = awful.screen.focused().mywibox, 20 - - -- if we can grab mywibox, tot is defined as its height if - -- horizontal, or width otherwise - if wib then - if wib.position == "left" or wib.position == "right" then - tot = wib.width + local tot = alsabar.notification_preset.max_ticks + + if not tot then + local wib = awful.screen.focused().mywibox + -- if we can grab mywibox, tot is defined as its height if + -- horizontal, or width otherwise + if wib then + if wib.position == "left" or wib.position == "right" then + tot = wib.width + else + tot = wib.height + end + -- fallback: default horizontal wibox height else - tot = wib.height + tot = 20 end end int = math.modf((alsabar._current_level / 100) * tot) - preset.text = string.format("[%s%s]", string.rep("|", int), - string.rep(" ", tot - int)) + preset.text = string.format( + "%s%s%s%s", + tick_pre, + string.rep(tick, int), + string.rep(tick_none, tot - int), + tick_post + ) if alsabar.followtag then preset.screen = awful.screen.focused() end