Closed basiliscos closed 1 year ago
This was proposed as a separate widget in #534, which resulted in a simple watch
recipe: https://github.com/awesomeWM/awesome-www/pull/167
Does that satisfy your use case?
I think it does. Closing for inactivity. Feel free to comment back if you want to resume the conversation.
Hi, thank you for the advice. It would be nice to have something like that integrated into lain
to let it work transparently, independently from puplse/pipewire.
Here is my custom widget, which might be useful for somebody
-- pipewire
local volume = wibox.widget{
markup = '[?]',
align = 'center',
valign = 'center',
widget = wibox.widget.textbox
}
local volume_update = function()
local cmd = [[pactl get-sink-volume @DEFAULT_SINK@ | cut -s -d/ -f2,4; pactl get-sink-mute @DEFAULT_SINK@]]
awful.spawn.easy_async_with_shell(cmd, function(stdout, stderr, reason, exit_code)
local values = {}
for v in stdout:gmatch("(%d+%%)") do table.insert(values, v) end
local value = "N/A";
if ((#values == 2) and (values[1] == values[2])) then value = values[1] end
if (#values == 1) then value = values[1] end
local muted = string.find(stdout, "Mute: yes")
local color = muted and '#FF0000' or '#00FFFF'
volume.markup = string.format("[%s] ", markup.fg.color(color, value))
end)
end
local volume_timer = gears.timer {
timeout = 5,
call_now = true,
autostart = true,
callback = volume_update
}
Thank you for sharing your custom recipe.
It would be nice to have something like that integrated into
lain
to let it work transparently, independently from puplse/pipewire.
To satisfy your request, we could simply add a check, and then switch between the standard widget, or a variant similar to your recipe.
But this would create a catch-them-all approach, which goes against the simplicity principle I try to follow.
This is the rationale behind removing some lain widgets in favor of recipes, which are more maintainable.
My suggestion: if you have to switch between pulse
and pipewire
, then it's easy to implement the logic above in your configurations.
Otherwise, just use the widget you need.
I also tried a "pipewire bar" widget like the alsabar and pulsebar here.
pipewire has pulse simulation layer via
pipewire-pulse
program, but, unfortunatelypacmd
reports:while
pactl
works fine: