From kragen@dnaco.net Wed Aug  5 11:22:47 1998
Date: Wed, 5 Aug 1998 11:22:45 -0400 (EDT)
From: Kragen <kragen@dnaco.net>
To: ingle@erim.org
Subject: wm configuration
Message-ID: <Pine.SUN.3.96.980805110955.21649I-100000@picard.dnaco.net>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Keywords:
X-UID: 1045
Status: O
X-Status: 

Here's the way your X configuration works.

.xinitrc is the starting point.  xinit looks for a .xinitrc in your
home dir, or uses /etc/X11/xinit/xinitrc if you have none.  It's an
executable file; usually, it's a shell script.

The xinitrc is responsible for starting anything other than the raw
server, such as xterms, window managers, control panels, and so forth.

Red Hat's xinitrc looks for a .Xclients in your home dir, or
/etc/X11/xinit/Xclients if there isn't one.  if it exists, it runs that
file instead of finishing up its own setup.

Among other things, it runs fvwm.  When fvwm runs, it has its own
configuration file, with its very own syntax (described in man fvwm).
Normally, it uses .fvwm2rc or .fvwmrc in your home dir, but this can be
changed.  Red Hat's Xclients starts fvwm with some command-line
arguments that keep it from actually reading any configuration file at
all.

fvwm has this nifty modules system.  An fvwm module runs as a separate
process that talks to fvwm with a couple of pipes.  Among other things,
it can send back commands of the .fvwmrc format.  So it's possible to
have one module start another, for instance, and it's even possible to
have a module read the config file for you.

That's what Red Hat's Xclients does.  It passes a one-line "config
file" on the command line which consists of the line "FvwmM4 -debug
/some/file/name".  This instructs fvwm to start the FvwmM4 module with
the arguments "-debug /some/file/name".  FvwmM4 reads the file
specified, runs it through the m4 macro pre-processor, and passes the
results back to fvwm as fvwm commands.

FvwmButtons is also an fvwm module.  It is configured (like all fvwm
modules) with fvwm commands (usually from .fvwmrc, but in this case,
from FvwmM4).  The configuration tells it what buttons to display, and
what they should do.

I hope this helps.

Kragen


