Thursday, December 22, 2005

'A Tale Of Two Skippies'

I have some interesting things to blog about today: a flamefest about the Xgl, the seeming death of Xcompmgr, new Xorg, and my efforts to try to get better task switching in Linux.

I'm going to start with the information on Xcompmgr. In my guide the other day someone asked me where the CVS for Xcompmgr is. I finally found it due to Google's superpowers....but what I found kinda depressed me! I thought that EXA testing and the fact that an open source way to accerate Xcompmgr would lead to a growth in its development. Part of this assumption was due to the fact that at the end of October the first real update to Xcompmgr since January was made. Yet now looking into it seems that it was just a small patch to Xcompmgr in the new release, and just like before development of this fun toy is over.

But there is good news too. First is that Xcompmgr is no longer needed: soon every major DE will have a compositor. KDE's Kwin has a compositor that is the most advanced of them all (well....maybe not more than Luminocity....but it is workable and Luminocity is not). XFCE has that crappy compositor that has shipped with it since spring, and now finally the Metacity compositor is starting to do something:

What interests me the most about this new compositor is this:

“There is a disabled genie type minimize effect.”

As soon as a grok the code enough to undisable it I plan to compile a Metacity that uses this compositor. If its worth a darn I will make a guide....but it seems really early. I'm really glad to see this is being worked on though- the current minimize effect in Metacity (or as I call it “the thing that draws all those ugly black lines on your screen” ) needed to be replaced as soon as it was created! Personally though what I really want is Luminocity's “wobble” effects- what was the point of the whole project if the coolest part does not get back into Metacity?

Next year will be exciting for compositors.....I am really starting to think that KDE 4 will bring with it the first stable composited Linux desktop!

The next issue I want to talk about is the release of Xorg 7. Here is what I posted on Slashdot concerning this huge upgrade:

And here is the changelog:

Beyond EXA this release also brought huge updates in the Savage driver, and Intel driver and it was the start of the open source ATI driver (for newer cards).

I see this release being huge in two ways:

1. Since the drivers are cut from Xorg they can improve faster- no waiting for the next Xorg release to get new drivers.

2. Since the drivers are separate ATI might do a better job (its easier for the one guy at ATI who makes the Linux drivers to do his job now).

Of course, don't get too excited. As was said on Lug radio modularizing Xorg is step one of a twelve step process to a modern xserver. The worst thing one could do is raise personal expectations too much- I predict it will still take a few years for all the benefits of this release to “trickle” down to users.

Next of the agenda is the biggest part of today's blog: Me vs. the two Skippies.

It all started this summer when my sister got a Powerbook and I noticed (after an hour of playing) that it has the neatest task switching known to man- Expose:

Later this semster at school I was using an iMac (and old 800mhz one with a VERY weak graphics card) and I noticed that not only did Expose give you little thumbnails of each screen instantly, it gave you “live” thumbnails: a page I was loading continued to load while thumbnail size in Expose.

I thought to myself “if this weak Mac can do this, surely my powerful desktop can.” And my quest to lose the taskbar began.

After some research I noticed that there are three Expose copies in Linuxland: Skippy, Kompose, and Expocity. Kompose is KDE's version of Expose. Its probably the best one seeing as how it does corners by default (aka you can make it like on the Mac where when you mouse moves out a certain corner of the screen than Kompose does its magic). But in Gnome it gives a blah grey as the backround, its widgets look ugly no matter what KDE theme I use, and it seems to suffer from the same problem Expocity and Skippy suffer from (well...the Kompose in the repos does). I will talk more about that later.

Next is Expocity. This one is by far the coolest because unlike the other two when you use it the thumbnails windows dance onto your screen like on a Mac. Its fun as hell to use....but it has three huge problems! First its tied to Metacity, so currently the only way to get it is to force a pre-Hoary version of Metacity thats on Daniel Stone's website into Dapper (an act which is negated by the next dist-upgrade). Here is the files for those that want to try, and a guide of how to do it (the guide will say to use other files...use the ones here instead- this is my contribution...Mr. Stone tried to hide this from us Ubuntu nuts):

His comment on it:

As you can tell...this is not a good solution. I would personally just make a newer version of Metacity with Expocity added, but I won't because of the second problem- it does not pay attention to Xinerama. At home (I'm on vacation) I use two screens and Expocity does not take that into account, which is a pain. The final problem with Expocity is the problem that they all share that I will talk about at the end.

