HardyDesktopEffectsProfiles

Differences between revisions 1 and 2
Revision 1 as of 2007-12-17 04:17:53
Size: 4185
Editor: dslb-084-063-123-148
Comment:
Revision 2 as of 2007-12-17 09:53:08
Size: 5102
Editor: dslb-084-063-123-148
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
 * '''Packages affected''': compiz  * '''Packages affected''': compiz, gnome-control-center, gnome-appearance-properties, simple-ccsm
Line 41: Line 41:
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like: A profile is an ini-file supported by libcompizconfig. Loading such has a file by compiz itself is done with the ini-plugin. So this plugin has to be the default one to be loaded at startup. The appearance-capplet ("Visual Effects"-tab) of gnome-appearance-properties has to provide a button allowing the user to start the graphical front-end for creating such a profile. That front-end is expected to be simple-ccsm. simple-ccsm is meant to create such a profile/ini-file, depending on the choices a user made with it.

Two string gconf-keys...

 * /apps/gnome-appearance-properties/selected-effect-level
 * /apps/gnome-appearance-properties/effect-level-ini-file

... have to be introduced for storing the selected effect-level...

 * "None"
 * "Normal"
 * "Extra"
 * "Custom"

and the full path to the ini-file itself. The default path for storing the system-wide ini-files for "Normal" and "Extra" should be...

 * /usr/share/gnome-control-center/normal-effect-level.ini
 * /usr/share/gnome-control-center/extra-effect-level.ini

The default path for storing the custom ini-file should be...

 * ~/.custom-effect-level.ini

Effect-level descriptions...

 * None: no compiz running, metacity is used

 * Normal: animation, annotate, dbus, decoration, gconf, glib, ini, inotify, move, place, png, regex, resize, scale, screenshot, svg, switcher, video, wall, zoom

 * Extra: animation, annotate, dbus, decoration, expo, gconf, glib, ini, inotify, move, place, png, regex, resize, scale, screenshot, shift, svg, video, wall, wobbly, zoom

 * Custom: anything the user defined using simple-ccsm
Line 45: Line 76:
Should cover changes required to the UI, or specific UI that is required to implement this The graphical front-end ccsm has to be replaced with simple-ccsm.
Line 49: Line 80:
Code changes should include an overview of what needs to change, and in some cases even the specific details.

=== Migration ===

Include:
 * data migration, if any
 * redirects from old URLs to new ones, if any
 * how users will be pointed to the new way of doing things, if necessary.
gnome-appearance-properties needs to be changed to test for (and call if installed) simple-ccsm.
Line 64: Line 88:
== Outstanding Issues ==

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

== BoF agenda and discussion ==

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.

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.

Summary

To avoid loosing a custom set of enabled plugins and plugin-settings compiz needs to support profiles. This support has to be provided via libcompizsettings. In addition to that profile-support will simplify the task of tweaking the other two sets of effect-levels "normal" and "extra", which can be implemented as two additional profiles. In the end changing an effect-level will just select a different profile.

See also:

Release Note

Once a user has selected the "Custom" effect-level and made changes to the set of enabled plugins and their settings via the dedicated frontend, s/he is now able to switch back and forth between any of the four possible effect-levels "None", "Normal", "Extra" and "Custom" without loosing any settings done for the "Custom" effect-level.

Rationale

It is unacceptable to have a user loose their made set of enabled plugins and plugin-settings. This is against Ubuntu's principle to always respect and preserve a users made preferences.

Having support for profiles storing a list of enabled plugins and their settings makes future tweaking of the "Normal" and "Extra" effect-levels easier for Ubuntu-developers.

Use Cases

  • Sam had a graphics-card failure and had to replace his powerful pixel-pushing beast with less capable one. He used a custom set of plugins and settings for "Visual Effects". For the meantime - until he gets a new powerful graphics-card - he needs to switch back the effect-level for the less capable graphics-card to be able to run a composited desktop still. Once he get the new graphics card he will be easily able to switch back to his custom settings with just one mouse-click.
  • Petra considers herself to be a power-user and tweaker. Not content with the shipped set of effect-levels "Normal" or "Extra" she creates her own custom one. When she gets a new additional computer, she wants to simply copy her settings for "Visual Effects" in order to avoid making the changes all over again on the new machine.

Assumptions

simple-ccsm is expected to be compliant with the GNOME-HIG and act as the replacement for ccsm.

Design

simple-ccsm is meant to be the dedicated frontend for creating and changing profiles. In order to do so simple-ccsm has to use libcompizsettings to load and save profiles.

Implementation

A profile is an ini-file supported by libcompizconfig. Loading such has a file by compiz itself is done with the ini-plugin. So this plugin has to be the default one to be loaded at startup. The appearance-capplet ("Visual Effects"-tab) of gnome-appearance-properties has to provide a button allowing the user to start the graphical front-end for creating such a profile. That front-end is expected to be simple-ccsm. simple-ccsm is meant to create such a profile/ini-file, depending on the choices a user made with it.

Two string gconf-keys...

  • /apps/gnome-appearance-properties/selected-effect-level
  • /apps/gnome-appearance-properties/effect-level-ini-file

... have to be introduced for storing the selected effect-level...

  • "None"
  • "Normal"
  • "Extra"
  • "Custom"

and the full path to the ini-file itself. The default path for storing the system-wide ini-files for "Normal" and "Extra" should be...

  • /usr/share/gnome-control-center/normal-effect-level.ini
  • /usr/share/gnome-control-center/extra-effect-level.ini

The default path for storing the custom ini-file should be...

  • ~/.custom-effect-level.ini

Effect-level descriptions...

  • None: no compiz running, metacity is used
  • Normal: animation, annotate, dbus, decoration, gconf, glib, ini, inotify, move, place, png, regex, resize, scale, screenshot, svg, switcher, video, wall, zoom
  • Extra: animation, annotate, dbus, decoration, expo, gconf, glib, ini, inotify, move, place, png, regex, resize, scale, screenshot, shift, svg, video, wall, wobbly, zoom
  • Custom: anything the user defined using simple-ccsm

UI Changes

The graphical front-end ccsm has to be replaced with simple-ccsm.

Code Changes

gnome-appearance-properties needs to be changed to test for (and call if installed) simple-ccsm.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.


CategorySpec

DesktopTeam/Specs/HardyDesktopEffectsProfiles (last edited 2008-08-06 16:27:39 by localhost)