mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -07:00
add docksStartupHook for handling docks when restarted
This commit is contained in:
parent
f73eb1c938
commit
28e9f8bce7
@ -16,7 +16,7 @@ module XMonad.Hooks.ManageDocks (
|
||||
-- * Usage
|
||||
-- $usage
|
||||
manageDocks, checkDock, AvoidStruts, avoidStruts, avoidStrutsOn,
|
||||
docksEventHook,
|
||||
docksEventHook, docksStartupHook,
|
||||
ToggleStruts(..),
|
||||
SetStruts(..),
|
||||
module XMonad.Util.Types,
|
||||
@ -45,7 +45,7 @@ import Data.Functor((<$>))
|
||||
import qualified Data.Set as S
|
||||
import qualified Data.Map as M
|
||||
import Data.Maybe (fromMaybe, catMaybes)
|
||||
import Control.Monad (when)
|
||||
import Control.Monad (when, forM_, filterM)
|
||||
|
||||
-- $usage
|
||||
-- To use this module, add the following import to @~\/.xmonad\/xmonad.hs@:
|
||||
@ -146,6 +146,17 @@ docksEventHook (UnmapEvent {ev_window = w}) = do
|
||||
return (All True)
|
||||
docksEventHook _ = return (All True)
|
||||
|
||||
docksStartupHook :: X ()
|
||||
docksStartupHook = withDisplay $ \dpy -> do
|
||||
rootw <- asks theRoot
|
||||
(_,_,wins) <- io $ queryTree dpy rootw
|
||||
docks <- filterM (runQuery checkDock) wins
|
||||
forM_ docks $ \win -> do
|
||||
rstrut <- getRawStrut win
|
||||
broadcastMessage (UpdateDock rstrut)
|
||||
|
||||
refresh
|
||||
|
||||
getRawStrut :: Window -> X (Window, Maybe (Either [CLong] [CLong]))
|
||||
getRawStrut w = do
|
||||
msp <- fromMaybe [] <$> getProp32s "_NET_WM_STRUT_PARTIAL" w
|
||||
|
Loading…
x
Reference in New Issue
Block a user