We want to create a new sync interface for ubuntu machines using all the tools we have available to make such a system as easy and robust as possible. at the moment there are a number of integration issues between each of the existing programs which makes it difficult to develop the final gui interface. For each integration step and the final gui shall be it's own task with clear goals to produce a working and valuable sync system for ubuntu.


These days most people have more then one device capable of maintaining a calendar, contacts and various other personal information. As well as devices a user also expects to be able to sync all this portable information with their computer and have their computer then sync with online services such as google contacts or calendar.

Existing Launchpad Tickets

This issue has been brought up before here:

Use cases

  • John has an iPaq h1940 wich he uses as a GPS device and PIM, he also uses a desktop pc at work with Evolution. He would like to be able to sync his PDA with Evolution so that the same calendar events are available to his phone as to his desktop computer, the sync must happen each time he plugs in the PDA because John is so very busy.
  • Clarise uses a Nokia 6021, a mobile phone with basic PIM functionality and support for syncml-obex via bluetooth, Clarise syncs the contacts from the phone to the computer so the same contacts are available on phone and computer and she wants it to sync as soon as the phone is paired up via bluetooth.
  • Philip uses google calendar a lot, but he wants to be able to edit his calendar from Evolution instead of the slower google web interface; he wishes to sync the information on a regular basis.


This is the python based gui front end, which is effectively a small taskbar widget like the sound controller which controls all syncing via opensync, scheduling syncing tasks and notifications for when syncable devices are plugged in.

This is a general scheme for an ubuntu syncing gui:


System Overview

Using OpenSync as a back-end for the syncing processes, cron for scheduling and HAL for the device detection and notifications via DBus messages.



  • Getting HAL to recognise Bluetooth devices as device nodes.
  • Getting PDAs, Phones and other devices to pre-process through HAL, running various usb or bluetooth modules to find out information such as owner, device name (personalised name), product name (where usb string is wrong or generic for example) and run any pre initialisation code for the device hardware (such as barry's bcharge for making blackberries charge correctly from usb)
  • Bringing all OpenSync modules up to the latest version and heavy testing, including writing generic testing scripts.

  • Be able to manage non setup devices and know which opensync end points are available or missing (for instance device not plugged in)
  • Images for all plugins, for nice display in gui.


Please edit this page if you have ideas or corrections, Martin Owens (doctormo@gmail.com)

  • Turgon2 - I have made a spec about syncronization of multimedia which I think could be implemented as an addition to this:


  • MarkusThielmann - Thank God, someone started this really important discussion. It would be a great help if ubuntu starts to support *one* sync project for the future. I'm still trying to figure out which project so support with sync plugins. Please also consider integrating Amazon S3 like services and unison for easy backup scenarios.

PimSyncPlan (last edited 2009-02-02 16:15:01 by hylkema)