Skip to content
daniel@cosenza:~/blog
Haiku OSHow-To July 17, 2026 3 min read

How to Set Up Printing on Haiku

A complete walkthrough configuring a printer on Haiku using the Print Kit's transport and driver add-ons, from adding the printer through to printing a real test page.

Printing on Haiku is handled by the Print Kit, built around modular transport add-ons (how print data reaches the printer — USB, network) and driver add-ons (how a document is converted into a specific printer’s expected format).

Step 1: open the Printers preferences

Applications → Printers
  (or Deskbar → Applications → Printers)

Step 2: add a new printer

Printers → Add Printer →
  select a transport (Usb, Network/socket, Serial, etc.)

The transport you choose depends entirely on how the printer is physically connected — a directly-attached USB printer uses the Usb transport; a printer reachable over the local network typically uses a network-based transport instead.

Step 3: select the appropriate printer driver

Add Printer → choose a driver matching your printer's
  language/protocol (e.g. a PostScript-compatible driver
  for a PostScript printer, or a specific vendor driver
  if bundled)

Haiku’s printer driver support, maintained by a comparatively small development community, covers common printer languages well but doesn’t include every vendor-specific driver that larger, more heavily-resourced operating systems’ driver ecosystems provide — checking compatibility before relying on a specific printer for essential work is worthwhile.

Step 4: configure paper size and default settings

Printers → select your added printer → Settings →
  set default paper size, orientation, and resolution

Step 5: set your default printer

Printers → right-click your printer → Make Default

This is the printer any application’s Print dialog will pre-select unless you explicitly choose a different one at print time.

Step 6: print a test page

Printers → select your printer → Print Test Page
  (or print any document via an application's Print dialog)

A basic test page confirms the transport and driver combination actually works end-to-end before you depend on it for a real document.

Step 7: troubleshoot a printer that doesn’t respond

Confirm the transport matches the physical connection
  (USB shows up under listusb; network printer is
  reachable by ping first)

Most printing failures trace back to either a transport/connection mismatch (choosing Usb for a network printer, or vice versa) or a driver that doesn’t fully match the printer’s actual capabilities — checking both independently narrows down which one is actually wrong.

Step 8: configure printing from within an application

Any native app → File → Print →
  select your configured printer → adjust
  page range/copies → Print

Once a printer is configured system-wide through the Printers preferences, it becomes available in the standard Print dialog across every native Haiku application without any further per-application setup.

Why the transport/driver split makes sense architecturally

Separating “how data physically reaches the printer” (transport) from “how a document is formatted for that specific printer” (driver) means adding support for a new connection method doesn’t require rewriting driver logic, and adding support for a new printer language doesn’t require rewriting transport logic — the same modular add-on philosophy Haiku applies elsewhere in the system, applied here to the printing stack specifically.