[cups] Handling of "Installable Options" in user applications
m.weghorn at posteo.de
Fri Sep 4 03:17:34 PDT 2015
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
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
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.
More information about the cups