Subject: Re: CVS olicha: A try for a final clever placement algo

From: Olivier Chapuis <[email-masked]>
Date: Thu, 04 Jan 2001 23:36:34 +0100

Dominik Vogt wrote:
> 
> Hm, I'd rather not start a new syntax that may be thrown away
> again soon.  I thought we will make all these explicit avoidance
> factors configurable, and then this add-a-letter approach will not
> work anyway.  A proper name for the new algorithm should be
> enough.  The whole idea of naming placement algrithms after their
> 'cleverness' is braindead anyway.  Right now we have these
> possible combinations:
> 
>   Dumb + Random
>   Dumb + Active
>   Smart + Random
>   Smart + Active
>   Clever + Random
>   Clever + Active
> 
> plus the new style:
> 
>   New + Random
>   New + Active
> 
> which is idiotic because only 6 of them are different:
> 
>   a) Random = Dumb + Random
>   b) Active = Dumb + Active
>   c) Smart with fallback to Random = Smart + Random
>   d) Smart with fallback to Active = Smart + Active
>   e) Clever = Clever + Random = Clever + Active
>   f) New = New + Random = New + Active
> 
> I would rename all of these so that they say something about what
> they actually do:
> 
>   a) Cascade
>   b) Manual
>   c) TileCascade
>   d) TileManual
>   e) MinOverlap (feel free to find a better name)
>   f) MinOverlapPercent (dito)
>
> Perhaps, if we agree that this is a good thing, we should do it
> before 2.4 since we already started modifying the placement
> options with CleverPlacement.  The code chages will be fairly
> simple.
>

It is good for me and I can do it. About names for e) and f) I am
not good with names so others suggestions are welcome. Also I think
that we need a vote (with name sugestion for e) and f) :o)
 
> > Moreover,
> > when FVWM will have its own interpretation/implementation of
> > the wm-spec a better turning of these algorithms will be possible
> > (as currently a "fine" turning can be done at compile time by
> > editing libs/default.h).
> 
> What is the connection between the wm-spec and placement?
>

Maybe the _NET_WM_WINDOW_TYPE can be used: for placement a DOCK
window may be considered differently than a NORMAL one. But, the
wm-spec is not really the point here, we may imagine that in the future
the avoidance factor can be defined by FVWM commands and also we can
imagine that FVWM can define some window type:

Style "app_name" A_TYPE
Style "app_name2" A_OTHER_TYPE

where the "TYPE" are some meta description of the type of an applications
(the _NET_WM_WINDOW_TYPE types can be a subset of these FVWM Types).

Then, we can have some commands of the form:

Style (A_TYPE) some style commands, AvoidFactor 6, DoNotMaximizeOnThisWindow, ...

Any way forget all the above discution on the wm-spec ...

> > Of course I am ready to do the code before 2.4.
> 
> Whoa, rather not open this can of worms now.
> 

Ooops, I does not understand, any way I will do the code
before the 15/01/2001.

Olivier
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Olivier Chapuis <[email-masked]>
Date: Sat, 06 Jan 2001 22:28:57 +0100

> 'cleverness' is braindead anyway.  Right now we have these

In fact the current possible combinations are:

    Dumb + Random + Clever      =   Cascade 
    Dumb + Random + CleverOff   =   Cascade
    Dumb + Active + Clever      =   Manual
    Dumb + Active + CleverOff   =   Manual
    Smart + Random + CleverOff  =   TileCascade
    Smart + Active + CleverOff  =   TileManual
    Smart + Random + Clever     =   MinOverlap
    Smart + Active + Clever     =   MinOverlap

> options with CleverPlacement.  The code chages will be fairly

Yes, I've done the main part of this changes (need to update the manual
and other little things as some Config). Moreover, we can really have
backward compatibility, with doing nothing the new code gives:

    Dumb + Random + Clever      =   Cascade 
    Dumb + Random + CleverOff   =   Cascade
    Dumb + Active + Clever      =   Cascade   <--- Not real b.c.
    Dumb + Active + CleverOff   =   Manual
    Smart + Random + CleverOff  =   TileCascade
    Smart + Active + CleverOff  =   TileManual
    Smart + Random + Clever     =   MinOverlap
    Smart + Active + Clever     =   MinOverlapPercent  <--- Not real b.c.

Do we have to do so that Dumb + Active + Clever = Manual ?
Also, do we allow this backward compatibility without any warning
or we must warn the user if Dumb, Smart, Active, Random or Clever(Off)
is used?

Thanks for any suggestions, Olivier

---

From: Olivier Chapuis <[email-masked]>
Date: Sat, 06 Jan 2001 22:28:57 +0100