[xmonad] erratic panel unhide in xmonad + xfce

Tom Hirschowitz tom.hirschowitz at univ-smb.fr
Wed Nov 29 10:03:14 UTC 2017


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


More information about the xmonad mailing list