Compiz 0.9.x – Where are we now, and where to from here

Hi everyone.

Hope you didn’t mind my obnoxious April Fools joke yesterday, it was just an idea myself and racarr threw around in IRC :p.

Anyways, this post is about Compiz 0.9.x (formerly ‘compiz++’). Compiz 0.9.x started in december when onestone announced his core rewrite on the mailing list. It had features like pluggable output backends, written in c++ (and a few nice interfaces that came with it) and other misc bits and pieces. It was designed mostly in mind to overcome a lot of the design problems we were having, like plugin-plugins and a ridiculous amound of code to manage lists. In Janurary, some developers started to toy around with it and at the beginning of this February, we announced that compiz++ would become the base for the 0.9.x series and the 0.9.x series would features some major reworks. We’ve all been quite busy during that time – so we’ve done whatever possible to push the branch forwards.

Where are we now?

Currently, we are in the process of porting plugins to the 0.9.x branch. If you’ve observing cgit you might see ‘compiz++’ branches pop up in various plugins. This is where all the work is being done. Currently (off the top of my head) we’ve ported quite a number of plugins (about 1/3 of them), with significant ones being scale, switcher, text, mousepoll, wall, expo. There has been some other work than porting plugins of course – we’ve had to change quite a few things in core to make things work. Some of the bigger stuff that has happened recently though is that onestone made significant changes to the buildsystem – you probably know that we are using CMake instead of autotools now, so building compiz is quite different. Some of the new features include a nice color and progress bar for building core and plugins – no more random make output nobody can read. It also allows for more flexible building of plugins – there is a sample CMakeLists.txt that you can drop into a dir and it will generate the files needed to build all the plugins in that dir for example. BCOP has now also been merged into core, so the options system is unified. Not really a user thing, but significant nonetheless.

Where to from here?

Well, the bad news is that we still have a significant amount of work to do if we want the 0.9.x branch to be usable for anybody. Big plugins still haven’t been ported – such as cube and it’s addons, group/tab, wobbly, animation, elements etc. Most of the big plugins will be completely rewritten anyways (as animation is). We still have some big plans for 0.9.x, those include:

  • Doing something about gnome-shell. GNOME-Shell is a tricky issue for us because it integrates the window manager with the panel (or at least loads the panel as a plugin to the window manager). This basically means that if you launch compiz in future GNOME versions, you lose your panel. KDE sort of has a similar issue, in that the desktop is tied in with the panel, but that makes sense anyways because there aren’t really any other desktop shells that are designed to replace the default desktop (other than SpringDesk of course, but that is on hold ATM and would probably have a panel of it’s own). I already made a post to the GNOME-desktop-devel about this, but they have told me that tight integration is needed between the panel and the window manger so that the ‘overview’ mode can be done correctly (which I disagree with, you could just have shell expose it’s drawing handle and register functions in the WM (or it’s plugins) that would do the overlay mode for you). Unfortunately, their view on this is that ‘people want it to Just Work (TM) and don’t really care about other window managers’, hence locking out compiz from GNOME. Yeah, inter-project co-operation. It sucks. We basically have two options – fork / rewrite shell and maintain it for compiz (and allow it to be compatible with it’s own set of extensions), which we can’t do with the amount of developers we have or convince the GNOME folks to turn shell into a lib that can easily be used with other WM’s.
  • Options rework: Our options system has been quite inflexible for a long time and we are denying more and more requests because we can’t configure such with our current settings infrastructure. The options rework would probably allow things like
    • Lists in lists
    • ‘Suboptions’, ie depending on what another option is, another few options can appear related to that option. This would be particularly useful with elements and animation, where you can only configure the entire effect and not on a per-entry basis (without having to look up option names and syntax etc).
    • A pluggable CCSM ‘hints’ system where plugins that require more complex configuration would store the option in a string, but the option would have hint = foo, and the CCSM plugin would allow you to configure that in a more sensible way than editing a string. Think mousegestures editor, multiple color selector for wallpaper, etc.
  • Merge NOMAD. Self explanitory, but the NOMAD branch should probably be merged
  • MPX Support. Self explanitory
  • Input Redirection: We’ll make a big push along with the KWin, Compiz, and Mutter guys, we really need this.

So that will probably give you an outlook on how things are going to go for the 0.9.x branch. Although you’ll need to be patient. All of the developers have really demanding Real Lives (TM) at this time and don’t have as much time as they used to to work on compiz. 0.9 might be ready within the next two months, or the next six months depending on how things go. We’ll keep you informed.

EDIT: By the way, note that these ideas are mostly tentative – depending on a number of factors they may or may not happen. GNOME-Shell is an especially tricky issue and it would be wise for us to see what happens with it.

