Re: FVWM: Events when windows close?

2010-08-10 Thread Thomas Adam
2010/8/10 Michael Großer :
> The problem: If I switch to another viewport and then
> back to the prior one, then sometimes no window has the
> focus. If I give a window a focus and close it, then
> again no window has the focus.
>
> How can I solve this problem?

You can't.

> My idea is that I use an event to use the "Next" command
> to give some window the focus:
> - If I switch the viewport, I could call such a function
> - If a window closes, I could call such a function.

So you want something like this then:

DestroyModuleConfig a:*
*a: new_page SomeFunc
*a: new_desk SomeFunc

AddToFunc StartFunction I Module FvwnEvent a

DestroyFunc SomeFunc
AddToFunc   SomeFunc
+ I None (Focused) Next (AcceptsFocus, !Focused, CurrentPage) FlipFocus

> Problem:
> - Doing something if I switch the viewport, could be possible.
> - But, doing something if a window closes, is difficult.

No it isn't -- see FvwmEvent, with the "destroy_window" condition.

-- Thomas Adam



Re: FVWM: Events when windows close?

2010-08-11 Thread Michael Großer
Hi!

Thank you very much. This "destroy_window" event could
be the solution I was looking for.

I will try to solve my problem over the weekend.

I like software that is flexible enough to satisfy
all my wishes in my role as a user. I wish I had
recognized the power of fvwm many years earlier.

Michael



Thomas Adam wrote:
> 2010/8/10 Michael Großer :
>> The problem: If I switch to another viewport and then
>> back to the prior one, then sometimes no window has the
>> focus. If I give a window a focus and close it, then
>> again no window has the focus.
>>
>> How can I solve this problem?
> 
> You can't.
> 
>> My idea is that I use an event to use the "Next" command
>> to give some window the focus:
>> - If I switch the viewport, I could call such a function
>> - If a window closes, I could call such a function.
> 
> So you want something like this then:
> 
> DestroyModuleConfig a:*
> *a: new_page SomeFunc
> *a: new_desk SomeFunc
> 
> AddToFunc StartFunction I Module FvwnEvent a
> 
> DestroyFunc SomeFunc
> AddToFunc   SomeFunc
> + I None (Focused) Next (AcceptsFocus, !Focused, CurrentPage) FlipFocus
> 
>> Problem:
>> - Doing something if I switch the viewport, could be possible.
>> - But, doing something if a window closes, is difficult.
> 
> No it isn't -- see FvwmEvent, with the "destroy_window" condition.
> 
> -- Thomas Adam
> 
> 




Re: FVWM: Events when windows close?

2010-08-11 Thread Thomas Adam
On Wed, Aug 11, 2010 at 11:37:51AM +0200, Michael Großer wrote:
> Hi!
> 
> Thank you very much. This "destroy_window" event could
> be the solution I was looking for.
> 
> I will try to solve my problem over the weekend.

AFAICT there's nothing left to solve?

Oh, and do not top-post on this list, please.

-- Thomas Adam



Re: FVWM: Events when windows close?

2010-08-11 Thread Michael Großer
Thomas Adam wrote:
> On Wed, Aug 11, 2010 at 11:37:51AM +0200, Michael Großer wrote:
>> Hi!
>> 
>> Thank you very much. This "destroy_window" event could
>> be the solution I was looking for.
>> 
>> I will try to solve my problem over the weekend.
> 
> AFAICT there's nothing left to solve?
> 

I need time. Yesterday, a whole day elapsed while
I was reading, learning and programming all around
fvwm.

It is addictive: Once I start tweaking my GUI,
I sink into this world and forget the time
(and this is bad, because I have a job, too).
But, the results are great, compared to the fact
that I seriously started my private research project
yesterday in the early morning. I have 12 desktops
with 12 viewports per desktop. At the bottom left
corner on my screen resides the FvwmPager showing
48 viewports at one time (Desk 1 to Desk 4).
If I go to desk 5 to desk 8, it shows desk 5
to desk 8. If I go to desk 9 to desk 12, it
shows desk 9 to desk 12. So, I have plenty of
space for all my different projects. I configured
a lot of bindings so I can use the keyboard to
create new windows or operate with the viewports.
I studied the sample config files of the fvwm95
project to get suggestions. I created a digital
clock at the bottom right corner of my screen
using 3 instances of xclock to let it show
me the day of the week (1st instance), the
date (2nd instance) and the time (3rd instance).
Fvwm is automatically positioning these
instances for me using "Wait" and "Prev"
and setting some styles.

Later, I will fix the focus problem (I asked
for in this mailing list) and I will build a
task bar for me at the bottom, where is still
some room in the middle. I think that the
fvwm95 project will show me how I can get such
a task bar. The documentation of the fvwm
project is hard to read and could be written
a bit more well-arranged. But, I understand
the stuff that is written in the documentation,
because I invest the time to read it carefully
and to make some tests on my system.
And, many other window managers do not
have to write such a complex documentation,
because these window managers have very close
limits. And where nothing is to be documented
(because of the lack of functionality),
there is no complex documentation needed.

My goal is to create the perfect desktop
user interface for Linux systems and
I deeply prefer functionality. If I want
a system with 144 desktops, viewports
or whatever, then I do not expect that
a piece of software wants to explain me
that 20 Desktops are enough. If I need
a pager that is capable to show the
desktops using an arbitrary number of
rows, then I am annoyed when I discover
that the maintainers of a window manager
are about to replace a good but not
very inspiring pager by a pager that
cannot even use more than 2 rows to
display the desktops.

So, the most important requirement for
me is software with almost no limits
regarding functionality. Fvwm is nearly a
programming language. And this is what I
like.

