diff options
author | Brent Yorgey <byorgey@gmail.com> | 2008-02-04 20:24:45 +0100 |
---|---|---|
committer | Brent Yorgey <byorgey@gmail.com> | 2008-02-04 20:24:45 +0100 |
commit | d81c930991f6229fba9c6ae015b68d411ce594af (patch) | |
tree | fc7aa74ccbcb47b52a2811da0ef88235637cae2b /XMonad | |
parent | 27777de6f100ab09b8df2f50323b0b22fb2f4afc (diff) | |
download | metatile-d81c930991f6229fba9c6ae015b68d411ce594af.tar metatile-d81c930991f6229fba9c6ae015b68d411ce594af.zip |
Add a startupHook.
The only thing I am not sure about here is at what exact point the
startupHook should get run. I picked a place that seems to make sense:
as late as possible, right before entering the main loop. That way all
the layouts/workspaces/other state are set up and the startupHook can
manipulate them.
darcs-hash:20080204192445-bd4d7-218d69dcf3cd5c5f2962859cf847595527399807
Diffstat (limited to 'XMonad')
-rw-r--r-- | XMonad/Config.hs | 9 | ||||
-rw-r--r-- | XMonad/Core.hs | 1 | ||||
-rw-r--r-- | XMonad/Main.hs | 2 |
3 files changed, 10 insertions, 2 deletions
diff --git a/XMonad/Config.hs b/XMonad/Config.hs index 677248d..98ec02a 100644 --- a/XMonad/Config.hs +++ b/XMonad/Config.hs @@ -25,11 +25,11 @@ module XMonad.Config (defaultConfig) where -- Useful imports -- import XMonad.Core as XMonad hiding - (workspaces,manageHook,numlockMask,keys,logHook,borderWidth,mouseBindings + (workspaces,manageHook,numlockMask,keys,logHook,startupHook,borderWidth,mouseBindings ,defaultGaps,layoutHook,modMask,terminal,normalBorderColor,focusedBorderColor ,focusFollowsMouse) import qualified XMonad.Core as XMonad - (workspaces,manageHook,numlockMask,keys,logHook,borderWidth,mouseBindings + (workspaces,manageHook,numlockMask,keys,logHook,startupHook,borderWidth,mouseBindings ,defaultGaps,layoutHook,modMask,terminal,normalBorderColor,focusedBorderColor ,focusFollowsMouse) @@ -134,6 +134,10 @@ manageHook = composeAll logHook :: X () logHook = return () +-- | Perform an arbitrary action at xmonad startup. +startupHook :: X () +startupHook = return () + ------------------------------------------------------------------------ -- Extensible layouts -- @@ -256,6 +260,7 @@ defaultConfig = XConfig , XMonad.modMask = defaultModMask , XMonad.keys = keys , XMonad.logHook = logHook + , XMonad.startupHook = startupHook , XMonad.mouseBindings = mouseBindings , XMonad.manageHook = manageHook , XMonad.focusFollowsMouse = focusFollowsMouse } diff --git a/XMonad/Core.hs b/XMonad/Core.hs index ea84bd6..89e6ab2 100644 --- a/XMonad/Core.hs +++ b/XMonad/Core.hs @@ -88,6 +88,7 @@ data XConfig l = XConfig -- ^ The mouse bindings , borderWidth :: !Dimension -- ^ The border width , logHook :: !(X ()) -- ^ The action to perform when the windows set is changed + , startupHook :: !(X ()) -- ^ The action to perform on startup , focusFollowsMouse :: !Bool -- ^ Whether window entry events can change focus } diff --git a/XMonad/Main.hs b/XMonad/Main.hs index 7557ad6..405caec 100644 --- a/XMonad/Main.hs +++ b/XMonad/Main.hs @@ -116,6 +116,8 @@ xmonad initxmc = do -- manage the as-yet-unmanaged windows mapM_ manage (ws \\ W.allWindows winset) + startupHook initxmc + -- main loop, for all you HOF/recursion fans out there. forever_ $ handle =<< io (nextEvent dpy e >> getEvent e) |