diff options
Diffstat (limited to 'XMonad/Hooks/Script.hs')
-rw-r--r-- | XMonad/Hooks/Script.hs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/XMonad/Hooks/Script.hs b/XMonad/Hooks/Script.hs new file mode 100644 index 0000000..d9a4ee1 --- /dev/null +++ b/XMonad/Hooks/Script.hs @@ -0,0 +1,54 @@ +----------------------------------------------------------------------------- +-- | +-- Module : XMonad.Hooks.Script +-- Copyright : (c) Trevor Elliott <trevor@galois.com> +-- License : BSD3-style (see LICENSE) +-- +-- Maintainer : Trevor Elliott <trevor@galois.com> +-- Stability : unstable +-- Portability : unportable +-- +-- Provides a simple interface for running a ~/.xmonad/hooks script with the +-- name of a hook. +-- +----------------------------------------------------------------------------- + +module XMonad.Hooks.Script ( + -- * Usage + -- $usage + + -- * Script Hook Interface + execScriptHook + ) where + +-- +-- Useful Imports +-- +import XMonad + +import Control.Monad.Trans +import System.Directory + +-- $usage +-- +-- This module allows you to run a centrally located script with the text +-- name of a hook. The script is assumed to be located at @~\/.xmonad\/hooks@. +-- +-- For example, if you wanted to run the hook "startup" in your script every +-- time your startup hook ran, you could modify your xmonad config as such: +-- +-- > main = xmonad $ defaultConfig { +-- > ... +-- > startupHook = execScriptHook "startup" +-- > ... +-- > } +-- +-- Now, everytime the startup hook runs, the command "~\/.xmonad/hooks startup" +-- will also. + +-- | Execute a named script hook +execScriptHook :: MonadIO m => String -> m () +execScriptHook hook = io $ do + home <- getHomeDirectory + let script = home ++ "/.xmonad/hooks " + spawn (script ++ hook) |