Michael



Re: FVWM: Events when windows close?

2010-08-11 Thread Thomas Adam
On Wed, Aug 11, 2010 at 01:23:43PM +0200, Michael Großer wrote:
> space for all my different projects. I configured
> a lot of bindings so I can use the keyboard to
> create new windows or operate with the viewports.
> I studied the sample config files of the fvwm95
> project to get suggestions. I created a digital

Why?  You won't learn anything from looking at that file -- it's very old.

> clock at the bottom right corner of my screen
> using 3 instances of xclock to let it show
> me the day of the week (1st instance), the
> date (2nd instance) and the time (3rd instance).
> Fvwm is automatically positioning these
> instances for me using "Wait" and "Prev"
> and setting some styles.

Wait and Prev?  Hmm, see the following as to why this is not a good thing
anymore:

http://fvwmwiki.xteddy.org/Tips/FVWMStartupProcedure/

> Later, I will fix the focus problem (I asked
> for in this mailing list) and I will build a
> task bar for me at the bottom, where is still
> some room in the middle. I think that the
> fvwm95 project will show me how I can get such
> a task bar. The documentation of the fvwm
> project is hard to read and could be written
> a bit more well-arranged. But, I understand
> the stuff that is written in the documentation,

How could it be improved?

[...]

-- Thomas Adam



Re: FVWM: Events when windows close?

2010-08-11 Thread Michael Großer
Thomas Adam wrote:
> On Wed, Aug 11, 2010 at 01:23:43PM +0200, Michael Großer wrote:
>> space for all my different projects. I configured
>> a lot of bindings so I can use the keyboard to
>> create new windows or operate with the viewports.
>> I studied the sample config files of the fvwm95
>> project to get suggestions. I created a digital
> 
> Why?  You won't learn anything from looking at that file -- it's very old.

To get a clue how things work. The man pages
have the theory and the fvwm95 config files
contain the practice and can immediately be
tested. In other words: The man pages are the
reference and the fvwm95 config files are an
example. But 90 percent of my own config files
is code that I checked against the man pages,
because I actually want to understand my
own code.

>> clock at the bottom right corner of my screen
>> using 3 instances of xclock to let it show
>> me the day of the week (1st instance), the
>> date (2nd instance) and the time (3rd instance).
>> Fvwm is automatically positioning these
>> instances for me using "Wait" and "Prev"
>> and setting some styles.
> 
> Wait and Prev?  Hmm, see the following as to why this is not a good thing
> anymore:
> 
> http://fvwmwiki.xteddy.org/Tips/FVWMStartupProcedure/

I will look at it later.


>> Later, I will fix the focus problem (I asked
>> for in this mailing list) and I will build a
>> task bar for me at the bottom, where is still
>> some room in the middle. I think that the
>> fvwm95 project will show me how I can get such
>> a task bar. The documentation of the fvwm
>> project is hard to read and could be written
>> a bit more well-arranged. But, I understand
>> the stuff that is written in the documentation,
> 
> How could it be improved?
> 

Some examples:

1. FuncFvwmRaiseLowerX
==
This page...
http://www.fvwm.org/doc/unstable/fvwm/fvwm.man.html
... does not explain, how FuncFvwmRaiseLowerX exactly
works. I just use it and I don't understand it.
I just use it to move windows with
"Win" + "left mouse button" and it does the
job for me. I don't now why. This could be
improved. Perhaps just make a link to the
document that gives more information about
FuncFvwmRaiseLowerX.


2. destroy_window
=
This page...
http://www.fvwm.org/documentation/manpages/unstable/FvwmEvent.php
... mentions "destroy_window" only two times.
I can guess what it does, and I think, I will
solve my problems with this, but one little section
for each event that explains what exactly causes
the respective event, would be a nice improvement.


3. continuous text
==
The human race is an image processing animal.
When I was studying the bindings syntax, I needed
a reference. I needed the particular options
in tables. But, I found them amongst continuous text.
The first thing that I did was creating my own
reference (half German, half English) that
I attached to this e-mail message.

Just look at the attachments to guess what I mean.
I thing, it could be a nice improvement if
someone would write this kind of information
in table form, so I can find the right piece
of information more quickly (and without
the need to create my own reference in my
own language).




You asked for this kind of feedback.
I hope, I could give you a good and
constructive answer for the start.

For me, I think, I got some first acceptable
results with fvwm. But, I think that I need
some years to be an absolute fvwm professional.

I'm just learning.



Michael
Syntax der Bindings
===
1. Tastatur-Bindings

Key Keyname Context Modifiers Function

2. Maus-Bindings

Mouse Button Context Modifiers Function

3. Der "Keyname"

Siehe hier:
/usr/include/X11/keysymdef.h
--> Das "XK_" muss weggelassen werden.

4. Der "Button"
---
0: Irgendeine Maustaste
1: Linke Maustaste
2: Mittlere Maustaste
3: Rechte Maustaste


5. Der "Context"

Wo soll das Binding zur Anwendung kommen?
R: the root window
W: an application window
T: a window title-bar
S: a window side, top or bottom bar
F: a window frame (the corners)
I: an icon window
0: title-bar button Nummer 0
.
.
.
9: title-bar button Nummer 9
A: any context except for title-bar buttons

Kombinationen dieser Buchstaben und Zahlen sind möglich.

6. Die "Modifiers"
--
N: no modifiers
C: Control
S: Shift
M: Meta  = Alt
L: Caps-Lock (wird per Default ignoriert)
A: Any modifier
0:   = no modifiers
1: mod1  = Alt
2: mod2
3: mod3
4: mod4  = Win
5: mod5  = Alt Gr

7. Function
---

8. Title-bar buttons

1 3 5 7 9   0 8 6 4 2
1. StartFunction

Wird bei Starts und Restarts aufgerufen.


2. InitFunction
===
Wird bei Starts aufgerufen, direkt nach "StartFunction".


3. RestartFunction
==
Wird bei Restarts aufgerufen, direkt nach "StartFunction".


4. Einklinken von Befehlen in diese Funktionen

Re: FVWM: Events when windows close?

2010-08-11 Thread Thomas Adam
On Wed, Aug 11, 2010 at 02:27:25PM +0200, Michael Großer wrote:
> Thomas Adam wrote:
> > On Wed, Aug 11, 2010 at 01:23:43PM +0200, Michael Großer wrote:
> >> space for all my different projects. I configured
> >> a lot of bindings so I can use the keyboard to
> >> create new windows or operate with the viewports.
> >> I studied the sample config files of the fvwm95
> >> project to get suggestions. I created a digital
> > 
> > Why?  You won't learn anything from looking at that file -- it's very old.
> 
> To get a clue how things work. The man pages
> have the theory and the fvwm95 config files
> contain the practice and can immediately be
> tested. In other words: The man pages are the
> reference and the fvwm95 config files are an
> example. But 90 percent of my own config files
> is code that I checked against the man pages,
> because I actually want to understand my
> own code.

Sure -- and it's not your fault, it's just that to solve this "problem"
properly, requires a lot more effort/changes than simply updating the config
file to reflect newer changes in syntax, etc.  That has only been
half-heartedly done recently -- there's a lot of crap still in there which
either needs to be removed, or updated.

Note that I am not talking about the fvwm95 example file specifically, but
about the config files installed via FvwmFormSetup.  That's a big contention
point historically in FVWM though.  :)

> Some examples:
> 
> 1. FuncFvwmRaiseLowerX
> ==
> This page...
> http://www.fvwm.org/doc/unstable/fvwm/fvwm.man.html
> ... does not explain, how FuncFvwmRaiseLowerX exactly
> works. I just use it and I don't understand it.
> I just use it to move windows with
> "Win" + "left mouse button" and it does the
> job for me. I don't now why. This could be
> improved. Perhaps just make a link to the
> document that gives more information about
> FuncFvwmRaiseLowerX.

By default, it looks like this:

AddToFunc FuncFvwmRaiseLowerX
+ I Raise
+ M $0
+ D Lower

And is invoked (by default) like this:

Mouse 1 T   A FuncFvwmRaiseLowerX Move
Mouse 1 FS  A FuncFvwmRaiseLowerX Resize
Mouse 2 FST A FuncFvwmRaiseLowerX Move

Hence, what this function does is wrap two similar functionalities together.

* Whenever the function is run on a window (+ I) it's raised -- always.
* If the window is moved (+M) then the action passed into that function is
  called -- so in the above example, we have a choice of either "Move" or
  "Resize" depending on the binding.
* If the user double-clicks (either on the Title (T), Frames (F) or Sides
  (S), then the window is lowered.

In the link to the fvwmwiki article I gave you, I explain where this
function is defined, and why it's not "accessible" to the user, and why they
have to redefine it for themselves.

But I take your point that there is little documentation on what the
function does, but its definition is in "man fvwm".  I will look at
improving this later on this evening.

> 2. destroy_window
> =
> This page...
> http://www.fvwm.org/documentation/manpages/unstable/FvwmEvent.php
> ... mentions "destroy_window" only two times.
> I can guess what it does, and I think, I will
> solve my problems with this, but one little section
> for each event that explains what exactly causes
> the respective event, would be a nice improvement.

Note also -- there is this rather idiotic thread:

http://www.mail-archive.com/fvwm@fvwm.org/msg00949.html

But take away from that post that some of the information you're wanting --
whilst useful -- might be adding bloat.  In your case, are you saying for
FvwmEvent you want an explanation of what each event does, and when it's
triggered?  I could add that, but assumed the names themselves are
self-documenting.

Again -- can you provide an example using "destroy_window" what sort of
information you're wanting to see?

> 3. continuous text
> ==
> The human race is an image processing animal.
> When I was studying the bindings syntax, I needed
> a reference. I needed the particular options
> in tables. But, I found them amongst continuous text.
> The first thing that I did was creating my own
> reference (half German, half English) that
> I attached to this e-mail message.

I am *especially* keen on this sort of information because of the impending
2.6.0 release.  I have no problems delaying FVWM further if this sort of
thing is going to be useful; *but* making the data tabular also might lose
readability in things like man page formats.

You are aware we have HTML documentation which fragments the monolithic
manpage, right?

http://fvwm.org/doc/unstable/index.html

> Just look at the attachments to guess what I mean.

Sorry, I don't speak German.  But if you can be more specific about which
areas you think would benefit from tabulating information, I am happy to
work with you to accomplish this.

I've been banging on for *years* about this sort of thing, and finally it
might actually happen.  :)

You've made my day.  

Re: FVWM: Events when windows close?

2010-08-11 Thread Michael Großer
Thomas Adam wrote:
> On Wed, Aug 11, 2010 at 02:27:25PM +0200, Michael Großer wrote:
> 
>> 2. destroy_window
>> =
>> This page...
>> http://www.fvwm.org/documentation/manpages/unstable/FvwmEvent.php
>> ... mentions "destroy_window" only two times.
>> I can guess what it does, and I think, I will
>> solve my problems with this, but one little section
>> for each event that explains what exactly causes
>> the respective event, would be a nice improvement.
> 
> Note also -- there is this rather idiotic thread:
> 
> http://www.mail-archive.com/fvwm@fvwm.org/msg00949.html
> 
> But take away from that post that some of the information you're wanting --
> whilst useful -- might be adding bloat.  In your case, are you saying for
> FvwmEvent you want an explanation of what each event does, and when it's
> triggered?  I could add that, but assumed the names themselves are
> self-documenting.
> 
> Again -- can you provide an example using "destroy_window" what sort of
> information you're wanting to see?

