Enable printer icon set up
Recently I discovered that there is a client out there, that actually does make use of printer-icons uri. Specifically I mean the Mopria Print Service for Android.
When running ippeveprinter with an option to set the icon file as below
ippeveprinter -v -i /home/pi/4700x.png "My Cool Printer"
viewing printer details in the Mopria app does display the configured icon:
Describe the solution you'd like What I would like is to have cups similarly allow user configuration of an icon file, and then share it with the client.
The minimum I can imagine would be exposing an icons folder, and then it would be up to the user to put a single relevant 128x128 <printer_name>.png file there, in line with what is currently advertised for a given shared printer by printer-icons (uri)
For a more expanded functionality, if it makes sense, maybe cups could also generate a default cups printer icon in there, whenever a printer is added, which could be then overwritten by the user. Or maybe instead generate on the fly a link to an existing icon like /usr/share/cups/doc-root/apple-touch-icon.png, if a user icon is not available.
If instead of a single icon a set of 48x48, 128x128, 512x512 icons was needed, then maybe just use -sm and -lg suffixes to icon file name, similarly to what ippeveprinter does:
printer-icons (1setOf uri) = https://raspberrypi2.local:8000/icon-sm.png,https://raspberrypi2.local:8000/icon.png,https://raspberrypi2.local:8000/icon-lg.png
Additional context I realize of course that this is a niche functionality, both from the perspective of user expectations, and of availability of clients that actually make use of icons. So probably the lowest of low priorities. :) But if this change ever makes into some future release of cups, that would be great!
cupsd already exposes a single printer icon file, which is normally stored in the cache directory (/var/spool/cups/cache by default). If no icon file is found, the generic.png icon from /usr/share/doc/cups/images is used.
On macOS, the APPrinterIconPath keyword in the PPD file points to the icon file. We don't currently define a keyword for icons on Linux...
FWIW, I'm not sure we want to extend support for PPD stuff at this point since CUPS 2.5 is the end-of-the-line for PPDs...
Thanks for the explanation. All my printers are vintage, from before IPP-everywhere era, so I guess no icons for me. I absolutely understand your reluctance to mess with deprecated stuff at this point. I might return to this in a few years when CUPS 3.0 goes live and ps-printer-app gains more traction.