[dwm] recent changes since 3.6[.1]

2007-02-22 Thread Anselm R. Garbe
Hi there,

dwm-3.7 is on its way, and some more polishing appeared:

- I replaced the Arg-union typedef with a const char *, this
  leads to a cleaner config.h in Key definitions, e.g.
  [..]
{ MODKEY,   XK_d, incnmaster, -1 }, \
{ MODKEY,   XK_i, incnmaster, 1 }, \
{ MODKEY,   XK_h, incmasterw, -15 }, \
{ MODKEY,   XK_l, incmasterw, 15 }, \
  [..]
- zoom() now only works in tiling layout, togglemax() is
  externalized now and bound to Mod1-m (versatile layout only)
  - this made zoom() less cluttered and the Mod1-Return
  behavior more predictable
- versatile clients are indicated by an empty square in front of
  their title, maximized versatile clients are indicated by a
  filled square in front of their title (basically I reuse the
  drawsquare() stuff for tags)
- I also renamed resizemaster() into incmasterw(), because it
  behaves similiar to incnmaster().

So please check if hg tip is usable (to me it is). Personally I
believe dwm is really polished now.

Regards,
-- 
 Anselm R. Garbe  http://www.suckless.org/  GPG key: 0D73F361



Re: [dwm] recent changes since 3.6[.1]

2007-02-22 Thread pancake
 dwm-3.7 is on its way, and some more polishing appeared:
 
 - I replaced the Arg-union typedef with a const char *, this
   leads to a cleaner config.h in Key definitions, e.g.
   [..]
 { MODKEY,   XK_d, incnmaster, -1 }, \
 { MODKEY,   XK_i, incnmaster, 1 }, \
 { MODKEY,   XK_h, incmasterw, -15 }, \
 { MODKEY,   XK_l, incmasterw, 15 }, \
   [..]
 - zoom() now only works in tiling layout, togglemax() is
   externalized now and bound to Mod1-m (versatile layout only)
   - this made zoom() less cluttered and the Mod1-Return
   behavior more predictable

You forget to inform the focusclient(1) focusclient(-1) change too.

btw i read your patch and I think you can reduce about 7 lines your
code if you ignore the invalid values, that imho they must be ignored, so
this check must be done in configure time, not in execution time.

--
for(c = sel-next; c  !isvisible(c); c = c-next);
if (!c) {
  if (atoi(arg)  0)
 for(c = clients; c  !isvisible(c); c = c-next);
  else
 for(for(c = clients; c  c-next; c = c-next);
   ; c  !isvisible(c); c = c-prev);
  }
}
--

BTW, about the incmasterw I think the default value for it should be
a multiplier of 8. Because resolutions are 640, 800, 1024, 1280, ... 
all of them can be divided by 8 without precision loss.

This way I recommend to use 16, 32 or 64.

I personally use 32 on all my boxes. 16 is too low, and I've use't two or
three times to get the width I want. BTW imho 15 is wrong.

BTW i think this value could be proportional to screen resolution instead
of pixel size.

--pancake




Re: [dwm] recent changes since 3.6[.1]

2007-02-22 Thread Anselm R. Garbe
On Thu, Feb 22, 2007 at 05:24:45PM +0100, pancake wrote:
  dwm-3.7 is on its way, and some more polishing appeared:
  
  - I replaced the Arg-union typedef with a const char *, this
leads to a cleaner config.h in Key definitions, e.g.
[..]
  { MODKEY,   XK_d, incnmaster, -1 }, \
  { MODKEY,   XK_i, incnmaster, 1 }, \
  { MODKEY,   XK_h, incmasterw, -15 }, \
  { MODKEY,   XK_l, incmasterw, 15 }, \
[..]
  - zoom() now only works in tiling layout, togglemax() is
externalized now and bound to Mod1-m (versatile layout only)
- this made zoom() less cluttered and the Mod1-Return
behavior more predictable
 
 You forget to inform the focusclient(1) focusclient(-1) change too.

I mentioned it in a different mail...

 btw i read your patch and I think you can reduce about 7 lines your
 code if you ignore the invalid values, that imho they must be ignored, so
 this check must be done in configure time, not in execution time.
 
 --
 for(c = sel-next; c  !isvisible(c); c = c-next);
 if (!c) {
   if (atoi(arg)  0)
  for(c = clients; c  !isvisible(c); c = c-next);
   else
  for(for(c = clients; c  c-next; c = c-next);
; c  !isvisible(c); c = c-prev);
   }
 }
 --

You were right that it could be simplified, but your version
seems incorrect to me, - what if I really want to focus the
previous client? I pushed a different version which removed the
switch()... now interpreting  0 as prev, and = 0 as next...

 BTW, about the incmasterw I think the default value for it should be
 a multiplier of 8. Because resolutions are 640, 800, 1024, 1280, ... 
 all of them can be divided by 8 without precision loss.
 
 This way I recommend to use 16, 32 or 64.
 
 I personally use 32 on all my boxes. 16 is too low, and I've use't two or
 three times to get the width I want. BTW imho 15 is wrong.
 
 BTW i think this value could be proportional to screen resolution instead
 of pixel size.

I set MASTERWIDTH to 640 per thousand and the steps to 32
pixels, I think that's ok...

Regards,
-- 
 Anselm R. Garbe  http://www.suckless.org/  GPG key: 0D73F361