Such kind of information could be nice:

- destroy_window:
  --> Generates an event if a window disappears.

- res_class:
  --> What exactly causes this event?
  (I don't know)

- res_name:
  --> What exactly causes this event?
  (I don't know)

So, a list would be fine that mentions
this kind of information:
- event name
- what exactly causes the event
- event name
- what exactly causes the event
- event name
- what exactly causes the event
- ...
- ...
- ...
- and so on



> 
>> 3. continuous text
>> ==
>> The human race is an image processing animal.
>> When I was studying the bindings syntax, I needed
>> a reference. I needed the particular options
>> in tables. But, I found them amongst continuous text.
>> The first thing that I did was creating my own
>> reference (half German, half English) that
>> I attached to this e-mail message.
> 
> I am *especially* keen on this sort of information because of the impending
> 2.6.0 release.  I have no problems delaying FVWM further if this sort of
> thing is going to be useful; *but* making the data tabular also might lose
> readability in things like man page formats.

Give it a try.

> 
> You are aware we have HTML documentation which fragments the monolithic
> manpage, right?
> 
> http://fvwm.org/doc/unstable/index.html

Now, I am ware of this, beaus you pointed this out ;-)

>> Just look at the attachments to guess what I mean.
> 
> Sorry, I don't speak German.  But if you can be more specific about which
> areas you think would benefit from tabulating information, I am happy to
> work with you to accomplish this.

Look at this:
http://www.fvwm.org/doc/unstable/fvwm/fvwm.man.html#menus
31.1.13. Menu
The orange color of the headwords and then the documentation
in black color is a good start.

Now, look here:
http://fvwm.org/doc/unstable/commands/Mouse.html

Read this text:
> Context describes where the binding applies. Valid
> contexts are 'R' for the root window, 'W' for an
> application window, 'D' for a desktop application
> (as kdesktop or Nautilus desktop), 'T' for a window
> title-bar, 'S' for a window side, top, or bottom bar,
> '[', ']', '-' and '_' for the left, right, top or
> bottom side only, 'F' for a window frame (the corners),
> '<', '^', '>' and 'v' for the top left, top right,
> bottom right or bottom left corner, 'I' for an icon
> window, or '0' through '9' for title-bar buttons,
> or any combination of these letters. 'A' is for
> any context. For instance, a context of "FST"
> applies when the mouse is anywhere in a window's
> border except the title-bar buttons. Only 'S' and
> 'W' are valid for an undecorated window.

Now, read this text:

Context
---
It describes where the binding applies. Valid contexts are:
- 'R' for the root window
- 'W' for an application window
- 'D' for a desktop application (as kdesktop or Nautilus
  desktop)
- 'T' for a window title-bar
- 'S' for a window side, top, or bottom bar
  - '[' the left bottom side only
  - ']' the right side only
  - '-' the top side only
  - '_' the bottom side only
- 'F' for a window frame (the corners)
  - '<' for the top left corner
  - '^' for the top corner
  - '>' for the top bottom right corner
  - 'v' for the top bottom left corner
- 'I' for an icon window
- '0' through '9' for title-bar buttons
- any combination of these letters are possible too
- 'A' is for any context

Example
---
A context of "FST" applies when the mouse is anywhere in
a window's border except the title-bar buttons.
Only 'S' and 'W' are valid for an undecorated window.

I quickly hacked my version of the text just now, but
perhaps you could see that now it is a lot easier
to read my version of the text. Give it a further
improve and as the result you should have a text
that suits both HTML pages and classic man pages.

For this hack, I chose the list form. The
table form would also be good idea. It doesn't
matter if you choose the list form or the table
form as long

Re: FVWM: Events when windows close?

2010-08-11 Thread Thomas Adam
On Wed, Aug 11, 2010 at 04:19:20PM +0200, Michael Großer wrote:
> Thomas Adam wrote:
> > On Wed, Aug 11, 2010 at 02:27:25PM +0200, Michael Großer wrote:
> > 
> >> 2. destroy_window
> >> =
> >> This page...
> >> http://www.fvwm.org/documentation/manpages/unstable/FvwmEvent.php
> >> ... mentions "destroy_window" only two times.
> >> I can guess what it does, and I think, I will
> >> solve my problems with this, but one little section
> >> for each event that explains what exactly causes
> >> the respective event, would be a nice improvement.
> > 
> > Note also -- there is this rather idiotic thread:
> > 
> > http://www.mail-archive.com/fvwm@fvwm.org/msg00949.html
> > 
> > But take away from that post that some of the information you're wanting --
> > whilst useful -- might be adding bloat.  In your case, are you saying for
> > FvwmEvent you want an explanation of what each event does, and when it's
> > triggered?  I could add that, but assumed the names themselves are
> > self-documenting.
> > 
> > Again -- can you provide an example using "destroy_window" what sort of
> > information you're wanting to see?
> 
> Such kind of information could be nice:
> 
> - destroy_window:
>   --> Generates an event if a window disappears.

Well, nothing generates these events from FvwmEvent's point of view --
FvwmEvent will just react to events -- but I take your point, they could be
explained better.

> Look at this:
> http://www.fvwm.org/doc/unstable/fvwm/fvwm.man.html#menus
> 31.1.13. Menu
> The orange color of the headwords and then the documentation
> in black color is a good start.

That's a CSS issue only from the resulting HTML output.  The documentation
itself is single-sourced in a monstrous mess of docbook XML (which **will**
be changing in 2.6.0 -- it's just fucking abysmal to keep it the way it is
for much longer.  That's a promise) -- so what we change will affect not
only the HTML, but the man page as well. 

> Now, look here:
> http://fvwm.org/doc/unstable/commands/Mouse.html
> 
> Read this text:
> > Context describes where the binding applies. Valid
> > contexts are 'R' for the root window, 'W' for an
> > application window, 'D' for a desktop application
> > (as kdesktop or Nautilus desktop), 'T' for a window
> > title-bar, 'S' for a window side, top, or bottom bar,
> > '[', ']', '-' and '_' for the left, right, top or
> > bottom side only, 'F' for a window frame (the corners),
> > '<', '^', '>' and 'v' for the top left, top right,
> > bottom right or bottom left corner, 'I' for an icon
> > window, or '0' through '9' for title-bar buttons,
> > or any combination of these letters. 'A' is for
> > any context. For instance, a context of "FST"
> > applies when the mouse is anywhere in a window's
> > border except the title-bar buttons. Only 'S' and
> > 'W' are valid for an undecorated window.
> 
> Now, read this text:
> 
> Context
> ---
> It describes where the binding applies. Valid contexts are:
> - 'R' for the root window
> - 'W' for an application window
> - 'D' for a desktop application (as kdesktop or Nautilus
>   desktop)

Yes.   OK.  Point taken.   Shouldn't be too difficult to do.

> For this hack, I chose the list form. The
> table form would also be good idea. It doesn't
> matter if you choose the list form or the table
> form as long as you break up this continuous text
> form that is hard to read.

Tables I think.   They translate into groff much easier.

> It could help to keep the orange color of the
> letters because the more color, the more eye catching
> is the relevant information.

In terms of HTML, yes.  That won't change, but manpages are a different
kettle of fish.

> * context
> * modifiers
> * focus policies

OK.  No problems.   I will look at this later on when I get back from work.

-- Thomas Adam




Re: FVWM: Events when windows close?

2010-08-12 Thread Michael Großer
Thomas Adam wrote:
> On Wed, Aug 11, 2010 at 04:19:20PM +0200, Michael Großer wrote:
>> Thomas Adam wrote:
>> > On Wed, Aug 11, 2010 at 02:27:25PM +0200, Michael Großer wrote:
>> > 
>> >> 2. destroy_window
>> >> =
>> >> This page...
>> >> http://www.fvwm.org/documentation/manpages/unstable/FvwmEvent.php
>> >> ... mentions "destroy_window" only two times.
>> >> I can guess what it does, and I think, I will
>> >> solve my problems with this, but one little section
>> >> for each event that explains what exactly causes
>> >> the respective event, would be a nice improvement.
>> > 
>> > Note also -- there is this rather idiotic thread:
>> > 
>> > http://www.mail-archive.com/fvwm@fvwm.org/msg00949.html
>> > 
>> > But take away from that post that some of the information you're wanting --
>> > whilst useful -- might be adding bloat.  In your case, are you saying for
>> > FvwmEvent you want an explanation of what each event does, and when it's
>> > triggered?  I could add that, but assumed the names themselves are
>> > self-documenting.
>> > 
>> > Again -- can you provide an example using "destroy_window" what sort of
>> > information you're wanting to see?
>> 
>> Such kind of information could be nice:
>> 
>> - destroy_window:
>>   --> Generates an event if a window disappears.
> 
> I started this for FvwmEvent -- you can see the changes to the manpage here:
> 
> http://github.com/ThomasAdam/fvwm/commit/49a53ee408cba26f7649fc4b56df0d309b485cfd
> 
> Run that file through "man" -- see the table produced.  Is that what you
> were after?
> 
> -- Thomas Adam
> 



I cannot find any displayable man page.
But, I found some kind of source file named "FvwmEvent.1.in".
There, I found:

> T{
> destroy_window
> T}
> @T{
> Runs when a window is closed.
> T}
> _

Yes. This is a good start. Now, the reader is not
guessing but reading and knowing. There is difference between
the one case, where the reader guesses and the other case,
where the reader knows the facts because they are written
down by the author.




> T{
> res_class
> T}
> @T{
> Runs when the WM_CLASS property of a window changes.
> T}
> _
> T{
> res_name
> T}
> @T{
> Runs when the WM_CLASS property of a window changes (for the resource).
> T}
> _

Are you sure that a WM_CLASS property causes both the res_class
and the res_name event? I don't know so much about this WM_XXX stuff,
but if I think logically, shouldn't it mean WM_NAME in the
second event? If not, what is the difference between
res_class and res_name? Why two events have to exist? Why
not one? Or is one of them an alias of the other?



Michael



Re: FVWM: Events when windows close?

2010-08-12 Thread Thomas Adam
On Thu, Aug 12, 2010 at 10:03:01AM +0200, Michael Großer wrote:
> I cannot find any displayable man page.
> But, I found some kind of source file named "FvwmEvent.1.in".
> There, I found:

Download the file -- the direct link to the raw file is here:

http://github.com/ThomasAdam/fvwm/raw/49a53ee408cba26f7649fc4b56df0d309b485cfd/modules/FvwmEvent/FvwmEvent.1.in

Then you have to actually run "man" over it:

man ./FvwmEvent.1.in

I am especially keen for you to do this, so I can ensure my troff skills are
still OK.  I know troff fairly well.  :)

> Are you sure that a WM_CLASS property causes both the res_class
> and the res_name event? I don't know so much about this WM_XXX stuff,
> but if I think logically, shouldn't it mean WM_NAME in the
> second event? If not, what is the difference between
> res_class and res_name? Why two events have to exist? Why
> not one? Or is one of them an alias of the other?

No, I mean WM_CLASS -- that holds two properties therein:

The resource name and the class name.  Go see the ICCCM2.

-- Thomas Adam



Re: FVWM: Events when windows close?

2010-08-12 Thread Thomas Adam
On Wed, Aug 11, 2010 at 04:19:20PM +0200, Michael Großer wrote:
> Thomas Adam wrote:
> > On Wed, Aug 11, 2010 at 02:27:25PM +0200, Michael Großer wrote:
> > 
> >> 2. destroy_window
> >> =
> >> This page...
> >> http://www.fvwm.org/documentation/manpages/unstable/FvwmEvent.php
> >> ... mentions "destroy_window" only two times.
> >> I can guess what it does, and I think, I will
> >> solve my problems with this, but one little section
> >> for each event that explains what exactly causes
> >> the respective event, would be a nice improvement.
> > 
> > Note also -- there is this rather idiotic thread:
> > 
> > http://www.mail-archive.com/fvwm@fvwm.org/msg00949.html
> > 
> > But take away from that post that some of the information you're wanting --
> > whilst useful -- might be adding bloat.  In your case, are you saying for
> > FvwmEvent you want an explanation of what each event does, and when it's
> > triggered?  I could add that, but assumed the names themselves are
> > self-documenting.
> > 
> > Again -- can you provide an example using "destroy_window" what sort of
> > information you're wanting to see?
> 
> Such kind of information could be nice:
> 
> - destroy_window:
>   --> Generates an event if a window disappears.

I started this for FvwmEvent -- you can see the changes to the manpage here:

http://github.com/ThomasAdam/fvwm/commit/49a53ee408cba26f7649fc4b56df0d309b485cfd

Run that file through "man" -- see the table produced.  Is that what you
were after?

-- Thomas Adam



Re: FVWM: Events when windows close?

2010-08-12 Thread Michael . Grosser
> On Thu, Aug 12, 2010 at 10:03:01AM +0200, Michael Großer wrote:
> > I cannot find any displayable man page.
> > But, I found some kind of source file named "FvwmEvent.1.in".
> > There, I found:
> 
> Download the file -- the direct link to the raw file is here:
> 
> http://github.com/ThomasAdam/fvwm/raw/49a53ee408cba26f7649fc4b56df0d309b485cfd/modules/FvwmEvent/FvwmEvent.1.in
> 
> Then you have to actually run "man" over it:
> 
> man ./FvwmEvent.1.in
> 
> I am especially keen for you to do this, so I can ensure my troff skills
> are
> still OK.  I know troff fairly well.  :)

