A weekend with compiz
So I
decided to spend a weekend using Compiz, to see what it was
truly like. I decided that I would test the 90% use case, of
people who didn't want any bling. No spinny cubes, no
burning, nothing but default Compiz. After most of the
weekend ripping my hair out, I am now back using Metacity
and am so much happier for it. So what exactly went wrong?
The biggest problem: Workspaces
Well, lets start with workspaces vs.
viewports. Metacity (and I understand most other major WMs)
assume each workspace is a discrete entity. Windows are
either on one or another. In the physical world, this would
represent multiple physical desks. Compiz works differently.
It uses something called a viewport, into one workspace.
This is what allows you to have windows overlapping the edge
of the cube. Think of this as having one really big desk,
but you can only see one part of it at a time.
Before I continue, I should talk briefly about the two
major types of users of workspaces in the Linux world. I
will use the real world data of my office, which is mostly
ex-Windows users. The first group, which includes myself and
one of the new hires, use multiple workspaces. For us, each
workspace is a single entity, with discrete programs on
them. The other group, the majority,, use a single workspace
for everything. As far as they are considered, workspaces
don't exist. (As an aside, yes, I have told all of them
about it. They don't really care).
Now that I
have explained this, lets talk about how the change in the
way workspaces have been changed affects each group. For the
first group, the multiple-workspace people, The change is
going to drive us nuts. None of the keyboard commands to
move a window to the next workspace worked, as, after all,
it really was one giant workspace. Further, applications
were never really only one viewport, meaning that maximizing
never really works and if an application snuck onto the next
viewport over, a user like myself, who expects when you
switch viewports the active program in that workspace will
be selected, found themselves closing tabs in the
application in the last viewport, because it had snuck over
5 or 10 pixels and thus was considered still active in your
current viewport.
Metacity will flash an active
window on all workspaces when the appropriate hint is
raised. Compiz? Not so much.
But what about the
user who only uses one workspace? For this user, the current
workspace/viewport is the only one that will ever exist.
This means applications had better not go anywhere. So if a
window sneaks into the next viewport over, as it is far too
easy to do, they are likely to never find it.
Other annoyances
While the
workspaces one had me quite annoyed, compiz has a whole host
of other bugs. Maximizing
windows puts them under the bottom panel, sometimes
the window title stopped updating, windows
could be selected but don't get raised visually, the
window list vanishes at times and updating
panel applets draw over full screen programs. And there
are a whole
slew
of other bugs.
What can you do to
help?
The primary thing Compiz needs is
lots of time to shake out the many bugs that will crop up.
After all Metacity, a much older WM, has over 250
bugs open against it. So install stock compiz (please no
wacky third-party repos), test out your favourite apps and
start filing bugs. Start triaging the compiz
bug list. Start working with upstream to get these bugs
fixed.
In conclusion
All in all, I was less than thrilled. Does compiz meet
Ubuntu's quality standards? Absolutely not. I would
embarrassed to give someone Ubuntu if we installed compiz in
this state.