Tom Hirschowitz
2017-11-29 10:03:14 UTC
Dear all,
I'm using xfce4 with xmonad and panel autohide. The problem is that,
depending on which windows are present, the panel sometimes does not
unhide. In my experience, it only unhides to cover windows that were
spawned after it. E.g., if it doesn't unhide over a given window and I
restart it, then it does unhide fine.
Snippets of my xmonad.hs are included below.
Does anyone have an idea how to sort this out?
Thanks,
Tom
conf = ewmh xfceConfig
{ manageHook = pbManageHook <+> myManageHook
<+> manageDocks
<+> manageHook xfceConfig
, layoutHook = myLayoutHook
, handleEventHook = ewmhDesktopsEventHook <+> fullscreenEventHook
, borderWidth = 4
, focusedBorderColor= "#80c0ff"
, normalBorderColor = "#13294e"
, workspaces = map show [1 .. 9 :: Int]
, modMask = mod4Mask
, keys = myKeys
, terminal = "xfce4-terminal"
}
-- Main --
main :: IO ()
main =
xmonad $ conf
{ startupHook = startupHook conf
}
-- Layouts --
myLayoutHook = desktopLayoutModifiers $ avoidStruts $ Full
[...]
-- ManageHook --
pbManageHook :: ManageHook
pbManageHook = composeAll $ concat
[ [ manageDocks ]
, [ manageHook defaultConfig ]
, [ isDialog --> doCenterFloat ]
, [ isFullscreen --> doFullFloat ]
, [ fmap not isDialog --> doF avoidMaster ]
]
[...]
-- Helpers --
-- avoidMaster: Avoid the master window, but otherwise manage new windows normally
avoidMaster :: W.StackSet i l a s sd -> W.StackSet i l a s sd
avoidMaster = W.modify' $ \c -> case c of
W.Stack t [] (r:rs) -> W.Stack t [r] rs
otherwise -> c
I'm using xfce4 with xmonad and panel autohide. The problem is that,
depending on which windows are present, the panel sometimes does not
unhide. In my experience, it only unhides to cover windows that were
spawned after it. E.g., if it doesn't unhide over a given window and I
restart it, then it does unhide fine.
Snippets of my xmonad.hs are included below.
Does anyone have an idea how to sort this out?
Thanks,
Tom
conf = ewmh xfceConfig
{ manageHook = pbManageHook <+> myManageHook
<+> manageDocks
<+> manageHook xfceConfig
, layoutHook = myLayoutHook
, handleEventHook = ewmhDesktopsEventHook <+> fullscreenEventHook
, borderWidth = 4
, focusedBorderColor= "#80c0ff"
, normalBorderColor = "#13294e"
, workspaces = map show [1 .. 9 :: Int]
, modMask = mod4Mask
, keys = myKeys
, terminal = "xfce4-terminal"
}
-- Main --
main :: IO ()
main =
xmonad $ conf
{ startupHook = startupHook conf
setWMName "LG3D" -- Java app focus fix
, logHook = ewmhDesktopsLogHook}
-- Layouts --
myLayoutHook = desktopLayoutModifiers $ avoidStruts $ Full
[...]
-- ManageHook --
pbManageHook :: ManageHook
pbManageHook = composeAll $ concat
[ [ manageDocks ]
, [ manageHook defaultConfig ]
, [ isDialog --> doCenterFloat ]
, [ isFullscreen --> doFullFloat ]
, [ fmap not isDialog --> doF avoidMaster ]
]
[...]
-- Helpers --
-- avoidMaster: Avoid the master window, but otherwise manage new windows normally
avoidMaster :: W.StackSet i l a s sd -> W.StackSet i l a s sd
avoidMaster = W.modify' $ \c -> case c of
W.Stack t [] (r:rs) -> W.Stack t [r] rs
otherwise -> c