– Sm


31 thoughts on “Compiz 0.9.x – Where are we now, and where to from here

  1. Let’s take a look at some facts:

    (1) We already have a beautiful, stable, working version of Compiz with all the Fusion plugins (0.8)
    (2) You guys are talking about major rewrites and major new features
    (3) This is a free project where all your time is donated and you’ll never get paid for it

    Given these facts, I don’t think you need to apologize for how long it will take to roll out 0.9. This project has been awesome since Day 1 and I will wait very patiently for the next installment! Keep up the good work!

  2. Keep the good work!!!!!!!!
    I love when things don’t work for the ‘normal’ user, it means you guys are doing some really important job, thanks 😀

  3. Plasma (in KDE) will integrate with any standard window manager, fwiw, so you won’t have any trouble there.

  4. Please, please, please can you folks get the 3-d screensaver into 0.9.x ?

    Beers all round to the Devs if you do 🙂

    Thanks for all the hard work folks

  5. Well if the Gnome devs are going to snub Compiz, and with KWin becoming increasingly similar to Compiz (in terms of features at least) what’s to stop the Compiz developers from becoming full time Kwin developers? The uber customisation that Compiz offers conflicts with Gnome’s “keep everything as simple as possible and only provide options where necessary” philosophy anyway, and I’m sure the KDE devs would welcome you with open arms. I’m toying with KDE 4.2 at the minute and considering switching (may wait till 4.3) but by the looks of things the KDE desktop is going to leave the GNOME environment in the dust (technically speaking) so the Compiz devs might have more technologies/features to play with.

  6. Let’s kidnap Linus and force them to keep the gnome-shell open for compiz.
    I’m pretty sure loads of users want compiz to stay and use the gnome environment.

    (I think this is also very important for the future of ubuntu)

  7. I’ve read with some interest the GNOME discussion and this blog.

    I’m not normally one to agree or disagree with a Linus Torvaldus rant, but I’m beginning to think the GNOME developer vision is really misguided.

    First of all, saying “users will/wont…” ignores the very real fact that there exists more than one type of user. If anyone is going to make assertions of “users just want to work”…these types of users will be generally using ‘doze or Mac. Thus I consider such assertions specious at best, and dishonorable at worst. If a user just wants to work, how come to do a simple thing like naming a desktop (say “Music”), popping up windows on that desktop (say “Rhythmbox” and a file manager window pointed at your library), and then saving the desktop state (including the name) via session management is borderline impossible?

    As someone who has spent the past month trying to get GNOME to the usability of my old fvwm2 environment which has lasted me 7 years, I can safely say that “ease of use” has hit “personal work style preference” smack in the head with :”no you can’t prefer that, we know better”. Given the attitude of the software, we can make fairly good guesses as to the attitude of the developer.

    You compiz guys have done a wonderful job. Please keep up the good work, and don’t let a larger group of people dissuade you…windows users certainly i didn’t do that, why should GNOME developers?

    Thanks for reading.

  8. Hey guys!

    I have been with you from second one (CompizXGL -> BERYL -> Compiz and Beryl -> Compiz Fusion -> and soon Compiz again haha)
    and since then and i cant work without compiz anymore.

    If you configure your screenedges right you will be able to work blazingly fast and with maximum control.
    I just love it.

    So if Gnome drops out compiz by not exposing some simple handles then i will switch to Icewm or something similar.
    I mean look at Metacity, you cant even move your windows smooth with it.

    Well i haven’t seen the gnome-shell code but i can’t imagine that there is “the need of such an tight integration”.

    If Gnome realy wan’t to keep things simple they should support COMPIZ!
    I mean a simple not overloaded DE is good but the real goal should be to keep working with your DE simple
    (For example LeftEdge+MouseWheel = Eenhences zoom) and thats what you guys have acomplished.

    Just keep up the good work, …and for me it’s time to kick some GNOME’s ASS coz i aint go back to stoneage —- huaaaaa

  9. I hope everything workes out good for you guys coz
    without Compiz i feel some kind of “disabled”.
    I mean it is like someone ripping off your hands and telling
    you to write some text. Well thats is what i feel of the
    GNOME-devs point of view.

    They should realize that COMPIZ is more then just fency
    effects. I would like to see some of the Gnome-devs to try to
    work with 6 Desktops and maybe 20 opened windows
    by not using more then maybe 2 Clicks to get were you want.
    Or to Zoom what ever you want or adust the brigthness or yuse some windowswitcher by just using the mousewheel a given screenedge.

    Well ALL that is not possible with metacity and if you compare
    metacity with compiz in a Devs point of view then i would
    either trash metacity and fork compiz or do a major code rewrite and implement all the compiz features or grarantee an coexistence of metacity and gnome or even replace metacity by compiz.

    By the way i am using the GIT version of compiz and even
    that is pretty stable (maybe one restart of WM a day).

    CSSM: i love it, and i heard you are going to do a rewrite of it.
    Well thats good, but please maintain all the configure options.
    I mean less is not allways better.
    Maybe two modes: rookie and expert config like xine does.

    well maybee looking-glase is some fency gimmic
    but in my opinion compiz is mutch more!!!!

    cu you guys and may be if i have more time ill do an plug for you

  10. any tighter integration with KDE4 in terms of supporting kwin themes and better handling of multi-desktops, in the upcoming release?

    kwin just sucks on my intel gfx card (can’t use it) while on the other hand compiz works flawlessly.

    thanks for your hard work on making compiz rock.

  11. Wake up all at Compiz as Beryl is alive and kicking !

    You might be interested that over a weekend a mate and myself introduced Beryl back in to the fold. This is a direct result of our frustration of how bloated Compiz has become and is becoming more of a fashion thing rather than functional for having multiple desktops.
    OK so I have been using Ubuntu 7.04 on and off for a couple of years now and Beryl comes as default. After Ubuntu 7.04 Compiz Fusion (now Compiz) came as default. To begin with this was not a problem but as Compiz became more complex with spheres, globes and other useless features, performance was becoming impaired.
    Late one night I started looking at introducing Beryl to Ubuntu 9.04 (Alpha 6). As expected there were numerous depedendency issues.
    Piratesmack looked in to the same possibilty and together we pooled our resources and after running many scripts and testing by myself Piratesmack compiled some dependency free deb. packages.

    Piratesmacks Beryl 0.2.1 deb. packages for Ubuntu 9.04;13596520;/fileinfo.html

    Save to home directory

    extract tar.bz2

    cd beryl-fixed-9.04

    sudo ./

    Piratesmacks Beryl 0.2.1 deb. packages for Ubuntu/Mint;13508777;/fileinfo.html

    Save to home directory

    extract tar.bz2

    cd beryl-packages-0.2.1

    sudo dpkg -i *.deb

    Beryl 0.2.1 on Ubuntu 9.04

    Beryl 0.2.1 on Mint 6

    One thing you cannot do is knock the simplicity of Beryl and how much more useful it is than modern day Compiz.

    So for those who wish to mock I say Beryl is far from dead and people want it as they are downloading it for the very reasons I have outlined above.


  12. You guys probably should make an xfwm4 decorator (to use the xfwm4 themes in compiz when running compiz under xfce4). Or you could wait for gnome 2.28 (the latest b4 gnome 3) and make a fork of it that goes integrated to compiz.

  13. I forgot to say. If you go the route of forking gnome, you’ll need to remove the experimental gnome-shell component (which is optional in 2.28, mandatory in 2.30. a.k.a: gnome 3) and maybe mono (not needed, but would make happy the “mono-hater” crowd).

  14. KDE does not have the same problem as Gnome Shell, as Kwin is not tied to the panel or desktop.

    Compiz works fine on KDE 🙂

  15. Then you have a very good new project: QT Gnome, improving it where it fails. Let’s do the best and easyest desktop of the world.

  16. Is there a howto or something about building/installing Compiz 0.9 from source? I tried it but feel like wasting time 😦 Compiling was successful, eventually, but it doesn’t seem to run (though it starts, I can’t see any decorations etc).

    I’d like to spend some time on it, but some minimum information is needed in order for a newbie to boot up.

    On gnome-shell, I have to say it feels quite useless. It’s like everything an user does all the time is rearranging windows on screen. I think you shouldn’t waste any time with it; in fact, I think it will be a failure because users will reject it.

  17. it’s true that compiz is the best thing to happen to linux.

    i really dont understand the tight integration that gnome is talking about. with distros like ubuntu ditching gnome, i think this is when you should work with projects like emerald, awant, gnome-do (very very wrongly named), screenlets, etc to produce an environment that can be much more ‘tightly integrated’ and much more useful, cool and fun!

    i have curretnly hidden my panels in the widget layer and hidden the wallpaper. i use a 2 yr old acre laptop with awant as my dock, gnome-do to call tasks, around 20 screenlets over 6 desktops, compiz with a lot of options enabled, plus the emerald win dec manager.

    the most amazing thing was that gnome + metacity was using more power in than any of the cimpiz wit all these settings.

    thanks once again, j

  18. Hi there! This post could not be written any better!
    Reading this post reminds me of my good old room mate!
    He always kept talking about this. I will forward this post to
    him. Fairly certain he will have a good read. Thanks for sharing!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s