diff --git a/lib/XMonad/Internal/Command/Desktop.hs b/lib/XMonad/Internal/Command/Desktop.hs index 933fb1c..d17db50 100644 --- a/lib/XMonad/Internal/Command/Desktop.hs +++ b/lib/XMonad/Internal/Command/Desktop.hs @@ -88,14 +88,17 @@ runNextTrack = spawnCmd myMultimediaCtl ["next"] runStopPlay :: X () runStopPlay = spawnCmd myMultimediaCtl ["stop"] +volumeChangeSound :: FilePath +volumeChangeSound = "smb_fireball.wav" + runVolumeDown :: X () -runVolumeDown = void (lowerVolume 2) +runVolumeDown = void (lowerVolume 2) >> spawnSound volumeChangeSound runVolumeUp :: X () -runVolumeUp = void (raiseVolume 2) +runVolumeUp = void (raiseVolume 2) >> spawnSound volumeChangeSound runVolumeMute :: X () -runVolumeMute = void toggleMute +runVolumeMute = void toggleMute >> spawnSound volumeChangeSound -------------------------------------------------------------------------------- -- | System commands diff --git a/lib/XMonad/Internal/Shell.hs b/lib/XMonad/Internal/Shell.hs index ed38666..1434643 100644 --- a/lib/XMonad/Internal/Shell.hs +++ b/lib/XMonad/Internal/Shell.hs @@ -4,12 +4,15 @@ module XMonad.Internal.Shell ( fmtCmd , spawnCmd + , spawnSound , (#!&&) , (#!||) , (#!>>) ) where -import XMonad.Core (X) +import System.FilePath.Posix + +import XMonad.Core (X, getXMonadDir) import XMonad.Internal.Process -------------------------------------------------------------------------------- @@ -18,6 +21,17 @@ import XMonad.Internal.Process spawnCmd :: String -> [String] -> X () spawnCmd cmd args = spawn $ fmtCmd cmd args +-------------------------------------------------------------------------------- +-- | Playing sound + +soundDir :: FilePath +soundDir = "sound" + +spawnSound :: FilePath -> X () +spawnSound file = do + path <- ( soundDir file) <$> getXMonadDir + spawnCmd "aplay" [path] + -------------------------------------------------------------------------------- -- | Formatting commands diff --git a/sound/smb_fireball.wav b/sound/smb_fireball.wav new file mode 100644 index 0000000..56ed57f Binary files /dev/null and b/sound/smb_fireball.wav differ