GitHub - graphitemaster/printer-display: Use your printer as a display

3 min read Original article ↗

printer-display

How it works

Taking a screenshot constantly and sending it to the printer

Dependencies

lpr cairo xlib

How to build and run

Compile

gcc main.c $(pkg-config --cflags --libs cairo xlib) -o printer-display

Run

./printer-display <display> <fps>

Reasons to use your printer as a display

Cheap

Printers are relatively cheap these days because their cost is subsidized by the price of ink, toner, print heads, drum and fuser bulbs. If you don't know what those things are they're basically how Big Printer makes their money. If you're smart you just buy a new printer when they run out because new printers come with it anyways even if it's not the same volume.

Unparalleled color reproduction

Printers tend to be very good at reproducing colors exactly as presented in high quality applications which make use of color profiles correctly. In other words if you use a very expensive raster photo editor like Photoshop it may look okay when printed.

HDR

Printer formats operate on much larger color space formats than that of traditional displays (which are largely 8-bit panels) which means instead of shelling out money for displays which are HDR, or claim to be "HDR-like"; you can get that for free.

High DPI

Printers don't operate on the concept of pixels, instead they print at the dot level; and tend to have ridicolously high DPIs compared to most consumer display technologies, so instead of shelling out money for high DPI displays, or ones which claim to be "hi-DPI-like"; you can get that for free too.

Variable refresh rate

Printer speed is largely controllable by software which means the rate at which it can produce a final composite can be tuned to the framerate of the application for free, so instead of shelling out money for monitor technologies like G-Sync and FreeSync; you can get that for free too.

Reasons not to use your printer as a display

Expensive

Printers are cheap don't get me wrong, but the additional purchases for a printer are not yet - this is considered the biggest downside to this idea.

Latency

Gamers may want to avoid using this for gaming. While it doesn't waste time post-processing and upscaling like those cheap displays do, it wastes a lot of time printing a final page. Even a well configured laser printer couldn't keep up with the rate needed to display an animated gif. Also, most printer drivers have code that does the following:

struct timeval t;
t.tv_sec = 60*4;
t.tv_usec = 0;
if (rand() % 4 == 0) {
  spin_and_make_noises(&t);
}

Maintaince

Printers constantly break for no apparent reason at all because they're unstable mechanical failures that happen to work sometimes by sheer luck. What the fuck is "PC LOAD LETTER" anyways?

Support

Support for printer-display can be found here

License

PRINT AND DO WHAT YOU WANT LICENSE 0.1

Copyright (c) 2017 Dale Weiler

Everyone is permitted to copy, print, distribute verbatim or modified copies
of this license document, and changing it is allowed as long as the name is
changed, and then the license is printed, scanned back in and OCR software
is used to turn it back into text.

PRINT AND DO WHAT YOU WANT TO PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, PRINTING, DISTRIBUTION AND MODIFICATION

0. You just PRINT AND DO WHAT YOU WANT TO.