2. Components of the NsCDE

2.1. Components overview

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:

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, NsCDE.radi (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.