From adf4bc5e5cbe409ff343207be08d9304208301b1 Mon Sep 17 00:00:00 2001 From: Trevor Elliott Date: Wed, 16 Apr 2008 23:30:24 +0200 Subject: Script-based hooks darcs-hash:20080416213024-5b2f6-adc47e1fc23870c99aca6eccf962a23932bd1eb8.gz --- XMonad/Hooks/Script.hs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 XMonad/Hooks/Script.hs (limited to 'XMonad/Hooks/Script.hs') 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 +-- License : BSD3-style (see LICENSE) +-- +-- Maintainer : Trevor Elliott +-- 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) -- cgit v1.2.3