Subject: Funny you should mention that...

From: John Anderson <[email-masked]>
Date: Tue, 27 Oct 1998 23:58:30 +0000

Hey guys and gals,

This is Cobalt from fvwm.themes.org.  It is really funny you should
mention all the theme stuff....  I have been talking with the fvwm2gnome
people and we are planning to combine the way we do themes, fvwm.t.o
will adopt their method (pretty much) and they will be interchangable..
The theme features should include, but are not limited to (cause I may
forget a few):

Modular Config files,
tar ball theme reading (no need to extract the themes),
a central directory for pixmaps, backgrounds, icons, etc.,
menu based theme switching,
having pictures in those menus as to what the titlebar will look like (I
think through FvwmPipe),
and more.

We *should*, if all goes right have all the changes done by early
November, probably this week or the next.  There will be many themes,
and they will all be hosted on fvwm.t.o..  I urge you to all go check
out fvwm.t.o and give me more suggestions as to desired features, but
remember, we haven't really gotten started on the conversion to the new
method...

I think that the theme model that we are creating for fvwm2 will be rock
solid, and I am going to write documentation for it...  I think that we
are very close to something that would almost be good enough to submit
for "Official theme system" consideration...

Hope you take a look at fvwm.t.o and
http://www.staticbomb.com/fvwm2gnome/,

Cobalt ([email-masked])

--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
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: Austin Donnelly <[email-masked]>
Date: Wed, 28 Oct 1998 10:32:15 +0000

> will adopt their method (pretty much) and they will be interchangable..

While everyone's looking at these 'theme' things, have people looked
at the Debian's modular fvwm2 config system?

It was designed by Lars Wirzenius, and addresses most of these user
config vs. system-wide shared config issues.

I've included the readme at the end of this email.

Austin
-----------------------------------------------------------------------------
    User Extensible system.fvwm2rc For Debian GNU/Linux
-----------------------------------------------------------------------------

The Debian pre-packaged version of the Fvwm window manager (version 2)
comes with a custom system.fvwm2rc. It provides the following features:

        o       users can customize their environment without having to 
                copy system.fvwmrc

        o       Debian packages can install themselves into a menu
        
        o       users can also add to the menus

This README describes how the features of the Debian system.fvwmrc can
be used.

** Allowing user customization the right way

When fvwm starts, it reads in one of two configuration files: either the
user's own ~/.fvwm2rc, or the system wide /etc/X11/fvwm2/system.fvwm2rc.
(Paths given in this document are for a Debian Linux system. For most
other people, they are different.) As long as a user does not have their
own configuration file, their environment will change when system.fvwm2rc
is changed. This is good, because the system administrator can then
use system.fvwm2rc to set up a comfortable environment, with menus for
locally installed software, and so on. 

If a user is not completely happy with the environment set up by
system.fvwm2rc, they can make any modifications they wish by copying
system.fvwm2rc to ~/.fvwm2rc, and then changing the file.
Unfortunately, their environment will no longer follow changes
in the system.fvwm2rc.

The problem can be solved in many ways. The new system.fvwm2rc in this
package does it by adding `hooks'. Hooks are extra files that a user
can create that modify the environment. This avoids the need for a
~/.fvwm2rc. Therefore, when system.fvwm2rc changes, a user's environment
will also change.

A bare bones version of this would be system.fvwm2rc that looked
something like the following:

        Style "*" Color white/black
        ... other commands to set up the default environment ...
        Read .fvwm2/post.hook

The last line is a command for fvwm to read in the file .fvwm2/post.hook
and execute all configuration commands in it. Now, if a user
needs to customize their environment, they can create the file
~/.fvwm2/post.hook, put any necessary commands there, and things will
work fine.

The bare bones version above is, however, slightly too simple. For
example, if system.fvwm2rc defines a main menu, which it usually does,
new entries can be added to it in .fvwm2/post.hook, but they will be
added to the end of the menu. This is awkward. Therefore, the new
system.fvwm2rc contains several other hooks. See later for a complete
list.

The system administrator has the same problem as a user. If he installs
a new version of fvwm, which comes with a new system.fvwm2rc, either
his local modifications will be lost, or the new stuff will be lost.
This new system.fvwm2rc solves the problem by duplicating each hook: the
system administrator also won't change system.fvwm2rc directly, but will
only add hooks.

-----------------------------------------------------------------------------
    The hooks

For each hook, there is one version for the system administrator,
located in /etc/X11/fvwm2, and one for the user, located in ~/.fvwm2.
The system administrator hook is read in first.

The hooks are:

        pre.hook
                Commands to execute before any commands in system.fvwm2rc.
                This is included mostly for completeness.
                
        post.hook
                Commands to execute after all other commands in 
                system.fvwm2rc.  This is usually where most customization
                is put.
                
        init.hook
                Additional commands for the InitFunction, which is 
                automatically executed by fvwm upon startup.  This should
                contain commands to start any programs you want to always
                start, such as a welcome screen or an xterm.
                
                The lines in init.hook should be "continuation lines"
                for a function, such as:
                
                        + "I" Exec xterm
                        
                See the fvwm2 manual page for details (the AddToFunction
                command).
                
        restart.hook
                Similar to init.hook, but for the RestartFunction, which is
                executed when fvwm is restarted.
                
        init-restart.hook
                Similar to init.hook and restart.hook, but these additional
                commands will be added to both InitFunction and 
                RestartFunction.  This is usually where commands to
                start fvwm modules are placed.
                
        main-menu.hook
                Additional entries in the main menu.  These entries
                come after the auto-generated stuff, but before the
                mandatory "Exit" entry.  Each line in main-menu.hook
                should be a continuation line for a menu definition
                (see the fvwm2 manual page about the AddToMenu
                command).  For example:
                
                        + "XTerm" Exec xterm
                        
                Note that main-menu.hook and init.hook (et al) have a 
                different, but very similar syntax.
                
        main-menu-pre.hook
                Same as main-menu.hook, but entries are added at the
                very beginning of the menu.  You will probably want to
                add a separator line to the end of this, by using:
                        + "" Nop
                otherwise the menu looks silly.
                
        menudefs.hook
                The menu auto-generation stuff puts the generated
                menus in this system-wide file.  Therefore, any edits
                the system administrator makes to this file will be
                lost the next time "update-menus" is run, so don't
                edit it.  post-hook is probably the best place to put
                extra menus.
                
        background.xpm
        background.jpg
        background.gif
        background.color
        background.list
                These files define the screen background (root window).
                They are searched for in order, and only the first
                one is used.  (Also, for this case only, the user
                hook is searched for before the system administrator,
                because otherwise a user could not override the background).
                
                background.xpm, background.jpg and background.gif
                should be the graphic files themselves (or a symbolic
                link to them).

                The background.color file should contain one line that
                gives the name of a color.  The background will then
                be set to that color.

                The background.list file should be a list of
                filenames, one per line. Each line specifies the path
                to a jpg or gif format picture file. Paths can be
                absolute (starting with '/'), or relative to the
                user's home directory. The background will be set to
                one of the pictures at random.

-----------------------------------------------------------------------------
For more details of the menu system, install the "menu" package, and
read /usr/doc/menu/README.

-----------------------------------------------------------------------------
    Hints and tips

        Configuring your pager
                You can put *FvwmPagerXXX lines in the post hook to
                reconfigure the pager to your liking: your options
                will override the defaults provided.  This is good
                enough for most people.

                Unfortunately, you can't easily change the number of
                desks covered by the pager.  This is because the pager
                is started just after the post hook.  If you want
                multiple desks, you could wait for the appearance of
                the pager, kill it, and start a new one configured to
                you liking.  You can do this by including something
                like the following at the end of your init-restart
                hook:
                        + "I" Wait FvwmPager
                        + "I" KillModule FvwmPager
                        + "I" Module FvwmPager 0 3

---

From: Dan Espen <[email-masked]>
Date: Wed, 28 Oct 1998 08:40:10 -0500

>         ... other commands to set up the default environment ...
...

Neat!

If your fvwm2 acts like mine used to, if  the user in question doesn't
have  a ".fvwm2/post.hook" file,   there  would be  warning about  the
missing file being generated.

Fortunately, the "animate_icons" branch  includes a "Quiet"  option to
the read command to suppress the warning.

--
Dan Espen                                Phone: (732) 699-5570
444 Hoes Lane  Room RRC 1C-214           E-mail: [email-masked]
Piscataway, NJ 08854
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
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: Austin Donnelly <[email-masked]>
Date: Wed, 28 Oct 1998 13:50:15 +0000

> missing file being generated.

Yes.  Debian works around that by having empty hook files in the
system area, since they are also searched if the directory doesn't
exists in the user's homedir.

> the read command to suppress the warning.

Cool!

Austin