Thoughts on ‘The Great Ubuntu-Girlfriend Experiment’

Filed under: Compiz, Ubuntu

In The Great Ubuntu-Girlfriend Experiment a man runs his girlfriend through a series of seemingly common tasks and sees how she does with Ubuntu. The bit about downloading an album online seems a bit sketchy (use amazon, not bittorrent) but the main one I want to talk about concerns, of course, Compiz.

In the ninth task he asks his girlfriend to change her screen resolution and she of course picks the first one in the list, which is far too small and the Screen Resolution tool no longer fits on the screen. He then complains about the fact that he cannot make the window smaller (application problem) and cannot move the window past the top of the screen (Compiz problem). A ‘fix’ in either one would solve this problem but a fix in the application would fix it the best.

However, it is interesting to think about how to fix this problem in Compiz. First of all, you could just turn off the option that prevents you from moving windows past the top of the screen but then you’ll have problems losing windows off the top of the screen and having to use Alt-Button1 to move them back down. So clearly this option has a reason for existing and being turned on by default, but it isn’t always what you want.

My solution to this problem is to make it possible to move a window past the top of the screen if and only if the window is larger than the screen height. In this situation you’re screwed either way so stopping you from doing this gains nothing. However, you still need to be somewhat of a power user to know you can use Alt-Button1 to move a window in such a way as you cannot grab the titlebar to move it that far up. I can’t think of how to make this easier to figure out though and it is better than nothing.

Can anyone think of a better way to solve this problem in Compiz? Like I said, obviously the correct answer is to solve it in the application and leave Compiz alone but it is not realistic to expect every application to work in 640×480 or 720×400.

Plans for Compiz in Ubuntu 8.10

Filed under: Compiz, Ubuntu

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.

fglrx breaking upgrades to 8.04

Filed under: Ubuntu

It seems AMD’s scripts to build an Ubuntu package for 7.10 include a diversion for /etc/xdg/compiz/compiz-manager so they can add fglrx to the list of supported drivers. The problem is that they don’t remove this diversion on upgrade/uninstall so when you upgrade to Ubuntu 8.04 the /etc/xdg/compiz/compiz-manager file will no longer exist and compiz will not start.

The fix is pretty simple, just run this:
sudo dpkg-divert --rename --remove /etc/xdg/compiz/compiz-manager

Yay, compiz works again. :) Remember, this is why you should only install such drivers from Ubuntu. The latest version is not worth a broken upgrade.