23. FVWM3 Support

NsCDE from version 1.3 has late beta quality of support for FVWM3. NsCDE is and will stay compatible for FVWM2 as long as possible. At the time of this writing, FVWM3 was in it's fourth release and much of the previous problems are solved, altrough it still has some problems with FvwmPager in multi-monitor setup. Nevertheless, NsCDE will search for "fvwm3" and then "fvwm2" and "fvwm" in $PATH. If both, FVWM3 and FVWM2 are installed on the same system, from NsCDE 2.0 and up, FVWM3 has higher priority. This can be overriden in user's environment (for example $HOME/.bashrc) by setting environment variable FVWM_BIN with the value which points to name of the FVWM binary, or full path to the binary if for example, FVWM3 was installed from source in some non-standard place out of the path.

For example:

export FVWM_BIN=/opt/fvwm3/bin/fvwm3

or ...

export FVWM_BIN=fvwm3

or ...

export FVWM_BIN=fvwm

When running with FVWM3, NsCDE will behave almost identical as in FVWM2, with benefit of RandR support in multiple monitors setup. This allows dynamic addition and removal of physical monitors and better management of such configurations.

Probably the most notable feature of FVWM3 is DesktopConfiguration. FVWM3 configuration parameter DesktopConfiguration decides of workspaces layout in case of multiple monitors. For now, there are three options: "global" (default), "per-monitor" and "shared". First option is very similar in layout to old Xinerama support in FVWM2, while second and third model are splitting workspaces, so different parts of different workspaces can be shown on different monitors. NsCDE implements dynamic finding and displaying, as well as creation of joint backdrops combinations for multiple monitors layout out of the box, so old hack described in $NSCDE_ROOT/share/doc/nscde/examples/fvwm3-per-monitor/README is not needed anymore. As in the future more desktop layouts are planned by FVWM3 developers, this setting has it's GUI control usable on FVWM3 in the Workspaces and Pages Style Manager. NsCDE provides InfoStoreAdd desktopconfiguration directive in the $FVWM_USERDIR/NsCDE.conf when FVWM3 is used. This value can be edited manually to contain "global", "per-monitor" or "shared" value, or Workspaces and Pages Manager can be used for that task.

Third difference between NsCDE under FVWM2 and FVWM3 is logging. While FVWM2 is logging all it's actions on X server's standard output and standard error, which usually ended up in $HOME/.xsession-errors, FVWM3 logs into default or configured log file. In NsCDE this file is $FVWM_USERDIR/tmp/fvwm.log. By default, FVWM3 does not log anything there if not invoked with "-v" option, but logging can be toggled by sending SIGUSR2 to FVWM3 process. When Watch Errors menu item is called, it has one new option on personalized window menu which is called from the first (left) titlebar button: Togle FVWM3 Logging. When opening this log window, FVWM3 logging will be enabled almost immediately. To have logging enabled as soon as possible when FVWM3 is started or restarted, infostore variable $[infostore.fvwm3_default_logging] should be set in $FVWM_USERDIR/NsCDE.conf.

Caution: using NsCDE under FVWM3 is still a bit of beta quality. Example of the current unsolved FVWM3 bug: Local Pager shown when changing pages and workspaces will contain primary monitor content, which will be wrong on the secondary monitor(s). Any misbehaviour should be carefully distinguished if it is NsCDE or FVWM3 bug while deciding where to report bugs. Watching logs, trying to trigger the same error under FVWM2 will be a good starting point for diagnostic of such problems which may manifest itself.