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 timeout = args.timeout or 5
|
||||||
local settings = args.settings or function() end
|
local settings = args.settings or function() end
|
||||||
|
|
||||||
alsa.cmd = args.cmd or "amixer"
|
alsa.cmd = args.cmd or "amixer"
|
||||||
alsa.channel = args.channel or "Master"
|
alsa.channel = args.channel or "Master"
|
||||||
alsa.widget = wibox.widget.textbox('')
|
alsa.togglechannel = args.togglechannel
|
||||||
|
alsa.widget = wibox.widget.textbox('')
|
||||||
|
|
||||||
function alsa.update()
|
function alsa.update()
|
||||||
mixer = read_pipe(string.format("%s get %s", alsa.cmd, alsa.channel))
|
mixer = read_pipe(string.format("%s get %s", alsa.cmd, alsa.channel))
|
||||||
l,s = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
|
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
|
if alsa.last_level ~= l or alsa.last_status ~= s then
|
||||||
volume_now = { level = l, status = s }
|
volume_now = { level = l, status = s }
|
||||||
alsa.last_level = l
|
alsa.last_level = l
|
||||||
|
|
|
@ -27,7 +27,7 @@ local setmetatable = setmetatable
|
||||||
-- lain.widgets.alsabar
|
-- lain.widgets.alsabar
|
||||||
local alsabar = {
|
local alsabar = {
|
||||||
channel = "Master",
|
channel = "Master",
|
||||||
step = "2%",
|
step = "1%",
|
||||||
|
|
||||||
colors = {
|
colors = {
|
||||||
background = beautiful.bg_normal,
|
background = beautiful.bg_normal,
|
||||||
|
@ -104,6 +104,7 @@ local function worker(args)
|
||||||
|
|
||||||
alsabar.cmd = args.cmd or "amixer"
|
alsabar.cmd = args.cmd or "amixer"
|
||||||
alsabar.channel = args.channel or alsabar.channel
|
alsabar.channel = args.channel or alsabar.channel
|
||||||
|
alsabar.togglechannel = args.togglechannel
|
||||||
alsabar.step = args.step or alsabar.step
|
alsabar.step = args.step or alsabar.step
|
||||||
alsabar.colors = args.colors or alsabar.colors
|
alsabar.colors = args.colors or alsabar.colors
|
||||||
alsabar.notifications = args.notifications or alsabar.notifications
|
alsabar.notifications = args.notifications or alsabar.notifications
|
||||||
|
@ -127,6 +128,11 @@ local function worker(args)
|
||||||
-- Capture mixer control state: [5%] ... ... [on]
|
-- Capture mixer control state: [5%] ... ... [on]
|
||||||
local volu, mute = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
|
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)
|
if (volu and tonumber(volu) ~= alsabar._current_level) or (mute and string.match(mute, "on") ~= alsabar._muted)
|
||||||
then
|
then
|
||||||
alsabar._current_level = tonumber(volu)
|
alsabar._current_level = tonumber(volu)
|
||||||
|
|
2
wiki
2
wiki
|
@ -1 +1 @@
|
||||||
Subproject commit 1bfbcb9581fb4f335b44a05e608dd759ea7552e1
|
Subproject commit 0612d0161aa8ea65ddeba84ca47bf5a60777fe46
|
Loading…
Reference in New Issue