mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-01 12:41:52 -07:00
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:
@@ -170,9 +170,8 @@ desktopConfig = defaultConfig
|
|||||||
{ logHook = ewmhDesktopsLogHook
|
{ logHook = ewmhDesktopsLogHook
|
||||||
, layoutHook = desktopLayoutModifiers $ layoutHook defaultConfig
|
, layoutHook = desktopLayoutModifiers $ layoutHook defaultConfig
|
||||||
, manageHook = manageHook defaultConfig <+> manageDocks
|
, manageHook = manageHook defaultConfig <+> manageDocks
|
||||||
, startupHook = setDefaultCursor xC_left_ptr
|
|
||||||
, handleEventHook = ewmhDesktopsEventHook
|
, 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 $
|
desktopKeys (XConfig {modMask = modm}) = M.fromList $
|
||||||
[ ((modm, xK_b), sendMessage ToggleStruts) ]
|
[ ((modm, xK_b), sendMessage ToggleStruts) ]
|
||||||
|
@@ -43,7 +43,7 @@ import XMonad.Actions.CycleWS ( moveTo, WSType( HiddenNonEmptyWS ),
|
|||||||
Direction1D( Prev, Next) )
|
Direction1D( Prev, Next) )
|
||||||
|
|
||||||
import XMonad.Hooks.ManageDocks ( avoidStruts, manageDocks )
|
import XMonad.Hooks.ManageDocks ( avoidStruts, manageDocks )
|
||||||
import XMonad.Hooks.EwmhDesktops ( ewmhDesktopsLogHook,
|
import XMonad.Hooks.EwmhDesktops ( ewmhDesktopsStartup, ewmhDesktopsLogHook,
|
||||||
ewmhDesktopsEventHook )
|
ewmhDesktopsEventHook )
|
||||||
|
|
||||||
myXPConfig :: XPConfig
|
myXPConfig :: XPConfig
|
||||||
@@ -132,6 +132,7 @@ config = defaultConfig
|
|||||||
--mosaic 0.25 0.5
|
--mosaic 0.25 0.5
|
||||||
, manageHook = manageHook defaultConfig <+> manageDocks -- add panel-handling
|
, manageHook = manageHook defaultConfig <+> manageDocks -- add panel-handling
|
||||||
, logHook = ewmhDesktopsLogHook -- actually, no logging here, just other stuff
|
, logHook = ewmhDesktopsLogHook -- actually, no logging here, just other stuff
|
||||||
|
, startupHook = ewmhDesktopsStartup
|
||||||
, terminal = "xterm" -- The preferred terminal program.
|
, terminal = "xterm" -- The preferred terminal program.
|
||||||
, normalBorderColor = "#222222" -- Border color for unfocused windows.
|
, normalBorderColor = "#222222" -- Border color for unfocused windows.
|
||||||
, focusedBorderColor = "#00ff00" -- Border color for focused windows.
|
, focusedBorderColor = "#00ff00" -- Border color for focused windows.
|
||||||
|
@@ -34,14 +34,15 @@ sjanssenConfig = do
|
|||||||
, ((modm, button2), (\w -> focus w >> windows W.swapMaster))
|
, ((modm, button2), (\w -> focus w >> windows W.swapMaster))
|
||||||
, ((modm.|. shiftMask, button1), (\w -> focus w >> mouseResizeWindow w)) ]
|
, ((modm.|. shiftMask, button1), (\w -> focus w >> mouseResizeWindow w)) ]
|
||||||
, keys = \c -> mykeys sp c `M.union` keys defaultConfig c
|
, keys = \c -> mykeys sp c `M.union` keys defaultConfig c
|
||||||
, layoutHook = modifiers layouts
|
, layoutHook = modifiers layouts
|
||||||
, logHook = ewmhDesktopsLogHook
|
, logHook = ewmhDesktopsLogHook
|
||||||
, manageHook = composeAll [className =? x --> doShift w
|
, startupHook = ewmhDesktopsStartup
|
||||||
|
, manageHook = composeAll [className =? x --> doShift w
|
||||||
| (x, w) <- [ ("Firefox", "web")
|
| (x, w) <- [ ("Firefox", "web")
|
||||||
, ("Ktorrent", "7")
|
, ("Ktorrent", "7")
|
||||||
, ("Amarokapp", "7")]]
|
, ("Amarokapp", "7")]]
|
||||||
<+> manageHook defaultConfig <+> manageDocks <+> manageSpawn sp
|
<+> manageHook defaultConfig <+> manageDocks <+> manageSpawn sp
|
||||||
<+> (isFullscreen --> doFullFloat)
|
<+> (isFullscreen --> doFullFloat)
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
tiled = HintedTile 1 0.03 0.5 TopLeft
|
tiled = HintedTile 1 0.03 0.5 TopLeft
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
module XMonad.Hooks.EwmhDesktops (
|
module XMonad.Hooks.EwmhDesktops (
|
||||||
-- * Usage
|
-- * Usage
|
||||||
-- $usage
|
-- $usage
|
||||||
|
ewmhDesktopsStartup,
|
||||||
ewmhDesktopsLogHook,
|
ewmhDesktopsLogHook,
|
||||||
ewmhDesktopsLogHookCustom,
|
ewmhDesktopsLogHookCustom,
|
||||||
ewmhDesktopsEventHook
|
ewmhDesktopsEventHook
|
||||||
@@ -38,26 +39,18 @@ import XMonad.Util.WorkspaceCompare
|
|||||||
-- > import XMonad
|
-- > import XMonad
|
||||||
-- > import XMonad.Hooks.EwmhDesktops
|
-- > import XMonad.Hooks.EwmhDesktops
|
||||||
-- >
|
-- >
|
||||||
-- > myLogHook :: X ()
|
-- > main = xmonad defaultConfig { startupHook = ewmhDesktopsStartup
|
||||||
-- > myLogHook = ewmhDesktopsLogHook
|
-- > , handleEventHook = ewmhDesktopsEventHook
|
||||||
-- >
|
-- > , logHook = ewmhDesktopsLogHook }
|
||||||
-- > myHandleEventHook = ewmhDesktopsEventHook
|
|
||||||
-- >
|
|
||||||
-- > main = xmonad defaultConfig { handleEventHook = myHandleEventHook, logHook = myLogHook }
|
|
||||||
--
|
--
|
||||||
-- 'avoidStruts' is used to automatically leave space for dock programs, and
|
-- You may also be interested in 'avoidStruts' from XMonad.Hooks.ManageDocks.
|
||||||
-- 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"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- |
|
||||||
|
-- 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
|
-- Notifies pagers and window lists, such as those in the gnome-panel
|
||||||
@@ -65,7 +58,6 @@ import XMonad.Util.WorkspaceCompare
|
|||||||
ewmhDesktopsLogHook :: X ()
|
ewmhDesktopsLogHook :: X ()
|
||||||
ewmhDesktopsLogHook = ewmhDesktopsLogHookCustom id
|
ewmhDesktopsLogHook = ewmhDesktopsLogHookCustom id
|
||||||
|
|
||||||
|
|
||||||
-- |
|
-- |
|
||||||
-- Generalized version of ewmhDesktopsLogHook that allows an arbitrary
|
-- Generalized version of ewmhDesktopsLogHook that allows an arbitrary
|
||||||
-- user-specified function to transform the workspace list (post-sorting)
|
-- user-specified function to transform the workspace list (post-sorting)
|
||||||
@@ -74,8 +66,6 @@ ewmhDesktopsLogHookCustom f = withWindowSet $ \s -> do
|
|||||||
sort' <- getSortByIndex
|
sort' <- getSortByIndex
|
||||||
let ws = f $ sort' $ W.workspaces s
|
let ws = f $ sort' $ W.workspaces s
|
||||||
|
|
||||||
setSupported
|
|
||||||
|
|
||||||
-- Number of Workspaces
|
-- Number of Workspaces
|
||||||
setNumberOfDesktops (length ws)
|
setNumberOfDesktops (length ws)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user