Move EWMH support initialization to a startupHook

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.
This commit is contained in:
Justin Bogner
2009-10-11 05:35:38 +00:00
parent 6e91396fa5
commit fc1da0d701
4 changed files with 19 additions and 28 deletions

View File

@@ -170,7 +170,6 @@ 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 }

View File

@@ -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.

View File

@@ -36,6 +36,7 @@ sjanssenConfig = do
, keys = \c -> mykeys sp c `M.union` keys defaultConfig c
, layoutHook = modifiers layouts
, logHook = ewmhDesktopsLogHook
, startupHook = ewmhDesktopsStartup
, manageHook = composeAll [className =? x --> doShift w
| (x, w) <- [ ("Firefox", "web")
, ("Ktorrent", "7")

View File

@@ -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 }
-- > main = xmonad defaultConfig { startupHook = ewmhDesktopsStartup
-- > , handleEventHook = ewmhDesktopsEventHook
-- > , logHook = ewmhDesktopsLogHook }
--
-- '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"
--
-- 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)