X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/724eaa3ad77cab7f229c405d046dcebeab6552ab..e1450f8828c1be4e290cec0a34538ebe6cb86b50:/widgets/alsabar.lua?ds=sidebyside

diff --git a/widgets/alsabar.lua b/widgets/alsabar.lua
index 96d57b0..1421975 100644
--- a/widgets/alsabar.lua
+++ b/widgets/alsabar.lua
@@ -25,8 +25,9 @@ local setmetatable = setmetatable
 -- ALSA volume bar
 -- lain.widgets.alsabar
 local alsabar = {
+    card    = "0",
     channel = "Master",
-    step    = "5%",
+    step    = "2%",
 
     colors = {
         background = beautiful.bg_normal,
@@ -41,7 +42,8 @@ local alsabar = {
         font      = beautiful.font:sub(beautiful.font:find(""), beautiful.font:find(" ")),
         font_size = "11",
         color     = beautiful.fg_normal,
-        bar_size  = 18
+        bar_size  = 18,
+        screen    = 1
     },
 
     _current_level = 0,
@@ -55,6 +57,7 @@ function alsabar.notify()
         title   = "",
         text    = "",
         timeout = 4,
+        screen  = alsabar.notifications.screen,
         font    = alsabar.notifications.font .. " " ..
                   alsabar.notifications.font_size,
         fg      = alsabar.notifications.color
@@ -86,18 +89,19 @@ function alsabar.notify()
 end
 
 local function worker(args)
-    local args = args or {}
-    local timeout = args.timeout or 4
-    local settings = args.settings or function() end
-    local width = args.width or 63
-    local height = args.heigth or 1
-    local ticks = args.ticks or false
+    local args       = args or {}
+    local timeout    = args.timeout or 4
+    local settings   = args.settings or function() end
+    local width      = args.width or 63
+    local height     = args.heigth or 1
+    local ticks      = args.ticks or false
     local ticks_size = args.ticks_size or 7
-    local vertical = args.vertical or false
+    local vertical   = args.vertical or false
 
-    alsabar.channel = args.channel or alsabar.channel
-    alsabar.step = args.step or alsabar.step
-    alsabar.colors = args.colors or alsabar.colors
+    alsabar.cmd           = args.cmd or "amixer"
+    alsabar.channel       = args.channel or alsabar.channel
+    alsabar.step          = args.step or alsabar.step
+    alsabar.colors        = args.colors or alsabar.colors
     alsabar.notifications = args.notifications or alsabar.notifications
 
     alsabar.bar = awful.widget.progressbar()
@@ -113,7 +117,7 @@ local function worker(args)
 
     function alsabar.update()
         -- Get mixer control contents
-        local f = io.popen("amixer -M get " .. alsabar.channel)
+        local f = assert(io.popen(string.format("%s get %s", alsabar.cmd, alsabar.channel)))
         local mixer = f:read("*a")
         f:close()
 
@@ -127,7 +131,6 @@ local function worker(args)
 
         alsabar._current_level = tonumber(volu)
         alsabar.bar:set_value(alsabar._current_level / 100)
-
         if not mute and tonumber(volu) == 0 or mute == "off"
         then
             alsabar._muted = true
@@ -152,15 +155,15 @@ local function worker(args)
             awful.util.spawn(alsabar.mixer)
           end),
           awful.button ({}, 3, function()
-            awful.util.spawn(string.format("amixer set %s toggle", alsabar.channel))
+            awful.util.spawn(string.format("amixer -c %s set %s toggle", alsabar.card, alsabar.channel))
             alsabar.update()
           end),
           awful.button ({}, 4, function()
-            awful.util.spawn(string.format("amixer set %s %s+", alsabar.channel, alsabar.step))
+            awful.util.spawn(string.format("amixer -c %s set %s %s+", alsabar.card, alsabar.channel, alsabar.step))
             alsabar.update()
           end),
           awful.button ({}, 5, function()
-            awful.util.spawn(string.format("amixer set %s %s-", alsabar.channel, alsabar.step))
+            awful.util.spawn(string.format("amixer -c %s set %s %s-", alsabar.card, alsabar.channel, alsabar.step))
             alsabar.update()
           end)
     ))