user settings migration

January 19th, 2008

The nice thing about being a gentoo user (as all gentoo users know), is not having to wait for your distribution to ship packages for a new release. You just decide for yourself how soon you want to jump ahead and start using either unstable code or just-released goodness. So while Ubuntu is shipping KDE 4.0 in 8.04, and thus my laptop is stuck waiting for it, on my gentoo box I can use it as soon as the ebuilds hit the tree (and even before that, with layman).

So when I launch into the nicely pre-configured KDE 4.0 desktop the first thing I notice is that my configuration settings from KDE 3 no longer apply. What's happened is that the ~/.kde symlink has been pointed from ~/.kde3.5 to ~/.kde4.0 and so every remaining KDE 3 application (of which I have many), is now trying to locate its settings under ~/.kde4.0, where it has no settings. In other words, every application I've configured from akregator to yakuake now has to be reconfigured (even though it hasn't changed!) because of KDE 4. That stinks, I don't want to waste time trying to reproduce the settings of some 20 applications to match exactly what they used to be.

What are my options? I can go into ~/.kde3.5/share/apps and copy every directory I care about over to ~/.kde4.0/share/apps. Then I have to do something similar for ~/.kde3.5/share/config versus ~/.kde4.0/share/config. But if that is all it takes why didn't KDE 4 do that on the first run? There are a lot of configuration files in there, and I've never looked at them nor should I have any reason to, they've all been written by the application they belong to. Furthermore, some applications are upgraded with KDE 4.0.0, so I don't know if it's safe to copy their config files across. For instance, kwin-4.0.0 is one of the new packages I installed. Now, I like my existing kwin settings, and as far as they still apply I want to use them in kwin4, but I don't know how kwin4 deals with old configuration files. Applications know this, users don't.

What KDE 4 could have done is to duplicate ~/.kde3.5 into ~/.kde4.0 (although that could potentially grab a lot of disk space) and then selectively migrate the configuration files on a per-application basis. So kwin4 could figure out there are some things that no longer apply, discard those, and accept the rest. It would only have to do that once. And all the KDE 3 settings would still be preserved in ~/.kde3.5.

The thing to remember is that configuration settings is still user data. Losing a user's settings is not as egregious as losing his emails, but it's still data loss. It's valuable information. And the more configurable your application is, the more you should care about keeping the user's settings safe, because a complicated configuration is a lot harder to remember and reproduce than a simple one. Preserving old settings is fine, but it isn't very useful when you don't also migrate them to a new version of your application.

:: random entries in this category ::

2 Responses to "user settings migration"

  1. Flick says:

    You can have KDE4 on Gutsy.


  2. numerodix says:

    Excellent, thank you very much!