Yeah, now I see it. I have to enter
> man ./FvwmEvent.1.in
to see the man page. If I only enter
> man FvwmEvent.1.in
then I see nothing, because the "./" is essential...

Well, I see a table with the events and the triggers.
This is good. Well done.



> > Are you sure that a WM_CLASS property causes both the res_class
> > and the res_name event? I don't know so much about this WM_XXX stuff,
> > but if I think logically, shouldn't it mean WM_NAME in the
> > second event? If not, what is the difference between
> > res_class and res_name? Why two events have to exist? Why
> > not one? Or is one of them an alias of the other?
> 
> No, I mean WM_CLASS -- that holds two properties therein:
> 
> The resource name and the class name.  Go see the ICCCM2.
> 

Here I still think, that someting is wrong.

I looked at ICCCM2
http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5
http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.1
and detected that two properties WM_CLASS and WM_NAME are existing.

In your new man page, I see:
* res_class --> WM_CLASS
* res_name --> WM_CLASS

Why not "res_name --> WM_NAME"?
I cannot see the logic...


Michael



Re: FVWM: Events when windows close?

2010-08-12 Thread Thomas Adam
On Thu, Aug 12, 2010 at 03:59:26PM +0200, michael.gros...@gmx.de wrote:
> Why not "res_name --> WM_NAME"?
> I cannot see the logic...

