mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-05 22:51:52 -07:00
PositionStoreHook: take docks into account
This commit is contained in:
@@ -37,12 +37,14 @@ import XMonad
|
|||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Util.PositionStore
|
import XMonad.Util.PositionStore
|
||||||
import XMonad.Util.XUtils (fi)
|
import XMonad.Util.XUtils (fi)
|
||||||
|
import XMonad.Hooks.ManageDocks
|
||||||
|
|
||||||
import System.Random(randomRIO)
|
import System.Random(randomRIO)
|
||||||
import Control.Applicative((<$>))
|
import Control.Applicative((<$>))
|
||||||
import Control.Monad(when)
|
import Control.Monad(when)
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.Monoid
|
import Data.Monoid
|
||||||
|
import qualified Data.Set as S
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
@@ -80,9 +82,12 @@ positionStoreInit w = withDisplay $ \d -> do
|
|||||||
else do
|
else do
|
||||||
sc <- fromMaybe (W.current ws) <$> pointScreen (fi $ wa_x wa) (fi $ wa_y wa)
|
sc <- fromMaybe (W.current ws) <$> pointScreen (fi $ wa_x wa) (fi $ wa_y wa)
|
||||||
let sr = screenRect . W.screenDetail $ sc
|
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
|
modifyPosStore (\ps -> posStoreInsert ps w
|
||||||
(Rectangle (fi $ wa_x wa) (fi $ wa_y wa)
|
(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
|
where
|
||||||
randomIntOffset :: X (Int)
|
randomIntOffset :: X (Int)
|
||||||
randomIntOffset = io $ randomRIO (42, 242)
|
randomIntOffset = io $ randomRIO (42, 242)
|
||||||
|
Reference in New Issue
Block a user