I am leading the OpenPrinting project and as a part of it I am maintaining the printing-stack-snap:
This snap is working so far for printing from both snapped applications and classically installed applications.
It needs the following three interfaces and currently they need to get set up manually:
- avahi-control: Network printers and also remote CUPS printers advertise themselves via Avahi. CUPS and cups-browsed pick up these Avahi records to automatically create print queues to point to these printers. In addition, CUPS needs access to Avahi to advertise shared local printers to remote machines.
On classic systems the snap needs to auto-connect to the system’s avahi-control interface, on Core systems to the avahi-control interface of the avahi snap.
- usb-raw: This interface allows CUPS and its backends to connect to USB printers (on both classic and snap-based systems).
- home: This is to access the user’s home directory for printing files located there. By default, snaps only auto-connect to home on classic systems. the printing-stack snap also needs to auto-connect to home on Core systems.
See also the README.md file of the snap.