It's configured either via an ancient and partially broken printer applet (and with broken I mean I have a reproducible crash when trying to view my printer queue before the current print has begun printing on that printer, reported somewhere in 2015 but never fixed) or via the web interface, which is broken in different, exciting ways. Sometimes printing breaks, my browser for example cannot print, it always just prints an error message (which is not logged, it's only printed, there is no way to tell something went wrong by looking at CUPS), so all prints have to be done by another utility.
The code for CUPS isn't finished, it's a mess. The printing experience on Linux could best be described as "piss poor" if you're being nice about it. The best thing about CUPS one could say is "most of the time it'll have you printer do something that resembles printing your document".
dpkg -l "*cups*"
seems to agree, given the number of installed packages related to CUPS.I never had to deal with CUPS directly in all these years. I always used the GUI in Settings to find and setup printers and I never had any problem. Which distro are you using?
And this is a more in depth video for Ubuntu 18 with a more polished interface but not very different https://www.youtube.com/watch?v=vGz1RUqCzkI
They don't look complicated to me.
Then there is the hard way. Check at 4:00 in https://www.youtube.com/watch?v=En2DJAMpwmY
I eventually had to USB drive it to a windows computer to print.
Linux printing is a crapshoot
It lists a few common options, such as JetDirect, PCL, TCP/IP, etc. Whatever. Doesn't really matter, it's just poor UX. Most end users have no idea what any of this means and don't know what to pick. You'd possibly find out in the printer manual, though mine didn't specify what protocols it understood very clearly, it was written in Appendix B or something and not in the index at the back.
In most cases, you now enter the hostname or IP of the printer to add. While sometimes necessary on Windows, autodiscover on linux is still a shitshow and doesn't work except for HP printers. (Laser HP in Color is expensive).
On Windows, the very same printer that took me 30 minutes to setup after I wrangled it through the initial setup dialogue, took all of 20 seconds to setup; "Settings" -> "Devices" -> "Add Device" -> "Lexmark Printer". Done. It printed perfectly fine.
On the other hand, my printer to this day cannot print directly from firefox through CUPS. Only from other PDF viewers.
edit: from what I can see in a sibling comment, the add printer dialog in gnome is the same it has always been atleast up to Ubuntu 18.04, unless they made radical changes to Ubuntu 20.04 to the add printer dialog, which I don't think is the case since I haven't heard about any larger printer-related changes in 20.04
Isn't CUPS an infrastructure service that exposes a bunch of APIs for downstream consumers, such as desktop environments, to build upon?
It also exposes it's admin interface on localhost with per-distro varying defaults on it's root password.
If you're old enough to remember what printing on Linux was like in the 1990s and early 2000s, you'll recognize what a towering accomplishment the above is.
Hundreds of pieces of largely undocumented hardware with little to no manufacturer support more-or-less work most of the time!
Really, the only problem I've had with printing from Linux had to do with Xerox printers that required downloading some magic file from the Internet and then required me to install SAMBA to login to a Windows domain and then manually pick the right trays and other config for the specific model before I could print. Otherwise, it would register the printer but the printer would refuse the job with an error.
Normal network printers were just a matter of clicking "add" and selecting the printer. The entire process took way less time than the Windows printer drive install took.
Making printing work that way was a choice by the printer manufacturer, it could've been a lot easier. If this is what CUPS would need to do for me for every printer out there then I'm glad for the authors' sanity sake that they don't.
Only if cups decides to bless autodiscovery today, which often doesn't work properly for a lot of people. If you need to manually configure the protocol and IP/Host of a printer, you already lost the average end user.
Having to install SAMBA is likely to be far outside their domain.
The dialog to add printers hasn't changed much since a few more famous blog rants in 2008 or so, up to Ubuntu 18.04. It's still user-hostile unless you have some prior knowledge of linux and printer networking.
This however is not to be taken as an endorsement of Windows's printing prowess. Without going through the hassle of getting the specific drivers from the manufacturer Windows 10 will give you the impression that everything is stellar.. finds the printer, makes it available to print to.. and even prints!... with colors inverted. A text document with black font printed a black document with white text... just light my toner on fire why don't you?
OTOH, my Win10 work laptop found it on my wifi, connected, and was good to go in about 5 minutes. Didn't have to download, extract, and run some random vendor tarball, just said 'find" and it found.
Has CUPS reached the TeX nirvana?
No
Then I had to find, download, compile an implement a third party driver (that doesn't have my exact model).
It works and it's mostly on Brother for not having easy ARM/Linux drivers but still a pain. I wish I'd looked before picking up this specific model printer as I could have gone fora used Dell laser too.
I use Google cloud print instead. It goes out to the internet, then comes back, to be right next to me because cups is that broken.
The bugs that would fix it, have been fixed, sitting in forks, for years, unmerged.
I've literally given up. Thanks Apple