From 683b9ac521a32a662c86f3f607fdd6d4e51f7a95 Mon Sep 17 00:00:00 2001 From: Jan Vornberger Date: Wed, 2 Jun 2010 23:50:48 +0200 Subject: PositionStoreHook: take docks into account Ignore-this: 6ffa63f22e9b511a9d28bc1c04195a08 darcs-hash:20100602215048-594c5-43fa479fd3dd4b34dbc38097d2f8540a0b7ebe89.gz --- XMonad/Hooks/PositionStoreHooks.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'XMonad/Hooks/PositionStoreHooks.hs') diff --git a/XMonad/Hooks/PositionStoreHooks.hs b/XMonad/Hooks/PositionStoreHooks.hs index 484a2cb..0f96b83 100644 --- a/XMonad/Hooks/PositionStoreHooks.hs +++ b/XMonad/Hooks/PositionStoreHooks.hs @@ -37,12 +37,14 @@ import XMonad import qualified XMonad.StackSet as W import XMonad.Util.PositionStore import XMonad.Util.XUtils (fi) +import XMonad.Hooks.ManageDocks import System.Random(randomRIO) import Control.Applicative((<$>)) import Control.Monad(when) import Data.Maybe import Data.Monoid +import qualified Data.Set as S -- $usage -- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@: @@ -80,9 +82,12 @@ positionStoreInit w = withDisplay $ \d -> do else do sc <- fromMaybe (W.current ws) <$> pointScreen (fi $ wa_x wa) (fi $ wa_y wa) let sr = screenRect . W.screenDetail $ sc + sr' <- fmap ($ sr) (calcGap $ S.fromList [minBound .. maxBound]) -- take docks into account, accepting + -- a somewhat unfortunate inter-dependency + -- with 'XMonad.Hooks.ManageDocks' modifyPosStore (\ps -> posStoreInsert ps w (Rectangle (fi $ wa_x wa) (fi $ wa_y wa) - (fi $ wa_width wa) (fi $ wa_height wa)) sr ) + (fi $ wa_width wa) (fi $ wa_height wa)) sr' ) where randomIntOffset :: X (Int) randomIntOffset = io $ randomRIO (42, 242) -- cgit v1.2.3