[xmonad] Grid layout eats other layouts
Roman Cheplyaka
roma at ro-che.info
Sun Apr 27 11:38:03 EDT 2008
* Yitzchak Gale <gale at sefer.org> [2008-04-27 17:45:57+0300]
> Using xmonad 0.7 and KDE 3.5 with the xmonad.hs
> from http://haskell.org/haskellwiki/Xmonad/Using_xmonad_in_KDE
>
> I want to add Grid to the default list of layouts.
> When I do:
>
> 3a4
> > import XMonad.Layout.Grid
> 10c11
> < , layoutHook = avoidStruts $ layoutHook defaultConfig
> ---
> > , layoutHook = avoidStruts $ layoutHook defaultConfig ||| Grid
>
> I only get Tall and Grid. The last two layouts from
> defaultConfig - Mirror Tall and Full - disappear,
> seemingly "eaten" by Grid.
>
> If I specify the entire layout list manually:
>
> 3a4
> > import XMonad.Layout.Grid
> 10c11,12
> < , layoutHook = avoidStruts $ layoutHook defaultConfig
> ---
> > , layoutHook = avoidStruts $ let t = Tall 1 (3/100) (1/2) in
> > t ||| Mirror t ||| Full ||| Grid
>
> I get all four layouts as expected.
>
> Any ideas why?
>
> Thanks,
> Yitz
It's because code which works with Choose data type expects the tree to
grow to the left. If you write
layoutHook = avoidStruts $ Grid ||| layoutHook defaultConfig
it will work. This is undocumented (afaik) and should be considered as a
bug.
By the way, NewSelect combinator from LayoutCombinators does not have
this issue, so one more reason to merge it to the core.
--
Roman I. Cheplyaka (aka Feuerbach @ IRC)
More information about the xmonad
mailing list