I am using Mojave, and I am able to add a printer using
lpadmin. I can then print a test page to that printer using the CUPS web interface. Additionally, the printer is listed with
lpstat -p. However, the printer does not appear in the Printers & Scanners preferences pane, so it is inaccessible from other applications.
Here is the
lpadmin command I am using:
lpadmin -p MyPrinter -E -v lptone:/path/to/file
This printer is using a custom CUPS backend (lptone) that is a script that generates a file name using a UUID and then writes the printed content into that file, so the
/path/to/file portion of the URI is ignored. I know this part works because I can print a test page to this printer from the CUPS web interface, and I get a file with the test page content generated at the path where the script is supposed to put it. I have tried doing
lpadmin as myself and with
If I first add the printer using the Printers & Scanners preferences pane (
queue=printers/MyPrinter), then use
lpadmin -p MyPrinter -v lptone:/path/to/file to adjust the output device (i.e., CUPS backend), the printer remains in the Printers & Scanners preferences pane, and I can print to it from other applications.