]> git.madduck.net Git - etc/awesome.git/blobdiff - widgets/alsabar.lua

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

layouts: geometry computation aligned to v4.0 API; fixes #267
[etc/awesome.git] / widgets / alsabar.lua
index 219ad96a1a8babfdc39d2eb5e11ca6711ba7797b..628e8386fd527ccec7729cd9d08943116a7ddac4 100644 (file)
@@ -50,12 +50,14 @@ local function worker(args)
     alsabar.notification_preset = args.notification_preset
 
     if not alsabar.notification_preset then
     alsabar.notification_preset = args.notification_preset
 
     if not alsabar.notification_preset then
-        alsabar.notification_preset      = naughty.config.defaults
-        alsabar.notification_preset.font = "Monospace 11"
+        alsabar.notification_preset      = {}
+        alsabar.notification_preset.font = "Monospace 10"
     end
 
     end
 
+    local format_cmd = string.format("%s get %s", alsabar.cmd, alsabar.channel)
+
     if alsabar.togglechannel then
     if alsabar.togglechannel then
-        alsabar.cmd = { awful.util.shell, "-c", string.format("%s get %s; %s get %s",
+        format_cmd = { awful.util.shell, "-c", string.format("%s get %s; %s get %s",
         alsabar.cmd, alsabar.channel, alsabar.cmd, alsabar.togglechannel) }
     end
 
         alsabar.cmd, alsabar.channel, alsabar.cmd, alsabar.togglechannel) }
     end
 
@@ -75,7 +77,7 @@ local function worker(args)
     alsabar.tooltip = awful.tooltip({ objects = { alsabar.bar } })
 
     function alsabar.update(callback)
     alsabar.tooltip = awful.tooltip({ objects = { alsabar.bar } })
 
     function alsabar.update(callback)
-        helpers.async(alsabar.cmd, function(mixer)
+        helpers.async(format_cmd, function(mixer)
             local volu,mute = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
             if (volu and tonumber(volu) ~= alsabar._current_level) or (mute and string.match(mute, "on") ~= alsabar._muted) then
                 alsabar._current_level = tonumber(volu) or alsabar._current_level
             local volu,mute = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
             if (volu and tonumber(volu) ~= alsabar._current_level) or (mute and string.match(mute, "on") ~= alsabar._muted) then
                 alsabar._current_level = tonumber(volu) or alsabar._current_level
@@ -117,16 +119,18 @@ local function worker(args)
 
             if alsabar.followtag then preset.screen = awful.screen.focused() end
 
 
             if alsabar.followtag then preset.screen = awful.screen.focused() end
 
-            alsabar.id = naughty.notify ({
-                replaces_id = alsabar.id,
-                preset      = preset
-            }).id
+            if not alsabar.notification then
+                alsabar.notification = naughty.notify {
+                    preset  = preset,
+                    destroy = function() alsabar.notification = nil end
+                }
+            else
+                naughty.replace_text(alsabar.notification, preset.title, preset.text)
+            end
         end)
     end
 
         end)
     end
 
-    timer_id = string.format("alsabar-%s-%s", alsabar.cmd, alsabar.channel)
-
-    helpers.newtimer(timer_id, timeout, alsabar.update)
+    helpers.newtimer(string.format("alsabar-%s-%s", alsabar.cmd, alsabar.channel), timeout, alsabar.update)
 
     return alsabar
 end
 
     return alsabar
 end