-- | Utils to use to control volume via amixer
module XMonad.Util.Volume ( toggleMute
                          , raiseVolume
                          , lowerVolume
                          ) where

import           XMonad

vol :: String -> X ()
vol = spawn . (++) "amixer -D pulse sset Master "

-- | Mute/unmute within the `X` Monad.
toggleMute :: X ()
toggleMute = vol "toggle"

-- | Raise volume
raiseVolume :: (Integral a, Show a) => a -> X ()
raiseVolume n = vol $ show n ++ "%+"

-- | Lower volume
lowerVolume :: (Integral a, Show a) => a -> X ()
lowerVolume n = vol $ show n ++ "%-"