openSuse 11.3 – Evolution 2.30

Update September 2012: This issue persists with openSuse 12.2 and Evolution 3.4.

I missed an appointment yesterday. Hardly Earth shattering but, it was annoying. How could it have happened, I had it on my Evolution calendar and I should have gotten a notification. Double checking my calendar to be sure, I noticed that there should have been several reminders that I had not seen. I decided to test the notification system by creating a test appointment a few minutes into the future. Unsurprisingly, the time came and went without any notification.

This launched an exploratory mission into why Evolution alarm notifications weren’t working. After a bit of wasted time, I found that the evolution-alarm-notify service was not running. I started it manually at the command line and up popped several alarm notifications. I thought I had figured it out. Apparently, evolution-alarm-notify must have died for some reason. Just to make sure that was all, I decided to restart the system to make sure that evolution-alarm-notify would come back up properly and I wouldn’t have this problem again in the future. But, it didn’t come back up. It didn’t even try to come back up. So, now I had to figure out how it was supposed to be started and where the problem was.

As it turns out, Evolution has changed the way that evolution-alarm-notify is started several times over the course of a few versions. Sometimes it was started as a service and sometimes it was started as a sub process of the main application, which would seem to be the most logical. But, with Evolution 2.30 the service is supposed to be started by the FreeDesktop XDG autostart facility. This means that a evolution-alarm-notify.desktop file in the autostart directory is supposed to kickoff the evolution-alarm-notify service when users login to their desktops.

Checking the /etc/xdg/autostart/ directory on my openSuse 11.3 system I saw that there was indeed such a file. But, upon examination of that file, I saw that KDE was excluded from the desktop environments that were supposed to run the service. I felt that this omission was odd and the lack of online complaints about it lead me to suspect that it was not a common or known issue with the distribution.

To test that theory, I ran a couple of new installs in virtual machines. I changed the installation options a little bit each time to see if there was a particular combination that was triggering the issue. But, the problem occurs no matter what you do. In all cases of new openSuse 11.3 installs, the setup of autostart for evolution-alarm-notify excludes KDE. It’s obviously a small bug but, I’m surprised that the issue hasn’t been more widely discovered. I thought that a lot of people were using Evolution.

Once you know what the problem is, the fix is fairly straight forward. You need to edit the file and enable autostart under KDE as well. The following bash shell commands will do this for you:

sudo vi /etc/xdg/autostart/evolution-alarm-notify.desktop

Then edit the file so that the OnlyShowIn line looks like it does below:

[Desktop Entry]
X-SuSE-translate=true
Type=Application
Name=Evolution Alarm Notify
Comment=Calendar event notifications
Icon=appointment-soon
Exec=evolution-alarm-notify
Terminal=false
Type=Application
Categories=
OnlyShowIn=GNOME;XFCE;KDE;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=evolution
X-GNOME-Bugzilla-Component=calendar
X-GNOME-Bugzilla-Version=@VERSION@

Press the escape key. Then type
:wq
to save the file. Finally, restart the system and your Evolution alarms will work as expected.