[Desktop12.04-Topic] Google Cloud Print Integration

Till Kamppeter till.kamppeter at gmail.com
Wed Oct 19 16:33:57 UTC 2011


On 10/19/2011 04:06 PM, Rodrigo Moya wrote:
> On mié, 2011-10-19 at 09:47 +0200, Milan Bouchet-Valat wrote:
>> Le mercredi 19 octobre 2011 à 00:12 +0200, Till Kamppeter a écrit :
>>> What we would need is something like a capplet in GNOME Control Center
>>> to (de)activate and configure Google Cloud Print. This GUI needs to be
>>> designed and it also needs to be decided which user daemon will be used
>>> to enable Cloud Print, the one of Chromium or the "cloudprint" package.
>> Sounds like a case to add to the new GNOME Online Accounts panel. If you
>> have a Google account, you enter your address, and then choose whether
>> you want to enable mail, docs, etc., or cloud print. You'd just need to
>> add another GtkSwitch. No need to add a new applet that would clutter
>> the control center for most users that don't use that feature.
>>
> yes, that's a great idea. I guess then we'd need to have something
> register the printer in the config? Maybe the online accounts panel
> could just setup the printer, but we'd also need support in the print
> architecture to allow printing to this service, right?

To make the local print queues available on your Google Cloud Print 
account you do not need to change anything in the CUPS configuration. 
You only need to run a user daemon to share the locally available 
printers to the cloud.

The currently available user damons are the Google Chromium browser and 
the cloudprint package. You have to run one of the two.

How to run the user daemon:


1. cloudprint package: Install the package and in a terminal run

cloudprint -d

Enter the credentials of your Google account and your printers get 
registered. Now you can use Cloud Print. As long as the "cloudprint" 
process is running, your jobs get printed, otherwise they wait on 
Google's servers until you re-run "cloudprint -d". Currently, the 
process is not restarted when you log in to your desktop.

Advantages: Small light-weight non-GUI daemon, daemon can easily 
modified for the user's or distro's needs, upstream would accept or 
changes easily.

Disadvantage: Does not automatically start on login


2. Google Chromium browser: Install the Chromium Browser and start it. 
Enter the URL "about:Flags" and enable the “Cloud Print Proxy” entry, 
then click the wrench at the upper right and select "Preferences" -> 
"Under The Hood" and there will be a "Google Cloud Print" section near 
the end of the list. Click "Sign in to Google Cloud Print" and enter 
your Google credentials if asked for. Make also sure that "Background 
Apps"/"Continue running background apps when Chromium is closed" is 
checked, so that Cloud Print continues running when you close the 
browser. Now close the browser if you do not need it to do something else.

Advantages: Is the original client, server changes are taken into 
account here more quickly and with Ubuntu's update policy you get new 
versions of Chromium quickly. Auto-starts on login.

Disadvantages: Big heavy piece of software, universal user daemon also 
containing memory-consuming functionality for other purposes, more 
complex code, more difficult to patch for our purposes, more difficult 
to get patches accepted by upstream, hidden interface to activate it.


Independent which user daemon you use always all CUPS queues which are 
available on your machine are registered for Cloud Print, independent 
whether they are shared or not or whether they are defined on your local 
computer or only available by broadcasts of another computer. This makes 
setting up Cloud Print easy, but makes configuring it to your needs 
impossible.


What needs to be done:

- We need to decide which will be the default Google Cloud Print user
   daemon
- We need to manage that only by activating Cloud Print in the Online
   Accounts capplet one user daemon is started and started again on
   whenever the user logs in, until the user turns off Cloud Print again.
- We should assure that only one user daemon gets used and not both, to
   avoid confusing duplicate listings of printers in Google Cloud Print.
- We should add some configurability, for registering only selected
   printers, only shared printers, and/or only locally defined printers
   in Cloud Print. This will require patching a Cloud print daemon and
   introducing a user configuration file and a GUI for this
   configuration.


I hope this gives some more insight into Google Cloud Print Integration.

    Till



More information about the ubuntu-desktop mailing list