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, and paths are not exist will be ignored during scan phase. For more information about path expansion, see also 'expand'. -} setRandomWallpaper filepaths = do rootPaths <- mapM expand filepaths candidates <- findImages rootPaths wallpaper <- ((!!) candidates) <$> getStdRandom (randomR (0, length candidates - 1)) spawn $ "feh --bg-scale " ++ wallpaper