Brno Hat

Jiri Eischmann's Blog

Printing Improvements for Fedora 27 Workstation

Fedora 26 is not out yet, but it’s already time to think about how to improve the Workstation edition of Fedora 27. One of the areas my team is focusing on is printing (the desktop side of it). For GNOME 3.24 and Fedora 26 Workstation we landed a new interface for the printing module in GNOME Control Center. It gives a much cleaner overview of printers that are set up on your system.

One thing that I think deserves an improvement is printer sharing. GNOME Control Center doesn’t allow you to easily share a printer with other devices over the network. I’ve heard users complain about it and the competition provides it (even though Windows do it very unintuitively). Sharing via IPP is a pretty low hanging fruit because that’s what CUPS already perfectly supports, you just need to expose it in the UI.

A common use case is sharing a printer with your mobile devices. iOS uses AirPrint which is an extension of the IPP,  you just need to convince the device that it’s talking to an AirPrint server. To support Android devices, I think the best way is to use Google Cloud Print. We already support Google Cloud Print, but from the client side. I wonder if it’d be useful to support the server side as well. Google provides an open source server implementation, but it’s written in Go and unnecessarily advanced for our use cases, so writing our own implementation would probably be a better way to go. But I wonder if it’d be worth it. Do people use Google Cloud Print? If not, how do you print from your Android device?

Or are there any other things you think we should improve in printing (desktop-wise)?

