CompositeByDefault
Size: 10406
Comment:
|
Size: 9717
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
## Register at https://launchpad.net/distros/ubuntu/+specs * '''Launchpad entry''': https://features.launchpad.net/distros/ubuntu/+spec/composite-by-default * '''Packages affected''': |
* '''Launchpad Entry''': UbuntuSpec:composite-by-default. * '''Packages affected''': compiz-core gnome-control-center ccs-settings libccs python-ccs compcomm-plugins (no actual name as of yet...) emerald emerald-theme-manager gnome-keybinding-settings See also: * ["Xorg7.3Integration"] - Integrate Xorg 7.3 components, adopt config autodetection * ["BulletProofX"] - Failsafe mode when X doesn't start, with displayconfig-gtk to configure; includes a whitelisting capability that CompositeByDefault could share |
Line 8: | Line 11: |
Feisty will have a Composite aware Window Manager installed by default, using either Compiz or Beryl, the community branch of Compiz. 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. |
Deploy Compiz, with a set of plugins and settings backends as the default window manager in Gutsy Gibbon. |
Line 17: | Line 15: |
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. | Compiz is now able to function as a drop in replacement for Metacity. Due to increasing support for required GL extensions in both free drivers and proprietary drivers, and increasing stability in the project and it's assosciated plugins the software is usable and available for a broad base of users. User's have shown a large amount of interest in Compiz/Beryl for making their computing experience more usable and enjoyable. The highly visible effects of Compiz can act to encourage users to try Ubuntu. |
Line 19: | Line 17: |
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. | == Use Cases == |
Line 21: | Line 19: |
We believe, for the reasons described above, that Composite by Default is an Essential feature of Ubuntu Feisty. | * John is a new user coming from windows and finds the idea of workspaces/viewports completely foreign. The wall plugin for Compiz presents these to John in a tactile and intuitive way helping his workflow. |
Line 23: | Line 21: |
== Use cases == | * Steve is a power user and often works with dozens of windows. Plugins such as Scale (tile out all windows and let you pick one) helps him to stay organized and work faster. |
Line 25: | Line 23: |
* 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. |
* Edward is visually impaired. The neg and zoom plugins help him to zoom in close on small text, and improve contrast in some interfaces. |
Line 28: | Line 25: |
* Mark likes wobbly windows and other special effects and wants to have them on his Ubuntu desktop. |
|
Line 30: | Line 29: |
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. | Deploying Compiz as the default window manager in Ubuntu involves changes in several areas. Work with Compiz will have to be done for integration in to the existing GNOME desktop, behavior should be consistent with metacity when possible (true to a degree already), and users should be able to both include their metacity settings, and use existing GNOME tools to configure Compiz (already true to a large degree again). |
Line 32: | Line 31: |
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. | libwnck will have to be patched (patch available, probably going in upstream) to properly support viewports. |
Line 34: | Line 33: |
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. | A theme for the Emerald decorator will have to be prepared, blending in with the Metacity human theme, but additionally including some of the effects allowed by compositing. Sane default plugin settings will have to be chosen, along with a sane default set of plugins such as to provide an impressive, but not overwhelming experience. |
Line 38: | Line 39: |
* 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 | Integration with the GNOME desktop will be largely handled through the Compiz Configuration System (CCS). CCS is a plugin, library, set of backends, and tools for Compiz providing the following: * Consistent manner to access Compiz settings stored in GConf, ini (flat file), or kconfig backends. * Exporting, importing, and editing of profiles (For defaults, etc...) from/to any backend. * Python bindings around the library to enable easy manipulation of settings from Python apps. * Reading and writing of Compiz settings while Compiz is not running. * Translation in the GConf and KConfig backends from a large number of metacity/kwin settings to the equivalent Compiz settings, including watching for changes on the keys. * Support for multiple X Screens. Some applications such as gnome-keybinding will be patched to use CCS to add settings for Compiz specific keybindings. |
Line 40: | Line 50: |
* Upgrading users will keep their pre-existing Window Manager | A default set of plugins, animations, etc is chosen, with the rest being shipped by default or available for the user to enable if they so desire. |
Line 42: | Line 52: |
* 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 tray icon * 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. |
Desktop effects will be moved in to GNOME apperance properties. |
Line 54: | Line 56: |
=== Code === | 1. Ensure all required components are present in main and up to date with upstream * compiz-core - Need to discuss with upstream about producing a release; otherwise we will need to use a git snapshot * different plugins packages (one source package multiple binary packages?) * CCS Plugin/Library. * CCS Python bindings. * CCS Backends. * CCS Settings Managers. * CCS-GNOME/CCS-KDE metapackages. * emerald * emerald-theme-manager 2. Establish "standard plugin list": * move * resize * place * snap * wall * expo * zoom * neg * video * animation * switcher * fade * ccp/gconf * dbus * decoration * extrawm * jpeg, png, svg (image loader plugins) * regex * text * scale 3. Establish "optional plugin list" (checkbox to turn on): * ring (replacing switcher with same keybindings) * trailfocus * blur * wobbly 4. Establish a whitelist of Drivers/PCI ID's where composite can be enabled by default * See ["BulletProofX"], which will be maintaining a similar whitelist that could be reused here 5. Integration with existing GNOME desktop 6. Patch libwnck to properly support viewports (patch exists, may be incorporated upstream). 7. Create theme for the Emerald decorator * Strive to make it blend in with the Metacity human theme * Incorporate the following composite effect animations: * glide 1 for create Transients use fade * glide 2 for close Transients use fade * minimize/maximize zoom * shade - rollup * Focus - fade * Identify sane default plugin settings to craft an impressive but not overwhelming experience |
Line 56: | Line 106: |
* Packages for Beryl/Compiz will need to be imported into Ubuntu 'main' repository, and maintained by the Ubuntu Graphics Effect team | == Test Plan == |
Line 58: | Line 108: |
* 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 | * Evaluate behavioral differences between Metacity and Compiz * For each difference identified, determine whether to keep Compiz behavior or adopt Metacity behavior * Verify that metacity window manager settings are correctly used by Compiz * Ensure all useful functionality (including activating/deactivating) can be done with keybindings that are commonly available - i.e., don't rely on Button2,3,4,5 as they may not be available with touchpads or some mice. |
Line 60: | Line 113: |
* 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 - we need a way to overwrite the whitelist in a non-intrusive way (gconf?) |
== Outstanding Issues == Some driver bugs such as an Nvidia resource exhaustion bug (black windows when too many are present with TFP) need to be evaluated if they are not fixed. A whitelist of cards needs to be created (or a blacklist) for enabling/disabling Composite. A wrapper needs to be written which does system checks, etc. |
Line 114: | Line 117: |
* NicholasTelford: Might want to be careful, by the looks of the "standard plugins" list you have, many of them are from the (currently unnamed) community project (formerly Beryl). While I have a great deal of admiration for their work, some of it can be less stable or clash with the official compiz plugins. The animation plugin for example clashes with the minimize and fade plugins. Although I believe the animation plugin to be superior, it's something that should be taken in to consideration. | |
Line 115: | Line 119: |
* "[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?") * 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. * 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? -- MatthewPaulThomas * 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 |
Also, if you're going to use community plugins it might be worth looking at things like the new "dodge" animation (http://www.youtube.com/jp.swf?video_id=3nDzyXFVyIY) for the focus effect as (I believe) it adds a lot of usability (users, especially novice users, can see where the windows have gone). |
Line 121: | Line 121: |
---- CategorySpec |
Finally, back when I used to use Beryl I made an Emerald theme to fit in with the Ubuntu Human theme. I'm no artist so I'm sure the art team can do better, but it's worth a look for any ideas: http://themes.beryl-project.org/theme_details.php?id=32 * maccam94: Compiz and Beryl are currently merging. Beryl is now discontinued, but I think that by the upstream freeze date there should be a stable release of CompComm (under a new name of course). In this merge process, duplicate plugins will probably reworked/removed, and exciting new plugins are being written. Check the blog and the forums on http://www.opencompositing.org for updates. I do not know what will happen to Emerald, and at the moment compiz/compcomm use the GTK Window Decorator (which can use the existing Metacity theme afaik). I'd also rather see the Cube plugin than the wall plugin. While both are cool, the cube is something truly unique that no one questions Linux came up with, whereas by the time Gutsy comes out OS X 10.5 Leopard will already be out, featuring Spaces (which looks quite similar to the wall plugin: http://video.google.com/videoplay?docid=1254656550190215821 ) As to the black window bug with nVidia cards, this can most easily be cured by changing the rendering path from "Texture from Pixmap" to "Copy". There are also workarounds documented [http://forums.opencompositing.org/viewtopic.php?f=40&t=522&st=0&sk=t&sd=a here]. I think a major consideration when including these plugins will not only be which ones to use, but to make the initiation of these effects intuitive. Unlike Metacity, CompComm/Compiz let the "Windows" key act as a modifier key. This would allow Ubuntu to further replicate shortcuts used in Windows for users that make the switch. In OS X, the last four F# keys activate features like the dashboard, expose, and show desktop. The corners of the screen also act as hotspots for these features. Not only are these things easy to remember, they provide users of other operating systems comfortability when using Ubuntu. I'm not saying all of these specific shortcuts should be used, as Ubuntu should remain unique, but they are things to take into consideration. |
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: composite-by-default.
Packages affected: compiz-core gnome-control-center ccs-settings libccs python-ccs compcomm-plugins (no actual name as of yet...) emerald emerald-theme-manager gnome-keybinding-settings
See also:
- ["Xorg7.3Integration"] - Integrate Xorg 7.3 components, adopt config autodetection
["BulletProofX"] - Failsafe mode when X doesn't start, with displayconfig-gtk to configure; includes a whitelisting capability that CompositeByDefault could share
Summary
- Deploy Compiz, with a set of plugins and settings backends as the default window manager in Gutsy Gibbon.
Rationale
- Compiz is now able to function as a drop in replacement for Metacity. Due to increasing support for required GL extensions in both free drivers and proprietary drivers, and increasing stability in the project and it's assosciated plugins the software is usable and available for a broad base of users. User's have shown a large amount of interest in Compiz/Beryl for making their computing experience more usable and enjoyable. The highly visible effects of Compiz can act to encourage users to try Ubuntu.
Use Cases
- John is a new user coming from windows and finds the idea of workspaces/viewports completely foreign. The wall plugin for Compiz presents these to John in a tactile and intuitive way helping his workflow.
- Steve is a power user and often works with dozens of windows. Plugins such as Scale (tile out all windows and let you pick one) helps him to stay organized and work faster.
- Edward is visually impaired. The neg and zoom plugins help him to zoom in close on small text, and improve contrast in some interfaces.
- Mark likes wobbly windows and other special effects and wants to have them on his Ubuntu desktop.
Scope
- Deploying Compiz as the default window manager in Ubuntu involves changes in several areas. Work with Compiz will have to be done for integration in to the existing GNOME desktop, behavior should be consistent with metacity when possible (true to a degree already), and users should be able to both include their metacity settings, and use existing GNOME tools to configure Compiz (already true to a large degree again). libwnck will have to be patched (patch available, probably going in upstream) to properly support viewports. A theme for the Emerald decorator will have to be prepared, blending in with the Metacity human theme, but additionally including some of the effects allowed by compositing.
- Sane default plugin settings will have to be chosen, along with a sane default set of plugins such as to provide an impressive, but not overwhelming experience.
Design
- Integration with the GNOME desktop will be largely handled through the Compiz Configuration System (CCS). CCS is a plugin, library, set of backends, and tools for Compiz providing the following:
- Consistent manner to access Compiz settings stored in GConf, ini (flat file), or kconfig backends.
- Exporting, importing, and editing of profiles (For defaults, etc...) from/to any backend.
- Python bindings around the library to enable easy manipulation of settings from Python apps.
- Reading and writing of Compiz settings while Compiz is not running.
- Translation in the GConf and KConfig backends from a large number of metacity/kwin settings to the equivalent Compiz settings, including watching for changes on the keys.
- Support for multiple X Screens.
- Some applications such as gnome-keybinding will be patched to use CCS to add settings for Compiz specific keybindings. A default set of plugins, animations, etc is chosen, with the rest being shipped by default or available for the user to enable if they so desire. Desktop effects will be moved in to GNOME apperance properties.
Implementation
- Ensure all required components are present in main and up to date with upstream
- compiz-core - Need to discuss with upstream about producing a release; otherwise we will need to use a git snapshot
- different plugins packages (one source package multiple binary packages?)
- CCS Plugin/Library.
- CCS Python bindings.
- CCS Backends.
- CCS Settings Managers.
- CCS-GNOME/CCS-KDE metapackages.
- emerald
- emerald-theme-manager
- Establish "standard plugin list":
- move
- resize
- place
- snap
- wall
- expo
- zoom
- neg
- video
- animation
- switcher
- fade
- ccp/gconf
- dbus
- decoration
- extrawm
- jpeg, png, svg (image loader plugins)
- regex
- text
- scale
- Establish "optional plugin list" (checkbox to turn on):
- ring (replacing switcher with same keybindings)
- trailfocus
- blur
- wobbly
- Establish a whitelist of Drivers/PCI ID's where composite can be enabled by default
- See ["BulletProofX"], which will be maintaining a similar whitelist that could be reused here
- Integration with existing GNOME desktop
- Patch libwnck to properly support viewports (patch exists, may be incorporated upstream).
- Create theme for the Emerald decorator
- Strive to make it blend in with the Metacity human theme
- Incorporate the following composite effect animations:
- glide 1 for create Transients use fade
- glide 2 for close Transients use fade
- minimize/maximize zoom
- shade - rollup
- Focus - fade
- Identify sane default plugin settings to craft an impressive but not overwhelming experience
Test Plan
- Evaluate behavioral differences between Metacity and Compiz
- For each difference identified, determine whether to keep Compiz behavior or adopt Metacity behavior
- Verify that metacity window manager settings are correctly used by Compiz
- Ensure all useful functionality (including activating/deactivating) can be done with keybindings that are commonly available - i.e., don't rely on Button2,3,4,5 as they may not be available with touchpads or some mice.
Outstanding Issues
- Some driver bugs such as an Nvidia resource exhaustion bug (black windows when too many are present with TFP) need to be evaluated if they are not fixed. A whitelist of cards needs to be created (or a blacklist) for enabling/disabling Composite. A wrapper needs to be written which does system checks, etc.
Comments
NicholasTelford: Might want to be careful, by the looks of the "standard plugins" list you have, many of them are from the (currently unnamed) community project (formerly Beryl). While I have a great deal of admiration for their work, some of it can be less stable or clash with the official compiz plugins. The animation plugin for example clashes with the minimize and fade plugins. Although I believe the animation plugin to be superior, it's something that should be taken in to consideration.
Also, if you're going to use community plugins it might be worth looking at things like the new "dodge" animation (http://www.youtube.com/jp.swf?video_id=3nDzyXFVyIY) for the focus effect as (I believe) it adds a lot of usability (users, especially novice users, can see where the windows have gone).
Finally, back when I used to use Beryl I made an Emerald theme to fit in with the Ubuntu Human theme. I'm no artist so I'm sure the art team can do better, but it's worth a look for any ideas: http://themes.beryl-project.org/theme_details.php?id=32
maccam94: Compiz and Beryl are currently merging. Beryl is now discontinued, but I think that by the upstream freeze date there should be a stable release of CompComm (under a new name of course). In this merge process, duplicate plugins will probably reworked/removed, and exciting new plugins are being written. Check the blog and the forums on http://www.opencompositing.org for updates. I do not know what will happen to Emerald, and at the moment compiz/compcomm use the GTK Window Decorator (which can use the existing Metacity theme afaik).
I'd also rather see the Cube plugin than the wall plugin. While both are cool, the cube is something truly unique that no one questions Linux came up with, whereas by the time Gutsy comes out OS X 10.5 Leopard will already be out, featuring Spaces (which looks quite similar to the wall plugin: http://video.google.com/videoplay?docid=1254656550190215821 ) As to the black window bug with nVidia cards, this can most easily be cured by changing the rendering path from "Texture from Pixmap" to "Copy". There are also workarounds documented [http://forums.opencompositing.org/viewtopic.php?f=40&t=522&st=0&sk=t&sd=a here]. I think a major consideration when including these plugins will not only be which ones to use, but to make the initiation of these effects intuitive. Unlike Metacity, CompComm/Compiz let the "Windows" key act as a modifier key. This would allow Ubuntu to further replicate shortcuts used in Windows for users that make the switch. In OS X, the last four F# keys activate features like the dashboard, expose, and show desktop. The corners of the screen also act as hotspots for these features. Not only are these things easy to remember, they provide users of other operating systems comfortability when using Ubuntu. I'm not saying all of these specific shortcuts should be used, as Ubuntu should remain unique, but they are things to take into consideration.
CompositeByDefault (last edited 2008-08-06 16:19:24 by localhost)