I bought a HP Envy 4504. Overall I am happy with it. This is how I configure it so I can use with Linux.

This mini howto applies to ArchLinux and Centos/RedHat distributions.

Packages: Archlinux:

cups, hplip, python2, sane

Centos: cups, hplip, hplip-gui, sane Some optional dependancies may be needed. Enter:

sudo systemctl enable cups
sudo systemctl start cups
sudo hp-setup

hp-setup -i Select “Network”, and “Advanced Options -> Manual Discovery” Printer: npr1 PPD File:

/usr/share/ppd/HP/hp-envy_4500_series.ppd

Uncoment hpaio from /etc/sane/dll.conf. Some commands:

cupsenable printer
lpstat -p
lpadmin -p PrinterName -E

Also since it is a WIFI printer normally it will go into sleep/power save mode. This means if you then try to print from cups it will fail (printer is asleep). Subsequent prints should work but now cupsd has flagged the printer as paused. To prevent this you should configure the default ErrorPolicy in /etc/cups/cupsd.conf by adding in the top scope:

ErrorPolicy retry-job

References: superuser.com