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

default/alternative/additional setup of various desktop evironments (or RFS: desktop-profiles)

Hi all,

I'm looking for a sponsor for my desktop-profiles package. As it's aim 
(explained below) is relevant to debian-desktop I'm asking here. 

The idea for this package came while working on debian-edu. We needed a way 
to customize the default setup of KDE. KDE makes this easy, all you need to 
do is setup the KDEDIRS variable so it contains the root-dir of our custom 
configuration, and /usr (rootdir of the systemwide configuration). As I 
said easy enough, BUT ...

this approach works fine only as long as there's but one agent 
(admin/package/CDD) modifying KDEDIRS. As soon as KDEDIRS is modified in 
several places there's no easy way to figure out what the end-value of 
KDEDIRS (and thus the resulting KDE setup) will be. You now need to track 
down all places where KDEDIRS is modified, and in what order the 
modifications end up being made. 

In other words we lack a standard mechanism to control and activate  
different customizations (profiles) of KDE. Furthermore this problem 
also manifests when customizing the other desktop environments in Debian. 

I started out to solve this, and after some thought I came up with the 
following requirements:
1) different profiles need to co-exist on the same machine gracefully (as 
otherwise 2 users from different needing different ones can't use the same 
2) one should be able to combine different profiles (e.g. one is both a 
debian-edu, and demudi user)
3) creating a desktop setup should not need changes to the GNOME/KDE/... 
packages (nor mess with their conffiles)
4) this created mechanism should be cross-desktop, and should allow the 
administrator to:
    - determine which of the installed profiles should be used onder what
      conditions/for what users
    - determine which profiles values should be used in case of conflict 
      between 2 (or more) simultanously activated profiles

The desktop-profiles package I created meets the above requirements 
supporting profiles for KDE, GNOME, XFCE (>=4.2), ROX, UDE, 
GNUSTEP, and Freedesktop. (It's licensed under GPL and available at [1]).

Here's how it works:
1) Metadata about available profiles is stated in files dropped 
    into /etc/desktop-profiles. This metadata includes:
    * profile name
    * profile location, 
    * kind of profile (i.e. for which desktop), 
    * profile requirements (i.e. when the profile should be activated):
      possible requirements include group membership/non-membership and the
      succesfull completion of arbitrary shell commands (absence of
      requirements means the profile is always used)
    * profile precedence, used when two profiles are simultanously activated
      to resolve conflicts (whatever the profile with the highest precedence
      specifies, will be used)
    * profile description
    (The format of the dropped files is basically CSV with '#'-comments)
2) There's an Xsession.d script that parses the metadata files and sets up 
    the profiles whose activation requirements are met.

Aside from the above basic functionality the package provides some extras:
- There's a kommander script (i.e. kde gui) tool for managing the profile 
- There's a debhelper like script (dh_installlisting) to aid in installing 
the metadata files in a standard way 
- man page documenting everything (html-rendition of which is viewable at 

I See this being used in various places:
- By the various CDD's/ sysadmins of (large) organizations to setup certain 
things (including branding)
       EXAMPLE: Debian-Edu currently has 2 profiles 'common' and 'networked'
       The former is used on all debian-edu installations, the latter is
       used only on debian-edu machines inside a debian-edu network (setting
       up things like which proxy, and mailserver to use)
- To decouple the debian default setup from the KDE/GNOME/... packages. 
Seems like a good thing because it would allow different approaches to be 
tried easily (as you'd only need to upload a new version of a small 
arch:all package), or even coexist/compete. Also this allows the package 
maintainers to concentrate on getting the packaging right while another 
group (say debian-desktop) concentrates on the usability problem of what 
constitutes a good default setup.

So what do you think? Anybody willing to sponsoring this package?
(License: GPL, available at [1], description and package name see above :)

[1] http://developer.skolelinux.no/~cobaco/desktop-profiles
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: pgpS1fN6x8By0.pgp
Description: PGP signature

Reply to: