{alsa,pulse}bar: notification fixes and logic simplified

This commit is contained in:
Luke Bonham 2017-06-25 13:11:30 +02:00
parent 29dd7ad6fc
commit 56a603ef28
4 changed files with 33 additions and 33 deletions

View File

@ -10,11 +10,6 @@ Layouts, widgets and utilities for Awesome WM 4.x
:License: GNU-GPL2_
:Source: https://github.com/copycat-killer/lain
Warning
-------
If you still have to use branch 3.5.x, you can refer to the commit 301faf5_, but be aware that it's no longer supported.
Description
-----------
@ -47,7 +42,6 @@ Screenshots
.. image:: http://i.imgur.com/STCPcaJ.png
.. _GNU-GPL2: http://www.gnu.org/licenses/gpl-2.0.html
.. _301faf5: https://github.com/copycat-killer/lain/tree/301faf5370d045e94c9c344acb0fdac84a2f25a6
.. _awesome-vain: https://github.com/vain/awesome-vain
.. _Awesome: https://github.com/awesomeWM/awesome
.. _wiki: https://github.com/copycat-killer/lain/wiki

View File

@ -29,7 +29,7 @@ local function factory(args)
},
_current_level = 0,
_muted = false
_mute = "off"
}
local args = args or {}
@ -75,23 +75,27 @@ local function factory(args)
function alsabar.update(callback)
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 not volu or not mute then return end
if volu ~= alsabar._current_level or mute ~= alsabar._mute then
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
alsabar.tooltip:set_text ("[Muted]")
if alsabar._current_level == 0 or mute == "off" then
alsabar._mute = mute
alsabar.tooltip:set_text("[Muted]")
alsabar.bar.color = alsabar.colors.mute
else
alsabar._muted = false
alsabar._mute = "on"
alsabar.tooltip:set_text(string.format("%s: %s", alsabar.channel, volu))
alsabar.bar.color = alsabar.colors.unmute
end
volume_now = {}
volume_now.level = tonumber(volu)
volume_now.status = mute
volume_now = {
level = alsabar._current_level,
status = alsabar._mute
}
settings()
@ -104,7 +108,7 @@ local function factory(args)
alsabar.update(function()
local preset = alsabar.notification_preset
if alsabar._muted then
if alsabar._mute == "on" then
preset.title = string.format("%s - Muted", alsabar.channel)
else
preset.title = string.format("%s - %s%%", alsabar.channel, alsabar._current_level)

View File

@ -30,7 +30,7 @@ local function factory(args)
},
_current_level = 0,
_muted = false
_mute = "no",
}
local args = args or {}
@ -42,12 +42,12 @@ local function factory(args)
local ticks_size = args.ticks_size or 7
local scallback = args.scallback
pulsebar.cmd = args.cmd or "pacmd list-sinks | sed -n -e '0,/*/d' -e '/base volume/d' -e '/volume:/p' -e '/muted:/p' -e '/device\\.string/p'"
pulsebar.sink = args.sink or 0
pulsebar.colors = args.colors or pulsebar.colors
pulsebar.followtag = args.followtag or false
pulsebar.notifications = args.notification_preset
pulsebar.device = "N/A"
pulsebar.cmd = args.cmd or "pacmd list-sinks | sed -n -e '0,/*/d' -e '/base volume/d' -e '/volume:/p' -e '/muted:/p' -e '/device\\.string/p'"
pulsebar.sink = args.sink or 0
pulsebar.colors = args.colors or pulsebar.colors
pulsebar.followtag = args.followtag or false
pulsebar.notification_preset = args.notification_preset
pulsebar.device = "N/A"
if not pulsebar.notification_preset then
pulsebar.notification_preset = {}
@ -93,15 +93,17 @@ local function factory(args)
local volu = volume_now.left
local mute = volume_now.muted
if (volu and volu ~= pulsebar._current_level) or (mute and mute ~= pulsebar._muted) then
pulsebar._current_level = volu
if volu:match("N/A") or mute:match("N/A") then return end
if volu ~= pulsebar._current_level or mute ~= pulsebar._mute then
pulsebar._current_level = tonumber(volu)
pulsebar.bar:set_value(pulsebar._current_level / 100)
if (not mute and volu == 0) or mute == "yes" then
pulsebar._muted = true
if pulsebar._current_level == 0 or mute == "yes" then
pulsebar._mute = mute
pulsebar.tooltip:set_text ("[Muted]")
pulsebar.bar.color = pulsebar.colors.mute
else
pulsebar._muted = false
pulsebar._mute = "no"
pulsebar.tooltip:set_text(string.format("%s: %s", pulsebar.sink, volu))
pulsebar.bar.color = pulsebar.colors.unmute
end
@ -117,10 +119,10 @@ local function factory(args)
pulsebar.update(function()
local preset = pulsebar.notification_preset
if pulsebar._muted then
if pulsebar._mute == "yes" then
preset.title = string.format("Sink %s - Muted", pulsebar.sink)
else
preset.title = string.format("%s - %s%%", pulsebar.sink, pulsebar._current_level)
preset.title = string.format("Sink %s - %s%%", pulsebar.sink, pulsebar._current_level)
end
int = math.modf((pulsebar._current_level / 100) * awful.screen.focused().mywibox.height)

2
wiki

@ -1 +1 @@
Subproject commit 6e7fa1373fe54c6aed9a9dbbe226c62102e4c623
Subproject commit d92165bdd8782e1c076c26e7d86f99759f2d5bfd