Here's what worked for me:
I chose to install Manjaro "Full" which includes printer networking and printing support. From past experience, the "Minimal" install requires a non-trivial amount of effort to get anything printed.
I didn't know the name of my printer. I tried lpstat -t
but that showed the following:
scheduler is running
no system default destination
lpstat: No destinations added.
lpstat: No destinations added.
lpstat: No destinations added.
lpstat: No destinations added.
At first, I was able to get lpstat working by connecting through Geany, but the printer would timeout after a few minutes.
Since I have a relatively new printer, it uses the "IPP" standard. I used ippfind -l
thanks to this answer https://unix.stackexchange.com/a/490827/8234
For me the address was ipp://whatever.local:631/ipp/print
Then I found this answer https://unix.stackexchange.com/a/683993/8234 and that worked great lpadmin -p Cool -v ipp://whatever.local:631/ipp/print -m everywhere
Now lpstat -t
works as expected:
Cool accepting requests since Sun 19 Mar 2023 02:23:37 AM CDT printer
Cool is idle. enabled since Sun 19 Mar 2023 02:23:37 AM CDT
Then I can simply do echo "test" | lp -d Cool
PS: Perhaps there is an easier way. You can try ippfind -s
and then change the spaces to underscores like echo "test" | lp -d Canon_Cool_series
but I can't get this to work without the underscores, and I can't find any documentation explaining why this works. Basically, I cheated by activating the printer through Geany, and then I could see the printer with lpstat -t
For future reference, I would try the easier "underscore" method first, and if that times out or doesn't work, use the longer "lpadmin" method.