Lets face it – Kontact is a nice application but its not really a contender if you want integration with your corporate address book and calendar in your PIM application and Evolution is the only solution for the feature set one would expect from a corporate friendly PIM solution.
Evolution works great when running under GNOME, but if you hate GNOME 3 as much as I do, then you are likely to try to run Evolution under a recent KDE 4. And then problems start mounting – there’s the file dialogs which look completely different and don’t inter-operate with KDE’s virtual file system layer (KIO), but the most annoying problem is saving the passwords for your email, address book and calendar services.
Evolution relies on GNOME’s keyring service to store passwords for remote services, and that service is not running when you start KDE. Without the keyring, Evolution will keep asking you for passwords to all your email services when you start up, and for all your address book services when you try to compose an email. Which wouldn’t have been that bad if not for the fact that before popping up the password dialog, Evolution spends minutes (!!) trying to contact the GNOME keyring service. Only after being frozen for a couple of minutes you get asked for the first password, and if you have more then one service then please wait two more minutes while Evolution tries fruitlessly to contact GNOME keyring again!
The solution is simple – have GNOME keyring launch automatically when you log in to KDE, just like it does for GNOME. There are several ways to do this – for example using KDE’s “startup applications” system or writing custom profile scripts (I’ve tried both), but the more elegant solution I found in fedorahosted.org where someone committed a simple script that generates GNOME keyring startup and shutdown scripts for KDE. I’m guessing this is used in the KDE live CD spins for Fedora.
Anyway, this script can easily adapted to generate GNOME keyring integration scripts for your local KDE installation. Just start Konsole, and paste this into the command line:
cat > $HOME/.kde/env/start-custom.sh <<EOF
#!/bin/sh
eval \`gnome-keyring-daemon\`
export GNOME_KEYRING_PID
export GNOME_KEYRING_SOCKET
EOF
chmod 755 $HOME/.kde/env/start-custom.sh
cat > $HOME/.kde/shutdown/stop-custom.sh <<EOF
#/bin/sh
if [-n "\$GNOME_KEYRING_PID"]; then
kill \$GNOME_KEYRING_PID
fi
EOF
chmod 755 $HOME/.kde/shutdown/stop-custom.sh
Now you can log out, and when you log back in, GNOME keyring will be running in the background, providing keyring services to GNOME applications. This will also make working with the Fedora bug reporting tool – ABRT – so much easier as that too relies on GNOME keyring and suffers from the same “freeze while looking for the keyring service” issue that Evolution suffers from.