Google Summer of Code

So I’ve been accepted onto the google summer of code 2008 program to work on the Gnome desktop project. I’m going to be working on the desktop wallpaper system and adding the functionality of being able to set a different wallpaper for each desktop. This functionality has been desired in Gnome since 2001 (bug 48004). Its an interesting project as it cuts across a number of modules within the Gnome project and also presents some challenges such as keeping memory usage down when a user has a large number of workspaces.

The project consists of two main parts: the backend, which involves dealing with GConf and all the management of the background pixmap, and the user interface; adding the flexibility of choosing a background for each desktop introduces new usability challenges to the interface; its desirable for new users to be able to quickly pick up the interface for changing the background for all desktops, for existing users to not be confused by the new interface but at the same time be able to fully utilise the full functionality available easily.

Its possible that I finish this work early. In which case I have plans to add new functionality to the background system. Some ideas I have already are:

  • Background rotation every N mins
  • New colour gradients
  • Watermarks e.g. a corporate logo can be blended onto the background chosen

I’m open to other ideas too, so if you have any then get in contact with me.

Tags:

5 Responses to “Google Summer of Code”

  1. Roman Cheplyaka Says:

    It’s interesting for me, as I recently implemented per-workspace backgrounds for xmonad window manager. (Actually, it’s a little C program, and it requires minimum support from the window manager, so can be easily used with other WMs). However, there is indeed memory usage problem, but it can be fixed easily, just a matter of my free time.

  2. Thomas Says:

    Roman Cheplyaka: Most of these programs I’ve seen don’t actually set multiple backgrounds, but change them when you change workspace. This approach is unusable for compiz and similar, as you will often view multiple workspaces at once.

    I like very much what you are doing James. The watermark idea is great, and I hope you will support some kind of transition effects for the background rotation.

    Will you be considering something like Karl Lattimer multiple backgrounds configuration mockup: http://bugzilla.gnome.org/attachment.cgi?id=89620 ?

    Well I dare say you are a brave guy. I guess one of the reasons nobody have gotten to do something about this issue yet, is that no matter what you do, many people will be angry. I sensitive area I think, but you shouldn’t mind. It is excellent that somebody does something now.

  3. James Sharpe Says:

    Yeah most of the background changers just change the GConf keys on desktop switches; doesn’t allow you to do anything more advanced with effects and the like.

    I do like the idea of a drag and drop type interface as Karl suggested but I’m not so sure about having it as a modal dialog, I’d like to keep it as a tab within the Appearance capplet. Obviously with a d n’ d interface you need to provide an accessible alternative that can be controlled via the keyboard.

    I think that most people underestimate the backend of the system, I believe that providing proper integration for this through libwnck and friends will make it a lot easier for userspace apps to be developed that provide a custom interface. Once an api for making changing the wallpaper on multiple workspaces is in place its not going to be too difficult for others to contribute UIs that make people happy :)

    I’m also wondering whether to attack the idea of having workspace ‘profiles’ as suggested by Niklas Mattisson: http://bugzilla.gnome.org/show_bug.cgi?id=113640
    Then you’d assign backgrounds to profiles and then specify what profile to have on each workspace/monitor (because this problem equally applies to multimonitor setups too).

  4. Thomas Says:

    Yeah, background stuff is always underestimated by anyone who’s not into it :-)

  5. natio Says:

    Thanks for taking on this project. Looking forward to giving it a test drive once its near complete. Hope you will look into getting it to work on multiple screens as well.

    In any case good luck with the project

Leave a Reply