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.