system-config-printer
This page is about the printer administration tool in Fedora 6 (and later), system-config-printer. The purpose of the tool is to configure a CUPS server (often the local machine) using the CUPS API. The tool is written in Python, using pygtk for the graphical parts and with some Python bindings (pycups) for the CUPS API.
It is largely the same as using the CUPS web interface for configuring printers, but has the advantage of being a native application rather than a web page. It appears in the Fedora menu under System ▸ Administration ▸ Printing.
As a result of using the CUPS API the tool is able to configure remote CUPS instances and is not limited to configuring CUPS on the local machine. The CUPS library providing the API uses HTTP and IPP to communicate with the CUPS server.
Download
Download tarball releases from:
http://cyberelk.net/tim/data/system-config-printer/
You will also require pycups from:
http://cyberelk.net/tim/data/pycups/
Source Code
The git repository is available at fedorahosted.org:
git clone git://git.fedorahosted.org/git/system-config-printer.git
or browse using gitweb.
New releases are announced at freshmeat.
Translations
Language translations should be submitted through Fedora Transifex.
Discussion
There is no mailing list as such, but if you use Mugshot there is a Fedora Printing group you can join.
Reporting bugs
If you have found a bug in system-config-printer, please report it. For Red Hat Enterprise Linux and Fedora please use the Red Hat Bugzilla page.

