[cups] Handling of "Installable Options" in user applications

Michael Weghorn m.weghorn at posteo.de
Fri Sep 4 03:17:34 PDT 2015

Hello everybody,

some printer models have optional features and accessories that can be 
present or not (e.g. finishers, additional paper trays, etc.).
The PPD specification defines the keyword "InstallableOptions" for an 
option group that contains such options (s. section 5.4 in version 4.3 
of the PPD specification).

In GNU/Linux systems (I do not know how it is on Mac OS), every 
application can provide its own printing dialog.
I had a look at how some of these printing dialogs handle installable 
options. While the GTK+ printing dialog does not show installable 
options, they are available and can be set in the LibreOffice printing 
dialog and in the KDE printing dialog. (There are probably many more 
printing dialogs which I did not look at.)

The reason why I looked at this is that incorrectly set values for the 
installable options cause a serious paper jam on a certain printer model 
we are using.
Even though the printers are set up with correct settings on the system, 
the user can accidently choose wrong values which override the 
sytem-wide default options for the printer.

The PPD specification says about "Installable Options" (in section 5.4):
"[...] The PPD specification provides a way to describe these 
accessories, to label
them as optional and initially not installed, and a way to install them 
Thus an application can list the installable options in its user 
interface, but
can display them in some special way (for instance, grayed out) to 
that the basic configuration does not support them. [...]"

As far as I understand it, the specification itself actually leaves it 
up to the application (developers) to decide whether or not to display 
the installable options and to make them editable for the user. Do I 
understand this correctly?

Apart from the PPD specification itself: Are there any recommendations 
whether or not to display installable options in the printing dialog of 
"ordinary user applications"?
If there are strong recommendations not to display it, I might consider 
asking the respective projects to take into account to change the 
behaviour in their printing dialogs.
Or are there possibly certain valid use cases that actually require the 
possibility for the user to set those options in printing dialogs?

Apart from the "ordinary user programs" I am also wondering how an 
application that allows printer configuration should handle this. It 
certainly should offer respective users the possibility to change the 
settings system-wide (which goes to the PPD file or to 
/etc/cups/lpoptions). But should these options also be displayed in 
dialogs that allow setting user-specific options (and modify 

I am aware that disabling those options in the printing dialog does not 
make it impossible to wrongly set those options, as it is for example 
still possible to set them using "lpoptions" or giving it as a command 
line option to "lp". Most users however do not use this and I suppose 
that those who do should know what they are doing...

I am also aware that a possible workaround for our specific problem 
would be to manually change the PPD file for the printer model by 
removing all choices for installable options except those that are 
actually installed.

I would, however, be very happy to receive feedback on how this should 
be handled in general.
If you have better ideas of making it hard/impossible for the user to 
set wrong options (apart from changing the PPDs), I would of course also 
be happy to hear about it.

Best regards,

More information about the cups mailing list