36 responses to “Printing Improvements for Fedora 27 Workstation”

  1. Michael Avatar
    Michael

    Android has an API for different printer providers and there is an open source one for CUPS: http://benoitduffez.github.io/AndroidCupsPrint/

  2. kmi Avatar
    kmi

    Personally, I don’t use Cloud Print. I find “Type this cryptic address into your phone” needlessly complicated. Maybe it works better with a QR code.

    As Michael pointed out, Android has an API for printer providers. I use an app called PrintHand which I got for free via Amazon. It usually costs money.

    Have you thought about offering proper integration of KDE Connect into Gnome? If there was a full-fledged KDE Connect extension for Gnome and a “Share this printer with paired phone” option, it’d be probably very, very convenient.

    1. Charles Avatar
      Charles

      It may be a little offtopic, but one of the goals of System76 is to integrate KDE connect with GNOME with upstream patches.
      http://blog.system76.com/post/160445549288/gnome

      1. kmi Avatar
        kmi

        Currenty I use KDE Connect + indicator-kdeconnect + KStatusNotifierItem Gnome extension. It’s OK but not perfect. If there was a proper extension and support in KDE Connect for Android’s printer API, I’d be very happy.

  3. Dylan Taylor Avatar
    Dylan Taylor

    I use Cloud Print, and it’s great. Saves me a ton of trouble with printer drivers

  4. Tomas Avatar
    Tomas

    I don’t use Google Cloud Print, due to privacy concerns. When there is a local network printer and a local device, why should the data being printed make a trip around the world?

    For android devices, there is a CUPS printing provider – https://play.google.com/store/apps/details?id=io.github.benoitduffez.cupsprint . It works with local IPP printers perfectly.

    1. eischmann Avatar

      That’s the thing. It doesn’t. If the client and the server are on the same network they communicate P2P. Only if one of them is on a different network it’s sent via Google servers.

      1. Tomas Avatar
        Tomas

        When did they change that? When I was playing with it (though it was few years ago), after submitting the print job it appeared in the GCP console immediately, but it took several minutes(!) for the job to be submitted to the local printer. At the time, it definitely didn’t go P2P.

        The other thing is: what is the use case for non-local printing? Except for accidents? 😉

        1. eischmann Avatar

          With the 2.0 version.
          Wikipedia: “Google Cloud Print 2.0 adds support for a local mode similar in operation to AirPrint. Unlike the original version of Cloud Print, v 2.0 does not require either the printer or printing client be connected to the Internet. Local mode uses a new discovery protocol, called Privet,[15] which uses Multicast DNS and DNS-SD for discovery and HTTPS for transmitting print jobs to the printer. Clients supporting this mode only list printers that are discoverable on the same subnet the device is connected to, and forget the printers once disconnected from that subnet.”
          Here is dev docs: https://developers.google.com/cloud-print/docs/privet

          I think the biggest benefit of Google Cloud Print is that you can actually define what users can print on your printer. Of course, you need to trust Google.

          1. Tomas Avatar
            Tomas

            I started reading with excitement, that it looks nice, and that local mode looks usable. Until I came to the part 5: https://developers.google.com/cloud-print/docs/privet#printer_api

            It is still non-local first, local only as failsafe 🙁

            So after a brief thinking, that it would be a more user friendly for Android users, that they do not have to install anything, and systems that do not support IPP, but do have Chrome (is there any?), there came a cold shower: yes, it still talks to Google when it doesn’t need to.

            From privacy POV, I still consider Apple solution (mDNS + IPP) better. All the parts are already there anyway.

  5. Jeremy Bicha Avatar

    Here’s a tracking bug for GNOME printer sharing: https://bugzilla.gnome.org/777882

    1. eischmann Avatar

      Yeah, I know about the bug report. I think one of the reasons why it was stalled is privacy and security concerns. You don’t want to share your printers everywhere. But now when we have infrastructure for defining on what network it can be shared it should be solvable.

  6. Biji Avatar
    Biji

    I don’t use cloud print. Adding remote shared printer in LAN is still hard. When adding, we can browse a lot of same printer shared by other connected desktop by default, which hide real host where that printer plugged. After that adding remote printer does not work just using control center, because driver not automatically installed. Finally I have to install system-config-printer to successfully add network printer

  7. Charles Avatar
    Charles

    Something much needed to improve is to add integration with the Shell. An indicator or notification with quick access to the print queue is very necessary to improve usability. I still use today system-config-printer.

  8. lbdroid Avatar

    NO, do not use cloudprint. There is no need to put a proprietary dependency in the middle of an otherwise properly open system.

    If you’re looking for the infrastructure to make it possible to find a printer that is hidden behind a dynamic IP and NAT, then Red Hat ought to provide their own, OPEN SOURCE system (that other people can reproduce on their own networks).

    I currently use this (*real* libcups packed into an Android print service);
    https://github.com/lbdroid/CupsClientService

    With this (real openssh with a “convenience” application);
    https://github.com/lbdroid/Android_SSH

    Need to print? Hit print, it creates an SSH tunnel into remote network on demand and sends the job.

  9. Danny Avatar
    Danny

    Just to add my 2 cents worth. I also do not use Google Air Print. No particular reason and not because of security issues either. Just haven’t had a use case yet. On a side note I just wish Gnome print center would show ink levels for my HP Officejet 6010 all in one. It hasn’t since beginning to use Ubuntu 15.10. Now using Ubuntu 16.10 with Gnome DE. Still no ink levels. However the QT app HPLIP shows ink levels and has every adjustment as Gnome Print center. How come a third party app does this and not the built in Gnome app in both Unity and Gnome ??

    1. Jeremy Bicha Avatar

      Why don’t you upgrade to Ubuntu GNOME 17.04? I don’t know if that will fix your ink level problem but you should get something looking like the screenshot.

      1. Danny Avatar
        Danny

        Ok….but that doesn’t answer the question. HPLIP has been able to show ink levels on all the HP printers I’ve owned for the last 3 years over different distributions ranging from OpenSuse to Fedora and now Ubuntu. But never with Gnome print center and I use Gnome on all three distros.

        I won’t touch 17.04. May wait for 17.10 or 18.04. Until then HPLIP ( HP Linux Imaging and Printing ) is my goto and default printer setup and management software. Just wish it was native Gnome and not a Qt app from HP.

        1. Jeremy Bicha Avatar

          Are you aware that 16.10 will no longer be supported in July? You need to upgrade to 17.04 (where you get the improved Printers panel and other nice things) or install a supported version like 16.04 LTS if you don’t like upgrading twice per year.

          1. Danny Avatar
            Danny

            I am aware of that. I have found in my personal computing experience that the October releases are really good and the non LTS April releases a bit sketchy. Of course everybody’s mileage varies. Maybe I will give 17.04 a try in July. Of course….my mission critical rigs are on LTS only releases so no printer improvements until next year or unless this gets backported to 16.04 LTS

  10. Михаил Гаврилов Avatar

    I use Google Cloud Print. It help’s me print on unsupporting printers through Windows print server with Google Chrome.
    I would like the following improvements:
    1) To print on Google Cloud Print it was possible from any programs, not just from evince. In particular, I want to print from the Libre Office.
    2) I also would like the server part both for Linux and for Windows, so that printers were available without the running Google Chrome browser.

    1. Tomas Avatar
      Tomas

      For your point 2), you are looking for Cloud Print Connector: https://github.com/google/cloud-print-connector. It was linked in the article…

      1. Rodd Clarkson Avatar
        Rodd Clarkson

        This I would like to see in Fedora. I have a range of Android devices at home and work and printing to the various printers is awkward. Have Google cloud print connector would be great.

  11. Exalm Avatar
    Exalm

    I use HP provider on Android, but it’ll be certainly nice to have Cloud Print working.

  12. theghost Avatar
    theghost

    I don’t and won’t use Google Cloud Print due to privacy issues.
    If you create a proper way to print locally from mobile without exposing my network or printers to Google or someone else that would be great.
    If you go the easy way and embrace Google Cloud, better improve something else.

  13. Álex Puchades Avatar
    Álex Puchades

    Could we have support for manual duplex printing? gnome-manual-duplex seems pretty outdated.

    1. Brian Avatar
      Brian

      Texas-sized 10-4 on this! Manual duplexing is something that GNOME Print should handle natively without having to bolt on something like gnome-manual-duplex virtual printers for.

  14. Steven H Avatar
    Steven H

    I have a HP LaserJet Pro MFP M125NW connected to the network. When setting it up in the GNOME control center under Fedora it is detected perfectly, and set up and shows up as working.

    However, when you try to print it fails without any explanation. Turns out you need to run hp-setup (if memory serves me right) in the terminal to download an HP proprietary plugin. I can see why this is not bundled, but at least this tool might be run automatically, or the user might be given a hint. A normal user would never know why his printer that shows up as properly working in the control center does not actually print.

    The same goes for scanning.

    1. Rodd Clarkson Avatar
      Rodd Clarkson

      Improvements in the HP printer setup would be very much welcomed. I’ve had the same experience. It’s not clear you have to manually download something for the printer to work.

  15. Börje Avatar
    Börje

    At my university all printers (~500) are on a separate network,
    Access is only via the print server, authenticating with Kerberos.
    All our clients use a configuration file with ‘servername’ pointing directly to the server.
    No users are allowed to make any system-wide configuration changes on the client.

    The desktop solution, suitable for small numbers of printers and/or the user is administrator of the computer, does not work very well in our environment.

    Please do not leave us in the cold.

    Current problems include, but are not limited to
    * All defined printers shows up in the print dialogs in the applications. A very long list. A way to ‘map printers’ like in Windows would be nice. This could also solve a problem where Matlab/Java cant find all printers, making printing impossible.
    * Printing from mobile, self-administred devices like Android and IOS to print server is not solved.

    On the other hand, things like current ink level is of no interest, since that is monitored and taken care of by our support staff.
    Information of the current status (down/paused/..) is of interest

    //Bse

  16. Rodd Clarkson Avatar
    Rodd Clarkson

    I know it’s a little unrelated, but the fact that Libre office used it’s own (ugly) print dialogue is confusing. Support for the Gnome print dialogue is possible, but why isn’t it default?

  17. rothgar Avatar

    I’d like to see better support/integration for 3rd party management programs like what HP provides with HPLIP http://hplipopensource.com/hplip-web/index.html

    As an administrator for a lot of Linux workstations it is very confusing to get so much additional functionality out of HPLIP but need to use the HP tools instead of the built in GNOME tools. Making the tools easier to integrate or providing the same functionality in the GNOME tools would be ideal.

    P.S. I don’t use Chrome print

  18. Rodd Clarkson Avatar
    Rodd Clarkson

    Probably late to the party, but being able to print to my local printers using Cloud Print from my Chromebook would be lovely. Cloud print isn’t just Android related.

    1. Cdb Oil Avatar

      Any more recommendations you could share with me? This is what I’m trying to find. I am reading your posts while camping. I just wanted to say thanks for this awesome post.

Leave a Reply

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