Quick and Dirty information about making FVWM-Crystal packages for various
Linux distributions.

Written by: Maciej Delmanowski <harnir@linux.net.pl>


OK, so you want to make a package with FVWM-Crystal? Great! I will tell you
where you should put which file and what to do for making everything work.


Part I: user and system files.
-------------------------------

Here I describe which configuration files (those in 'fvwm/' directory) are
"system" and which one are "user".

By default you can put all files from 'fvwm/' directory into '~/.fvwm' one.
After doing this you just need to make sure that file '~/.fvwm/.fvwm2rc'
exists and has something like "Read config" in it (this isn't the case for
FVWM-CVS and future versions, because they will read '~/.fvwm/config' file
directly). Everything should work with this configuration.

If you want to make a "system-wide" version of FVWM-Crystal config files, you
need to put in system directory (I would prefer to see these files in
'/usr/share/fvwm-crystal', as in FHS or Debian system. I assume that you put
config files in this directory) all files and directories from 'fvwm/'
directory. Then you should make a script which will be used by average user to
install FVWM-Crystal "user" files in his own '~/.fvwm' directory. This script
should make three things:

- copy the '/usr/share/fvwm-crystal/user-preferences/' directory into
  '~/.fvwm/user-preferences/'

- make sure that file '~/.fvwm/.fvwm2rc' exists and it has inside something
  like "Read /usr/share/fvwm-crystal/config"

- depending on how the user starts his/hers X session, make sure that 'exec
  fvwm2' is present in '~/.Xsession', '~/.xinitrc' or whichever file your
  distribution uses

After executing this script (it's name... maybe 'fvwm-crystal.install'?) user
should start his/hers X session and see a new, shiny desktop.


Part II: tewaking the interface.
---------------------------------

How can user change his/hers settings? By editing '~/.fvwm/user-preferences/*'
files. There are many basic settings there, such as default terminal emulator,
mail client, etc. Users can choose from there different desktop layouts. This
directory (~/.fvwm/user-preferences) shouldn't be overwritten by the install
script. You can make a backup copy (and inform the user about this), or just
show the information that user-side preferences were changed in the newest
release (make a checksum and compare it with the new release? I don't know how
to check that...) and they should update their config files - and leave then
choice (do it or not).

On the next level of experience the user may want to change the desktop layout
(that's true in the most cases, such as window decorations can be easily
changed from the menu, etc. they are usually left intact; desktop layout is
changed almost in any case), they can do the following thing:

- copy '/usr/share/fvwm-crystal/desktop-layouts/{choosen-desktop-layout}/'
  directory to their '~/.fvwm/' directory

- change the $DesktopLayout variable in '~/.fvwm/user-preferences/Variables'
  to point to the new desktop layout directory

Now they can easily preserve their changes in the desktop layout for the next
updates of FVWM-Crystal.

The third level of tweaking can be chaning of the functions, adding new, etc.
On this level of changes the best way to make them is to copy entire
'/usr/share/fvwm-crystal/' directory into users '~/.fvwm/'. Also make sure
that '~/.fvwm/.fvwm2rc' has something like "Read config".


Part III: Updates.
-------------------

There should be no problems with updating FVWM-Crystal to the new version. Of
course it's good to read NEWS file. If there will be any changes to the
user-side of config files, I will notice it in NEWS.


Part IV: At the end...
-----------------------

Don't forget to send me an info that you are making a FVWM-Crystal package, so
I can send you new version for tests, etc. :)