That's because it's not meant to be easy to understand by those who aren't
programmers, I suppose.

I'll reiterate it again for you though.

The WM_CLASS XAtom has two properties:

a resource name, and a class name.

What you're looking for is already present in the window_name event, which I
even documented as such.  :P

You need not concern yourself with them -- note that the WM_CLASS is special
though (and likely own applies to windows in the Withdrawn state) because
that's the only time the window class can be updated.  So this event is
rather specific.

I'd rather you concentrated on something more useful, Michael, to be honest.
:)

-- Thomas Adam






Re: FVWM: Events when windows close?

2011-12-30 Thread Thomas Adam
On Thu, Aug 12, 2010 at 08:19:10AM +0100, Thomas Adam wrote:
> I started this for FvwmEvent -- you can see the changes to the manpage here:
> 
> http://github.com/ThomasAdam/fvwm/commit/49a53ee408cba26f7649fc4b56df0d309b485cfd
> 
> Run that file through "man" -- see the table produced.  Is that what you
> were after?

Same question, really.  What were your thoughts on my attempt at cleaning up
the FvwmEvent man page?

It's moot for the format, given my Asciidoc work but I never heard anything
back on this and I'm sick of seeing it on my TODO list which isn't getting
any shorter.

-- Thomas Adam

-- 
"Deep in my heart I wish I was wrong.  But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)



Re: FVWM: Events when windows close?

