module XMonad.Wallpaper where

import XMonad.Core
import XMonad.Wallpaper.Find
import XMonad.Wallpaper.Expand

import Control.Applicative
import System.Random

{- |
Example usage: (~/.xmonad/xmonad.hs)

> import XMonad
> import XMonad.Config.Desktop
> import XMonad.Wallpaper
> main = do
>     setRandomWallpaper ["paths-of-your choice", "$HOME/Pictures/Wallpapers"]
>     xmonad $ desktopConfig
>        { terminal    = "urxvt"
>        , modMask     = mod4Mask
>        }

Paths will be expanded using environment variables. 
The following syntax are supported:

> epxand $HOME/Pictures
\/home\/user/Pictures

> expand ${HOME}ABC
\/home\/userABC

-}

setRandomWallpaper filepaths = do
    rootPaths  <- mapM expand filepaths
    candidates <- findImages rootPaths
    wallpaper  <- ((!!) candidates) <$> getStdRandom (randomR (0, length candidates - 1)) 
    spawn $ "feh --bg-scale " ++ wallpaper