CompositeByDefault
Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad entry: https://features.launchpad.net/distros/ubuntu/+spec/composite-by-default
Packages affected:
Summary
Feisty will have a Composite aware Window Manager installed by default, using either Compiz or Beryl.
This specification is meant to decide which one of the two will be chosen, and what needs to be done for the chosen WM manager to be considered complete for Feisty.
The final decision on which window manager will be the chosen choice (if either Compiz or Beryl), is outside of the scope of this specification, and will be made by the Tech Board, after this specification has been approved.
Rationale
In recent years, most, if not all machines sold have video boards which support 3D acceleration to varying degrees. Linux has had compositing window managers for years now, but Ubuntu has no means to make it easy for users to see visual effects ("bling") easily, and additionaly, all compositing managers currently do not look and behave like a part of the Default desktop, degrading the user experience substantially.
Microsoft Windows Vista (to be released in January 2007), and Apple Mac OS X 10.2 (released in 2002), both support video Composition and 3D acceleration out of the box, giving these two operating systems a competitive edge over Linux. Finally, the latest version of competing Linux distributions (Fedora Core, openSUSE, Mandriva, etc) all offer varying degrees of support for either Compiz or Beryl.
We believe, for the reasons described above, that Composite by Default is an Essential feature of Ubuntu Feisty.
Use cases
- George is a college student and he needs a laptop with multiple spaces, one for personal, one for college and one for work experience. He is thinking of buying a Mac because it is easy to use, but his friends show him Ubuntu Feisty, with its "bling" and George knows he can impress with it, while getting work done. Also because it is cheaper to get a x86 Laptop, he can save money for books, partying, etc!
Matty uses the gnome-mag magnifier via the Orca screen reader interface. gnome-mag [http://www.ubuntuforums.org/showthread.php?t=275118 now has support for composite] and will soon have other cool features like colour filters for the colour blind. This should all Just Work with the default Ubuntu composite settings.
Scope
Ship Ubuntu Feisty using a Compositing Window Manager by default, for video boards that support one, and the "old" Window Manager (metacity for Ubuntu, kwin for Kubuntu) on video boards that do not support Composition.
The scope of this specification can be easily defined, but is very hard to get done correctly, though. The "Design" section tries to put in details what goals need to be achieved for the specification to be considered complete.
Additionally, due to the complex nature of the window managers (both beryl and compiz) a SLA needs to be agreed between Ubuntu and the Developer Community, so that Ubuntu isn't left with a buggy or unmaintained Compositing Window Manager.
Design
- New installations will have the Composite Window Manager enabled by default, when this is supported by the video board. For old or unsupported video boards, the "old" window managers (metacity for Gnome, kwin for KDE) will be used
- Upgrading users will keep their pre-existing Window Manager
- Both new installation and upgrades will have the ability to move back and forth from the Compositing Window manager (Compiz/Beryl) to the "old" Window Manager (either metacity or kwin). This option will be available via an applet in the notification area/system tray
- Hardware compatibility lists are outside of the scope for this specification (they fall under the accelerated-x spec)
- The themes (including all look'n feel), and key bindings of the chosen window manager will need to be *exactly* the same as the already existing ones. This aspect is non-negotiable
- The exact set of plugins enabled will be defined during the development phase of this specification, but is expected to be the minimum supported on a reasonably modern video board. No "shader" effects are to be enabled
- There will be a control to easily set the "bling level" you are going to use on your machine, so users with powerful video boards can easily and painlessly enable extra bling on their machines.
Implementation
Code
- Packages for Beryl/Compiz will need to be imported into Ubuntu 'main' repository, and maintained by the Ubuntu Graphics Effect team
- An applet will need to be written both for Gnome and KDE, so it becomes easy for users switching from/to the Compositing Window Manager
- A different set of modifications need to be done for both Compiz and Beryl. The exact changes are not the same for each of them, though, as they support different features, currently (for instance, Beryl already has support for using Gnome and KDE themes and will shortly support their key bindings, Compiz doesn't)
Data preservation and migration
As mentioned above, new installations will have the Compositing Window Manager installed by default, unless the specific video board is on the "blacklist" of boards, or simply does not support Compositing, in this case, the pre-existing non-compositing Window Manager will be used (metacity for Ubuntu, kwin for Kubuntu).
Upgrades will continue using the Window Manager they were using before the upgrade to Feisty.
Both new installation and upgrades will be able to switch between Compositing/non-Compositing window managers as per their will. This process is painless, and non-harmful to the machine.
Edubuntu and Xubuntu will not ship a Compositing Window Manager by default, due to the type of public they target (machines with low processing power, and lower end hardware)
Unresolved issues
There is no decision yet on which compositing manager will be the chosen one, if either Beryl or Compiz. Both of them have advantages and problems. Details on this will be added on this Wiki page, after the next BoF session is finished.
BoF agenda and discussion
- Sunday, November 5th, 2006
- Thursday, November 9th, 2006
Dump of the discussion at 9th Nov
Havoc on metacity/compiz:
- i am unable to connect Registration failed: Forbidden - whitelist for cards instead of blacklist (as mentioned in wiki). Suggestion by Scott James Remnant.
- compiz or beryl needs to respect the current keybinding/themes/settings applet - enabling/disabling should be a control panel applet
- the option to enable compiz for existing users should go into Preferences/Windows and added to this capplet. It should contain: "no bling/low bling/medium bling/high bling". when bling is enabled it needs to run berryl/compiz with --replace and pass a configuration option that will point to the default settings file for the given setting. But what we really want is a gconf system.
- - ubuntu_demon : it should be possible to install an advanced options manager (for Beryl/Compiz) from universe. IMHO there are lots of forum users who would like this. - one problem is that berryl uses the corners of the desktop for functions, but we already use these corners. hot-corners will be disabled by default therefore - we use a whitelist for cards that support proper 3d and only use berryl for those cards. - we can't just install compiz on every install because it requires a rendering path and software rendering is way to slow. so we need to support two window managers (metacity+berrly/compiz). so we will probably install metacity by default and make it very easy to switch to bling. it is very iportant that all settings/themes/keybindings etc will be the same under both window manager - we will add a feature to beryl that will check if the machine is usable with berryl (--will-bling-work). this is what will be used from the window control panel to see if the bling option will be offered to the user or not.
- we should tell the user (warning dialog) when they turn on bling there may be glitches/out-of-syncnes and problems with preserving the settings in the future
- - we should make sure that berryl can use metacity themes fully supported (including button ordering and the menu). theme-switchting will continue to work with the regular theme application (the beryl-decorator listens to gconf changes) - a minimal configuration list will be specified by the beryl developers - for beryl we need to patch libwnck but those patches are not accepted by upstream yet
libwnck patches: http://bugzilla.gnome.org/show_bug.cgi?id=352383
Comments
- "[T]he ability to move back and forth from the Compositing Window manager ... to the "old" Window Manager ... will be available via an applet in the tray icon"? That's ... interesting. Should there be a panel menu for switching between available kernels, too? If not, why not? (Or to put it another way: "What's this 'window manager' gibberish?")
-- Because switching kernels requires a restart, the GRUB menu provides this ability, and a Gnome panel item is unnecessary. However, having a tray icon to switch between Beryl/Compiz and Metacity is a good idea. Some applications do not work properly with Beryl/Compiz turned on (this might be a bug), for example Mathematica or MATLAB. Being able to quickly switch back to Metacity in such cases is a good feature. --PrashantVaibhav
-- This is absolutely bonkers. If there are compatibility issues we should not be pushing for immature window managers in the first place. We are just going to end up with a crappy product just for the sake of playing catch-up with Vista and OS X. --AlexJones2
-- Agreed with the bonkers comment! Would it be possible to retain a list of incompatible applications, then use the 'old' window manager for those applications? Or use that same incompatibility list and introduce some kind of 'compatibility mode' to Compiz/Beryl? Either way, these issues should be addressed before this is introduced, automatically. The user should not be bothered with terms like: 'Window Manager'! --LiamMcDermott2
Why don't we try and implement a init-like bling level so that the entire user experience becomes very easily customizatible. For example a bling level of 0 would mean that neither Beryl nor Compiz are running, whereas, a bling level of 9 would mean that 100% 3D acceleration is on. These could be easily be used on CLI like init - say bling 3 etc. --SisirKoppaka
- Besides such an Applet is already avaible for Compiz: "gnome-compiz-preferences". It has a really sane interface compared to beryl and its tray icon can be disabled.
There is also another applet for compiz configuration http://www.compiz.biz/viewtopic.php?t=153
- Composited effects would be great for helping people understand what windows are (using shadows, and reduced contrast in background windows), helping people understand where a window has come from or gone to (animation), and improving accessibility (composited zooming, black/white flipping), and just plain looking cool. But other effects may reduce usability dramatically, rather than increasing it. So "The exact set of plugins enabled will be defined during the development phase of this specification" is a bit disturbing. Defined how?
You'll want/need to somehow respect LTSP_CLIENT variable, and select either metacity or kwin if it's set. Having beryl/compiz trying to start by default on a Pentium 133/32 meg ram thin client will be... interesting. -- ScottBalneaves
Do these effects come with the ugly pop in/pop out of focus that I've seen on early demos? -- JoachimNoreiko
Please see http://bugs.beryl-project.org/trac/wiki/Development%20Roadmap for Beryl's dev roadmap, it addresses some of these issues.
- I see things about focus-stealing on that page, which is important I agree. But I actually meant 'focus' as in 'not blurry'. The demo I saw made windows go blurry each time they moved or had an effect applied to them, and the pop in and out from normal to blurry was jarring and ugly. - Joachim
This is not the same problem in fact. blurfx plugin (the one that sounds to be your problem) won't be enabled by default settings (in fact it has never been enabled by default since it can just harm CPU/require extensions missing on some cards, such as shaders), which would just enable subtle, light & usable effects. --GuillaumeSeguin
On laptop bling should go in "power-saving bling mode": I don't want my abttery to catch fire because of the burn window effect :->. More seriously, bling should not decrease battery life. I see a day where people will be choosing there OS in terms of battery life (and Vista might not exactly win).
- While Vista and OS X both support compositing and 3d acceleration out of the box, note the "annoyingness" factor of the current state of Ubuntu's compositing. I think it's important to sort out which effects are annoying (wobbly windows, water effects, long-duration minimizing and maximizing), and which can help improve the look and feel of the desktop environment (cube desktop switching, subtle fading, and other short-duration effects). If composition is enabled by default, it MUST not get in the way of productivity. While it's "cool to show your friends" some neat window effects, it's most important for people to be able to actually use their systems to get things done quickly.
Both Windows Vista and Mac OS X has a compositing window manager without displaying a tray icon. Why can't this setting be treated as all other settings in Gnome, namely as an item under System > Preferences? --DavidDjstTenser
Plus one. Our "tray icon" is ""not a "tray icon""". It is a "Notification Area", used for notifying the user of important events! --AlexJones2
- I agree. I use Beryl without the tray icon as it is, and you don't need beryl-manager at all to use beryl-settings. There is no reason at all to confuse desktop users with it. The reason it exists is in case Beryl crashes; if Beryl is unstable, it should not be included by default. --Vuen
" it's most important for people to be able to actually use their systems to get things done quickly" : I completely agree with you. In my opinion the best would be to have several profiles, the default one being just a metacity-like one, with just the same look and feel as metacity, plus some usability improvements that wouldn't harm anyone (such as scale or neg plugin), and other profiles featuring more advanced "bling" with custom effects. All this would be configurated through an appropriate System > Preferences app (the Windows app sounds sensible, but a Compositing one would be good too), and the tray icon might be optionnal and not default, being available in one of the previous apps --GuillaumeSeguin
Nice to hear about Composite by default, but why use Beryl or Compiz. Metacity is getting enriched with features using composite extensions, so why don't stick on metacity by default? Users who need something more whould be free install another window manager. Also with metacity there is the advantage of a more robust desktop (in case of gnome of course) and its definetly lighter than the previous mentioned here. --SqUe
- Agreed. Metacity is much better at integration with Gnome than Compiz/Beryl. And since it has compositing too, it's not necessary to use Compiz/Beryl.
Sticking with Metacity is without a doubt the best COA in my opinion. Years and years of code maturity is wasted if we just hop on the Compiz bandwagon just because it has a hot name to it. --AlexJones2
- Yes, Metacity is more mature. However it also does *not* look as good, especially if compared with the Vista goodness. I've run Beryl now for couple months on a few computers and it acts pretty mature. The only crash so far has been because of Xinerama (the display adapters commonly can't handle 3d acceleration stuff well on multiple heads) and it has got some usability features too that I wouldn't want to live without anymore. --Erich
- Will the user be able to simply choose between Compiz and Beryl ? From my point of view, Compiz (from Gandalfn repository, and uploaded to REVU) seems to be lighter, and may be better for laptops, and those who don't need to configure very slightly their 3D system. --kalon33
- Someone wiser than I said "Comparison is the root of lacking self confidence" -- senseless comparison means nothing. We don't build the Ubuntu product by mindlessly trying to copy everyone and their hyped ideas. --ulrik
Please do not forget that for non-accelerated HW (for example, nvidia on ppc), the default should still be "No Composite" - otherwise there might be serious performance penalty. -- SergeyUdaltsov
- About Hot-Corners. I like the idea of them being disabled because they are "already being used". However, the bottom-left corner is being used to show the desktop - why not enable the show-desktop plugin and put it into that corner?
- I think that Beryl is better. It doesn't rely on gnome-xconfig which could easier the work on Kubuntu(I tried to install compiz on kubuntu and OpenSUSE-kde and it was a real pain compares to Beryl). Also Beryl support better both Aiglx and Xgl. However, we can't really tell now about Beryl/Compiz's bugs because the final version of Beryl/Compizwill be released after the feature lock of ubuntu(so there should be adjustment on the roadmap too...).
- Beryl is indeed more eye-candy and it may very well more suited than anyone else to become the "future graphics-effects window manager". But metacity is "good enought" for a good start start, beryl can be adopted later if needed. After all, the hard work about enabling graphics bling is mostly in the hardware support side etc. right now - diegocg.
End of edit conflict