It’s that time again. Time to plan for a new release of Ubuntu, I mean. There are some rather large things in this list and so I doubt all of them will be implemented in time but it is always better to dream big and get as much done as possible. Otherwise we’ll have everything done in a month and be left with nothing else to do (except fix bugs, of course). Before I start, let me remind you that none of this is official, I am not getting paid to do any of this, and this relies on other people getting things done too. If none of this happens, don’t be surprised.
Move as many Ubuntu patches upstream as possible
This is a basic package maintenance chore and shouldn’t really need to be on this list. However, we have not really done this since Ubuntu 7.04 and we have quite a few patches that have built up. Many of them are rather hacky and will not be accepted upstream so I’ll have to figure out a proper way to do them or keep them in our packages. This is the main priority and the one that has the best chance of being completed.
Fix major usability ‘regressions’ from Metacity
There are still some big things that work differently when you use Compiz versus using Metacity. In Compiz itself we have the Show Desktop and Application Switcher features. These are when you click the button in the bottom left corner of your screen and press Alt-Tab, respectively. I don’t think there is anything wrong with how these work but they don’t work like many people expect so it violates the Don’t Make Me Think rule of usability as you have to consider what mode you’re using (Compiz on or off) when you use these tools.
The other main problem in this area is libwnck and gnome-panel. Specifically, the Workspace Switcher applet on your panel does not work the same way when Compiz is enabled. These problems range from cosmetic issues to missing features. I have submitted patches to GNOME for some of the missing features so the only big one missing is a lack of drag-and-drop support. After that were are some issues with how windows are colored on non-active viewports in the switcher. I’m sure I’m missing some things here but I’m also sure someone will file a bug about them if they haven’t already.
This is the most important item on the list as far as users are concerned and I hope to get at least the Workspace Switcher and Show Desktop problems fixed but the Application Switcher changes will depend on the next item on this list so is much less likely.
New decorator using GTK+ and SVG themes
Here we go, the big one. For some time now we’ve wanted to break away from using plain Metacity themes and come up with our own system. This is what Emerald was supposed to be but it was way over-the-top, slow, and hard to work on. I hope to avoid these problems by starting from scratch with a clean design using GTK+ and librsvg. And, because the decorator is actually responsible for drawing the Application Switcher, with this I can also fix the problems people have with that at the same time. This is all in the planning stages right now and is not likely to be considered ready (or done at all) by the Ubuntu 8.10 release unless I get help or get paid to do it so I don’t have to worry about a regular job.
Another goal with this decorator is to have two modes: reparenting and non-reparenting. The non-reparenting mode is how decorators in Compiz work now, the decoration is not actually a part of the window but just floats around it and relies on compositing to keep the two in sync. The reparenting mode is how other windows managers work, the decoration makes the window a child and the two stick together no matter what. This will be important when we eventually (hopefully) make Compiz work as a regular window manager without compositing for computers that cannot run all the fancy effects. This is also the reason we can stop worrying about Metacity theme compatibility; in this scenario Compiz is always running, even if you set Visual Effects to None.
Forward all relevant bugs upstream
Since I’ve been ordering these items by priority it might seem odd to have this one at the bottom. After all, the more bugs upstream knows about the more they can fix which makes Compiz better for everyone. However, this work can be done by many people and it is not a huge loss if this doesn’t get completely done by the Ubuntu 8.10 release. Also, this work can be done easily alongside the other items in this list. The only big work here will be when I go through every currently reported bug at the beginning of the development cycle (I’ll probably do this next week) and then go through them again sometime around the Beta release. Putting that all together we have a task which is more like icing on the cake instead of a major thing to focus on.
Putting this all together if I can even get the first two items completed this will be a very nice release that makes our packages easier to maintain and solves several real issues every user deals with. We should also have DRI2 support for at least the Intel driver (and hopefully the ATI one as well) which fixes our problems with using OpenGL applications with Compiz. This all makes me feel somewhat sorry for people who will choose to stick with the Ubuntu 8.04 release due to its LTS status as they will have a vastly inferior Compiz experience and none of this is small enough to backport for them. Oh well, they’ll get to see it all in Ubuntu 10.04 or whenever the next LTS release is.