NsCDE uses very extensive bunch of configurations, scripts and apps around FVWM. FVWM is in my opinion very good model of free choice for people who like to have things set up by their own wishes and who are aware what real freedom of choice is. A stunning contrast to policies forced on Linux an Unix users in the last decade from the mainstream desktop players.
NsCDE is not using FVWM default $HOME/.fvwm
if exists,
but sets $FVWM_USERDIR
to $HOME/.NsCDE
,
and uses $NSCDE_DATADIR/fvwm
and
$NSCDE_DATADIR/default
as a sources of configuration.
NsCDE configuration consists largely of files parsed by it's own scripts, and FVWM
configuration which is grouped in separate thematic files. System FVWM configuration
is initialized by nscde
X startup wrapper which calls
Main.fvwmconf
. This file, as well as the rest of FVWM functions
and code (except FvwmScript GUI programs) is located in $NSCDE_DATADIR/fvwm
.
FVWM configuration sections are:
Animate.fvwmconf - FvwmAnimate module configuration
Backdrops.fvwmconf - Backdrops, read by FvwmBacker and FvwmPager
Backer.fvwmconf - FvwmBacker module configuration
Colorset.fvwmconf - FVWM Colorset definitions (generated for user in ~/.NsCDE)
Event.fvwmconf - FvwmEvent module configuration
FinishInit.fvwmconf - End of startap cleanup and safety last-second routines
Font-XXXdpi.fvwmconf - Set of fonts ad InfoStore variables used across FVWM
Form.fvwmconf - obsolete and not used by default, NsCDE does not use FvwmForm
FrontPanel.fvwmconf - selector of FrontPanel configuration which is going to be read
FrontPanel.fvwm2.fvwmconf - FrontPanel configuration for FVWM2
FrontPanel.fvwm3.fvwmconf - FrontPanel configuration for FVWM3
Functions.fvwmconf - almost all functions used by NsCDE FVWM setup, paired in logical sections
IconMan.fvwmconf - Not used by default
Ident.fvwmconf - FvwmIdent module configuration
Init.fvwmconf - Fallback and example of session statup. Usually run from ~/.NsCDE
Keybindings.fvwmconf - Static key bindings, without written menu hints
LocalPager.fvwmconf - Single Workspace floating FvwmPager configuration
Main.fvwmconf - Most important and early FVWM directives, environment and InfoStore variables, functions
Menus.fvwmconf - All FVWM Menus used or generated for NsCDE
Monitors.fvwmconf - Monitor and resolution static database as helper for some calculations
Mousebindings.fvwmconf - All mouse actions with and without keyboard modifiers
Sandbox.fvwmconf - not read by default, cleanup definitions for stripped down NsCDE sandbox mode
Script.fvwmconf - FvwmScript module defaults
Style.fvwmconf - All NsCDE FVWM Style directives, Menustyle, Cursorstyle, Decor addons etc
Subpanels.fvwmconf - Default system configuration for subpanels of the FrontPanel, generated.
WspLocPager.fvwmconf - Configuration of another local pager which uses FvwmPager, but for non-local workspaces
NsCDE.conf - de-facto main user configuration file. All important variables are here.
It should be noted that FVWM configuration system is created in a very flexible manner. While there
are only files of type "fvwmconf" in $NSCDE_DATADIR/fvwm
,
user's $FVWM_USERDIR
or "~/.NsCDE" can contain this 3 types
of FVWM configuration:
Files with extension ".fvwmconf" are overriding defaults from the $NSCDE_DATADIR/fvwm
.
In other words, if $NSCDE_USERDIR/Init.fvwmconf
exists, it will be read instead
of $NSCDE_DATADIR/fvwm/Init.fvwmconf
. For some parts of the FVWM configuration this
makes a sense, for most it doesn't.
Files with extension ".fvwmgen" are files which are generated by NsCDE tools and GUI programs. They
can be managed by hand, but usage of tools will overwrite them. They counterparts in the
$NSCDE_DATADIR/fvwm
have extension ".fvwmconf", but if
for example $NSCDE_USERDIR/Colorset.fvwmgen
exits, it will be read instead
of $NSCDE_DATADIR/fvwm/Colorset.fvwmconf
. Putting static $NSCDE_USERDIR/Colorset.fvwmconf
will be unusual, and will disable GUI tools and FVWM under NsCDE to read dynamically generated configurations.
Third form of FVWM configuration in $NSCDE_USERDIR
are ".fvwmlocal" files.
This files will extend (append) configuration read from their ".fvwmconf" and/or ".fvwmgen" files. Good examples
whould be Functions.fvwmlocal and Styles.fvwmlocal in $NSCDE_USERDIR
to
add local custom functions and per-application styles.
One notable exception to this system of configuration is the way FVWM Styles are read.
In addition to reading $FVWM_USERDIR/Style.fvwmlocal
"early"
configuration in $FVWM_USERDIR/NsCDE-Style.override
will be read from
$NSCDE_DATADIR/fvwm/Style.fvwmconf
just after applying general core
style for all applications (*) but before reading custom application
styles and prior to reading $FVWM_USERDIR/Style.fvwmlocal
.
This mechanism is intended for changing and overriding core style options which are not
customizable by the Window Style Manager. Putting core Style options
after NsCDE applications in the $NSCDE_DATADIR/fvwm/Style.fvwmconf
are processed
can nullify overrides for that particular applications, this is why this mechanism is provided.
This file is not created in $FVWM_USERDIR
by setup procedure or Style
Managers, but it will be read if created manually.
In addition to FVWM configuration read by fvwm window manager and it's modules, there are some files
parsed by NsCDE scripts and programs in $NSCDE_DATADIR/defaults
.
This files are:
AppMenus.conf - default per application addons for Window Operations menu on the 1st titlebar button
FrontPanel.actions - read by FVWM functions called when FrontPanel controls and buttons are used
Keymenu-<kbd_bind_set>.actions - Part of the FVWM NsCDE keybindings which have menu hints written on menus
Subpanels.actions - From this file, Subpanels.fvwmconf is generated.
WSM.conf - Workspace Manager and Graphical Workspace Manager configuration file
All files above except WSM.conf
if found in $NSCDE_USERDIR
are
read in addition to system defaults in $NSCDE_DATADIR/defaults
.
Local lines and statemets in user's copy are overriding system defaults. WSM.conf is read exclusively
from $NSCDE_USERDIR
. System file is only an example.
The rest of configuration is in $NSCDE_USERDIR
. For example Dunst.conf,
Stylonetray.conf, Xsettingsd.conf, Picom.conf, NsCDE.rasi (rofi), Xset.conf and Xdefaults. This files are either read by
their programs which are called and configured/integrated by NsCDE, or by X server (Xset.conf, Xdefaults*).
Various subdirectories contains additional data generated for the user or configured by the user. This
parts of the configuration are described in more detail later in this document.