[Xmonad] Three column layout
David Roundy
droundy at darcs.net
Mon Jul 23 10:13:54 EDT 2007
On Sat, Jul 21, 2007 at 10:43:26PM +0200, Kai Grossjohann wrote:
> On Sat, Jul 21, 2007 at 04:56:16PM +0200, Kai Grossjohann wrote:
>
> > Below, please find a patch that implements a three column layout.
> > Beware that I don't know Haskell at all. It seems to work for me, but I
> > am surprised.
>
> Improved version below.
>
> This behaves very strangely when increasing nmaster. It seems that 3col
> layout then disappears completely, or behaves like 2col. Do others see
> this, too? Why?
...
> +threeCol :: Int -> Rational -> Rational -> Layout a
> +threeCol nmaster delta frac =
> + Layout { doLayout = \r -> return . (\x->(x,Nothing)) .
> + ap zip (tile3 frac r nmaster . length) . W.integrate
> + , modifyLayout = \m -> return $ msum [fmap resize (fromMessage m)
> + ,fmap incmastern (fromMessage m)] }
> +
> + where resize Shrink = tall nmaster delta (max 0 $ frac-delta)
> + resize Expand = tall nmaster delta (min 1 $ frac+delta)
> + incmastern (IncMasterN d) = tall (max 0 (nmaster+d)) delta frac
Your response to resize and incmaster events is to switch to a "tall"
layout. Replace the above talls with threeCol and this should be fixed.
--
David Roundy
http://www.darcs.net
More information about the Xmonad
mailing list