HardyDesktopEffectsProfiles

Differences between revisions 2 and 3
Revision 2 as of 2007-12-17 09:53:08
Size: 5102
Editor: dslb-084-063-123-148
Comment:
Revision 3 as of 2007-12-17 11:55:26
Size: 5143
Editor: dslb-084-063-123-148
Comment:
Deletions are marked like this. Additions are marked like this.
Line 33: Line 33:
simple-ccsm is expected to be compliant with the GNOME-HIG and act as the replacement for ccsm. [https://code.launchpad.net/simple-ccsm simple-ccsm] is expected to be compliant with the GNOME-HIG and act as the replacement for ccsm.

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

[https://code.launchpad.net/simple-ccsm 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)