[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Standard way to customize desktop environments



On Tuesday 26 October 2004 13:44, Jonas Smedegaard wrote:
> On 25-10-2004 22:14, cobaco (aka Bart Cornelis) wrote:
> | 1) In order for gconf (and thus gnome) to make use of the method
>
> proposed by
>
> | this package the system-wide gconf path file needs to be replaced by
> | the one I have in doc/examples. This means that ideally at some point
> | you'd have gconf depend on desktop-profiles and include the changed
> | path
>
> file (it
>
> | doesn't change default behaviour, and it's more flexible).
> | -> having gconf depend on cdd-common seems weird to me
>
> Sound to me like convincing the maintainer of gconf to adopt your
> changes is the best aproach. 
yes, but that'll have to wait till after the package enters the archive

> That is, off course, only if your hacked 
> file works without your package installed.
as my package would need to be installed (thus it needs a depend)

detailed explanation:

by default the system-wide path file contains the following directives:
 xml:readonly:/etc/gconf/gconf.xml.mandatory
 include /etc/gconf/2/local-mandatory.path
 include $(HOME)/.gconf.path
 xml:readwrite:$(HOME)/.gconf
 include /etc/gconf/2/local-defaults.path
 xml:readonly:/etc/gconf/gconf.xml.mandatory

Note: include directives point to files that contain extra "configuration 
sources", and get expended where they are. 

Note: Directories and files pointed to don't need to exist (in fact a 
just-installed gconf/gnome situation the 3 files pointed to by the include 
directives don't exist)

Order is important, as gconf will use the first source that defines a value
-> anything mandatory must be in a source loaded before the user source(s)
-> all defaults need to be in a source loaded after the the user source(s)

To specify an additional config source for a group of users you have include 
a userspecific path file ($(user) in the path file will get replaced by the 
username) for each user -> pain in the ass if you have to do it manually

What my package does is:

a) generate at startup a path file with the configuration sources 
applicable to the user which by default will contain the 5 directives given 
above (will start to differ if additional profiles are installed). 

        Note: generation of this file is only actually done if it will be
                  included by the system-wide path file

b) to avoid having to set up the order/precedence of profiles (including the 
default ones) in two places (stuff in /etc/desktop-profiles and system-wide 
path file) the system wide path file should then only include 1 directive:
 include <generated-path-file>


You could conceivily just add the include directive at the top of the 
current system-wide path file, leaving it as is otherwise, this mostly 
works:
+ works even withouth desktop-profiles installed
+ as long as the default profiles aren't disabled this works as expected 
using desktop-profiles (stuff after our include is redundant, as it will 
already be included somewhere by the generated path file)
- if the sysadmin wants to disable the default profiles he needs to do so in 
2 places: desktop-profiles and system-wide path file (as the stuff after 
our include is no-longer redundant)

-> not optimal (but workable in most cases, it's an option if I can't 
convince the gconf maintainers to go wholy with desktop-profiles, once 
desktop-profiles in the archives)
-- 
Cheers, cobaco (aka Bart Cornelis)
  
1. Encrypted mail preferred (GPG KeyID: 0x86624ABB)
2. Plain-text mail recommended since I move html and double
    format mails to a low priority folder (they're mainly spam)

Attachment: pgponXNEzcneU.pgp
Description: PGP signature


Reply to: