Re: [dwm] recent changes

From: pancake <pancake_AT_youterm.com>
Date: Fri, 7 Mar 2008 02:54:13 +0100

My impressions about this commit are:

*) At the beggining I feel a bit confused until fixed the master and slave
   resolutions on a single screen (because xinerama seems to crash my kernel
   and I can't test it in all its glory atm)

*) Using this concept on a single screen looks a bit more claustrofobic
   because of the lack of setmwfact.

  - On my 20" screen, the lack of setmwfact doesnt affects to me, but
    using a static mwfact with the proper values for the monocle layout
    is imho much more clear than having a variable one which distracts.

  - Dropping the statusbar from the slave area we can play with a bigger
    area (we have some more pixels O:)

* We need a MOBW variable when single window is opened or using monocle layout.

*) I really miss the possibility to link mouse actions on the statusbar :(
   it makes the use much more usable when you have a hand on the keyboard
   and the another one in the mouse, so you don't have to move the pointer
   to zoom, kill or select clients.
 
   I would like to have this patch on mainstream too. I think my current patch
   fits quite well for most uses and doesnt needs to be configurable, maybe
   a little of feedback can help to adopt this functionality, which IMHO
   for larger screen (or multiple ones) much more productive than moving the
   mouse around the clients.

*) I also miss the clients per tag patch O:) but I will probably redesign it
   for dwm 4.8, so we can probably change the concept of CPT to define the
   number of windows to be shown in the master area.. But I understand that
   this is not necessary in mainstream because can be replaced with correct
   use of the tagging concept.

*) My general impression was a bit frustrating at the beggining, but after
   reading some source, playing a bit with the configuration and thinking
   in some solutions I come to the conclusion that I'm pretty happy with
   this new concept.

Source comments:

* If we change these #defines to integer variables we will be able to write external
commands to swap master and slave area between two monitors, join both areas, manage
setmwfact or creating mixed layouts. And everything without touching the core :)

* We will be able to define a master layout, tile layout.

  I know that not all layouts will work for all screen configurations, but we can just
  try to handle the most common uses.

* looks like the monocle layout doesnt works as expected so it eats some more screen
  than in should :) and the right/bottom borders are out of screen

* at line 1567 (nice number):

...
      for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++)
                if(i > 0) {
                        if(i > 1 && i == n) /* remainder */
...

This nested conditional looks ugly to my eyes, I would prefer to setup the
proper value for 'c' before starting the loop instead of checking the
conditional for every client.

Nice work!

--pancake

On Thu, 6 Mar 2008 20:20:00 +0100
"Anselm R. Garbe" <arg_AT_suckless.org> wrote:

> I investigated further today and refactored a lot. First of all
> I got rid of dozoom, I extended Layout to contain a Bool
> isfloating flag as well, which roughly tells dwm that the
> layout algorithm is floating (hence there are no layers of tiled
> windows being treated differently if isfloating is True in Layout).
>
> I also refactored tile(), which consists of 5 functions now,
> tilev(), tileh(), tilemaster(), tilevstack(), tilehstack().
> Due to the change yesterday, I believe that with some testing
> and bug fixing the bstack layout is a special config.h setting
> now with different M{X,Y,W,H} and T{X,Y,W,H} settings .
>
> I decided to add a tileh() layout which does the following in my
> multiscreen setup (and which is pretty much similiar to
> bstack, except that it expands on my second bigger screen), see
> this screenshot:
>
> http://www.suckless.org/shots/dwm-hstack.png
>
> I also changed setlayout that it toggles to the previous layout,
> if it is called twice. Due the fact of tileh, I changed the
> setlayout keybindings slightly as you will notice on the
> screenshot.
>
> Also, monocle() now works like a floating layout, except that it
> maximizes all windows to MOX, MOY, MOW, MOH. I decided against
> rectangle restoring, this is a dynamic WM anyways.
>
> I will be offline till Tuesday. Please test the stuff, report
> bugs and feedback on this list, I will have a look then and
> consider releasing the stuff next week.
>
> Btw. I also changed dmenu yesterday, -b is gone, instead I
> introduced -x <x> -y <y> -w <w> as command line options.
>
> Kind regards,
> --
> Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361
>
Received on Fri Mar 07 2008 - 02:54:19 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:24:23 UTC