On Mon, Oct 31, 2011 at 10:19 PM, Thomas Dahms <thmsd...@googlemail.com> wrote: > > That looks interesting. I have one suggestion for a simplification: > I guess you can get rid of the functions combining the master and > slave layouts by modifying setlayout() to take three arguments (the > two layouts and the direction of master/slave splitting). This way you > could combine any two layouts in the key binding section of config.h.
I don't think we can do this with the current Arg. I also don't see the benefit of this over defining the layouts. If the user wants to combine two layout algorithms, he can always define a layout in as few as three lines in config.h. Please elaborate if I misunderstand. Also, the code is so far in no way in conflict with the dwm code. This general approach is also more flexible. For example, the example `ntile' layout can replace `tile' in dwm.c, and `monocle' in dwm.c can be defined via `apply_lt` using `lt_monocle`. Actually, `apply_lt` can be removed, since `apply_mslts` does the same thing when nmaster == 0. I'm thinking of making nmaster a member of the Layout structure, instead of the current Monitor. This way, we can make all windows slaves in the `grid' layout, while having two masters when we switch to `tile'. The same applies to mfact- the `ncol' layout certainly needs a bigger mfact than `tile', for example. Finally, neither nmaster nor mfact makes sense in non-master-slave layouts (if you still use those, that is ;). Oh, and it would be nice if mfact increased when nmaster increased in the `ncol' layout, too. Maybe another function as a member of Layout, which would be executed to set mfact as a hook whenever nmaster changes? Since the current tile, monocle, and proposed bstack layouts are each a special case of the mslts approach, and mslts is more powerful (and I do think is simpler and easier to read), and if you care, mslts will likely decrease the SLOC due to removal of duplicated code, I think mslts could be accepted into mainline. What do you think? > > -- > Thomas Dahms > >