Tag Archives: thunderbird

Fiddling with an EDS Provider for Lightning (Calendar)

While I was focusing on getting EDS contacts integration working in Thunderbird, Phillip Kewisch started working on an EDS provider for Lightning.  This would allow the Lightning calendar add-on to read and manipulate EDS calendars.

One of the reasons we want to do this is because EDS calendars are nicely tied in with the indicator-datetime applet:

The indicator-datetime applet on the Ubuntu desktop, opened to show the calendar, and some events from the calendar

That’s really cool integration – at a glance, I can see what’s going on today, and I don’t need to open my full-blown desktop calendar application to do it.

In just a little over a week, Phillip had us doing basic reading of the default EDS calendar:

The Lightning add-on, displaying an event from an EDS calendar

Awesome!  But there’s still a lot of work to do.

In particular…

Indicator-datetime integration

When we click on an event in the indicator-datetime applet, we want Thunderbird to open with the Lightning tab focused, and the selected event in view.  If we click on the “Add Event” menu item, we should be brought to the dialog that allows users to add new events to their EDS calendar.  Also, when a user double-clicks on a particular day in the indicator-datetime applet, we want that day to open up in Lightning.

So there are a few challenges here.  The first one is that opening Evolution calendar is hard-coded into indicator-datetime.  That means that we’re going to have to do a bit of reorganizing so that indicator-datetime can figure out what application to open when the user starts clicking on things.

And remember that we want this to occur whether or not Thunderbird / Lightning is open.  If Thunderbird is closed, and the user starts clicking around in indicator-datetime, then Thunderbird and Lightning should open and react appropriately.  If they’re already open, they should probably focus (although Evolution calendar doesn’t seem to do this).

That means making a way for Lightning to be summoned up from a command like “thunderbird -calendar”.

Full reading and writing to EDS calendars

The provider that Phillip got working is a good start, but it’s far from complete.  For example, it will only read a single calendar from EDS.  It also seems to choke if I restart Thunderbird after loading up my EDS calendar.

Luckily, Lightning was developed with extensibility and other back-ends in mind.  No de-RDF’ing required.

So what’s the ETA on this?  Hard to say.  I’m new to Lightning development, and I’m still feeling my way around.

I’ll keep you posted!

It’s Official: Thunderbird will be the default e-mail client for Ubuntu Oneiric

Word has just come down from Canonical:  Thunderbird will be the default e-mail client in Ubuntu Oneiric!

Woo!  And there was much rejoicing!

Breakdancing Bear

Now, you might think this news is a bit late.  Thunderbird has been set as the default e-mail client on the past two Oneiric alphas.  Isn’t this old news?

Well, kinda, yeah.  But the thing is, those first alphas were just to get a sense of how Thunderbird would work as the default client, and to gather feedback.  At a moments notice, Canonical could have backed it out and switched it back to Evolution.

But they’ve given their thumbs up, and they’re fully on board.

So, at the risk of repeating myself:  come early October, Thunderbird will be shipped by default!  Woop!

UPDATE (Aug 10, 2:41PM EST)

I forgot to mention that this would not have been possible without the enormous efforts of both Chris Coulson and Andreas Nilsson!  You’re both awesome!

Introducing EDS Contacts Integration for Thunderbird (or “Coming up for air”)

Holy smokes, what a pair of months.  Remember when I told you that I was hauling ass on getting an EDS contact integration add-on up and running for Ubuntu Oneiric?  It didn’t stop – I’ve been continuing to haul ass ever since.

And now I’ve got something to show for my efforts!

Here’s a demonstration of my add-on in action:

 

Visit the project page here.

If you’re using Thunderbird on Oneiric, I’d love for you to try the add-on.  All feedback welcome in this Google Groups thread!

Over the next few days, I’m going to write a few posts on what I did, how I did it, and what kind of difficulties I ran into along the way.

Until then, stay tuned!

An update on my Thunderbird work…

It’s been a really long time since I posted any updates about what I’ve been doing with Thunderbird.

There’s a good reason – I’ve been hauling ass. My Unity Launcher and Messaging Menu extensions have gone through several iterations, and are shaping up well.  The plan is to bundle those extensions with the latest Thunderbird 5.0 beta to get some more user feedback.

The majority of my work lately has been on a project called EDS Contacts Integration.  Do you remember when I talked about Ubuntu One contacts sync, and how I wanted to integrate that with Thunderbird’s address book?  Well, I went to UDS a few weeks back, and I learned that a bigger / better goal would be to integrate with EDS (Evolution Data Server), which acts like the global address book, task list, calendar, etc for Ubuntu.  If I integrate here, then *all* Evolution address books (including the Ubuntu One address book and Google Contacts address books) should be available in Thunderbird.  So it’s a pretty big win.

So, like the Unity Launcher and Messaging Menu integration, this integration is currently being implemented as a Thunderbird add-on.

Currently, this add-on has basic read-only.  I can view EDS address books, contacts and mailing lists.  EDS contacts appear in the auto-complete when I start typing an e-mail address.  They’re searchable.  I can view the photos of EDS contacts.  There are some edge cases that I haven’t addressed yet (reading address books that require authentication, for example).  That’ll be coming soon.

Here’s a screenshot.

I’ve also started work on write capabilities.  I can now add and remove addresses on a mailing list, and set whether or not I want e-mail addresses to be hidden when I send mail to the list.

So, in short, I’m making pretty decent progress.  Not bad for a month’s work.

But I can’t just fork over the add-on for you to play with, because this work has several other moving parts.  The first moving part is the core address book de-RDF’ing work I started a few months backThe patch for this is landing in Thunderbird’s trunk shortly, which I’ve very excited about.  And the second moving part:  a patch in trunk where I’ve made a few slight modifications to the address book infrastructure.  This makes it easier for add-ons (like my EDS integration add-on) to extend the behaviour of the address book.  This will also, hopefully, be landing shortly once I’ve polished it up, and gotten it through review.

Once those patches land, my add-on should work properly on trunk.  And not long after that, the patches will land in an Early Bird release for you all to try!

More blogging soon.  And more screenshots.  And maybe a video.  Stay tuned.

Getting the RDF Out

As I mentioned last time, I want to extend the Thunderbird address book to support Ubuntu One contacts synchronization.

But there’s a problem:  currently, the address book relies on something called RDF, which prevents me from extending the address books outside of C++.

“So why not just write it in C++?”, I hear you cry!

The answer:  because Thunderbird has been trying to shake RDF like a bad cold.  A developer named Joey Minta officially declared war on RDF in March of 2008.  The campaign to rid Thunderbird of RDF is almost complete.

So I’d hate to damage the war effort by adding more RDF code to Thunderbird.

The solution?  I have to finish what Joey Minta started – at least for the address book.  I have to replace all RDF-dependant code with something better – something extendable.

Then I can get down to work on the Ubuntu One sync.

So saddle up.  We have to hunt this RDF bum down.  For justice.