Google Cloud Print - Desktop-integrated solution for registering local CUPS printers

Introduction

Google Cloud Print is a service from Google which allows to print from anywhere with internet access to anywhere else with internet access, for example from a mobile phone to printer at home or in the office.

To do so, one needs a Google account and there one registers one's printers so that they can accept jobs sent into the print facility of this Google account.

On Linux there is already a way to share the local CUPS printers into Cloud Print: The Chrome/Chromium Browser. In its settings you can activate Google Cloud Print and the local queues get registered. The Browser even leaves a user daemon running when one closes it to continue keeping the printers available for Cloud Print.

The disadvantage of this is that the functionality is bound to a web browser, so it is awkward for people who use Firefox for example.

Do not suggest now to make the CUPS daemon (daemon which handles the print jobs) or cups-browsed (daemon which browses the network for printers and automatically creates local queues for them) registering the printers, as they are system-wide services and Google Cloud Print is based on the user's Google account, and so something which belongs to a single user.

Student Tasks

What is needed is a user daemon which starts when logging in and stops when logging out, running with the rights of the user, connecting to the user's Google account registering the local CUPS printers the user is allowed to print on. It will need integration with the desktop for starting and stopping the daemon and for configuration in the desktop's settings utility.

Ideally it should work with the GNOME desktop using GNOME Online Accounts and the GNOME settings manager.

Google documentation for printer registration.

Mentors

Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Ubuntu/GNOME GUI developers TBD

Desired Knowledge

C/C++ programming, GUI programming, GTK