IT/Software/Applications/CUPS
Common Unix Printing System
(Common Uncomfortable Pain Somewhere*)
*Yes we mean "there".
Over the years I have logged/wasted/learned for countless hours.
Access:
Most of Cups are integrated in the printer settings panel in your distro.
More features and reliability can be found from a browser:
localhost:631
Basics
To restart local printer services you need.
sudo service cups restart
To restart the network broadcast(sharing) and browsing(using others) you need.
sudo service cups-browsed restart && sudo service cups restart
Quirks
Config Settings
On KDE you can install the printer but the config will not stick.
System settings runs as the normal user and the config files are owned by root.
You can start system settings as root, make changes, and then come back.
sudo systemsettings5
OR do it via the cups web interface (localhost:631) which has access permissions to those files.
Color Profile
LibreOffice and Okular and others default to printing/exporting as RGB.
For those applications use the "driverless" option. It installs itself. The color profile is "color"
When installing prefer the series over the exact number. MG3600 series is more likely to work than MG3670
You can also install two versions of the printer. i.e. "GreenRoomCanonRGB" and "GreenRoomCanonCMYK"
Then you need to know what application uses what profile.
Config Files
The file for cups-browsed is located in /etc/cups/cups-browsed.conf
We want to normally make the following changes.
How we look for other printers:
BrowseRemoteProtocols dnssd
How others can look for our printers:
BrowseLocalProtocols dnssd
BrowseInterval 10
Normally you have cups as also a browsing option. BUT that will show all ZeroTier Printers as IP addresses.
Not nice.
Only Local Printers
Many times network printers get confused and confusing.
In the browsed config file you can make the following change.
BrowseRemoteProtocols none
You may also need to disable avahi-daemon network searching.
Edit /etc/avahi/avahi-daemon.conf and set deny-interfaces to the right interface.
deny-interfaces=eth0
You may need to run ifconfig to get the right name.
Here you can see me denying Zero-Tier as well. You can add more interfaces with commas separating them.
deny-interfaces=wlx502b73c405e8, ztyouqoel3
Then restart the service
sudo service avahi-daemon restart
Change a printer name or queue name
- Stop CUPS Service. For openSUSE using
systemd
there are three services to stop (cups.path
,cups.service
, andcups.socket
). - Edit
/etc/cups/printers.conf
and replace the old-name text with the new one. (appears only once). - Rename drivers: In
etc/cups/ppd
there are "drivers" named like the printer, so if you change the printer name, also rename the driver files. - Start the services.
Next Level
Usually best to just start over by running three commands.
sudo apt-get install --reinstall cups cups-browsed cups-client cups-common cups-daemon cups-server-common
then:
sudo systemctl daemon-reload
You can check the statuses with
service cups status
service cups-browsed status
Moving between major versions. (learned going from 22.04.5 to 24.04.1)
sudo /usr/sbin/cups-genppdupdate
This will make necessary changes to the ppd files.
Restart cups