From 6684e84f50d60cea956704be91d8ad7e0975564a Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Sun, 11 Oct 2009 07:35:38 +0200 Subject: 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 --- XMonad/Config/Desktop.hs | 3 +-- XMonad/Config/Droundy.hs | 3 ++- XMonad/Config/Sjanssen.hs | 11 ++++++----- XMonad/Hooks/EwmhDesktops.hs | 30 ++++++++++-------------------- 4 files changed, 19 insertions(+), 28 deletions(-) (limited to 'XMonad') 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) -- cgit v1.2.3