Workspace wallpaper backend patches and video

I’ve pretty much completed implementing the mechanisms in nautilus and gnome-settings-daemon to implement per workspace wallpapers. I’ve created a short video that shows the current state of the functionality:

As you can see the wallpaper is currently set for whichever workspace the appearance capplet is on.

I’ve put most of the patches (except the gnome-control-center one) into bugzilla:

gnome-desktop: http://bugzilla.gnome.org/show_bug.cgi?id=543596

http://bugzilla.gnome.org/show_bug.cgi?id=544241

gnome-settings-daemon: http://bugzilla.gnome.org/show_bug.cgi?id=544178

eel: http://bugzilla.gnome.org/show_bug.cgi?id=544223

nautilus: http://bugzilla.gnome.org/show_bug.cgi?id=544242

gnome-control-center patch is available here: http://git.jsharpe.net/ but is still a work in progress.

I’d appreciate feedback on the patches.

Tags: , , , ,

49 Responses to “Workspace wallpaper backend patches and video”

  1. Luca says:

    An option to apply the same wallpaper to all workspaces would be nice too :)
    Anyway, well done, this bug was rather old!

  2. Douglas says:

    Nice work!
    It will be great if we can specif different icons for different workspaces.

    :)

  3. asd says:

    I like the feature, but the default should definitely be to use the same image on all workspaces. I wouldn’t want to make the same change eight times (or whatever), once for each workspace.

  4. impressive and scary how many modules you had to patch for this. thanks!

  5. James Sharpe says:

    My next task is to add a drop down menu to the capplet to control which workspaces you are changing the preferences for, so that applying the same wallpaper will be straightforward.

  6. Bart says:

    Did this work with Compiz too?

  7. Np237 says:

    Hey, that’s nice. While you’re at it, could you make it handle correctly per-screen backgrounds on multihead setups ? The current situation is really, really annoying.

  8. James Sharpe says:

    Bart: Unfortunately it doesn’t work with compiz because compiz uses viewports whereas gnome uses virtual workspaces to implement workspaces. I think to make it work libwnck would need to be patched to handle viewports changes.

  9. Nice to see this :) I recently moved to Gnome and wallpapers settings left me a bit confused ;)

    May I hope for having also per-screen settings in the future? ;) It comes handy with xinerama/xrandr :)

  10. sharms says:

    Hey the youtube video was pulled, can you repost?

  11. James Sharpe says:

    sharms: the youtube video seems to be working fine here
    Here is the url if the embedded version isn’t working for you:
    http://www.youtube.com/watch?v=e1QHs-STcHs

  12. troll says:

    “Nice work!
    It will be great if we can specif different icons for different workspaces.”

    ah for this u have to use the next kde4.2, that’s what containment is for ;)

  13. Marco says:

    @bart: for compiz there is a plugin called wallpaper. It works only if you disable show_desktop in nautilus, so open gconf-editor and go to apps->nautilus->preferences then uncheck show_desktop

    If you use Ubuntu here are the instructions:
    http://forum.compiz-fusion.org/showthread.php?p=56851

  14. ethana2 says:

    So can we select screensavers, translucent .svg, and videos yet, or is it just the same old pictures deal?

  15. James Sharpe says:

    @ethana2: no its the same old pictures still but translucent svg is possible – gnome ships with some by default.

  16. Matthias Clasen says:

    > My next task is to add a drop down menu to the capplet to control which
    > workspaces you are changing the preferences for, so that applying the same
    > wallpaper will be straightforward.

    I think a simple “Apply to all workspaces” checkbox is better.
    A combobox is much to complicated for this.

  17. Matthias Clasen says:

    Also, just to make sure: this all works with animated backgrounds too, right ?

  18. Mårten Woxberg says:

    Hmm… cool…

    I use Viewports so this isn’t as usefull for me though :(

    What I really would like to see is native support for Wallpaperclocks.
    http://www.vladstudio.com/wallpaperclock/
    There is a Screenlet that does it for me now.
    http://gnome-look.org/content/show.php?content=66717

  19. James Sharpe says:

    @Matthias Clasen: I’ve not checked that, there may need to be some more small changes to support the animated backgrounds.

  20. James Sharpe says:

    @Mårten Woxberg: The trouble with viewports is there isn’t really a way to enumerate them consistently since they can be placed and sized anywhere. If you can come up with a way of enumerating the viewports to create a consistent gconf key name then it wouldn’t be much work to add viewport support.

  21. miscz says:

    It’s cool but it could use some more work – wallpaper should switch without lagging after chaning the workspace IMO. Would that be possible?

  22. Alan says:

    On changes between workspaces, the code looks like it reloads the background even if the same background? Bad.

  23. Dylan McCall says:

    It looks pretty tiresome to be opening that dialog for each workspace. One little tweak you could do is set the wallpaper dialog to become visible on all workspaces (sticky, I believe).

    Nice work :)

  24. nona says:

    Thsnks for implementing this; now the UI in appearance needs some work.

    Maybe a mini view of the backgrounds of all the workspaces next to each other, and you can drag and drop any of the pictures on the workspace you want?

  25. Jones Lee says:

    COOL! Love to see this in 2.24. Is this some kind of quick hack?

  26. Xavi says:

    The xfce project has this very long time ago.

  27. James Sharpe says:

    @Alan: the gnome-bg code has a cache of pixbufs so it doesn’t actually reload the pixbuf; it just retrieves it from the cache.

    @Jones Lee: No, its properly integrated and not a quick hack. I don’t know if it’ll be ready in time for the 2.24 freeze though, but I’ll try my best to get it ready asap.

  28. bochecha says:

    > “Maybe a mini view of the backgrounds of all the workspaces next to each other, and you can drag and drop any of the pictures on the workspace you want?”
    Looks like an excellent idea, but there’s a tiny detail to take into account: when you design the UI, you don’t know how much workspaces the user will have. Imagine the UI you have in mind with 10 mini workspaces… Scary :-/

  29. Mårten Woxberg says:

    I have no clue on how to enumerate them, but I suspect this guy has solved it in Windows.
    http://www.binaryfortress.com/displayfusion/

  30. I think that your method of implementation is a little flawed.

    It appears that you change the background image after switching to a workspace. When in reality each workspace should have its own background image at all times, so that it works with compiz and any coming metacity compositor.

    Without a _real_ per workspace wallpaper then you’re just re-implementing wallpapoz inside of gnome.

    Surely there is a way of having a different background image associated with a workspace so that when you flip to cube it shows the correct wall papers? Compiz has some kind of plugin for this but that still isn’t a proper solution.

  31. Nice work!

    I love nona’s suggestion about the mini view of the viewports + drag & drop. As long as it scales well (follow the workspace switcher applet settings?), UI space shouldn’t be an issue.

    Keep it up! :-)

  32. adamruss says:

    do these patches work on current gnome? or git version only?

  33. [...] bookmarks tagged patches Workspace wallpaper backend patches and video saved by 1 others     gano15300 bookmarked on 07/26/08 | [...]

  34. Jones Lee says:

    @james sharpe: glad it’s integrated solution. And let’s hope it will make it for 2.24. Though I think you need some people lobbying for the code to be merged upstream early.

    I have one suggestion for capplet GUI, IMHO I do no think drop down box is a very good idea. What if the users has let’s say 99 workspaces (this might lower number), the drop down list would list 99 workspaces?!! Imagine that! Well, so a check box Apply to all workspaces would be enough.

    Besides, I think the capplet should have some kind of way to preview what bg is used on each workspace rather than let user change workspace by workspace to figure out only if someone can come up with a neat and simple GUI. Else just leave it as it is.

  35. HDave says:

    Excellent work. I hope it makes it into 2.24.

    In the video, however, it looks like there is a small lag between the time you switch workspace and the time the wallpaper shows up. Are you seeing this?

    Also, I think it’s really important to have this capability work with compiz. I know it may not be easy, but compiz is one of the big drivers for people trying Ubuntu for the first time.

    Thanks again!

  36. FunkyM says:

    Great work so far!

    Please make sure to check this bug:
    http://bugzilla.gnome.org/show_bug.cgi?id=444320

    Some notes:
    - Add a checkbox “[] Apply to all workspaces”
    - Make nautilus use a RGBA colormap and draw a transparent background in case of a composite manager taking over (see patches in the bug)
    - Adjust/Fork the compiz wallpaper plugin to use the new background gconf keys instead of it’s own to set the drawn wallpapers

    This would allow multiple wallpapers on non-composited and composited environments and integrate with GNOME.

  37. Mark says:

    You are a stud! Thanks for getting this working!

  38. Calum says:

    It looks like you have to open the capplet on each workpace individually. So two related questions/comments:

    * Hopefully it works as expected if you open the capplet on one workspace, then move it to a different workspace before closing it? (Where ‘as expected’ means the selection updates to reflect the new workspace background, and I can set the new workspace background as well?)

    * Is it possible to set hints to make the appearance capplet automatically appear “Always on Visible Workspace” (as I can do manually via its titlebar), and would it make sense to do so, to simplify changing multiple workspace backgrounds in one go? (That’s what happens on MacOS X, but for multiple monitors rather than different workspaces– just like GNOME, different workspaces are stuck with the same background, in Leopard…) Even if it’s possible, would certainly need a little usability testing to see if people liked that, though, as it’s obviously different to how every other app/window on the desktop behaves…

  39. Leg'Z says:

    Excellent work !

    Can someone explain me how to set up those patches ?

    Thanks !

  40. [...] – bookmarked by 3 members originally found by dreazz on 2008-12-06 Workspace wallpaper backend patches and video http://gsocblog.jsharpe.net/archives/15 – bookmarked by 2 members originally found by peacay on [...]

  41. funzy says:

    Hello! it’s a good news to have wallpapers different. But when I have take the patch what I must do whith then? Can explain me, please. I have Intrepid 64 bit with gnome 2.24.

  42. tomas says:

    Not cool at all :( ((
    What you’ve done by patching all those files was already working long ago with wallpapoz (http://wallpapoz.akbarhome.com/).
    Now, why I don’t like this implementation:
    1) Wallpapers are NOT changed instantly like in KDE4 or with compiz wallpaper plugin;
    2) Support for compiz wallpaper plugin is still not implemented even there already is a patch for old nautilus & eel versions:
    http://bugzilla.gnome.org/show_bug.cgi?id=444320

  43. hemanth.hm says:

    Good work :)

    There is a broken link , here : “gnome-control-center patch is available here: http://http//git.jsharpe.net/cgi-bin/cgit.cgi?url=gnome-control-center.git/log/&h=individual_wallpaper but is still a work in progress.”

    “htpp://http//” has appeared twice , please fix it .

  44. rhY says:

    Any word on when this will be implemented upstream and then into Ubuntu, for instance? I mean, this is 2 years old now!

  45. Crazy73 says:

    They run off runways in Toronto, aargh, I won’t even go there. ,

  46. Loy93 says:

    Would you rather have the power to see through any living material or to change the moon’s color at will? ,

  47. Volker says:

    _____ \\\!!!///____
    ______( ô ô )______
    ____ooO-(_)-Ooo___
    Ich möchte einen netten Gruß hinterlassen
    und ich würde mich freuen, wenn Sie auf
    meiner Homepage auch einmal
    vorbei schauen würden!

Leave a Reply