aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2009-10-11 07:35:38 +0200
committerJustin Bogner <mail@justinbogner.com>2009-10-11 07:35:38 +0200
commit6684e84f50d60cea956704be91d8ad7e0975564a (patch)
tree29f580b0ca724bb735dd648e7a84714296925b15
parenta072ea53173f5f552d483f39a1e00b53619a1ad7 (diff)
downloadXMonadContrib-6684e84f50d60cea956704be91d8ad7e0975564a.tar.gz
XMonadContrib-6684e84f50d60cea956704be91d8ad7e0975564a.tar.xz
XMonadContrib-6684e84f50d60cea956704be91d8ad7e0975564a.zip
Move EWMH support initialization to a startupHook
Ignore-this: bd35654d0afb0a2fec73b16ab7ac38b1 Set EWMH support atoms and the window manager name in a startup hook, rather than in the log hook: the log hook occurs far too frequently for it to make sense to set constants with it. darcs-hash:20091011053538-18f27-82f5abfaeba77a65ca836222d089c92d581b25bf.gz
-rw-r--r--XMonad/Config/Desktop.hs3
-rw-r--r--XMonad/Config/Droundy.hs3
-rw-r--r--XMonad/Config/Sjanssen.hs11
-rw-r--r--XMonad/Hooks/EwmhDesktops.hs30
4 files changed, 19 insertions, 28 deletions
diff --git a/XMonad/Config/Desktop.hs b/XMonad/Config/Desktop.hs
index e72e461..bb4ae74 100644
--- a/XMonad/Config/Desktop.hs
+++ b/XMonad/Config/Desktop.hs
@@ -170,9 +170,8 @@ desktopConfig = defaultConfig
{ logHook = ewmhDesktopsLogHook
, layoutHook = desktopLayoutModifiers $ layoutHook defaultConfig
, manageHook = manageHook defaultConfig <+> manageDocks
- , startupHook = setDefaultCursor xC_left_ptr
, handleEventHook = ewmhDesktopsEventHook
- , keys = \c -> desktopKeys c `M.union` keys defaultConfig c }
+ , keys = \c -> desktopKeys c `M.union` keys defaultConfig c }
desktopKeys (XConfig {modMask = modm}) = M.fromList $
[ ((modm, xK_b), sendMessage ToggleStruts) ]
diff --git a/XMonad/Config/Droundy.hs b/XMonad/Config/Droundy.hs
index b5af291..61e17c5 100644
--- a/XMonad/Config/Droundy.hs
+++ b/XMonad/Config/Droundy.hs
@@ -43,7 +43,7 @@ import XMonad.Actions.CycleWS ( moveTo, WSType( HiddenNonEmptyWS ),
Direction1D( Prev, Next) )
import XMonad.Hooks.ManageDocks ( avoidStruts, manageDocks )
-import XMonad.Hooks.EwmhDesktops ( ewmhDesktopsLogHook,
+import XMonad.Hooks.EwmhDesktops ( ewmhDesktopsStartup, ewmhDesktopsLogHook,
ewmhDesktopsEventHook )
myXPConfig :: XPConfig
@@ -132,6 +132,7 @@ config = defaultConfig
--mosaic 0.25 0.5
, manageHook = manageHook defaultConfig <+> manageDocks -- add panel-handling
, logHook = ewmhDesktopsLogHook -- actually, no logging here, just other stuff
+ , startupHook = ewmhDesktopsStartup
, terminal = "xterm" -- The preferred terminal program.
, normalBorderColor = "#222222" -- Border color for unfocused windows.
, focusedBorderColor = "#00ff00" -- Border color for focused windows.
diff --git a/XMonad/Config/Sjanssen.hs b/XMonad/Config/Sjanssen.hs
index 3e98172..4182c8e 100644
--- a/XMonad/Config/Sjanssen.hs
+++ b/XMonad/Config/Sjanssen.hs
@@ -34,14 +34,15 @@ sjanssenConfig = do
, ((modm, button2), (\w -> focus w >> windows W.swapMaster))
, ((modm.|. shiftMask, button1), (\w -> focus w >> mouseResizeWindow w)) ]
, keys = \c -> mykeys sp c `M.union` keys defaultConfig c
- , layoutHook = modifiers layouts
- , logHook = ewmhDesktopsLogHook
- , manageHook = composeAll [className =? x --> doShift w
+ , layoutHook = modifiers layouts
+ , logHook = ewmhDesktopsLogHook
+ , startupHook = ewmhDesktopsStartup
+ , manageHook = composeAll [className =? x --> doShift w
| (x, w) <- [ ("Firefox", "web")
, ("Ktorrent", "7")
, ("Amarokapp", "7")]]
- <+> manageHook defaultConfig <+> manageDocks <+> manageSpawn sp
- <+> (isFullscreen --> doFullFloat)
+ <+> manageHook defaultConfig <+> manageDocks <+> manageSpawn sp
+ <+> (isFullscreen --> doFullFloat)
}
where
tiled = HintedTile 1 0.03 0.5 TopLeft
diff --git a/XMonad/Hooks/EwmhDesktops.hs b/XMonad/Hooks/EwmhDesktops.hs
index 720376f..f263941 100644
--- a/XMonad/Hooks/EwmhDesktops.hs
+++ b/XMonad/Hooks/EwmhDesktops.hs
@@ -15,6 +15,7 @@
module XMonad.Hooks.EwmhDesktops (
-- * Usage
-- $usage
+ ewmhDesktopsStartup,
ewmhDesktopsLogHook,
ewmhDesktopsLogHookCustom,
ewmhDesktopsEventHook
@@ -38,26 +39,18 @@ import XMonad.Util.WorkspaceCompare
-- > import XMonad
-- > import XMonad.Hooks.EwmhDesktops
-- >
--- > myLogHook :: X ()
--- > myLogHook = ewmhDesktopsLogHook
--- >
--- > myHandleEventHook = ewmhDesktopsEventHook
--- >
--- > main = xmonad defaultConfig { handleEventHook = myHandleEventHook, logHook = myLogHook }
---
--- 'avoidStruts' is used to automatically leave space for dock programs, and
--- can be found in 'XMonad.Hooks.ManageDocks'.
---
--- For more detailed instructions on editing the layoutHook see:
---
--- "XMonad.Doc.Extending#The_log_hook_and_external_status_bars"
+-- > main = xmonad defaultConfig { startupHook = ewmhDesktopsStartup
+-- > , handleEventHook = ewmhDesktopsEventHook
+-- > , logHook = ewmhDesktopsLogHook }
--
--- For more detailed instructions on editing the layoutHook see:
---
--- "XMonad.Doc.Extending#Editing_the_layout_hook"
-
+-- You may also be interested in 'avoidStruts' from XMonad.Hooks.ManageDocks.
+-- |
+-- Initializes EwmhDesktops and advertises EWMH support to the X
+-- server
+ewmhDesktopsStartup :: X ()
+ewmhDesktopsStartup = setSupported
-- |
-- Notifies pagers and window lists, such as those in the gnome-panel
@@ -65,7 +58,6 @@ import XMonad.Util.WorkspaceCompare
ewmhDesktopsLogHook :: X ()
ewmhDesktopsLogHook = ewmhDesktopsLogHookCustom id
-
-- |
-- Generalized version of ewmhDesktopsLogHook that allows an arbitrary
-- user-specified function to transform the workspace list (post-sorting)
@@ -74,8 +66,6 @@ ewmhDesktopsLogHookCustom f = withWindowSet $ \s -> do
sort' <- getSortByIndex
let ws = f $ sort' $ W.workspaces s
- setSupported
-
-- Number of Workspaces
setNumberOfDesktops (length ws)