Subject: Learning FVWM internals

From: [email-masked] (Julian Gilbey)
Date: Mon, 15 Feb 1999 02:03:36 +0000 (GMT)

I've just taken over the maintainership of the Debian fvwm2 package,
which will aim to keep up with the fvwm 2.x.y software.  Obviously, if
I am going to be able to do a reasonable job of maintaining the
software, I should have a decent idea of what is going on internally.
As I have never worked with a windowing system before, can anyone give
me some pointers to find out the basics needed to understand how an
X Windows manager works, and in particular what goes on inside of
FVWM?

My contribution in return will obviously be twofold: forwarding
(genuine) bug reports expediently (once I have got to grips with what
is going on), and supplying patches in those cases where I can figure
out what needs to be done.

   Julian

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  Julian Gilbey, Dept of Maths, QMW, Univ. of London. [email-masked]
             Debian GNU/Linux Developer.  [email-masked]
       -*- Finger [email-masked] for my PGP public key. -*-
--
Visit the official FVWM web page at <URL:http://fvwm.math.uh.edu/>.
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: Bob Woodside <[email-masked]>
Date: Sun, 14 Feb 1999 23:51:00 -0500 (EST)

[email-masked] (Julian Gilbey) wrote:
> which will aim to keep up with the fvwm 2.x.y software.

	Will you be responsible for both the Stable and the Unstable
trees, or are there two separate maintainers for the two trees? Is
Austin no longer involved with fvwm, at least in an official Debian
capacity? I'll need to update our contact list.

>  Obviously, if I am going to be able to do a reasonable job of
> maintaining the software, I should have a decent idea of what is
> going on internally. As I have never worked with a windowing system
> before, can anyone give me some pointers to find out the basics
> needed to understand how an X Windows manager works,...

	The X Window System series of books published by O'Reilly &
Associates is probably your best introduction. I find I refer to
Volumes 1 and 2 most often. Volume 1 has a chapter on "Interclient
Communication", which describes the interaction between the window
manager and client programs.

> and in particular what goes on inside of FVWM?

	Whew! Well, before somebody says "Use the source, Luke",
here are a couple of starting points. Look at fvwm.h and screen.h
for some of the basic data structures. Then, fvwm.c has the
initialization and termination logic, and events.c has the event
loop and all the event handlers. The built-in functions (i.e.,
the commands you place in the .fvwm2rc file, or issue interactively
from FvwmConsole or from a shell script via FvwmCommands) are
implemented via a function pointer table in functions.c; most of the
functions pointed to in the table will be found in builtins.c.

	I realize that this barely scratches the surface, but it's
a starting point. I hope it helps. Good luck!

- Bob

---

From: Steve Robbins <[email-masked]>
Date: Mon, 15 Feb 1999 01:03:45 -0500 (EST)

> for some of the basic data structures. Then, ...

Here's an idea for Julian: while you are delving into the innards of FVWM,
take notes.  Then work the notes into some kind of "hacker's guide" for
FVWM, and you'll be world famous! 

--
Steve Robbins                              <[email-masked]>

It's the end of the world as we know it, and I feel fine.

---

From: [email-masked] (Julian Gilbey)
Date: Mon, 15 Feb 1999 13:55:40 +0000 (GMT)

> capacity? I'll need to update our contact list.

Austin has offered fvwm 1.x up "for adoption"; I've offered to take
over from him, but haven't heard anything yet.  When I start to work
on it, probably within the next few weeks, I will take over both
versions (unless I have heard otherwise from someone about the stable
version).  I recommend that you use [email-masked] as my email
address, as this will remain as long as I am a Debian maintainer.

> manager and client programs.

Aargh... sounds heavy!  But I guess I'll have to start somewhere. :-/

> functions pointed to in the table will be found in builtins.c.

Well, reading the source is, obviously, the way to go (I have played
this game before ;-), but it's not a simple program, and I wanted a
couple of pointers to get me going.  Thanks for the hints -- hopefully
they'll help.

> a starting point. I hope it helps. Good luck!

Cheers!  (Which is British slang for "Thanks!")

   Julian

---

From: [email-masked] (Julian Gilbey)
Date: Mon, 15 Feb 1999 13:56:30 +0000 (GMT)

> FVWM, and you'll be world famous! 

That's not a bad idea, but I'm not so sure about the world famous bit ;-)

   Julian

---

From: Richard Lister <[email-masked]>
Date: Mon, 15 Feb 1999 11:57:26 -0500

On Mon, 15 Feb 1999 13:55:40 +0000 (GMT)
[email-masked] (Julian Gilbey) 

Julian

There are lots of links to X resources and tutorials at Kenton Lee's
site: http://www.rahul.net/kenton/xsites.html.

There is Xlib tutorial info at http://www.tronche.com/gui/x/xlib/.

It can also be educational to look at the very simple window managers
provided as examples in X distributions over the years (such as
[x]wm, uwm, twm). I have links at http://www.giccs.georgetown.edu/~ric/wm/.

Ric

Richard J Lister, Georgetown Institute for Cognitive and Computational Sciences
Georgetown University Medical Center, Washington, DC 20007, USA
Phone: +1 202-687 2878
Email: [email-masked] 
Web: http://www.giccs.georgetown.edu/~ric/
--
Visit the official FVWM web page at <URL:http://fvwm.math.uh.edu/>.
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].