mirror of https://github.com/lcpz/lain.git
alsa{bar}: togglechannel added (HDMI outputs)
This commit is contained in:
parent
0e37d220b7
commit
19b510cfc4
|
@ -26,14 +26,20 @@ local function worker(args)
|
|||
local timeout = args.timeout or 5
|
||||
local settings = args.settings or function() end
|
||||
|
||||
alsa.cmd = args.cmd or "amixer"
|
||||
alsa.channel = args.channel or "Master"
|
||||
alsa.widget = wibox.widget.textbox('')
|
||||
alsa.cmd = args.cmd or "amixer"
|
||||
alsa.channel = args.channel or "Master"
|
||||
alsa.togglechannel = args.togglechannel
|
||||
alsa.widget = wibox.widget.textbox('')
|
||||
|
||||
function alsa.update()
|
||||
mixer = read_pipe(string.format("%s get %s", alsa.cmd, alsa.channel))
|
||||
l,s = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
|
||||
|
||||
-- HDMIs can have a channel different from Master for toggling mute
|
||||
if alsa.togglechannel then
|
||||
s = string.match(read_pipe(string.format("%s get %s", alsa.cmd, alsa.togglechannel)), "%[(%a+)%]")
|
||||
end
|
||||
|
||||
if alsa.last_level ~= l or alsa.last_status ~= s then
|
||||
volume_now = { level = l, status = s }
|
||||
alsa.last_level = l
|
||||
|
|
|
@ -27,7 +27,7 @@ local setmetatable = setmetatable
|
|||
-- lain.widgets.alsabar
|
||||
local alsabar = {
|
||||
channel = "Master",
|
||||
step = "2%",
|
||||
step = "1%",
|
||||
|
||||
colors = {
|
||||
background = beautiful.bg_normal,
|
||||
|
@ -104,6 +104,7 @@ local function worker(args)
|
|||
|
||||
alsabar.cmd = args.cmd or "amixer"
|
||||
alsabar.channel = args.channel or alsabar.channel
|
||||
alsabar.togglechannel = args.togglechannel
|
||||
alsabar.step = args.step or alsabar.step
|
||||
alsabar.colors = args.colors or alsabar.colors
|
||||
alsabar.notifications = args.notifications or alsabar.notifications
|
||||
|
@ -127,6 +128,11 @@ local function worker(args)
|
|||
-- Capture mixer control state: [5%] ... ... [on]
|
||||
local volu, mute = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
|
||||
|
||||
-- HDMIs can have a channel different from Master for toggling mute
|
||||
if alsabar.togglechannel then
|
||||
mute = string.match(read_pipe(string.format("%s get %s", alsabar.cmd, alsabar.togglechannel)), "%[(%a+)%]")
|
||||
end
|
||||
|
||||
if (volu and tonumber(volu) ~= alsabar._current_level) or (mute and string.match(mute, "on") ~= alsabar._muted)
|
||||
then
|
||||
alsabar._current_level = tonumber(volu)
|
||||
|
|
2
wiki
2
wiki
|
@ -1 +1 @@
|
|||
Subproject commit 1bfbcb9581fb4f335b44a05e608dd759ea7552e1
|
||||
Subproject commit 0612d0161aa8ea65ddeba84ca47bf5a60777fe46
|
Loading…
Reference in New Issue