Most of the below has been implemented - the page is still here for future reference.

The goal is to store selected preferences on the server.

On the server side, we have a simple key-value hash (keys and values are strings) for each user, table is DesktopSetting.

The current python hack watches for gconf changes and uploads them to the server.

Desirable enhancements to the current hack:

  • correctly use schemas to get the data type; right now pygconf is missing some needed API
  • add an automatic "priming" step that collects prefs the user has changed from the default and uploads them the first time
  • support per-machine not only global scope, e.g. bigboard stocks to display is probably per-machine
  • properly watch for the OnlinePreferencesManager to come and go (or just use data model directly?)

  • allow apps to provide their whitelist entry themselves, so there isn't a central file to maintain
  • try to download settings before we start to display the rest of the desktop on login
  • have some way to toggle whether to save settings online
  • add an "UnsetPreference" method to the hippo-dbus-settings.c stuff so unsets can be synced

  • make hippo-dbus-settings.c use hippo-dbus-helper
  • make hippo-dbus-settings.c use the data model

Priming:

  • just store a flag for whether we've ever "primed," seems simplest; to prime, upload all whitelisted settings that have been modified from the defaults

Per-machine:

  • store stuff under machine uuid

Whitelist entries:

  • install files like <online_key name="/apps/metacity/*" scope="global"/>

You can see instructions about how to use preferences synchronization OnlineDesktop/PrefsSync/HowToUse.

Attic/OnlineDesktop/PrefsSync (last edited 2013-11-22 20:34:51 by WilliamJonMcCann)