Ways of overriding KConfigured stuff
Hi there,
I'm preparing desktop-base with the Etch artwork. [0] I would like
the desktop-base package to hold as many artwork types as possible for
the various desktop environments, and to override the per desktop
environment defaults when installed.
The current problem I'm facing is: how do I override the kdesktoprc
Wallpaper and its friends settings cleanly?
I would like your opinion on the best way for desktop-base to set the
default Wallpaper for the Etch timeframe, and only the default (users
may still change wallpaper afterwards).
Current technical research I made:
It seems to me that KDE uses the "KConfig" mechanism which relies on
"KStandardDirs" to build the list of directories to search per file
type. [1]
Some environment variables (KDEDIRS, and XDG_CONFIG_DIRS) are
included in the list of directories to search, but there's no interface
for a package maintainer to set these vars cleanly.
The desktop-profiles package aims at solving a similar task: I think
it builds a KDEDIRS var dynamically on each login based on the result
of commands and on group membership; however, I don't want to add such
a dependency on desktop-base so late in the cycle and have some
technical objections to the tool. [2]
I've also found debian/patches/10_kstandarddirs.diff in kdelibs which
hardcodes an additional "/etc/kde3/" directory to the standard list of
"config" directories.
GConf has a clean mechanism to handle this: via dh_gconf, you may
install and register a gconf defaults file which has an associated
priority and will be included in the default gconf path.
Bye,
[0] It's pulled by the desktop task starting with the last tasksel
upload. It is not required for desktop environments to depend on
desktop-base, each DE should continue shipping its own default.
[1] see kdecore/kstandarddirs.cpp in kdelibs
[2] A sample implementation of setting the default wallpaper via
desktop-profiles is in #348702. My problem with desktop-base is that it
will generate temporary files on each login (at least in the GConf
case), and requires special configuration of all login entry points
(each shell has to be configured to hook the script, there's a Xsession
script, etc.).
PS: Obviously, I'll have to change other config items, such as the
splash screen, and the KDM theme.
--
Loïc Minier <lool@dooz.org>
Reply to: