On Mon, Nov 25, 2002 at 11:25:28PM +0000, Mikhael Goikhman wrote: > I think I will not continue this thread anymore, because the arguments > are the same and it seems they do not help. Here is the last attempt. > > On 25 Nov 2002 18:55:20 +0100, Dominik Vogt wrote: > > Whoa, I see it now. Appending "SendToModule FvwmProxy Mark" is > > hard coded. You're not serious about this, are you? What if the > > user wants to do something else but just send "Mark"? This > > severly limits the kinds of functions that can be bound to > > FvwmProxy actions. > > Please take a look at another messages where we with Jason discuss just > this. There are several solutions. One is Circulate and CirculateMark. > > Why not to make it convenient and easy for a user that in most of cases > wants just marking? And if he wants something else, he don't need to use > FvwmProxy with Circulate for this.
This is futile. You don't even listen to my concerns about usability, do you? > > > > As I said, the internal Next and Prev will be removed as they are > > > > a pointless duplication of code. > > > > > > I don't think Next and Prev should be removed, they are just an intuitive > > > notion to move to the next proxy using some method, say, left to right. > > > But it is really not important for me whether you want to remove anything > > > in the code as long as the interface is the same (read: clean) as now. > > > > Well, perhaps you should think a bit about who does 90% of the > > maintenance. We go happily about adding redundant functionality > > (just the though of what is happening with FvwmWindowLister makes > > me angry). And in the end I do almost all the maintenance. > > I don't think we should fight here. > > I really like how we with Olivier solve everything in fvwm-themes. > It sometimes happens (very rarely, but still) that we don't agree on > something. Then we keep both solutions. One that he maintains and one > that I maintain. You don't maintain fvwm-menu-* scripts or perllib or > FvwmWindowLister, FvwmPerl and from now on FvwmDebug and FvwmGtkDebug. > So why should you ever be angry if some users and developers are really > happy to have these things? Get real. Nobody is answering bug reports regularly except me, regardless of the module they are found in. I am extremely unhappy with all the redundant and a lot of the new code that appeared in the last year. Maintenance now eats up more than 90% of my time and I hardly ever get around coding something useful. I must confess that I am close to quitting fvwm maintenance and either concentrate solely on new features or begin from scratch. > > > > > Agree that a module communication should be improved in the core. > > > > > But this does not justify a non clean design. > > > > > > > > Oh, come on, the design is very clean, you just don't like it. > > > > It's goal is to make module configuration as simple as possible. > > > > > > Most of the things you do in the core I like very much. > > > > > > But here the design is not clean and makes a module configuration complex. > > > If the authors of FvwmEvent, FvwmTaskBar, FvwmIconMan, FvwmIconBox, > > > FvwmWinList, FvwmAuto that all enable for a user to configure callbacks > > > would use your approach we would now have dozens of global functions like > > > FvwmAutoRaiseFunc, FvwmEventNewDeskFunc or FvwmTaskBarClick1Func. > > > > Yes, exactly. And on the other hand we wouldn't have users > > constantly whining "I want double clicks in module xyz", "why > > can't I just bind any abc to module FvwmFoo". Now tell me, what > > is bad about global functions? They simply work better than the > > feeble attempts to fake them inside the modules. > > No, all the modules above do not make feeble attempts to fake them inside. > They simply allow a user to use any function name he wants, not any > hardcoded name. > > Global functions are evil for modules. > > * problems with name cluttering > * monolithics vus modularity > * problems who and when defines/redefines such functions > * having hundreds of functions for modules that a user does not use > * this disallows more than one implementation of a module > > Functions are designed to combine commands, not to write module > configurations. If you say so. Not that it makes any difference regarding memory or speed. [snip] > > > Did you ever think that FvwmProxy like half of our other modules may > > > support aliases? So it is possible to run 2 modules and configure one > > > configuration for one set of keys and another for another set of keys. > > > Then it is immediately clear that global functions like FvwmProxyMarkFunc > > > or FvwmAutoRaiseFunc are bad. > > > > Yes, I actually thought about it. On one hand, running it twice > > make absolutely zero sense, > > Of course if you make it depend on global functions it makes zero sense > to run it twice. A user has no a chance. Nonsense. As I said - I do not know how often - configuration just becomes complex in this case. To get a different config for a second invocation, it's back to cut and paste from the man page. > > on the other hand, as I said before, configuration becomes complex as > > soon as you run it in a non-standard way. > > > > > There are much better solutions that are used in other modules. > > > > The only two modules that I can think of that have a clean > > configuration syntax are FvwmCpp and FvwmM4 and the other modules > > that don't accept module config lines. > > Without a fully functional alternative, it is pointless to say that you > don't like all 25 modules that use configuration now. If you say so. > > > Actually the proper solution for this is to be able to send to fvwm a > > > bunch of commands. I thought about this for some time. If a module sends > > > a string that contains more than one line, fvwm should create an anonymous > > > function for these commands and execute it. Or to execute them like within > > > Read/PipeRead. > > > > The command line parser does not allow to separate multiple > > commands and will never do so because it just wasn't planned. > > Many commands just take the rest of the line and treat it as if it > > all belonged to the current command. The right solution is and has > > always been to use complex functions. That's what they were > > designed for. > > Then every single module should do the redundant work that fvwm may do. > A module should just send several commands without worrying about > creating any function: > > SendText("Beep\nNext (xcalc) Close"); > > and fvwm should create an anonymous function or run a stream just like > it does now it with Pipe/PipeRead. I disagree, and I will not allow anything like this into the core (see above for the reasons). > > > > > > > This is exactly WindowListFunc. I think WindowListFunc is a > > > > > > > good default for Select and it does not require any hidden > > > > > > > _FvwmProxySelectDefault. > > > > > > > > > > > > I think that is no valid reason for recycling WindowListFunc in > > > > > > FvwmProxy by default. It should still has its own copy of the > > > > > > function for readability. > > > > > > > > > > If we already have a global function WindowListFunc, it is > > > > > consistent to use it as the default for all window list modules, > > > > > not just the core. (And it is actually used in at least 3 modules > > > > > now). > > > > > > > > It's not a window list module. > > > > > > It keeps an internal window list and applies some actions to windows. > > > Just like FvwmWindowLister is a window list module although it does not > > > show a permanently visible list of windows. > > > > I don't know how you would work with it, but I would never use the > > WindowListFunc with FvwmProxy because it works totally different > > that the other window listing modules. (I chose a copy of > > WindowListFunc only to not have to worry about it for a moment). > > FvwmProxy was designed as a possible WindowList replacement. If you say so. > A user usually wants the same function in both when a window is selected. If you say so. > But, anyway, this is only a default that works well. If you say so. > > > > > Overall, I like how clean it is now. > > > > > > > > Well, I don't like it at all as it's user unfriendly and > > > > unnecessarily wastes resources. But I think I said that before. > > > > > > > > Oh, and with the current design it's difficult to bind "Abort" to > > > > a mouse button. You'd have to say > > > > > > > > *FvwmProxy: Action Click2 SendToModule FvwmProxy Abort > > > > > > > > Ugly. > > > > > > Looks acceptably good and modular to me. > > > > Well, if that is your opinion, I think I am maybe working on the > > wrong window manager. I am struggling hard to improve fvwm's > > usability and to clean up the most screwed interfaces, and all I > > ever hear is that the current state is nice and changing it is > > useless. > > First, this is not true. I mostly like all your work on the core. > But when you say that some things are screwed (like SendToModule as the > way to send module commands) without any reasons, I can't agree. I say that because fvwm's usability is a catastrophe. > But what is your own solution here for 2.6.0? This one: > > *FvwmProxy: Click2DoesAbort > > ? Or maybe this: > > Function SetFvwmProxyAbortingProxiesOnClick2 > > with this global function defined in the Defaults file? Very funny, but not quite related to what I proposed. *FvwmProxy: Action Click2 FvwmProxy_Abort > > Fvwm will never grow beyond it's "flexible maybe, but > > too hard to configure" image this way. > > I really understand your feelings. But let's postphone this discussion for > 3.0. I don't think I will see a 3.0 release. With what has happened since 2.4, I think it's useless even to try cleaning things up. The task has grow so immensely that I can not believe I ever find enough time to to this. I don't even get around finishing the things I started after 2.4. Bye Dominik ^_^ ^_^ -- 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]