Binary trees?

Donald Allen donaldcallen at gmail.com
Sun Apr 12 18:05:37 CEST 2015


Thank you both. I understand now -- the tree consists only of frames,
not frames and windows, as I thought (and as is the case with i3).

Speaking of i3, I would comment that while i3 is very well done, I
find that a weakness is that to achieve the layout you want, you have
to have a good mental model of its internal behavior as you add
windows and move them around. This is not easily achieved and I have,
on occasion, become terribly frustrated with it, because I've had to
fight with it to get it to do what I want and haven't always won. I
think the problem is the complexity of that internal behavior. It is
not easily explained and I don't think the documentation overcomes
that difficulty.

I don't have a lot of experience yet with your effort, but there have
been no layout battles thus far.

Again, thanks for the explanations.

/Don

On Sun, Apr 12, 2015 at 11:45 AM, Thorsten Wißmann
<edu at thorsten-wissmann.de> wrote:
> Hi Donald,
>
> On Sun, Apr 12, 2015 at 11:27:12AM -0400, Donald Allen wrote:
>> Why does the man page for the window manager say "The basic tiling
>> concept is that the layout is represented by a binary tree."
>
> The layout is represented by a binary tree of frames, i.e. only the
> frames form the binary tree. Or more specifically: a binary tree of
> frames with lists of windows (and other properties stored) in the
> leaves.
>
> Furthermore, the layout is rigid in the sense that it is only modified
> by user-interaction and not by appearing or disappearing windows.
>
> Btw: e.g. i3 is different here: their layout of containers (their word
> for frames) is not binary but n-ary, i.e. you can have a frame with
> three subframes in it.
>
> Hope, that helps. :-)
>
> Cheers,
> Thorsten
>
> P.S.: the current (and long-term) address of the mailing list is
>
>     hlwm at lists.herbstluftwm.org
>
>> If I start three xterms in an empty frame, they get stacked
>> vertically. If it then do a layout command, I get
>>
>> dca at franz:~$ herbstclient layout
>> ╾─╼ vertical: 0x800022 0xc00022 0x1e00022 [FOCUS]
>>
>> The vertical frame has three children, not possible in a binary tree.
>> Using n-ary trees makes sense, and that appears to be what you are
>> doing. But the man page says otherwise. Please explain.



More information about the hlwm mailing list