Printing out of desktop applications is done/managed by very many different dialogs, mostly depending on which GUI toolkit is used for an application. Some applications like OpenOffice.org have even their own dialogs. This is confusing users a lot, forcing them to do the printing operation in many different ways. In addition to having different printing dialog user interfaces, each dialog has its own selection of functionality. Fortunately at least most dialogs use CUPS to list the available printers and to send print jobs, but for example not all expose the printer-model- or driver-specific options and settings which are defined in the PPD file of the CUPS queue or only a part of them, others do not give access to options provided by CUPS, like 2 pages per sheet, reverse output order, …
We want to these dialogs replace by one common dialog which is provided by the desktop environment. This way it is assured that all applications use the same, easy to use, and feature-complete printing dialog, so that if a user knows how to print out of application A he will also know how to print from application B.
For that a group of OpenUsability experts has designed a printing dialog with usability in mind. It has an integrated print preview, quick presets for commonly used printing tasks, possibility to save presets, dialog can be expanded to get access to individual options, options accessed through result-oriented tags, …
We are also in contact with printer manufacturers and take into account their needs, for example for branding.
For the integration of the dialog the most common desktop environments GNOME (based on the GTK user interface toolkit) and KDE (based on the Qt user interface toolkit) should provide the Common Printing Dialog as a D-Bus service. The applications simply connect to the dialog via D-Bus, sending print job parameters, application-specific options to be displayed and user-settable in the dialog, and the job data itself as a PDF file to open the dialog and to allow the user to print his document. The dialog always comes from the user's desktop, so he gets always the GNOME version if he uses GNOME, also if the application is a KDE application.
The GNOME and KDE projects and also Linux distributions principally like this approach, but they do not want to have to do much work for it. The GNOME and KDE projects simply want to have patches, they do not want to work on the implementation themselves. The distributions want to have the Common Printing Dialog coming in from the upstream GNOME and KDE projects to avoid maintaining big patches.
We have started back in 2006 on the OpenPrinting Summit in Atlanta where a team of OpenUsability experts met and started the design of the dialog. After that the design work continued and regular meetings have taken place on the yearly OpenPrinting Summit. Most of the design work past and current work is done by Peter Sikking and Kate Price from man + machine interface works and OpenUsability.
During the Google Summer of Code 2008 and 2009 each year two students (2008: Lars Uebernickel, Alexander Wauck, 2009: Per Hermansson, Alexander Wauck) worked for three months on the implementation of the dialog. With this we got a lot of code together but did not complete the implementation. In addition, Lars Uebernickel did further work funded by an organization of the German government.
Completed work items:
We want to get the Common Printing Dialog into the KDE and GNOME desktops and into the Linux distributions in the spring 2011 releases of the distributions.
The design work will be continued by Peter Sikking and Kate Price, and will run in parallel to the implementation work. This work is planned to start in the month of June and run continuously until the end of the year. The combined involvement of the interaction design team is one man-month per calendar month. After that more infrequent support and re-work will continue.
For the implementation best is to have two persons working in parallel, one working on the GNOME/GTK part and the other on the KDE/Qt part. Lars Uebernickel will do the GNOME part and we will need a second person for the KDE part. Without a second person for the KDE part Lars would have to do it after finishing the GNOME part and then KDE-based distributions would only get the Common Printing Dialog in the fall 2011 editions.
Lars' work plan (for full-time) is as follows. Note that he has to finish his master thesis in August, so he can only start in September. For KDE the amount of work is more or less the same, so the second person would need to do the same work items for KDE.
We will need the funding for the continuation of the design work by Peter and Kate and also the funding for two persons working full time for 6 months each to complete the implementation of the Common Printing Dialog.
Till Kamppeter is working full-time on printing for Linux for 10 years (for 3 years leading the OpenPrinting project). In all this time he has worked on improving the printing workflow of Linux through several projects. His biggest problem was finding volunteers to implement or maintain printing-related projects. Printing seems really not to be attractive in the big community of volunteer programmers in the free software area. Free software projects, like KDE, GNOME, or OpenOffice.org do only a certain minimum effort to keep printing working, as they do not have the developers who really like to work on the printing part. It is even difficult to get students applying for printing projects in the Google Summer of Code, as there is a big offer of other, more attractive projects. So the only way to get forward is to get the work funded.