system-config-printer

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

Download older tarball releases from:
http://cyberelk.net/tim/data/system-config-printer/

You will also require pycups from:
http://cyberelk.net/tim/software/pycups/

Source Code

The git repository is available at GitHub.

Translations

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

Comments

363 responses to “system-config-printer”

  1. Richard avatar
    Richard

    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?

  2. Robert avatar
    Robert

    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

  3. tim avatar

    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.

  4. wonderkid avatar

    how to config at slackware ?

  5. tom avatar
    tom

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

  6. tim avatar

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

  7. tom avatar
    tom

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

  8. tim avatar

    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.

  9. George Liu avatar
    George Liu

    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

  10. Milan Bouchet-Valat avatar
    Milan Bouchet-Valat

    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!

  11. tim avatar

    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.

  12. tim avatar

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

  13. […] released system-config-printer 1.0.0 and built it for Fedora’s development tree. The main focus has been improving the way […]

  14. CROSS avatar
    CROSS

    DRIVER FOR CANON S750?

  15. JMW avatar
    JMW

    How do you set the Username for “Custom user name” (Printer Configuration -> Printer Options -> User Name: )?

  16. Mike O. avatar
    Mike O.

    Thanks for all the good code :^)

  17. Walter avatar
    Walter

    I am having difficulty cancelling print jobs.
    Printer is HP F380
    What is the most effective method to cancel print jobs.
    Problem commences when one print job has a problem then other print jobs queue and I cannot cancel the problem print job

  18. tim avatar

    Walter: click on the printer icon in the notification area, then right-click on the job you want to cancel and select ‘Cancel’.

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.