2012-01-01 Thread Michael Großer
Thomas Adam wrote:
> On Thu, Aug 12, 2010 at 08:19:10AM +0100, Thomas Adam wrote:
>> I started this for FvwmEvent -- you can see the changes to the manpage here:
>> 
>> http://github.com/ThomasAdam/fvwm/commit/49a53ee408cba26f7649fc4b56df0d309b485cfd
>> 
>> Run that file through "man" -- see the table produced.  Is that what you
>> were after?
> 
> Same question, really.  What were your thoughts on my attempt at cleaning up
> the FvwmEvent man page?
> 
> It's moot for the format, given my Asciidoc work but I never heard anything
> back on this and I'm sick of seeing it on my TODO list which isn't getting
> any shorter.
> 
> -- Thomas Adam

Hi Thomas,

one of the ideas of this thread was that I noticed a list of FvwmEvents
without explanations for the most events. You revised this man-page
and sent a link to your revision. After explaining me how I can
display man pages when they are a file, I finally was able to
view your revision.

You created a table, in which you wrote an explanation for each
FvwmEvent:

http://github.com/ThomasAdam/fvwm/raw/49a53ee408cba26f7649fc4b56df0d309b485cfd/modules/FvwmEvent/FvwmEvent.1.in

My reaction to this table on 2010-08-12, at 03:59 pm was:
> Well, I see a table with the events and the triggers.
> This is good. Well done.

This table with the explanations is good. In case you didn't
made an official man page version out of that draft, I think
you should do it now. You really did what I expected: Writing
an explanation to each item of the list.

Our conversation drifted into a direction where I stated that
I didn't understand the difference between "res_class" and
"res_name".

You answered that only programmers are supposed to understand
the documentation related to "res_class" and "res_name", and that
I should concentrate on something more useful.

So, well, I am a programmer, but since I'm not specialized into
that context, I cannot determine if your answer regarding
"res_class" and "res_name", and the importance of this site,
is right or wrong. Usually, I merely send out an alert signal
by saying that a documentation contains a statement that I do
not understand. It's about you how to interpret that alert
signal.

Another thing that catched my eye today (in order to improve
the quality of this man-page): It contains a statement
about an event called "toggle_paging event":

> The toggle_paging event will be supported, as soon, as it's
> resurrected by fvwm:
>
>   *FvwmEvent: toggle_paging fwop.au

This event is absent in the table, and I don't understand the
meaning of the quoted statement.

If you want to help future FVWM users to understand this
toggle_paging event, you could include this event (and all other
missing events) into the table too, and describe them. It's
a suggestion.

Do with my feedback what you want. I recommend to publish
at least your ready work. It were a pity if the table based
idea would disappear into a secret drawer forever.



Any questions to me about that? Since I understand and use the
events that I really need now, my original problem is solved.

Thank you and best regards,
Michael



Re: FVWM: Events when windows close?

2012-01-01 Thread Dan Espen
Michael Großer  writes:

> Our conversation drifted into a direction where I stated that
> I didn't understand the difference between "res_class" and
> "res_name".
>
> You answered that only programmers are supposed to understand
> the documentation related to "res_class" and "res_name", and that
> I should concentrate on something more useful.

I must have missed this conversation.

res_class and res_name are explained in the ICCCM.

For our purposes, they are just 2 of the fields Fvwm uses
for style matching.  Both can be displayed for any window
by FvwmIdent.

-- 
Dan Espen



Re: FVWM: Events when windows close?

2012-01-01 Thread Michael Großer
Dan Espen wrote:
> Michael Großer  writes:
> 
>> Our conversation drifted into a direction where I stated that
>> I didn't understand the difference between "res_class" and
>> "res_name".
>>
>> You answered that only programmers are supposed to understand
>> the documentation related to "res_class" and "res_name", and that
>> I should concentrate on something more useful.
> 
> I must have missed this conversation.

http://www.mail-archive.com/fvwm@fvwm.org/msg01425.html


> res_class and res_name are explained in the ICCCM.

Thanks! The pieces result into a puzzle that I now
begin to understand slowly:

http://tronche.com/gui/x/icccm/
http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.1
http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5
http://www.jumping-blue-turtle.com/fvwm/will_disappear_on_2012-04-04/name_and_class.png

> For our purposes, they are just 2 of the fields Fvwm uses
> for style matching.  Both can be displayed for any window
> by FvwmIdent.
> 

I recommend to recheck this piece of documentation:

+-++
|res_class||
| | Runs  when  the   WM_CLASS |
| | property   of   a   window |
| | changes.   |
+-++
|res_name ||
| | Runs  when  the   WM_CLASS |
| | property   of   a   window |
| | changes  (for  the |
| | resource). |
+-++

Since the ICCCM standard clearly contains both a
WM_CLASS property and a WM_NAME property, the man-page
reader could think that there is an error when
WM_CLASS runs "res_class" and
WM_CLASS runs "res_name".

The man-page should explain why not
WM_NAME does run "res_name". Why WM_CLASS?

Or is there an error?
Consider this action as a kind of quality management ;-)

Michael
<>

Re: FVWM: Events when windows close?

2012-01-01 Thread Thomas Adam
On Sun, Jan 01, 2012 at 10:06:33PM +0100, Michael Großer wrote:
> I recommend to recheck this piece of documentation:
> 
> +-++
> |res_class||
> | | Runs  when  the   WM_CLASS |
> | | property   of   a   window |
> | | changes.   |
> +-++
> |res_name ||
> | | Runs  when  the   WM_CLASS |
> | | property   of   a   window |
> | | changes  (for  the |
> | | resource). |
> +-++
> 
> Since the ICCCM standard clearly contains both a
> WM_CLASS property and a WM_NAME property, the man-page
> reader could think that there is an error when
> WM_CLASS runs "res_class" and
> WM_CLASS runs "res_name".

