Printing in linux has always been a particular headache for me, and probably many users.There is a myriad of systems that have to talk to each other to get it to work. You have CUPS which takes care of making your computer talk to the printer, various packages like foomatic and ghostscript that you may or may not need so that CUPS can talk to the printer itself. Then you have the printer configuration frontends under GNOME, KDE, or whatever desktop environment you might be running that, in theory, hook the applications you use up with CUPS.
For a couple of years now, I’ve been running ArchLinux with a KDE desktop. I’ve succesfully configured CUPS to print, but I could never actually print from an applicatoin, like Okular, KDE’s PDF viewer. Whenver I used KDE’s system printer configuration utility to add a printer, the options on the left simply listed “Other” with a field for my printers Device URI (yeah – what is that for a printer, exactly?). KDE could not talk to CUPS, even though CUPS was configured correctly, and didn’t have any access restrictions.
Poking around in /etc/cups/cups.conf, I saw the following lines:
# Socket disabled by default it makes KDE fail on CUPS # Listen /var/run/cups/cups.sock
I uncommented the Listen line, and presto, my CUPS printer is visible in KDE! This comment must be for an older version, I’m running 4.6.2.