X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/cf2c44249973125a51c370311e7361d9c1e84771..741b65d5eac36c8800610c2bad62ebd621998cc8:/widgets/pulsebar.lua

diff --git a/widgets/pulsebar.lua b/widgets/pulsebar.lua
index 9bac521..bacd969 100644
--- a/widgets/pulsebar.lua
+++ b/widgets/pulsebar.lua
@@ -24,7 +24,7 @@ local tonumber     = tonumber
 
 local setmetatable = setmetatable
 
--- ALSA volume bar
+-- Pulseaudio volume bar
 -- lain.widgets.pulsebar
 local pulsebar = {
     sink = 0,
@@ -41,9 +41,7 @@ local pulsebar = {
     notifications = {
         font      = beautiful.font:sub(beautiful.font:find(""), beautiful.font:find(" ")),
         font_size = "11",
-        color     = beautiful.fg_normal,
-        bar_size  = 18,
-        screen    = 1
+        color     = beautiful.fg_normal
     },
 
     _current_level = 0,
@@ -57,27 +55,24 @@ function pulsebar.notify()
         title   = "",
         text    = "",
         timeout = 5,
-        screen  = pulsebar.notifications.screen,
-        font    = pulsebar.notifications.font .. " " ..
-                  pulsebar.notifications.font_size,
+        font    = string.format("%s %s", pulsebar.notifications.font,
+                  pulsebar.notifications.font_size),
         fg      = pulsebar.notifications.color
     }
 
     if pulsebar._muted
     then
-        preset.title = "Sink " .. pulsebar.sink .. " - Muted"
+        preset.title = string.format("Sink %s - Muted", pulsebar.sink)
     else
-        preset.title = "Sink " .. pulsebar.sink .. " - " .. pulsebar._current_level .. "%"
+        preset.title = string.format("%s - %s%%", pulsebar.sink, pulsebar._current_level)
     end
 
-    int = math.modf((pulsebar._current_level / 100) * pulsebar.notifications.bar_size)
-    preset.text = "["
-                .. string.rep("|", int)
-                .. string.rep(" ", pulsebar.notifications.bar_size - int)
-                .. "]"
+    int = math.modf((pulsebar._current_level / 100) * awful.screen.focused().mywibox.height)
+    preset.text = string.format("[%s%s]", string.rep("|", int),
+                  string.rep(" ", awful.screen.focused().mywibox.height - int))
 
-    if pulsebar.followmouse then
-        preset.screen = mouse.screen
+    if pulsebar.followtag then
+        preset.screen = awful.screen.focused()
     end
 
     if pulsebar._notify ~= nil then
@@ -108,18 +103,22 @@ local function worker(args)
     pulsebar.notifications = args.notifications or pulsebar.notifications
     pulsebar.sink          = args.sink or 0
     pulsebar.step          = args.step or pulsebar.step
-    pulsebar.followmouse   = args.followmouse or false
-
-    pulsebar.bar = wibox.widget.progressbar()
+    pulsebar.followtag   = args.followtag or false
+
+    pulsebar.bar = wibox.widget {
+        forced_height    = height,
+        forced_width     = width,
+        color            = pulsebar.colors.unmute,
+        background_color = pulsebar.colors.background,
+        margins          = 1,
+        paddings         = 1,
+        ticks            = ticks,
+        ticks_size       = ticks_size,
+        widget           = wibox.widget.progressbar,
+        layout           = vertical and wibox.container.rotate
+    }
 
-    pulsebar.bar:set_background_color(pulsebar.colors.background)
-    pulsebar.bar:set_color(pulsebar.colors.unmute)
     pulsebar.tooltip = awful.tooltip({ objects = { pulsebar.bar } })
-    pulsebar.bar:set_width(width)
-    pulsebar.bar:set_height(height)
-    pulsebar.bar:set_ticks(ticks)
-    pulsebar.bar:set_ticks_size(ticks_size)
-    pulsebar.bar:set_vertical(vertical)
 
     function pulsebar.update()
         if scallback then pulseaudio.cmd = scallback() end
@@ -137,15 +136,15 @@ local function worker(args)
         then
             pulsebar._current_level = volu
             pulsebar.bar:set_value(pulsebar._current_level / 100)
-            if not mute and volu == 0 or mute == "yes"
+            if (not mute and volu == 0) or mute == "yes"
             then
                 pulsebar._muted = true
-                pulsebar.tooltip:set_text (" [Muted] ")
-                pulsebar.bar:set_color(pulsebar.colors.mute)
+                pulsebar.tooltip:set_text ("[Muted]")
+                pulsebar.bar.color = pulsebar.colors.mute
             else
                 pulsebar._muted = false
-                pulsebar.tooltip:set_text(string.format(" %s:%s ", pulsebar.sink, volu))
-                pulsebar.bar:set_color(pulsebar.colors.unmute)
+                pulsebar.tooltip:set_text(string.format("%s: %s", pulsebar.sink, volu))
+                pulsebar.bar.color = pulsebar.colors.unmute
             end
             settings()
         end