Conversation
Some clients continue to send the legacy ColorModel=Gray option when switching the printer default back to color. This stale value caused CUPS to select monochrome before processing print-color-mode-default. Only translate ColorModel when print-color-mode-default is absent so the standard IPP default takes precedence while preserving compatibility with clients that only provide the legacy PPD option.
|
Hi @oubayashi , thank you for the PR! Unfortunately this would break color/gray printing via legacy keyword, because nowadays we have print-color-mode as a default attribute in cupsd, but I understand now print-color-mode default is ignored completely. I made an attempt to create some solution at https://github.com/zdohnal/cups/commits/server-defaults/ (at the moment it would set relax/strict settings for the whole daemon, but later got idea it could be more useful settings if it would be per-attribute). |
|
Thanks for the explanation. I agree that the actual problem is how CUPS distinguishes between a default value that can be overridden by the request and a server-enforced value. A per-attribute policy sounds like a better and more general solution. |
Summary
Prefer
print-color-mode-defaultover the legacy PPDColorModeloption when both are present in a printer modification request.
Some clients continue to send
ColorModel=Grayafter switching theprinter default back to color. CUPS currently translates this stale
value to
print-color-mode=monochrome, which can prevent the requestedcolor default from taking effect.
Only use
ColorModelas a compatibility fallback whenprint-color-mode-defaultis absent.Behavior
Before:
print-color-mode-default=colorwithColorModel=Graycould selectmonochrome.
After:
print-color-mode-defaulttakes precedence when present.ColorModelcontinues to work for legacy clients that do not provideprint-color-mode-default.