May 18th, 2007 at 10:46 am
[...] just finished coding up a performance enhancement for system-config-printer. Now after clicking “New Printer”, it starts fetching the list of printer models and [...]
May 22nd, 2007 at 6:45 pm
system-config-printer has been featured at LinuxLinks.com
June 8th, 2007 at 5:19 pm
[...] admin tool, capable of indexing the PPDs that CUPS returns in a variety of useful ways. This means system-config-printer no longer needs to parse the foomatic XML database when looking for a printer driver, starting from [...]
July 14th, 2007 at 9:06 pm
Hi,
when I run:
gt[sdb10]$ python /usr/share/system-config-printer/applet.py
system-config-printer-applet: failed to start PrintDriverSelection service
I get the error message above and no applet appears on the systray. The cups daemon is
started but strangely I cant get its page in the browser at localhost:631
gt[sdb10]$ ps ax | grep cups
9184 ? Ss 0:00 /usr/sbin/cupsd
Any idea of what happened? I use Xubuntu.
July 15th, 2007 at 9:26 am
Guiseppe: the PrintDriverSelection message is harmless. When you print something you’ll see the icon there. It purposely doesn’t load the GTK+ bits until it has to.
July 30th, 2007 at 3:18 pm
on fedora4 i used system-config-printer-tui with –Ximport to config 60 linux workstations remotely per script
as this feature seams to be removed in the new system-config-printer (included in fedora6)
i can fix cups settings now by hand (i checked it 2 times and did not find any way to export or import settings)
is there an xml non gfx interface planed?
greetings
oliver
July 30th, 2007 at 3:46 pm
No, there is no XML interface planned, and no non-graphical interface planned. Here’s why not.
August 30th, 2007 at 1:30 pm
[...] just created a 0.7.74.x branch for system-config-printer, for bug fixes only. Fedora 8 will follow this branch for the time [...]
September 17th, 2007 at 1:35 pm
[...] just wrote a short piece about how the Fedora CUPS administration tool (system-config-printer): Abstract: This document aims to give a brief introduction to the CUPS administration tool that [...]
September 20th, 2007 at 11:50 am
System-config-printer has been set up on my pc, hopefully correctly, but every time I send a document to the printer, nothing comes out. I cannot print PDF documents, e-mails or web pages. I have no problem printing Open Office Documents.
I use Fedora Core 7 which is fully updated and a Ricoh CL 2000 printer which is connected to another computer and is accessed via our network (the printer is not connected to the network).
I am a newbie to Linux and am battling a bit so any help will be sincerely appreciated.
September 20th, 2007 at 2:02 pm
Hi Richard,
The Fedora mailing list is the best place to ask about things like that. Subscribe to that list, then post a message there and includes details like what sort of networked computer the printer is connected to and how you set up the queue on the Fedora 7 machine. (I’m on that mailing list myself…)
September 27th, 2007 at 12:10 pm
[...] added an IPP browser to system-config-printer, similar to the SMB browser. Screenshots [...]
October 24th, 2007 at 6:00 am
Hi Tim,
Lovely program you got there, I just found out about this beautiful program when I migrated to Ubuntu Gutsy. Great work! You rocks!
I have 1 suggestion, the GUI is not very GNOME HIG and the icon is abit alienated on Tango style of GNOME 2.20.
November 5th, 2007 at 11:53 am
Thanks. The icon comes from the theme in the latest version, but please do suggest specific user interface improvements either in Bugzilla or in Launchpad (see above, “Reporting bugs”).
November 20th, 2007 at 5:17 pm
[...] user notifications when appropriate. This is what we do for Fedora, and the program is part of the system-config-printer [...]
January 3rd, 2008 at 5:01 pm
I’m using Scientific Linux 5, and trying to connect to our IPP printers (or printer server, I’m not sure). The only mechanism provided by this distribution for Gnome printer configuration is system-config-printer. So far, I have not managed to configure the system so that applications can see printers.
The first strange effect is: when I click Goto Server, and type in the address of our printer server, it asks for a root password. I don’t have one. I tried my normal user name and password (and also no user name), that didn’t work. If I click Cancel, it just gives me the same login dialog again. But strangely, if I click yet again, the dialog goes away, and the printer list is populated, exactly as though it had connected to the server… That just looks broken. But OK.
I click on the desired printer, and I see all the PPD info for that printer. But I can’t do anything with it: I click “Make Default Printer”, and it asks me again for a root password on the printer server! That doesn’t make sense.
Well OK, so system-config-printer is meant to configure a CUPS server. Whatever. But how do I use it to connect to our networked printer? I also tried updating system-config-printer to 0.7.78, but it behaves exactly the same.
I have also tried using the CUPS configuration tools, but they require a CUPS server to be running locally. So I went through that whole mess, and got something somewhat going, but never managed to get a job to print. They just hung in the queue. Everything looked as though it was enabled, but in the CUPS logs, it kept saying something about “Unable to connect to printer”.
My colleague, using an identical system, has succeeded in this, but he uses KDE. He is not running CUPS either.
Any suggestions (besides switching to KDE…I already thought of that)?
January 3rd, 2008 at 5:18 pm
Steve: system-config-printer is not meant to configure your network printer, but instead is for configuring a CUPS server. If you (or your printer) aren’t running CUPS, it’s no good to you. If you don’t have the password for the CUPS server you want to configure, you won’t be able to configure it regardless of which method you use.
January 4th, 2008 at 12:32 pm
Hi,
Just to follow up: I mostly solved the problem, by grep’ing people’s /etc directories.
I put a line in /etc/cups/client.conf :
ServerName
Now I can see all our network printers in the “Default Printer” dialog, and in the Print dialogs of applications.
But I see no way from the Gnome interface provided by Scientific Linux to set that.
Also, the behaviour of system-config-printer remains rather broken in this situation. Clearly it connects to the specified print server to read, although the business of repeatedly asking for a root password is just a bug.
There should be some way by which the user can direct it to the server in read-only mode (just for a listing of printers, e.g.) and it should be clear to the user what the options are in that situation. For me, it looked like I should be able to specify my system’s printers, and I spent a lot of time messing with it.
I’ll contact the Scientific Linux people about this.
Cheers!
February 20th, 2008 at 10:32 am
Hi tim…
thx for system-config-printer. I’m using it on Slackware 11.0/12.0, Bluewhite64 and Wolvix (always compiled from source) and it works perfectly for me except for a few bugs that may be related to Slackware:
Currently i have two patches to make it work again on older GTK+2 and Python versions and on Slackware 12.0 i need to apply a patch to fix utf8 decoding errors when adding a new printer.
Besides that: everything works great. Good job!
Markus
February 29th, 2008 at 4:00 pm
[...] just added print job failure alert messages to the system-config-printer applet, and this is what one looks like. Part of the work involved in doing this was to switch from [...]
March 6th, 2008 at 1:40 pm
I was using config-printer-tui –Xexport and –Ximport to export/import CUP definitions from one server to others. config-printer-tui is no longer available. Is there another way to export/import CUP definitions?
March 6th, 2008 at 1:44 pm
See above.
March 17th, 2008 at 11:49 am
I recently upgraded a Fedora Core 5 system to Fedora 7. This was done by copying the Fedora 5 system to other partitions and then doing a Fedora 7 upgrade to the copy. So, I could test with the upgraded system while keeping my old Fedora 5 system.
Because of a printer problem, I deleted a printer definition and when I started to (re)define it I found that “printconf” was no longer in the Fedora 7 system. (Apparently it actually went away with Fedora 6.)
The printer is a networked Unix (LPD) type.
I do not understand how to define the printer with the current system-config-printer pkg. With the old printconf command, parameters such as name, Desc, type (networked unix LPD), IP address, queue name, and various other options were defined. How are these parameters to be specified now? printconf stepped you through these options and I do not see how that is to be done with the newer pkg.
Thanks.
Robert
March 17th, 2008 at 12:58 pm
Robert: Click ‘New Printer’ and follow the prompts. Select ‘LPD/LPR Host or Printer’, type in the hostname and the queue name, select a driver, etc.
March 29th, 2008 at 3:35 pm
how to config at slackware ?
April 19th, 2008 at 4:59 pm
HI,
is dependency on python-gnome2 necessary? I prefer Xfce without gnome libs. Thanks.
April 20th, 2008 at 12:14 pm
tom: the dependency could probably be avoided. We use it for gnome.url_show(), that’s all. Have a suggestion for a replacement?
April 20th, 2008 at 1:29 pm
What set_website(website) in gtk.AboutDialog?
http://www.pygtk.org/docs/pygtk/class-gtkaboutdialog.html
Sorry, my english is bad.
April 20th, 2008 at 4:48 pm
Yes, we use gtk.AboutDialog.set_website() — and that’s one of the places that a URL hook function is required, so that clicking on it invokes a web browser. That function (gnome.url_show(), to invoke the appropriate web browser) is what we use gtk.gnome for.
April 28th, 2008 at 12:51 pm
Now at OpenBSD:
http://www.openbsd.org/cgi-bin/cvsweb/ports/print/system-config-printer/
May 8th, 2008 at 7:31 pm
I’m trying to run system-config-printer-0.9.90 (from tar ball) on my FC7 box, and I got the following error messages.
[george@localhost system-config-printer-0.9.90]$ system-config-printer
Traceback (most recent call last):
File “/usr/share/system-config-printer/system-config-printer.py”, line 4289, in
main(start_printer, change_ppd)
File “/usr/share/system-config-printer/system-config-printer.py”, line 4259, in main
mainwindow = GUI(start_printer, change_ppd)
File “/usr/share/system-config-printer/system-config-printer.py”, line 246, in __init__
self.AboutDialog.set_program_name(domain)
Any component that I have missed?
Thanks
May 8th, 2008 at 8:24 pm
Great tool! I have a somewhat stupid wishlist demand though: in the names of newly created printers, spaces are not allowed, and thus system-config-printer inserts ‘_’ as a replacement. This is kind of ugly (e.g. Stylus_Color_880), and automatic printer installation for USB printers makes it be the default. Wouldn’t you replace the ‘_’ character by a standard dash ‘-’: Stylus-Color-880 would look much more professional (i.e. less geeky).
Just an idea, but polishing is what will make Linux win, isn’t it? Keep up the good work!
May 9th, 2008 at 8:41 am
Milan: yes, good idea. I’ve made a note to do this. Actually it needs to be done in two places at the moment: system-config-printer and hal-cups-utils. Hmm, should use some common code for this.
May 9th, 2008 at 8:56 am
George: You just need a newer GTK+ I think, and perhaps also a newer pycups. Fedora 7 is a little old to run the 0.9.x code on. (Fedora 8 works fine.)
May 29th, 2008 at 12:23 pm
[...] released system-config-printer 1.0.0 and built it for Fedora’s development tree. The main focus has been improving the way [...]
July 15th, 2008 at 2:41 am
DRIVER FOR CANON S750?