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.

Compiz on Fujitsu U810

Filed under: Compiz, Ubuntu
Compiz on Fujitsu U810
So tiny…

This thing has an 800Mhz Intel x86, Intel 910 graphics, and a 5.6 inch screen. I got to play with one yesterday and I just had to see how well Compiz ran on it. It was surprisingly nice, no stuttering or anything, unlike the Classmate. Probably not very practical though, except for cool open and close animations. You don’t really need wobbly, if you’re not using every app fullscreen or maximized on here you’re crazy.

Compiz Updates

Filed under: Compiz, Ubuntu

Whee, haven’t done this in quite some time.

Let’s see, what has been going on since last time I blogged.

First off, unfortunately it looks like the X3000/X3100 (also known as 965) intel chip will still be blacklisted in Ubuntu 8.04 LTS (hardy). We tried switching to EXA so we could get Xvideo and Composite at the same time but in order for EXA performance to match XAA performance we have to use the ttm version of the driver. The work on this is not yet complete and is not believed to be ready for use, especially in an LTS release. Unless things change in the next month or so this is probably the final word on the subject and these unforunate Intel users will have to wait for Ubuntu 8.10 to use Compiz.

On a more positive note, we think we might have a partial solution for the problems with OpenGL when using the intel and ati drivers with Compiz. Here is the most obvious demonstration of the problem I’m talking about:

glxgears broken
That doesn’t look right…

The true fix for this is called redirected direct rendering and would be great to have however it too is not yet realistic for inclusion in Ubuntu. Instead we have a way to at least make sure OpenGL apps behave when you put them under another window (and when you rotate the cube too but not the way you want). This is all very preliminary and we don’t even have the code for it yet but we’ve proven the concept. I’ll write a new post explaining what we’re going to do when we have something to show.

When you combine this with the various window management fixes happening upstream and increased integration with the rest of the system Compiz in hardy should be very nice. We’ve also cleared out the blacklist to see if cards that had problems in gutsy are working better in hardy. We’ll probably end up adding back some of these (like the 965) but hopefully we can have a smaller list this time. We also added the fglrx driver to the whitelist but due to a bug the GLX_EXT_texture_from_pixmap extension is not being offered correctly so Compiz will not work with this driver in Ubuntu yet.

On an unrelated note, I’ve added a reCaptcha to this blog to cut down on spam. None of the spam was getting through to the site but it also wasn’t being caught by akismet so I had to go through all posts in moderation and filter out the spam manually. This is why no comments posted to this blog since late November had been accepted, it was too much of a hassle. I’m leaving the comment moderation on for now until I see how things go so if you haven’t commented on this blog before you’ll have to wait for me to approve your comment.

Compiz in Ubuntu Update

Filed under: Compiz, Ubuntu

Rather than reply to the comments left on my last post I’ve decided to write this so more people will see the answers.

First of all, my source of info is me. I’m on the compiz team in Ubuntu.

We’ve fixed the Intel driver so compiz+video works there unless you have a 965 (x3000 or x3100). If you have one of those compiz will refuse to start now. That is actually how we are dealing with most of the driver and/or hardware problems right now. We’re just blacklisting cards that have been known to have problems.

So, you shouldn’t have to worry about what happens when compiz isn’t supported on your card or doesn’t work right. In that case you’ll just get metacity. It’s not the greatest solution but it’s what we have to work with until proper fixes are done in the drivers.

The only hardware known to work with compiz is newer (2000 or later) ATI, Intel (other than 965), and nVidia. It might work on others if you use Xgl but those are the main ones. I doubt it’ll ever work on Via stuff, the driver situation there seems pretty bad.

On the other hand, we’ve done a lot of work over the past few weeks to get things working. Java apps, for example, should work now. We closed about 60 bugs in a week. Most of them were little annoyances, some were worse. A particularly bad one that is now fixed is gnome-screensaver not being able to lock the screen properly when compiz is running. I think we fixed the screen redraw issues after xrandr rotation but I’m not sure as my hardware does not support xrandr.

Another good thing, nVidia released the 100.14.19 driver which finally fixes the out-of-memory problems with texture_from_pixmap (black windows). Seems to also fix the problems with black screens after VT switch. All around it’s a pretty solid driver. We’ve also fixed the bug in Xorg that made nvidia+compiz+3d app crash the X server. nVidia should be working great now so long as your card is supported by the 100.14.19 driver.

Finally, Kubuntu will not be using Compiz. They are waiting for KDE4 which will have its own compiz-like compositor in kwin.

I hope this clears everything up.

Compiz by default in Ubuntu 7.10

Filed under: Compiz, Ubuntu

Wow, I haven’t posted anything here for awhile.

Anyway, in a Technical Board meeting yesterday it was decided that we will have Compiz enabled by default in Ubuntu 7.10, barring any obscene blowups before the beta. Woohoo! :) I spent a couple hours today going through all the bugs open against compiz in Ubuntu and most of them seem like small problems. Worst case scenario the person can’t get compiz working at all but that’s to be expected.

While I was going through the list of bugs I pointed out some of the more annoying yet simple looking ones to upstream and we’ve already got fixed for them in gutsy now. I’ve got about 12 bugs I’ll be dealing with in the next few days. About half of them are little configuration tweaks so that’s obviously not something for upstream. The rest are just an excuse to get back into the actual compiz/compiz-fusion code again. I’ve spent so much time dealing with users and packaging I haven’t had much time to actually write some code. We’ll see how it goes.

So, now is the time to file bugs if you have them. Don’t wait until after the beta (beta freeze is the 20th) to jump in and start complaining.

Compiz on Classmate PC

Filed under: Compiz, Ubuntu

I’m Back, Compiz-Beryl Merge

Filed under: Compiz, Ubuntu

Woohoo, I got my website running again. Thanks Mez. :)

As I’m sure you’ve heard by now, Compiz and Beryl are rejoining. On the compiz side we were in the process of splitting into ‘compiz’ and ‘compiz-extra’. Compiz is the core and essential plugins like resize, move, etc. Compiz-extra is where all the other plugins go plus any other plugins, decorators, apps, etc we want to add. This area is where the merge is happening. Instead of Beryl rebasing on Compiz and providing plugins, decorators, apps, etc (and basically being the exact same thing as compiz-extra) we’ve decided to combine our efforts.

Things are somewhat slow going as we work out the details but we should at least have a new forum and git repo setup soon. The hard work of deciding on a name, roadmap, project structure, etc is still ongoing but at least we’ll have a place to code and for users.

Fun with introspection

Filed under: Compiz, Ubuntu

Finally got my introspection work on compiz’s dbus plugin to a point I consider done. Any other changes require API changes as well. Now to wait and see if the patch gets accepted. Might take some time, it’s pretty big…

 configure.ac   |    2 +-
 plugins/dbus.c |  956 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 887 insertions(+), 71 deletions(-)