]> 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:

#290 forgot fs
[etc/awesome.git] / widgets / alsabar.lua
index fde5eec5e5a9a9b67dd6f79142fec98b36c415b0..90c60b4e254abda5dd029f35cae1b10df4f0d2aa 100644 (file)
@@ -47,16 +47,17 @@ local function worker(args)
     alsabar.togglechannel       = args.togglechannel
     alsabar.colors              = args.colors or alsabar.colors
     alsabar.followtag           = args.followtag or false
     alsabar.togglechannel       = args.togglechannel
     alsabar.colors              = args.colors or alsabar.colors
     alsabar.followtag           = args.followtag or false
-    alsabar._notify             = args.notify or "on"
     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
 
@@ -76,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
@@ -118,16 +119,19 @@ 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)
+                naughty.reset_timeout(alsabar.notification, preset.timeout)
+            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