[xmonad] tabbed and the way the new decoration framework works
mailing_list at istitutocolli.org
Wed Jan 30 06:35:21 EST 2008
On Wed, Jan 30, 2008 at 11:50:30AM +0100, Andrea Rossato wrote:
> A decoration is a modification to a layout, now. And it is attached to
> a window. If there is no window, there is no decoration.
just to clarify a bit more: decorations are produced by the Decoration
layout modifier according to the decoration style - whose class you
came to know.
The decoration window is then inserted in the list of windows to be
returned by runLayout in Operations.windows. So, now it is xmonad that
calls "restackWindows d vs" - and vs has inside, properly placed, all
our decoration windows. This way (this is THE only way I'm aware of),
decorations, even if they have override_redirect set to True, will not
float above windows placed above the window they are decorating... for
instance, you can place a window above the tabs (the WindowArrager
PURE modifier is quite an interesting stuff to explore... I didn't
have the time, yet).
As a side effect, all this placing of windows and decorations can be
done with pure code on lists (some monadic bits are there just to
provide methods with the right and more expressive types - I didn't
choose them because I like them...;),
Hope it's quite clear now, why we can decorate only windows returned
to a layout. But you are free to hack Decoration and find better ways.
I'm really really eager to discuss and to be questioned, and to see
better stuff. I'm doing all that not because I want a better WM (it's
been quite some time I have all I need), but just because I want a
better understanding in structuring extensible code.
Sorry for the noise.
PS: This is just the design. We need to clean it up quite a lot. If
you want to accept it. Otherwise, unrecord/revert, whatever...;)
More information about the xmonad