CompositeByDefault

Differences between revisions 4 and 53 (spanning 49 versions)
Revision 4 as of 2006-11-09 17:51:35
Size: 4396
Editor: 65
Comment:
Revision 53 as of 2007-05-10 15:56:21
Size: 5494
Editor: 195
Comment: Fix formatting.
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
Line 8: Line 7:

Feisty will have a Composite aware Window Manager installed by default, using either Beryl or Compiz, 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 11:
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 13:
Microsoft Windows Vista[tm] (which will be released later in 2006) and Apple Mac OS X Tiger (released in 2006), both support video Composition and 3D acceleration out of the box, giving these two operating systems a competitive edge over Linux. == Use Cases ==
Line 21: Line 15:
Finally, the latest version of competing Linux distributions (Fedora Core, openSUSE, Mandriva, etc) all offer varying degrees of support to either Compiz or Beryl.  * 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 17:
We believe, for the reasons described above, that Composite by Default is an Essential feature of Ubuntu Feisty.  * 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 19:
== Use cases ==  * 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 27: Line 21:
Help is appreciated if you can fill in this section :)  * Mark likes wobbly windows and other special effects and wants to have them on his Ubuntu desktop.
Line 31: Line 25:
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). libwnck will have to be patched (patch available, probably going in upstream) to properly support viewports.
Line 33: Line 27:
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.     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.
Line 35: Line 29:
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.    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 39: Line 33:
 * 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 41: Line 44:
 * 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 43: Line 46:
 * 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 55: Line 50:
=== Code ===    * Plugins (which are desirable to have installed) were divided into two groups:
 list of standard plugins:
 * 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
 
 * optional plugins (checkbox to turn on):
Line 57: Line 75:
=== Data preservation and migration ===  * ring (replacing switcher with same keybindings)
 * trailfocus
 * blur
 * wobbly
Line 59: Line 80:
== Unresolved issues ==    * A default set of animations was chosen as follows:
  * glide 1 for create Transients use fade
  * glide 2 for close Transients use fade
  * minimize/maximize zoom
  * shade - rollup
  * Focus - fade
Line 61: Line 87:
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.  * A list of packages:
Line 63: Line 89:
== BoF agenda and discussion ==  * compiz-core
 * 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
Line 65: Line 99:
----
CategorySpec
     Compiz-core will likely have to be a GIT snapshot as a stable release is unlikely to happen in the near future.

To decide which devices to enable composite by default on a list will be created from Drivers/PCI ID's. ("This driver with this ID is ok.")

 

 
== 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.

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

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

  • Plugins (which are desirable to have installed) were divided into two groups:
    • list of standard plugins:
    • 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
    • optional plugins (checkbox to turn on):
    • ring (replacing switcher with same keybindings)
    • trailfocus
    • blur
    • wobbly
  • A default set of animations was chosen as follows:
    • glide 1 for create Transients use fade
    • glide 2 for close Transients use fade
    • minimize/maximize zoom
    • shade - rollup
    • Focus - fade
  • A list of packages:
    • compiz-core
    • 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

Compiz-core will likely have to be a GIT snapshot as a stable release is unlikely to happen in the near future.

To decide which devices to enable composite by default on a list will be created from Drivers/PCI ID's. ("This driver with this ID is ok.")

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.

CompositeByDefault (last edited 2008-08-06 16:19:24 by localhost)