No.  They both come from the XClassHint struct.   This has nothing to do
with WM_NAME, and the above does not allude to or mention WM_NAME.

> The man-page should explain why not
> WM_NAME does run "res_name". Why WM_CLASS?

See above.

> Or is there an error?

See above.

This event, along with res_name, are only useful for things like
add/configure_window events as that's one of the main times such packets are
sent.

Note that it is forbidden by the ICCCM for the class name to be changed once
the window has left the Withdrawn state.

-- Thomas Adam

-- 
"Deep in my heart I wish I was wrong.  But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)



Re: FVWM: Events when windows close?

2012-01-01 Thread Thomas Adam
On Sun, Jan 01, 2012 at 07:17:24PM +0100, Michael Großer wrote:
> This event is absent in the table, and I don't understand the
> meaning of the quoted statement.

Removing it is easier.

-- Thomas Adam

-- 
"Deep in my heart I wish I was wrong.  But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)



I revised my clock finally [Re: FVWM: Events when windows close?]

2011-12-29 Thread Michael Großer
Thomas Adam wrote:
> On Wed, Aug 11, 2010 at 01:23:43PM +0200, Michael Großer wrote:
>> clock at the bottom right corner of my screen
>> using 3 instances of xclock to let it show
>> me the day of the week (1st instance), the
>> date (2nd instance) and the time (3rd instance).
>> Fvwm is automatically positioning these
>> instances for me using "Wait" and "Prev"
>> and setting some styles.
> 
> Wait and Prev?  Hmm, see the following as to why this is not a good thing
> anymore:
> 
> http://fvwmwiki.xteddy.org/Tips/FVWMStartupProcedure/
> 

Today, I revised my "0009_clock" config file:
>  #AddToFunc StartFunction
>  AddToFunc InitFunction
>  + I Schedule 100 Exec exec xclock -digital -update 1 -strftime "%A " 
>  -geometry 200x34-102-0
>  + I Schedule 200 Exec exec xclock -digital -update 1 -strftime "%d.%m.%Y"
>  -geometry 114x34-90-0
>  + I Schedule 300 Exec exec xclock -digital -update 1 -strftime "%H:%M:%S 
> Uhr" -geometry 108x34-0-0
>
>
>
>  # The clock is supposed to get styles!
>  Style xclock Sticky, NoTitle, HandleWidth 0, StaysOnBottom

No unstabilising Waits anymore. I use the "-geometry" option now to place the
instances onto the right coordinates. And the Schedule command
ensures that the clocks start in the right order (the "date" overlays
the "day of week", the "time" overlays the "date" (and not the other ways
around)).

Thanks for the hints. Now it's time to tweak these little details.

Michael



P.S.
If there were an approach to save these additional 200 or 300 milliseconds
to get the clocks into the right order (without having to risk FVWM to
hang using the "Wait" command), I would be glad about this.



Re: I revised my clock finally [Re: FVWM: Events when windows close?]

2011-12-29 Thread Michael Großer
Michael Großer wrote:
> No unstabilising Waits anymore. I use the "-geometry" option now to place the
> instances onto the right coordinates. And the Schedule command
> ensures that the clocks start in the right order (the "date" overlays
> the "day of week", the "time" overlays the "date" (and not the other ways
> around)).
> 
> Thanks for the hints. Now it's time to tweak these little details.
> 
> Michael
> 
> 
> 
> P.S.
> If there were an approach to save these additional 200 or 300 milliseconds
> to get the clocks into the right order (without having to risk FVWM to
> hang using the "Wait" command), I would be glad about this.





Now, my clock is perfect. When the system is fast, the auto correction
should take effect immediately (after 10 or 100 milliseconds).
For slower systems, there is another auto correction after 1 second.
For very slow systems, there is yet another auto correction after 10 seconds:

> AddToFunc InitFunction
> + I Exec exec xclock -digital\
>  -update 1\
>  -strftime "%A "\
>  -geometry 200x34-102-0\
>  -name "clock1"
>
> + I Exec exec xclock -digital\
>  -update 1\
>  -strftime "%d.%m.%Y"\
>  -geometry 114x34-90-0\
>  -name "clock2"
>
> + I Exec exec xclock -digital\
>  -update 1\
>  -strftime "%H:%M:%S Uhr"\
>  -geometry 108x34-0-0\
>  -name "clock3"
>
> AddToFunc StartFunction
> + I Schedule 13 Prev ("clock1") arrange_the_clock
> + I Schedule 103 Prev ("clock1") arrange_the_clock
> + I Schedule 1003 Prev ("clock1") arrange_the_clock
> + I Schedule 10003 Prev ("clock1") arrange_the_clock
>
> + I Schedule 12 Prev ("clock2") arrange_the_clock
> + I Schedule 102 Prev ("clock2") arrange_the_clock
> + I Schedule 1002 Prev ("clock2") arrange_the_clock
> + I Schedule 10002 Prev ("clock2") arrange_the_clock
>
> + I Schedule 11 Prev ("clock3") arrange_the_clock
> + I Schedule 101 Prev ("clock3") arrange_the_clock
> + I Schedule 1001 Prev ("clock3") arrange_the_clock
> + I Schedule 10001 Prev ("clock3") arrange_the_clock
>
>
>
>
>
> # The clock is supposed to get styles!
> Style clock? Sticky, NoTitle, HandleWidth 0, StaysOnBottom, WindowListSkip
>
> # bring the clock instances into the right order
> DestroyFunc arrange_the_clock
> AddToFunc arrange_the_clock
> + I Layer 0 2
> + I Lower