0

I'm trying to have vertically resizable windows using xmonads and xfce. The problem is that once I change my configuration file to effect this using Xmonad.Layout.ResizableTile the windows cover my panel. How can I fix this?

Here is my xmonad.hs:

import XMonad
import XMonad.Config.Xfce
import XMonad.Layout.ResizableTile
import qualified Data.Map as M

myLayout = tall ||| Mirror tall ||| Full 
    where
    tall = ResizableTall 1 (3/100) (1/2) []

myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList
    [ ((modm, xK_a), sendMessage MirrorShrink),
      ((modm, xK_z), sendMessage MirrorExpand)
    ]
newKeys x = myKeys x `M.union` keys xfceConfig x

main = xmonad $ xfceConfig
            { layoutHook = myLayout, 
              keys = newKeys
            }

Can someone at least explain why this configuration hides the panel? Thanks!

1 Answers1

0

Edit: I answered too quick, it seems below answer isn't sufficient. I haven't got XFCE installed to test, but here and here is more information about using XMonad and XFCE.

Sorry for not giving the definite answer...


Using avoidStruts should do the trick.

import XMonad.Hooks.ManageDocks
...
myLayout = avoidStruts (tall ||| Mirror tall ||| Full)
    where tall = ResizableTall 1 (3/100) (1/2) []

If this should only be applied to certain layouts, use it like

    myLayout = (myTall ||| myFull)
    where myTall = avoidStruts $ ResizableTall 1 (3/100) (1/2) []
          myFull = Full
deshtop
  • 745
  • 5
  • 15