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

Anonymous SVN access is available at:
http://svn.fedorahosted.org/svn/system-config-printer/

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.

34 Responses to “system-config-printer”

  1. Tim’s Home Page » Parallel CUPS connections Says:

    [...] 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 Says:

    system-config-printer has been featured at LinuxLinks.com

  3. Tim’s Home Page » Unhooking the foomatic parser Says:

    [...] 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 Says:

    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.

  5. tim Says:

    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 Says:

    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

  7. tim Says:

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

  8. Tim’s Home Page » system-config-printer branched Says:

    [...] 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. Tim’s Home Page » State of Fedora Printer Configuration Says:

    [...] 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 Says:

    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 Says:

    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. Tim’s Home Page » IPP browser Says:

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

  13. Jones Lee Says:

    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 Says:

    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. Tim’s Home Page » Printer status feedback Says:

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

  16. Steve White Says:

    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 Says:

    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 Says:

    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!

  19. markus Says:

    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

  20. Tim’s Home Page » Print job failure alerts Says:

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

  21. Richard Says:

    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?

  22. tim Says:

    See above.

  23. Robert Says:

    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

  24. tim Says:

    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.

  25. wonderkid Says:

    how to config at slackware ?

  26. tom Says:

    HI,
    is dependency on python-gnome2 necessary? I prefer Xfce without gnome libs. Thanks.

  27. tim Says:

    tom: the dependency could probably be avoided. We use it for gnome.url_show(), that’s all. Have a suggestion for a replacement?

  28. tom Says:

    What set_website(website) in gtk.AboutDialog?
    http://www.pygtk.org/docs/pygtk/class-gtkaboutdialog.html
    Sorry, my english is bad.

  29. tim Says:

    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.

  30. tim Says:

    Now at OpenBSD:
    http://www.openbsd.org/cgi-bin/cvsweb/ports/print/system-config-printer/

  31. George Liu Says:

    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

  32. Milan Bouchet-Valat Says:

    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!

  33. tim Says:

    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.

  34. tim Says:

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

Leave a reply

Comments are moderated. Comments that are inappropriate, offensive, vulgar, badly written or insulting will be deleted or edited to make the author look silly.