cups icon indicating copy to clipboard operation
cups copied to clipboard

Enable printer icon set up

Open DeDragonSlayer opened this issue 6 months ago • 3 comments

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:

Image

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!

DeDragonSlayer avatar Aug 16 '25 15:08 DeDragonSlayer

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...

michaelrsweet avatar Aug 16 '25 15:08 michaelrsweet

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...

michaelrsweet avatar Aug 16 '25 15:08 michaelrsweet

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.

DeDragonSlayer avatar Aug 16 '25 16:08 DeDragonSlayer