[xmonad] Getting layout combinators the right way around

Henrique G. Abreu hgabreu at gmail.com
Mon May 3 16:41:51 EDT 2010


>
> I've been trying to produce a layout that works something like
> TwoPane/DragPane (I don't really understand the difference between these
> two),

IIRC on DragPane you can use the mouse to move/resize the layout division.


> but with tabs for the slave windows. I.e. if there's only one
> window, it takes up the full screen; if there are two windows, the master
> window is always in the left pane, the slave on the right; if there are
> more than two windows, the master is on the left, one slave is displayed
> on the right, and there are tabs (as in e.g. simpleTabbed) showing the
> slave windows.
>
You've probably missed X.L.Master at contrib, which does just that.
layout = mastered 0.03 0.5 simpleTabbed


> I've achieved something very close to what I want using:
>
>  reflectHoriz $ combineTwo (TwoPane 0.03 0.5) simpleTabbed Full
>
> I needed the reflectHoriz because with
>
>  combineTwo (TwoPane 0.03 0.5) Full simpleTabbed
>
> hidden slave windows ended up in the left pane, rather than appearing as
> tabs in the right pane. But the (minor) annoyance with using reflectHoriz
> is that the focusDown/focusUp and Shrink/Expand key bindings go the
> opposite way to every other workspace (I use PerWorkspace layouts, so
> simply switching the bindings won't work).

when using combineTwo that's what you get, the new windows go to the first
layout by default.
you could set a manageHook that tests if it's in the right workspace and
move the window to the second layout.
It's not very difficult, but since X.L.Master does exactly what you
understood you want...


Thanks,
>
you're welcome :)

Henrique Abreu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/xmonad/attachments/20100503/48cbd885/attachment.html


More information about the xmonad mailing list