Features/ImprovedPrinterSettings

= Improved Printer Settings =

Summary
This feature improves the "printers" part of GNOME System Settings so that


 * device selection takes account of physical devices
 * driver selection is more intelligent
 * missing drivers are installed on demand

Owner

 * Name: Tim Waugh


 * Email: twaugh@redhat.com

Current status

 * Targeted release: Fedora 16
 * Last updated: 2011-09-27
 * Percentage of completion: 100%

Detailed Description
Currently system-config-printer makes better choices than using GNOME System Settings (i.e. control-center) when configuring printers.

There may be several printer drivers that will drive a particular printer model, and they are not all equal. Usually, one is better than the others. It can be the case that this choice depends on which printer model is being used. It can even be that some drivers are better at particular tasks than others. For instance, one driver may have better resolution but only support black and white, whereas another may have lower resolution but support full colour.

Even determining which printer drivers are available for a particular printer model is not an easy task because of the ad-hoc way that most PPD files describe themselves.

For more information about programmatically choosing printer drivers, see this blog post.

Although system-config-printer is able to apply knowledge about which drivers should be preferred over others, the GNOME System Settings panel cannot.

Another area where system-config-printer makes better choices is in selecting the CUPS device to use. When asked about available devices, CUPS returns a list of device URIs. These URIs come from each of the various CUPS backends discovering what devices are available to them. There is no correlation between URIs, which are essentially connection types and protocols, and the physical devices they represent.

Matching these up is something that system-config-printer has some amount of knowledge about, and which GNOME Settings could use to select the best CUPS device.

The final thing this feature addresses is the ability of system-config-printer to determine which packages need to be installed to satisfy the dependencies of a particular printer driver. Printer drivers are expressed on disk as PPD files. A PPD file can describe command lines to run in order to filter input and convert it to the correct format. Currently system-config-printer is able to parse this to decide whether additional packages need be installed (e.g. ghostscript, foomatic-filters) in order for those commands lines to work.

The idea, then, is to expose those parts of system-config-printer which are responsible for the intelligent matching via D-Bus, so they can be used by the GNOME System Settings panel.

Benefit to Fedora
Better printer driver selections taking advantage of collected knowledge in both system-config-printer and foomatic-db.

Better printer device selections, allowing for more driver features to be used (e.g. HPLIP ink level reporting).

Better user experience of configuring printers.

Scope
The parts requiring work are:


 * system-config-printer, to expose this functionality via D-Bus in an easy way for GNOME System Settings to use
 * control-center, to make use of it

How To Test
A Printing Test Day could gauge success using a wide variety of hardware.

User Experience
Configuring printers results in success more of the time.

Dependencies
None.

Contingency Plan
Revert to previous release behaviour.

Documentation

 * GNOME bug report about it

Release Notes

 * Configuring printers using System Settings now chooses drivers more intelligently.

Comments and Discussion

 * See Talk:Features/ImprovedPrinterSettings