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. Frank Griffin avatar
    Frank Griffin

    Mandriva is now using system-config-printer, and a user entered a bug on their bugzilla titled “the step to add a custom PPD file is proposed too early”. It is a usability concern, and deals with the panel that shows the manufacturer and solicits an external PPD.

    The bug report can be read at:
    https://qa.mandriva.com/show_bug.cgi?id=42655

    I was going to open a corresponding bug here, but I’m a little confused from the above directions as to which tracking engine to use.

    Thanks,
    Frank Griffin

  2. tim avatar

    I’ve updated the ‘Reporting Bugs’ section.

  3. Frank Griffin avatar
    Frank Griffin

    Well, the problem has already been reported to Mandriva, as per above. They requested me to report it upstream. So where should I report it ?

  4. tim avatar

    In the trac instance on fedorahosted. (Shouldn’t Mandriva do that for you?)

  5. Milan K. avatar
    Milan K.

    Great tool. I want to add an item to the system-config-printer wishlist.

    I could not find option to add a remote cups server into my local cups server configuration which will be polled for printers. I always have to add “BrowsePoll server.name.net” option manually to cupsd.conf on laptops.

    We do have a cups print server which is used to print to 12 network printers located at various places in our building. This cups server advertises the printers into our wired local network so all the Linux machines wired to the local network can print to the available printers, client machines have the option “Show printers shared by other systems” on. This configuration is very handy because new printers can be added and/or removed from the server and the list of available printers is always up to date on all the clients.

    Laptops are usually on wireless where the printers are not advertised because wireless covers whole (very big) campus and we do not want to advertise our building printers to the whole campus. Although, server will let the laptops print from the wireless network if they want to and know where. Here the BrowsePoll option comes in.

  6. tim avatar

    Already done in 1.0.5. 🙂

    Please use the appropriate bug tracking tool (see above) when reporting bugs or requesting features, instead of adding comments to this page.

  7. André Fettouhi avatar
    André Fettouhi

    On my Arch Linux box system-config-printer won’t start at all. I keep getting an error

    [af@andre ~]$ gksu system-config-printer

    ** (gksu:12688): WARNING **: couldn’t communicate with gnome keyring daemon viadbus: Launch helper exited with unknown return code 0
    Traceback (most recent call last):
    File “/usr/share/system-config-printer/system-config-printer.py”, line 5272, in
    main(configure_printer, change_ppd)
    File “/usr/share/system-config-printer/system-config-printer.py”, line 5242, in main
    mainwindow = GUI(configure_printer, change_ppd)
    File “/usr/share/system-config-printer/system-config-printer.py”, line 329, in __init__
    self.newPrinterGUI = np = NewPrinterGUI(self)
    File “/usr/share/system-config-printer/system-config-printer.py”, line 2668, in __init__
    self.openprinting = cupshelpers.openprinting.OpenPrinting ()
    AttributeError: ‘module’ object has no attribute ‘openprinting’

    Regards

  8. tim avatar

    André: please do not report bugs by adding comments to this page. Anyway it looks like you don’t have system-config-printer installed correctly. Report your bug to the Arch Linux folks, or if you installed it yourself use the “upstream” bug reporting link shown above.

  9. tomas kindahl avatar
    tomas kindahl

    On my wish list: a direct link to Common Unix Printing System (CUPS) (http://www.cups.org/) from this font matter, f.ex. on the right above Pages.

  10. Jose Luis Aguilar avatar
    Jose Luis Aguilar

    how to config printer…epson stylus photo R200

  11. tim avatar

    All: Questions about specific printer models should be asked at http://www.openprinting.org/, not here.

    For example, Jose, information about driver support for your printer is here:
    http://openprinting.org/show_printer.cgi?recnum=Epson-Stylus_Photo_R200

    As a USB autodetection signature is known for this printer, all you should need to do to configure it (on Red Hat Enterprise Linux 5, Fedora, and Ubuntu at least) is: plug it in.

  12. Uwe Dippel avatar
    Uwe Dippel

    I wonder, which protocol system-config-printer needs for discovery?
    I was successful twice, just clicking the ‘New’ icon, but now at home it fails. Though the printer is ‘here’:

    $ nmap 192.168.116.240
    Starting Nmap 4.62 ( http://nmap.org ) at 2008-12-14 00:36 SGT
    Interesting ports on 192.168.116.240:
    Not shown: 1708 closed ports
    PORT STATE SERVICE
    80/tcp open http
    427/tcp open svrloc
    515/tcp open printer
    631/tcp open ipp
    1720/tcp filtered H.323/Q.931
    2000/tcp open callbook
    9100/tcp open jetdirect
    Nmap done: 1 IP address (1 host up) scanned in 4.614 seconds

    , on this network:
    eth1 Link encap:Ethernet HWaddr 00:0c:f1:31:6c:66
    inet addr:192.168.116.179 Bcast:192.168.116.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:f1ff:fe31:6c66/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:2973 errors:2 dropped:2 overruns:0 frame:0
    TX packets:3154 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:1216879 (1.2 MB) TX bytes:340584 (340.5 KB)
    Interrupt:5 Memory:fcfee000-fcfeefff

    Any idea?

    Uwe

  13. tim avatar

    Uwe: it’s not really system-config-printer, but CUPS. The only discovery system-config-printer provides over CUPS is for Windows printers (SMB), which is not relevant for this printer.

    The most likely backend for discovering your printer is ‘snmp’. If ‘/usr/sbin/lpinfo -v’ doesn’t show your printer, try running the snmp backend directly and pointing it to the right place:

    /usr/lib/cups/backend/snmp 192.168.116.240

    Does that find it? If so it might be that /etc/cups/snmp.conf is wrongly configured, or else it might be that the printer does not respond to broadcast SNMP.

  14. […] been trying to prevent a Python GTK+ application (the system-config-printer printing troubleshooter) from appearing to freeze when performing CUPS operations such as fetching […]

  15. […] just made system-config-printer-1.1.0 available.  Below are some of the changes compared to […]

  16. Andrea avatar
    Andrea

    Hi,
    I have a problem with the printer server on Ubuntu 8.10.
    I need to clean the head but the key in the printer terminal is disabled.
    What can I do to enable it?
    Thank you

  17. click170 avatar
    click170

    Hey,
    Great app, printing in Ubuntu would be horribly painful without it!

    I only wonder if it would be possible for you to switch to interfacing with PAM (Pluggable Authentication Modules) for authentication.

    For example, there is currently a bug at https://bugs.launchpad.net/ubuntu/+source/system-config-printer/+bug/302158 detailing the problem. I currently use LDAP to authenticate to, but because system-config-printer doesn’t check PAM, I’m not able to add a printer without using one of the workarounds posted in the bug report. Thankfully, there ^are^ workarounds so I’m not SOL.

    Really appreciate the work your doing, People like you who contribute usability improvements back to linux are making it ready for the masses.
    Thank you!!

  18. tim avatar

    click170: authentication with CUPS doesn’t work the way you think it does. The system-config-printer application does not run with any elevated privileges, and it is the CUPS server running on your machine that performs authentication.

    Thanks to some work I did a while back it is possible for CUPS to work out who you are without requiring a password. The problem comes when you are not a “SYSTEM” user and the cupsd.conf policy requires a system user for a particular operation. There is currently no way to configure a CUPS policy that allows console users to perform administrative operations as themselves, and so we need to authenticate as a system user (e.g. root) to do that.

    Ubuntu handles this in a particularly bad way: although administration does not require a password for the “main” user on the system, submitted jobs are handled as though printed by user “root”.

    A better direction to move in is to allow PolicyKit to enable certain administrative operations. This would allow greater flexibility when authenticating with the CUPS server as the policy can be defined more easily. It would also enable us to perform operations that do not require system privilege (e.g. submitting a print job) to do so under our own names, simply by not using the PolicyKit interface for them.

    Work is underway to implement this, but it is not yet complete.

  19. Messias avatar
    Messias

    Using the system-config-printer on my ubuntu 8.04, I click in the icon “new printer” but my computer stops completely. Is there some solution?

  20. tim avatar

    Messias: that sounds more like a problem with Ubuntu than with system-config-printer. Report it to them.

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.