This is one of my 'Long and rambling' posts (I have brain injuries) - but it might be useful for newbies who don;t print much and are sick of finding the ink in their inkjet nozzles is dried when they do need to print. It usually happens when you urgently need to print a resume
Keeping Inkjet nozzles clear has been a problem for a lot of people for years. I first noticed it in my businesses when I changed from Dye ink to Pigment ink in one of my signwriting printers, but even with the Dye Sublimation printers it happens if I leave them sitting unused for a few weeks.
We get cold weather, humid weather and hot weather here, and it has different effects on out machines. I was so sick of trying to fix these problems on my printers and also on my customers' printers that I did some thinking and found that regardless of ink freshness, it was mostly after a machine was idle for a week or two that the problem occurred. And it didn;t matter the brand. I use mostly Brother inkjets, but we have HP and Epsons showing the same problem.
Once a print test shows a few blocked nozzles, clearing them can be a tiresome frustrating exercise, and wastes a LOT of ink.
So some years ago I came up with a solution that works for me.
It wastes a small amount of ink per printer, but far less than a printhead cleaning operation on the printer, and adds about 30 seconds boot time for each printer each time you start the computer. But as long as I do this I have clear nozzles almost always. I should add, my computers used to be set to boot automatically about 6am and shutdown about midnight if I went away for a few weeks. (A setting in BIOS on computers for many years now). So I made sure the printers had enough paper and ink.
You need to be sure there is always paper in the printer. I save paper by recycling the old pages from this test over and over. I only use new paper when I actually want to check the nozzles (usually with the printer's built in test page), and have to remember to put sufficient fresh paper in the printer if I am printing 'stuff'..
Ok.
The lp command is useful. We can use it to find the name of the printer to set up. Since I retired all my computers are on Wifi, but the lp command will tell me which ones are where. It previously worked with my USB printers too.
We will also use in in the script to actually print a test page.
It is a sudo command so it will ask for your password.
$ sudo lpstat -s
[sudo] password for ross:
no system default destination
device for Brother_MFC_J6520DW: ipp://BRW7429AF3A3893.local:631/ipp/print
device for Photosmart_5520_series_B24DD9_: ipp://HPF0921CB24DD9.local:631/ipp/print
That tells me I have 2 printers installed on this computer. ipp: means they are connected over WiFi. (I ipp means 'Internet Printing Protocol'). USB printers will show differently. But it is the device names I am interested in.
The Photosmart computer is used mainly by a different computer upstairs.
The Brother Computer is the one I don't use daily and is the one that was getting blocked nozzles from sitting idle.
What you need is the name (in this example mine is: Brother_MFC_J6520DW )
And you need a PDF test print file. You can download one from the net (I'll also upload one with the post) I keep mine in the same folder as the script below.
I wrote a little script to announce that the computer is about to print a test print image and to pop up a notice on screen when it is printed, on each boot. The script just has to be made executable and saved in your Bash-Scripts directory (folder) or whatever folder in /home is convenient.
Then, open 'Session and Startup' from your Menu then the 'Application and Autostart' tab, and add the script as a command.
Click the 'Add' button at the bottom, fill in the fields for a name, then where it says 'Command', click the button at the end and follow the path to your script. It should already say 'On Login' under Trigger for when to run the script.
You can use the [x] check box at the left in Session and Startup at any time to turn those commands on and off, or to rEdit them or Remove them.
It is useful to know about, but be careful not to turn off something you may later rely on if asked about in court....
A couple of things to remember:
The script takes a little while before it runs (the 'sleep commands'). That is because I found my system took a while to find WiFi peripherals. And it takes a while longer before the pop up to say printing is finished.
You can change the text displayed. (you can re-use the script for Appointment Reminders etc).
If you want the spoken announcement that the script has started, you need espeak installed (sudo apt install espeak).
If you want the message popup on the screen you need imagemagick, which is probably already installed. (sudo apt install imagemagick). I have also added the important bits of this info in the actual script below.
Code: Select all
#!/bin/sh
# RossDV8's Print Test with MESSAGE Pop Up --needs imagemagick --needs espeak
# imagemagick is usually in a Default Mint install. If not: $ sudo apt install imagemagick
# I name my message scripts something like 0message.sh So I can find them easily in a folder
# if desired:
# sudo apt install espeak (hash out the espeak line if you don't want it announcing)
# Remove previous message (script will replace it again -with any changes- when you run it)
# If script won;t run initially, copy any PNG into the folder and call it '0done.png'
# READ the N O T E 10 lines from the Bottom !!!
# Wait for computer to find peripherals
sleep 20
# remove old completed message
rm 0done.png
# create the TEXT message to pop up on the screen
# put the WRITTEN message words after label: between ' '
# \n means 'new line'
# change -size to suit your screen
convert -background white -fill blue -font Arial -pointsize 156 -size 1200x900 \
-gravity center label:'NOTE!\nBrother\nTest\nPrint\nCOMPLETE\' \
0done.png
#Test Print
# spoken message (leave volume about 50% when you shut down computer)
espeak "printer test"
#send test file to printer. You can use any PDF test image or download mine from the next post
# N O T E !!!!
# Change the Printer Name and PATH in the next line to match YOUR OWN Printer and Test FILE
lp -d Brother_MFC_J6520DW /home/ross/0-Printer-Test/testprint.pdf
#wait for print job to finish
sleep 30
# Show Message when job is done
display 0done.png
#If you want the message in a Maximized window, hash out the previous line and un-hash the next line.
#display -backdrop 0done.png
# End of Script