Skip navigation.
Home
GrumZ : A Lump in the World Wide Soup

GSettings migration

What is GSettings and why do I must migrate to ?

GSettings is the new standard/library/protocol Gnome uses to store application preferences. It has been first released with Glib 2.26, available e.g. with Fedora 14.

As a consequence, GConf, which used to be the historical standard/library/protocol for storing application preferences, will be sooner or later, and, I am afraid, rather sooner than later, deprecated.

As a Nautilus extension, Nautilus-Actions is heavily based on Gnome standards, and must follow the evolution of its libraries, in order to be able to provide its users a full Gnome experience.

Which sort of things were stored in GConf ?

Of course, Nautilus-Actions uses to store all the user preferences in GConf. But this is only the first part of our migration path.

It happens that, up to 2.30 serie, Nautilus-Actions also stored all menus and actions in GConf, under a special 'configurations/' key.

Starting with 3.0 (actually 2.99) serie, Nautilus-Actions supports the DES-EMA specification, and is able to store menus and actions in .desktop files.

Though it is actually up to your favorite distribution to decide when exactly GConf will no more be provided, we have to conceive and implement a migration path as soon as possible.

In other words, we have to target a configuration where:

  • all user preferences are stored in GSettings;
  • all menus and actions are stored as .desktop files;
  • level zero order is written in .dir file.

How to migrate ?

Our goal is of course to provide a migration path as easy as possible for our users.

What is currently planned is to provide as soon as possible a product which should be able to handle both GConf and GSettings.

The first time such a version will be run, it should automatically execute itself the migration path from GConf to GSettings.

Once executed, user preferences will be automatically readen from and written to GSettings. GConf as a I/O provider will be automatically disabled.

This migration path should be available even if the user does not run the Nautilus-Actions Configuration Tool, i.e. even if only Nautilus plugins are used.

Technical details

Starting with the 3.1 serie, Nautilus-Actions will be able to deal with both GConf and GSettings libraries. Whether to enable GSettings will be a configuration option which will be enabled by default if GSettings is present on the compilation system.

Some user preferences may be renamed during this migration.

The migration tool must be idempotent, i.e. must be able to be run several times. This is especially important to prevent menus and actions to be unduly duplicated.

It is already predictable that a future Nautilus-Actions version (e.g. 3.2 serie) will propose to entirely disable GConf at configuration time. Such an option should probably be disabled by default (e.g. continue to build with GConf), at least most recent distributions continue to ship a GConf system.