Michel wrote:For example xboard could one day replace its xboard.conf file by a directory xboard/conf.d/ which could contain a configuration file for each variant it supports. Supporting a new variant could then be done by dropping a file in that directory (rather than directly editing xboard.conf).
Actually we are already evolving in that direction. XBoard used to have a theme list, (where a theme is basically a collection of low-level graphics settings, like square textures, colors and piece glyphs), and it used to be in the settings file (like the list of registered engines). But that makes it hard to expand that list if a new theme is installed.
One of the problem is that the xboard.conf file isn't really the place where users save settings. He does that in his own directory, as ~/.xboardrc. And when you install a new theme (say a set of SVG files with piece designs), it is not really doable to hunt down all the user's private settings files, and start editing those (especially since these might have redirected the actual saving of settings elsewhere).
So XBoard themes are now typically packaged with a settings file containing the definition of all low-level options needed to activate it, and such files are installed in /usr(/local)/share/games/xboard/themes/conf. A simple "xboad @chu" will make XBoard look in the cof directory for a file "chu" (if it wasn't found in the current directory), which would then configure XBoard for Chu Shogi. The user can then decide if he wants to save these settings as a new theme to his private theme list.
But to prevent very specific themes (like kanji Tori-Shogi pieces) to spoil his general settings for other variants, the conf files for such odd-ball themes usually redefine the file for saving and reloading settings as well. So that playing oriental-stule Tori Shogi won't make your Chess board turn into gibberish next time you connect to FICS. But that means that a user with broad interests will get a bunch of settings files ~/.xboard-xq-rc, ~/.xboard-shogi-rc, ~/.xboard-chu-rc, ~/.xboard-tori-rc... To combat this proliferation problem future versions of XBoard will probably place all these in a directory ~/.xboard/chess.ini, ~/.xboard/shogi.ini etc.