On Thu, Nov 21, 2002 at 11:49:21AM +0100, Dominik Vogt wrote:
> > Not really because of the code
> > redundancy issue, but by configurability.  I'll just have to make sure the
> > ordering is something reasonable (left-to-right?), not seemingly arbitrary
> > like the creation order.  I'd like to trim it down some.
> > 
> > First of all, I don't think there should be a default FvwmProxySelectFunc.
> > What if I don't want to raise or I don't want the mouse to move.
> 
> Then terminate the proxy session with the "Abort" command instead
> of "Hide".  

No, let me rephrase.  Let's say I only wanted Select to raise and I didn't
want it to move the mouse.  Or the other way around.  If I didn't want
anything at all, well yeah, I can abort.  But I might want a subset of the
"suggested" Select plus a little of my own choosing.  Personally, I like
'WarpToWindow 50 50' better than 'WarpToWindow 5p 5p'. In this particular
case, I can just tack it on and you never notice the first one.
But generally, that won't always work, like if I wanted 'don't raise'.

> > Then I have to DestroyFunc and start from scratch.  Undoing defaults
> > sounds very distasteful.
> > Can we just have FvwmProxy call FvwmProxyMarkFunc with a special ID
> > (is 0 used?) when ever Show/Hide/Abort is called?  Then we could drop
> > those three, at least the default UnsetEnv calls.  We might need something
> > more in the Circulate function.
> 
> The env var must be already set when the Circulate function is
> called.  The stored window id is taken as the starting point for
> the conditional command.  The env var is used to communicate the
> currently hilighted window to fvwm so the circulation commands can
> work with it.

Hmm, my understanding of fvwm conditionals is pretty much nothing.
So by "can I" I really mean can I.  I'm guessing ...

        AddToFunc FvwmProxy_Circulate
        + I WindowId $[FvwmProxy_S] $0 $1 FvwmProxy_Mark
        + I CondCase (Error) $0 $1 FvwmProxy_Mark

means on the given window do $0..., if that fails because the var is undefined,
then do a $0... without any context.

I propose this be modified so that it also checks that the FvwmProxy_S is not
some special case.  Hmm, if I write a windowid of None to fvwm, what do I get
for $w.  If that doesn't fly, we can send it rootwindow since it will never
really get a proxy.  So,

if(id is undefined OR id == rootwindow) do non-specific $0...
else WindowId $[FvwmProxy_S] $0...

In that case we can dump those three functions, right?

> > The simple properties I added are the same as internal defaults, so we can
> > dump those.
> > 
> > As for the syntactic sugar, I kinda like
> > 
> > AddToFunc MySelect
> > + I WindowId $w Raise
> > + I WindowId $w WarpToWindow 50 50
> > 
> > *FvwmProxy: Action  Select  Function MySelect
> > 
> > over an implied function to add to.  Is my recent infatuation with
> > the Action syntax misplaced?
> 
> It's just a duplicate of the equivalent
> 
>   *FvwmProxy: SelectCommand Function MySelect
> 
> we don't need it twice.

No, I meant just one.  I was saying that I liked the Action syntax that
I saw in other modules and thought it was prettier then a lot of
SetThisCommand, SetThatCommand.

> > I think things like width should have defaults in
> > the module if no one has set it in any config.  I don't see any good
> > reason for simple properties in the ConfigProxy file.
> 
> Right.  The "*FvwmProxy: ..." lines do not need to be in there.

Ok, gone.

> > 4) If the default behavior is to do nothing, then I don't really
> > see any problem with supplying a cut&paste in the man page.
> > I'd much prefer that to a config file the naive user may not enen know 
> > about.
> > I really want to trim down the demonstrated config so that it isn't
> > a big deal.
> 
> The point is that the average user should be able to use the
> module without worrying about configs at all.  And just think of
> the default config file as the built-in default in a separate
> file.  The situation is no different if the defaults are hard
> coded, except that you then can not change the defaults easily as
> a sysadmin.

For the FvwmProxy_Circulate, I see the point, but I still lean towards
cut&paste over obscurity.

Do you have objection to pulling the Select config out and letting the
user define it all himself, with some manpage guidance?

> > 6) Mouse actions should have defaults.  This is how WinList does it
> > and it seems to work fine.  Now for FvwmProxy_Circulate, I'm guessing
> > most people need to cut&paste the keyboard config explicitly if they want
> > to use Alt-Tab anyhow, so what's two more lines?
> 
> Well, as a user, I would understand what
> 
>   key f1 x y someaction
> 
> does, but I would not understand why I need
> 
>   AddToFunc foobar
>   + I SetEnv FvwmProxy_S $w
> 
> The latter is not user friendly.

But are Action Click(1|2|3) defaults ok?
 
> > Since you have to start from scratch anyhow if you want to remove any
> > part of the default, I'd much prefer to very clearly spell out the
> > default in the man page and people can build their own versus manipulating
> > through additions to something they don't see.  What if the naive user is
> > assumming that FvwmProxyMarkFunc is a blank placeholder or don't realize
> > that the AddToFunc doesn't clear the elusive defaults.
> 
> Of course this will all be explained in detail in the man page,
> with clear instructions what to do if you want to start from
> scratch.  By the way, the naive user can safely assume that
> FvwmProxyMarkFunc is an 'empty' placeholder that has some internal
> logic to make sure the ...Circulate function can be used.

FvwmProxy_Circulate and FvwmProxyMarkFunc, maybe.  I guess that includes
FvwmProxy_Mark, which is just simplifying FvwmProxy_Circulate.
Would you even mention them in the man page, or just tell people to
define their Select function, mouse actions and key bindings.

The external state env-variable still has me a little agitated.  There's gotta
be a better way to use the real Next (or from the addendum response,
the proposed ScanWindow).

I like the idea to distill off all the functionailty that the core
can supply.  That's good.  But something's still a little amiss.

As for Direction, take three big windows dividing the screen in thirds left
to right.  Add a little small window on the bottom, centered about 2 thirds
to the right.  Doing Direction East from the second big window goes to the
third big window, completely ignoring the little window.  With Next/Prev,
even if Prev was the reverse of Next, creation order tweaked by focus
order is pretty much the appearance of random.

On the Alt key, I'm wondering why Alt-anything is not passed through
if fvwm uses the Alt.  Is it policy that anything fvwm uses is never
passed through but other fvwm bindings can still use alt-something if
Alt is used.  If so, all this should be optional.  There's no logical reason
why if some fvwm module is spying the alt state why any mundane X app
shouldn't be seeing their Alt sequences.  And if there is a conflict, maybe
it's probably better that they both occur and I can say "oops, better fix
that" then to be banging on my keyboard because the menu shortcuts on
my WP never do what the manual says.

TODO, in my view:
Have a revelation on how to use core Next/Prev/ScanWindow without env var
Add ScanWindow to fvwm core
Investigate why Alt blocking occurs in fvwm core, maybe add optionality
Modify man page to use a less intrusive sample config (not mine, it sounds)

-- 
  _
 ( \      _  \    /_ /  _ _  Jason Weber                  (503) 380-7424
  \|(\/)()))  \/\/(-/_)(-/(  Infinite Monkeys Inc.        Aloha, Oregon
  //                         http://www.imonk.com/baboon  [EMAIL PROTECTED]
 (/     [EMAIL PROTECTED]        [EMAIL PROTECTED]


     "Canister contains at least 50% recycled material; 15%
      post-consumer content."
   -- Pringles Fat-Free (side of can)
--
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 PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]

Reply via email to