Endless OS is unable to offer device support for all printers, however we do provide best-effort support for a range of modern devices. As a general rule, if your printer can be accessed from a smartphone, it should work fine with Endless OS.
Other printers are much less likely to be supported, unfortunately; it is generally hard to say for sure without testing the device in question.
The following information applies to Endless OS 4 and newer.
The printers that are most likely to be supported are those that can be connected to your local network (typically via WiFi or Ethernet wired connection) and that can be utilized from an Android or iOS smartphone or tablet. In more technical terms, these are printers that support the driverless Internet Printing Protocol (IPP) standard.
Endless OS also offers comprehensive support for printers that support the Internet Printing Protocol (IPP) over a USB cable connection. Any smartphone-compatible USB printer produced in the last few years is likely to support this, but you will need to test to be sure.
Unfortunately, printer vendors typically provide no Linux support, or they provide Linux drivers that do not conform with open standards and cannot be shipped with Endless OS; this means we cannot support many other printers.
However, Endless OS does include support for a small range of non-IPP printers where the vendor has provided high quality open source drivers for Linux.
If your printer is supported by Endless OS, it will be detected and installed automatically, and you will be able to print to it from standard apps with no further setup required.
However, if you find that your printer was not made automatically available, you may wish to try manual configuration:
Some apps, such as Document Viewer, may list each printer twice with slightly different names, as shown below. You should be able to print to either listed printer. Other apps will show each printer just once, as expected. We aim to improve this situation in future versions of Endless OS, but it is unlikely to be resolved in the lifetime of Endless OS 4.
The following supplemental information is aimed at technicians and power users.
driverless Terminal commands can be used to locate IPP-compatible printers on the local network, including IPP-USB devices (which will be emulated as network devices on the local host).
An IPP-USB compatible printer will have an interface detailed in the
lsusb -v command output with the following numbers:
bInterfaceClass 7 Printer bInterfaceSubClass 1 Printer bInterfaceProtocol 4
The additional, non-IPP printers supported by Endless OS are those that are supported by drivers installed as part of the printer-drivers-all-enforce Debian metapackage. Notably, this does add support for a range of USB-connected HP printers which enjoy good support from the HPLip open source drivers. Please note that HP printers that require the HPLip Binary Plug-In are unsupported; it is not possible to install the required plugin on Endless OS.
Printers are sometimes shown twice in the print dialog due to a tricky interaction between network discovery and Flatpak sandboxing.
Most apps on Endless OS are deployed and run using Flatpak. Flatpak apps are supposed to use the print portal to print documents, but many — including important apps like Chromium and LibreOffice — do not do this, and instead request a hole in the sandbox to access CUPS directly.
However, the CUPS client library used by Flatpak apps is compiled without support for network discovery, because Flatpak apps are not permitted to access the service-discovery daemon, Avahi. As a result, these apps cannot discover printers on the network.
To work around this problem, Endless OS include
cups-browsed, a system service which discovers printers on the network and configures them as persistent queues in CUPS. This allows apps like LibreOffice and Chromium to print.
But the print portal, which runs outside the Flatpak sandbox, and other system apps (like Document Viewer) are able to perform network discovery as normal. This means that the print dialog shown by system apps and the print portal will show each printer twice: once for the persistent queue created by cups-browsed, and once for the temporary queue created by the print dialog itself.
This issue could be fully resolved in two ways:
For the time being, since the issue affects several key apps, we have chosen to work around it at the cost of showing duplicate printers in “well-behaved” apps.