Linux · Devices
Add and manage printers through CUPS
Nearly all Linux distros use CUPS (Common Unix Printing System) under the hood for printing, whether you add a printer through a graphical Settings panel or its own web interface — the two manage the exact same configuration.
What you should know
- GUI: Settings > Printers (GNOME/KDE) usually auto-detects printers on the local network via mDNS/Bonjour — click Add and select from the list.
- CUPS web interface: open a browser to `http://localhost:631` for full control over printers, queues, and sharing — works identically across distros regardless of desktop environment.
- Install CUPS if it's missing: `sudo apt install cups` / `sudo dnf install cups` / `sudo pacman -S cups`, then enable it with `sudo systemctl enable --now cups`.
- Driverless printing (IPP Everywhere/AirPrint-compatible printers) works out of the box on most modern printers without installing a manufacturer driver at all.
Why it matters
Printing is one of the few remaining areas where Linux depends heavily on the specific printer's driver support — knowing that CUPS is the common layer underneath every distro's printer settings means the same troubleshooting steps and web interface work regardless of which desktop environment you're on.
Best practices
- Check if your printer supports driverless IPP printing before hunting for a manufacturer driver — it's plug-and-play on both wired and network printers when supported.
- For older printers, check OpenPrinting's database (openprinting.org) for a known-working driver before assuming it's unsupported.
- Add network printers by IP address in CUPS if auto-discovery doesn't find them — more reliable across subnets and VLANs.
Common problems and fixes
- Printer detected but jobs stay stuck in the queue
- Check the queue status at `http://localhost:631`, and restart the CUPS service with `sudo systemctl restart cups` — a stuck job or spooler issue is the most common cause.
- Printer not detected on the network at all
- Confirm the printer and computer are on the same subnet, and that `avahi-daemon` (mDNS discovery) is installed and running — most auto-detect failures trace back to mDNS traffic being blocked or not running.
Tips and tricks
- `lpstat -p -d` from a terminal gives a quick summary of configured printers and which one is the default, faster than opening the GUI.
Frequently asked questions
Why isn't my printer's manufacturer driver available for Linux?
Many manufacturers don't ship Linux drivers at all, but most printers made in the last decade support driverless IPP printing, which CUPS handles natively — check openprinting.org's database for your specific model before assuming it won't work.
Related settings
- Flatpak & Snap App ManagementFlatpak and Snap are sandboxed, distro-agnostic app formats that sit alongside your native package manager — Flatpak (via Flathub) is more broadly adopted across distros, while Snap is maintained by Canonical and preinstalled on Ubuntu by default.
- Wi-Fi & Network ConnectionMost modern desktop distros use NetworkManager under the hood, accessed through the network icon in the top or bottom system tray, or each desktop environment's own Settings app (GNOME Settings, KDE System Settings, etc.).