This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new!

Feature: Desktop Software

Choosing an ink-level monitor

By Bruce Byfield on January 01, 2008 (1:00:00 PM)

Share    Print    Comments   

Thanks to the OpenPrinting Database and the Common Unix Printing System (CUPS), printer support on GNU/Linux is much easier than it was at the turn of the millennium. However, one area in which support still lags is in the detection of ink levels in inkjet printers.

Chances are that an ink level utility will be available only if you have a Canon, Epson, or Hewlett-Packard printer -- and even then, only if you're lucky. If you have an Epson Stylus, you may be able to use Mtink, while for other printers by these manufacturers, your best bet is one of the graphical displays for the Libinklevel library.

To use either Mtink or a Libinklevel front end, you need to know your printer's manufacturer and model and the parallel or USB port with which it connects to your computer. Although both programs have some degree of auto-detection, in both cases it is unreliable.

The easiest way to gather the information you need is to open the Printer tool in the GNOME Administration menu or the KDE Control Center and select your inkjet printer. In the GNOME tool, you have to click the Become Administrator button and enter the root password in order to see the printer port, while in the KDE tool, you should click the Add Printer button with the inkjet on to have it auto-detected.

Alternatively, you can get the information from the /proc directory for USB devices. In Debian, the command would be less /proc/bus/usb/devices, but in other distributions, you might have to search the /proc directory a little to find the exact location.

You also need to have access to the printer from your everyday account. In most modern desktop distributions, you should have this access automatically. If you don't, you need to add the account's username to the printing group -- in many distributions, the group is lp -- either through your desktop user and group tool or by manually editing /etc/group and changing permissions on the port.

With these preliminaries taken care of, you can install the monitor of your choice. Both Mtink and Libinklevel are available in most distributions. If you do not find the front end you prefer in your distro's repository, you can always download the source code. Since all these utilities are small, compiling should take no more than a couple of minutes. Dependencies include both the GNU Compiler Collection (gcc) and libieee1284, which communicates with parallel ports.

Before using a Libinklevel display, you might want to go to the project site and check its list of supported printers. Printers not supported, the site suggests, either do not transmit ink level information, or do not do so in an orthodox way, or may be too new to be supported. Unsupported printers include many models of Hewlett-Packard DeskJet and OfficeJet printers. In addition, some Canon printers report only whether there is or isn't enough ink remaining to use a cartridge.

Using the monitors

All the ink level monitors function in much the same way. They include functions to detect or set up the printer, indicators of the amount of ink remaining -- usually in the form of a bar graph -- and a reset for when you change ink cartridges. Most of them place an icon in the notification tray on your desktop.

In Mtink, you also have the options to clear the nozzle, align the cartridge head, and reset the printer, all of which are necessary because the hardware that is part of the cartridge on other inkjets is apparently part of the printer in Epson Stylus models. More than 90 models are supported in Mtink and Ttink, its command-line equivalent, which many distributions no longer bother carrying. According to snippets on the Internet, Mtink may also detect other models of Epson printers, or even printers made by other manufacturers, but I have been unable to verify this claim.

Should you choose to use Libinklevel, you have no shortage of front ends. The project site lists pyinklevel, a Python utility, but the link is no longer active. For those who prefer the command line, Ink is available from Markus Heinz, the developer of Libinklevel, although you may soon tire of having to specify the type of printer and port each time you want to check on the ink levels. On GNOME, you have the option of using GMSO or Inkblot, both of which differ more in appearance than functionality or ease of use. On KDE, the choices include Kink, which has the advantage of being set up with a wizard; Ink Level Monitor, a desktop applet using Karamba; and QInk, which is only at version 0.3.4 but is finding its way into the major distributions.

Your choice of ink level monitor will probably be based chiefly on its support for your inkjet. However, if you are using one based on Libinklevel, you might have the luxury of choosing one by other criteria, including your desktop preference and sense of aesthetics -- given their common dependency, there is no functional reason to prefer one of the Libinklevel's graphical interfaces over another.

However, with printer models being released so rapidly -- especially at the lower end of the market, where many inkjets reside -- you are just as likely to find that your printer is unsupported, especially if it is recent. In this situation, your best choice is to contact the Libinklevel project and ask for support.

Bruce Byfield is a computer journalist who writes regularly for

Share    Print    Comments   


on Choosing an ink-level monitor

Note: Comments are owned by the poster. We are not responsible for their content.

But... , but...

Posted by: Anonymous [ip:] on January 02, 2008 07:26 AM
... are these ink-level monitors any more trustworthy in Linux than they are in Windows?


Re: But... , but...

Posted by: Anonymous [ip:] on January 02, 2008 07:02 PM
Why would it be different? It just asks the hardware to report back how much ink is available.


solving the writers strike

Posted by: Anonymous [ip:] on January 03, 2008 01:35 AM
Qualifications: None. I would assemble an association that was powerless other than to post each associated groups assertions and puplicly announced objectives. The primary gole of such an association would be only as a first step and foundation upon which to support and promote writing and effected industries without limitations to application. This means white papers and refrences to minimum standard practices with regards to writing and applied industries. Other more complicated concerns could be addressed in an ongoing discussion. This is the fuzzy approch that suggests ultimate solutions are dynamic allowing minimum fuctionality if predetermined as acceptable. You bassicaly assemble each groups perfered position placing them on the mediphorical table to see if intersecting common interests can be applied as an industry standard. This way some ultimate negotiation need not be reached, allowing each industry to stake out their teritory and do bussiness on aggreable terms rather than creating an all or nothing context. I would also like to suggest as banking and various forms of reasonably secure communications are conducted that networks could be established for use by qualifide bussinesses and applications that address free or commercial sponsored media as well restricted forms and there by a means to enforce conditions. Persons who do not wish to be restricted need not apply. With digital broadcasting there would appear to be the cappability to send dual perpose broadcasts. A commercialy advertized version for open hardware and software and a propriatary version containing a majority of content while providing what ever premium features within the context of the commercial space to maintain synchronization. A fee or qualifier for premium content would allow decription using closed software or hardware.


spammers love

Posted by: Anonymous [ip:] on January 03, 2008 11:45 PM
maybe it's time to include a 'report this as spam' button


This story has been archived. Comments can no longer be posted.

Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya