The Official FVWM Homepage - Important Changes Since Fvwm-1.xx

The module interface remained fairly stable when going from Fvwm-1.xx to Fvwm-2.xx. The change most likely to affect modules is the addition of an extra value to the header. This value is a timestamp. Most modules contained the line:

	unsigned long header[3];
This must be changed to:
	unsigned long header[HEADER_SIZE];
The rest of the changes are handled in the library function ReadFvwmPacket.

Another notable change is that modules do not have to read the .fvwmrc file themselves. They can request the appropriate lines from fvwm:

  static void ParseOptions() {
    char *buf;
    while (GetConfigLine(Channel,&buf), buf != NULL) {
      ParseConfigLine(buf);
    } /* end config lines */
  } /* end function */
This is the preferred method of getting module-specific configuration lines.

Starting in fvwm-2.0 pl 1, fvwm2 passes command line arguments to the modules, so if the user said ``FvwmPager 2 4'', the module will see argv[6] = 2 and argv[7] = 4, instead of argv[6] = ``2 4''.

Some new packet types are defined, and a few values were added to some packet types.