I am unable to add a printer as the 'Add' button is greyed out. Its an HP Deskjet 3520 - I'd like to connect to it wirelessly.

enter image description here

  • First thing to do after installing Elementary OS check if can install your printer. If not - Install Kubuntu.
    – Homer
    Commented May 20, 2021 at 15:09
  • No seriously, if printer install does not work from the normal printer settings - open the web browser and paste in 'localhost:631' in the adress field and then use your elementary user and password to install the printer from within the CUPS browser interface.
    – Homer
    Commented May 20, 2021 at 15:32
  • If you don't have CUPS on your computer use 'sudo apt-get install cups' in a terminal window.
    – Homer
    Commented May 20, 2021 at 15:33

3 Answers 3


The Connection field should contain the protocol and the local address of the printer, something like socket://hostname or http://hostname:631/ipp/. There are several ways to try:

  1. Use sudo hp-setup -i in Terminal and follow the instructions
  2. Go to CUPS and add the printer from here
  3. Find your printer's local IP or (preferably) assign a static IP (either using your router's configuration or the printer's menu) and use that in the Connection field
  4. sudo apt-get install hplip-gui && hplip-gui and follow the instructions (also installs a lot of dependencies and requires a temporary USB connection to the printer)
  • What worked was adding socket://<ip-address-of-printer>
    – codecowboy
    Commented May 22, 2017 at 9:02
  • Glad it worked. Now, it is worth mentioning that using hplip-gui should also add scanning functionalities.
    – Vlad
    Commented May 22, 2017 at 9:50

To add to above since I can't comment yet... You also have to fill out the description before the 'Add' button enables. It will have example text, but I thought it would just use that, so I kept trying different things and it wasted my time for no good reason.

At the time of this writing, the minimum to trigger the 'Add' button (assuming http) is 'http://' in connection with one character in 'Description'.

I love EOS and the setup was still far easier than I've dealt with in the past, so not complaining, but to the devs - I feel like intuitiveness was overlooked a bit here. When I just see a grey 'http' and nothing else, I wonder, "well, should I just enter an IP? If not, should I have a terminating /? Does it expect the port or can I just use the ip if the protocol is specified at the beginning?" When I was trying 'ipp' it was the same; I was like, "well do I need to do ipp://(ip)? or (ip address)/ipp?" or "ipp://(ip address)/ipp?" - My point is, it definitely should not just be 'http' or 'ipp' and nothing else showing there. It should look near exactly what is expected for the end user.


I'm new to Linux so when I finally got EOS installed I was pumped. I love the look and feel of MacOSx b/c I use but dislike Windows. And I was hoping this would work b/c I am trying to move whole house to Linux.

I ended up installing another Linux distro over EOS unfortunately because of the lack of intuitiveness and ease of installing not just the printer but a couple other apps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.