So that leaves me with one left: Skippy. And it so happens that Skippy is the most exciting one! Here is a screenshot:
Skippy seems near perfect: its has Xinerama support (very good dual head support in fact), it has cool transparencies that shows your desktop, and it is VERY customizable. There is a version of Skippy in the repos for Breezy users. Please note 64 bit users like myself that the Skippy in the repos won't work for you- I had to hack the source code in a few places in a way that I found on the forum of the site that Skippy is hosted on to get it to work in 64 bit Linux. Since it is indeed faster in 64 bit Ubuntu once you get it to work, I plan to host the file I made as soon as I learn enough about check install to make it into a deb (if you are good at that and you want to help email me at poofyhairguy at gmail dot com).

I even found a way to trigger Skippy to work with the same corner thing that Expose and Kompose do using Brightside and xmacro (both in repos). There is an angel on my shoulder that says I should make a guide telling how to do such (I also make it so one of my corners shows the desktop like in a Mac)- would anybody want one?

But still skippy has two problems. First problem is that it seems to be abandoned: the author must have just broke down and bought a Mac because nothing has happened since September. No big deal....its about as good as it can get as it is. So its other big problem is the problem is shares with all the other Expose copies I have talked about: they are all just hacks!

What do I mean by that? I mean instead of using the power of the Xserver to produce live thumbnails, Skippy, Expocity and the version of Kompose in the repos use a visual trick to make you think you are getting the same thing. What they do it rise each application to the top for an instant, take a screenshot of that app, and use that screenshot to make the thumbnails. You can actually see this happening if you use any of these programs like ten times in a row (aka your computer slows down to a point were you actually see each open program rising to the top).

This way of doing it can have two problems. One is that the screenshots might not show what your windows currently looks like- you might see for instance a Firefox page you were browsing an hour ago! The newest version of Skippy fixes this problem by having an option in the config file to redo the screenshots after a few seconds. Again and angel is saying I should share this file is a skippy guide.

The other problem is that sometimes the Expose copies cannot actually pull all the windows to the top in time...and then it all messes up. I included a screenshot here of skippy messing up in this way:

So while Skippy provides the best option, its still far from Expose. And thats why the Skippy author made Skippy-xd. This is a version of Skippy to use Xcompmgr to create the same effect that the Macs get- live thumbnails. I could never get this version to work in Breezy before, but two nights ago in a drunken haze I got inspired by a fellow Ubuntuer to hack at the code some (I do not know C at all!) and by hacking away the parts that would not allow me to compile it I finally got it to work! Yay! And just like promised, the thumbnails by default are live like on the Mac. I will post a deb for this too in time.

But Skippy-xd has two problems. (yeah I know, lots of two problems). One is that its slow. I have a 6600 GT, an AMD 64 3800 X2 and with its default settings Skippy-xd is as slow as can be! I turned off some of the features (such as constantly updating the thumbnails and mouse over hints) and its still slower than normal Skippy the first time you use it. This tells me that Xcompmgr is nowhere cool as I though it was and that my bad ass new computer is not all its cracked up to be (its CPU bound as it is- I know because its the same speed with Nvidia's render accel turned off....its actually a little faster). But I plan to hack away features from the source code until its of tolerable speed (after a night of work I am close).

The second problem is that unlike the other Skippy, Skippy-xd does not give you the entire contents of the windows- the tops and bottoms and sides are cut off! Its a noticeable problem....
In the end I will use regular Skippy for now, and if the newest Nvidia driver clear up the problems with renderaccel I have been having this week (three crashes) and I can get back to using Xcompmgr 24/7 I will hack down Skippy-xd till its usuable and use it. Also at the beginning of January I'm moving to KDE for a month, so I will compile the newest Kompose and give updates on it. I hear it can use Kwin;s composite manager to give live thumbnails like Skippy-xd can....I wonder if its as slow though.

This whole deal taught me three things:

1.The Apple developers eat magic dust for breakfast. I better stop noticing what OSX can do or I will live with a constant inferiority complex!

2.The newest fun stuff in the Xserver world is still years behind the closed competition. Oh well, thats life.

3.C makes more sense than one would think – I had stuff hacked to the point of working in one night. I might teach myself some so I can improve Skippy-xd now that the author has left it alone. Maybe fix the cut off the edges bug.

I hope that little story was enlightening to someone. On to the last topic of interest: the big flamefest over Xgl.

It all started when Aaron J. Seigo (the most vocal KDE guy) complained in his blog that Novell was developing the very important Xgl behind closed doors. Here is the link and a quote:

“The development of XGL has been largely removed from the community and is being done behind closed doors. when i first heard about this state of things i figured there must be more to it but ... nope. it's pretty much the situation.

So instead of getting as many people working on it as possible, instead of allowing other projects to test their software and play with its capabilities, instead of going through the peer-review process that keeps things healthy ... one company has decided that it would be a better idea to hire a few of the developers and put the development into a source repository that only they have access to.”

This lead to flamefest in forums all over the net and it lead to the most uniformed rant I have read at OSNews. Here is it, but please don't read it as the author does not really grok the situation (my opinion):

One good thing to come of it (and why I gave that above link) is that the flamefest brought back Jon Smirl- the man that once worked on the Xegl. His opinion (as far as I can tell) was that everyone had their chance for an public Xgl, but many important developers liked EXA more and Novell had to take the project inside to keep it from dying. I'm a big fan of Mr. Smirl (his write ups on the Linux Desktop are VERY informative for eye candy nuts like me) and in the comments for that horrible OSNews “article” I got to ask him some tough questions about the Xgl. Its a good read for all interested- he answered every question more than sufficiently.

Just so I can be semi-balanced, here is the other side of the story from another hero of mine, Adam Jackson:

And the response from the guy that started it all:

My personal thoughts on the matter are honestly kinda selfish. I hope that this blog entry gets Novell to release a newer version of Xgl into CVS, but only because then I can compile and use it and make a guide so other eye candy nuts can compile and use it.

I don't know what development model is better....I don't know who is right. I am happy with Novell for pouring resources into Xgl when no one else is at this point, but I don't know which result will bring about the best product.

I will tell you this: the whole deal brought me hope. When Mr. Smirl announced he quit the Xegl, it seemed no one cared. Slashdot only had like 50 comments on that story, and the only people whining in public were users like myself that hated seeing what was going on. The guy who made EXA said he was going to finish it, but then he turned around and went back to school- dropping all his OSS projects for a little while. No one seemed ready to pick of the Xegl ball......

I mean...when that all happened I KNEW what it meant. It meant that Vista would be sitting on the shelf for two or three years before Linux had something even close to Aeroglass. I know its wrong to define the world in that way....but I'm an eye candy nut. Its going to be REALLY tempting to just install and use Vista in the time it takes for the xserver to catch up. I tried a build of Vista a month ago and it had everything I could want eye candy wise: a grown up theme, live thumbnails, and as windows minimized they faded Xcompmgr style. Everything. Its going to be hard to not install Vista when it comes for these reasons.....really hard. Really, really hard. I will do my best though.

What will be even harder is when it comes and all the Windows zealots (I'm amazed they exist honestly) will troll on every site saying “ and Aeroglass is years beyond what Linux has....EXA and the like is pathetic in comparison.” And they will be right....they will be right....sigh.

Back in September that was the point Mr. Smirl tried to make. The other big developers (rightly maybe) told him basically “screw what MS does, we are not in competition. Its an insult that you compare the hard work done on Xorg to something closed like Windows.” And I see their point....but I don't know if they see mine. I bought an Nvidia card because I wanted what gave me the best eye candy, even with the closed driver. Open source is great....but when its behind its behind. And in the case of the xserver....its behind.

But this new little flamefest brings back hope. Obviously a few people that are important (aka developers that can finish it) care about Xgl. And that means that now that Xorg 7 is out the door maybe, just maybe, someone else will pick up where Mr. Smirl left off.

As a final thought I will say that the Xgl is the primary reason why I wished a site existed that would allow users to post bounties for open source projects they want (like Codeweavers does with Crossover Office or Mark and Google did with the "Summer of Code" thing). I would donate $100 or two towards the finishing of Xgl....if only because then the temptation to spend that money on Vista in the future would go away!

Well thats it for now....have a nice day Linuxland!


Blogger lance and danielle said...

i would love a guide like you mentioned. i have been using kompse, but ran into the same problems you did. Can you send a guide to me?

1:41 PM  

Post a Comment

<< Home