|
|
@ -1,9 +1,13 @@ |
|
|
|
-- |
|
|
|
-- Control playing music/media and sound volume |
|
|
|
-- Currently supports : |
|
|
|
-- - playerctl |
|
|
|
-- - Spotify |
|
|
|
-- |
|
|
|
|
|
|
|
-- |
|
|
|
-- DEBUG |
|
|
|
-- |
|
|
|
local inspect = require("debug/inspect") |
|
|
|
|
|
|
|
local awful = require("awful") |
|
|
@ -34,6 +38,7 @@ function getVolume() |
|
|
|
handle:close() |
|
|
|
return volume |
|
|
|
end |
|
|
|
|
|
|
|
function isMuted() |
|
|
|
local handle = io.popen("amixer -D pulse sget Master | awk -F\"[][]\" '/[onf]{2,3}/ { print $4 }' | head -n -1", "r") |
|
|
|
local muted = string.gsub(handle:read("*a"), "[\n]+", "") == "off" |
|
|
@ -56,7 +61,7 @@ function getVolumeImage(volume) |
|
|
|
end |
|
|
|
|
|
|
|
local volumeWibox = wibox({ |
|
|
|
ontop=true, |
|
|
|
ontop = true, |
|
|
|
bg = beautiful.volume_osd_bg, |
|
|
|
border_width = beautiful.volume_osd_border_width, |
|
|
|
border_color = beautiful.volume_osd_border_color, |
|
|
@ -152,7 +157,7 @@ local displayVolume = function() |
|
|
|
end |
|
|
|
timer = gears.timer { |
|
|
|
timeout = config.volume_osd_timeout, |
|
|
|
callback = function() |
|
|
|
callback = function() |
|
|
|
volumeWibox.visible = false |
|
|
|
timer:stop() |
|
|
|
timer = nil |
|
|
@ -175,11 +180,25 @@ local toggleMute = function() |
|
|
|
end |
|
|
|
-- }}} |
|
|
|
|
|
|
|
function getKeys(config) |
|
|
|
return |
|
|
|
-- Volume control |
|
|
|
config.raiseVolume ~= nil and awful.key({}, config.raiseVolume, raiseVolume, |
|
|
|
{ description = "Raise volume", group = "media control" }) or nil, |
|
|
|
config.lowerVolume ~= nil and awful.key({}, config.lowerVolume, lowerVolume, |
|
|
|
{ description = "Lower volume", group = "media control" }) or nil, |
|
|
|
config.toggleMute ~= nil and awful.key({}, config.toggleMute, toggleMute, |
|
|
|
{ description = "Toggle mute audio", group = "media control" }) or nil, |
|
|
|
|
|
|
|
-- Media control |
|
|
|
config.playPause ~= nil and awful.key({}, config.playPause, playPause, |
|
|
|
{ description = "Toggle Play / Pause", group = "media control" }) or nil, |
|
|
|
config.nextTrack ~= nil and awful.key({}, config.nextTrack, nextTrack, |
|
|
|
{ description = "Next track", group = "media control" }) or nil, |
|
|
|
config.previousTrack ~= nil and awful.key({}, config.previousTrack, previousTrack, |
|
|
|
{ description = "Previous track", group = "media control" }) or nil |
|
|
|
end |
|
|
|
|
|
|
|
return { |
|
|
|
playPause = playPause, |
|
|
|
nextTrack = nextTrack, |
|
|
|
previousTrack = previousTrack, |
|
|
|
raiseVolume = raiseVolume, |
|
|
|
lowerVolume = lowerVolume, |
|
|
|
toggleMute = toggleMute |
|
|
|
getKeys = getKeys, |
|
|
|
} |