summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Config.hs4
-rw-r--r--Config.hs-boot2
-rw-r--r--Operations.hs5
3 files changed, 8 insertions, 3 deletions
diff --git a/Config.hs b/Config.hs
index 1bf6445..4697d46 100644
--- a/Config.hs
+++ b/Config.hs
@@ -63,7 +63,9 @@ modMask = mod1Mask
defaultGaps :: [(Int,Int,Int,Int)]
defaultGaps = [(0,0,0,0)] -- 15 for default dzen
-manageHook :: Window -> ClassHint -> X (WindowSet -> WindowSet)
+-- | manageHook. Execute arbitrary actions and WindowSet manipulations when
+-- managing a new window.
+manageHook :: Window -> (String, String, String) -> X (WindowSet -> WindowSet)
manageHook _ _ = return id
-- |
diff --git a/Config.hs-boot b/Config.hs-boot
index 7c364c2..f9d8ecd 100644
--- a/Config.hs-boot
+++ b/Config.hs-boot
@@ -8,4 +8,4 @@ logHook :: X ()
numlockMask :: KeyMask
workspaces :: [WorkspaceId]
possibleLayouts :: [SomeLayout Window]
-manageHook :: Window -> ClassHint -> X (WindowSet -> WindowSet)
+manageHook :: Window -> (String, String, String) -> X (WindowSet -> WindowSet)
diff --git a/Operations.hs b/Operations.hs
index 41ee9c2..69a28a6 100644
--- a/Operations.hs
+++ b/Operations.hs
@@ -63,7 +63,10 @@ manage w = whenX (fmap not $ isClient w) $ withDisplay $ \d -> do
f ws | isFixedSize || isTransient = W.float w (adjust rr) . W.insertUp w . W.view i $ ws
| otherwise = W.insertUp w ws
where i = fromMaybe (W.tag . W.workspace . W.current $ ws) $ W.lookupWorkspace sc ws
- g <- manageHook w =<< io (getClassHint d w)
+
+ n <- fmap (fromMaybe "") $ io $ fetchName d w
+ (ClassHint rn rc) <- io $ getClassHint d w
+ g <- manageHook w (n, rn, rc)
windows (g . f)
-- | unmanage. A window no longer exists, remove it from the window