mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 11:30:22 -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
|
||||||
-- $usage
|
-- $usage
|
||||||
manageDocks, checkDock, AvoidStruts, avoidStruts, avoidStrutsOn,
|
manageDocks, checkDock, AvoidStruts, avoidStruts, avoidStrutsOn,
|
||||||
docksEventHook,
|
docksEventHook, docksStartupHook,
|
||||||
ToggleStruts(..),
|
ToggleStruts(..),
|
||||||
SetStruts(..),
|
SetStruts(..),
|
||||||
module XMonad.Util.Types,
|
module XMonad.Util.Types,
|
||||||
@ -45,7 +45,7 @@ import Data.Functor((<$>))
|
|||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Maybe (fromMaybe, catMaybes)
|
import Data.Maybe (fromMaybe, catMaybes)
|
||||||
import Control.Monad (when)
|
import Control.Monad (when, forM_, filterM)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- To use this module, add the following import to @~\/.xmonad\/xmonad.hs@:
|
-- 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)
|
return (All True)
|
||||||
docksEventHook _ = 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 :: Window -> X (Window, Maybe (Either [CLong] [CLong]))
|
||||||
getRawStrut w = do
|
getRawStrut w = do
|
||||||
msp <- fromMaybe [] <$> getProp32s "_NET_WM_STRUT_PARTIAL" w
|
msp <- fromMaybe [] <$> getProp32s "_NET_WM_STRUT_PARTIAL" w
|
||||||
|
Loading…
x
Reference in New Issue
Block a user