This page is about the printer administration tool system-config-printer, which first appeared in Fedora (as part of my work at Red Hat), and later Ubuntu and other operating systems.

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.

Please note that I no longer maintain system-config-printer. Please visit its new home at GitHub.


Download older tarball releases from:

You will also require pycups from:

Source Code

The git repository is available at GitHub.


Language translations should be submitted through Zanata.

Reporting bugs

If you have found a bug in system-config-printer, please report it. If system-config-printer came with your operating system, report the bug to the operating system vendor:

  • Packagers, or people who have installed system-config-printer from source themselves, should report the bug at GitHubThis is the “upstream” bug tracker.
  • Red Hat Enterprise Linux and Fedora users should use Red Hat Bugzilla
  • Ubuntu users should use launchpad
  • Mandriva users should use Mandriva Bugzilla


363 responses to “system-config-printer”

  1. […] 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 […]

  2. Steve Emms avatar

    system-config-printer has been featured at

  3. […] 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 […]

  4. Giuseppe Torelli avatar


    when I run:

    gt[sdb10]$ python /usr/share/system-config-printer/
    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.

  5. tim avatar

    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.

  6. oliver friedl avatar
    oliver friedl

    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?


  7. tim avatar

    No, there is no XML interface planned, and no non-graphical interface planned. Here’s why not.

  8. […] 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 […]

  9. […] 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 […]

  10. Richard Cruickshank avatar
    Richard Cruickshank

    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.

  11. tim avatar

    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…)

  12. […] added an IPP browser to system-config-printer, similar to the SMB browser. Screenshots […]

  13. Jones Lee avatar
    Jones Lee

    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.

  14. tim avatar

    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”).

  15. […] user notifications when appropriate. This is what we do for Fedora, and the program is part of the system-config-printer […]

  16. Steve White avatar

    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)?

  17. tim avatar

    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.

  18. Steve White avatar


    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 :

    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.


  19. markus avatar

    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!


  20. […] 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 […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.