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

Standard way to customize desktop environments

Hi all,

the last while i've been working on a new package called desktop-profiles 
[1]. As this is now in a state where I think it's ready to be used, it's 
time to introduce this to the list and request some feedback :-), here 

First some background:
KDE, and (most) other desktop environments allow you to use multi-level 
configuration.  Basically you have a number of different profiles 
(config-sets) that you order by some mechanism (differs between desktops), 
when looking for a config setting each of these config-sets will be looked 
through, with the first set (remember they were ordered) that contains the 
value providing it.

This of course is usefull for CDD's (and local admins) to provide 
customizations to the desktop setup. 

Currently there's no standard way of adding profiles and ordering them. This 
will provide problems when, for instance, two CDD's installed on the same 
PC both add profiles (say debian-edu-workstation + some debian-jr desktop 
setup package on a kindergarten computer), as now you don't know what the 
outcome will be.

This package provides a standard way to add profiles to desktop environments 
(currently supported are KDE, GNOME [2], XFCE >=4.2, ROX, UDE, and 
Freedesktop profiles). It works as follows:

- as in debian-edu there's a Xsession.d script that activates the profiles 
(by setting KDEDIRS, CHOISEPATH, XDG_CONFIG_DIRS, ... whatever is 
applicable for the respective profile-sort)
- the xsession.d script does this based on files dropped 
into /etc/desktop-profiles.
- each of the (.listing) files dropped in /etc/desktop-profiles describes 
one or more profiles (name, location, precedence-value, requirements for 
activation, profile-kind, description). 
- requirements that need to be met can take 1 of 3 forms:
 1) <group>  -> activated for members of <group>
        2) !<group> -> activated for everybody not a member of <group>
 3) $(command) -> the given shell command needs to exit succesfully
 4) Each profile defines a list of requirements that need to be met for
  activation (all given requirements need to be met)
- for further details (such as the format of files to-be-dropped 
in /etc/desktop-profiles) see the manpage in the package

Anything I forgot in the approach described above?

[1] it's located in debian-edu cvs an alioth src/desktop-profiles module, 
current build of the package is available at 

[2] GNOME needs a change to the system-wide path file to activate the 
approach of this package, example path file is included, and installations 
pops up a medium-priority question (defaulting to no) about wether to 
replace the gconf path file if it's present.

NOTE: rest of this mail is stuff mostly applicable to debian-edu

Further steps needed at this point:
1) Get the package into Debian: 
 -> packaging is done, but I need a sponser, as I'm not a DD

2) Once package gets into Debian change debian-edu-config to use it (add 
depends, remove custom xsession.d script, add debian-edu-config.listing 

3) Start discussing additional profiles/ current setup. What desktop 
customizations would you like to see (do speak up here ,we _need_ feedback, 
but drop debian-custom from CC when replying on this point :-)

I think we should have (at least): 
- debian-edu-network -> proxy settings, .. anything common to desktops 
inside a debian-edu network
- debian-edu-student -> settings for students (background, desktop icons, 
panel setup, maybe some things locked down with kiosk framework, ...)
- debian-edu-admin -> settings for admins (links to admin-tools and 
documentation on desktop, ....)
- ....

cobaco (aka Bart Cornelis):
    Coördinator Belgisch Skolelinux team
    Coördinator Nederlandse Skolelinux vertaling
Skolelinux België- http://i18n.skolelinux.no/belgium

Attachment: pgpn3zimo2v3M.pgp
Description: PGP signature

Reply to: