What are some of the issues with CCSM and why would I want to avoid it?
I am an experienced Linux user, I've contributed to kernel and work on the Canonical OEM team; I only mention these facts to show my context, which is -- the other day, I did a fresh install of 11.10 on my laptop, and wanted to customize something (turning on focus-follows-mouse). I poked around in gnome-control-center for about 30 minutes before giving up and discovering the only way to do this was using ccsm.
After installing ccsm, I configured ffm, and then -- accidentally! -- my mouse cursor passed over the preferences button and the touchpad on my laptop registered a click.
Boom!
Unity session dead.
Luckily I still had an irc window open and I could beg for help from my colleagues who told me how to recover (rm ~/.compiz-1
). This is the same problem some people keep having:
- Unity 3D doesn't work anymore, just shows a menu on the top
- Unity doesn't load, no Launcher, no Dash appears
- Desktop disappeared after messing with ccsm
I know that people are going to google for how to configure things and land up here and they're going to see lots of mentions of ccsm; or worse yet from another unreliable source. The horse is out of the barn already, and we can't go back. The determined users are going to find it anyway, and anyone that tenacious deserves to know how to get what they want (and if you break it you get to keep both pieces!)
But my point is that from now on, we can try and do better for our users.
- ccsm is dangerous; even if you know not to touch the bad thing, you might accidentally touch it anyway like I did.
- ccsm has no future; the future plans for Unity are to migrate all the useful configurability bits out of ccsm into safer, supported tools. These tools should start to appear in 12.04.
- the attitude of "recovering from your mistakes is a positive learning experience" is niche. Most normal people just want to use their computers without having them randomly break in mysterious, non-recoverable ways; most normal people do not share our culture of taking things apart to see how they work.
Again -- I know that people are going to find the dangerous stuff no matter what. But what we can do here is change our culture and give opinionated help, steering people away from the bad stuff and towards the good stuff.
It's easy to convey facts; it's much harder to convey wisdom.
Here, we should be aiming higher than merely giving the facts of what is possible; we should be sharing the wisdom of what is recommended.
You can also have other plugins conflicting with the unity one, like commands and such. We need to activate them still for the fallback session (like Alt+F2). So unity by default conflicts with other plugins that are enabled.
However, touching such a plugin in ccsm
enables special artifacts like "do you want to remove the unity plugin?" and people don't read and say yes.
Even worse:
- Unity is depending on LargeDestkop:
- Wall and Cube are providing LargeDesktop, each one conflicting with each other.
What happens is that, if you enable Cube, ccsm will disable Wall. Then compiz thinks it's smart right know to check for dependency and will tell "oh, I can't have unity" and disable it. Then, it will enable Cube without reenabling unity which has now its "LargeDesktop" requirement matched.
In addition to this, compizconfig has a fragile configuration management, which can, in some unknown cases right now, remove a plugin from the current profile (probably due to a conflict check at start or on upgrade) without any warning…