HP178nw HEADER BUFFER - PORTABLE MENU-BAR APP, VERSION 1.2.3
Built 24 October 2026

USE AT YOUR OWN RISK - NO WARRANTY OR LIABILITY
This is an independent, experimental workaround, supplied as is and as
available. To the maximum extent permitted by applicable law, the developer
accepts no responsibility or liability for claims, damage, costs or losses
from installing, using, or being unable to use this software. You accept
responsibility for its use and consequences, including printer problems,
failed printing, paper or toner waste, data loss and interruption of work.
Nothing excludes liability or rights that the law does not allow to be
excluded. Read DISCLAIMER.txt for the full notice.

Version 1.2.3 requires you to choose Agree & Continue on that notice before
the normal app can check or change printer settings. Acceptance is saved
only on your Mac, for your user account and this notice revision. Declining
quits without running a printer helper. An existing queue/filter is not
removed by declining; removal and the read-only --check remain available
without accepting. You can reopen the notice from the app's menu.

Version 1.2.2 fixed the printer chooser when more than one source queue is
available. Its result now uses an explicit local variable, avoiding the
AppleScript application property named "selection". Choosing either queue
and cancelling the chooser are checked through the native launcher with
inert printer helpers. Version 1.2.1's resource-path correction is retained.
The printing filter and queue behaviour are unchanged.

WHAT IT DOES
This app packages the initial-raster-header workaround tested on an HP Color
Laser MFP 178nw, with a printer icon and an On/Off switch in the Mac menu bar.
On another Mac it creates a separate, unshared AirPrint queue
using that Mac's existing printer connection and profile. It changes only two
URF filter registrations in the copied profile. The filter buffers the first
44 bytes, then forwards the entire raster unchanged. It does not print a test
automatically. Your original printer remains available and its scanner
configuration is retained.

USE ON ANOTHER MAC
1. Copy HP178nw-Header-Buffer.dmg to that Mac, for example using AirDrop, and
   open it. The disk image contains no captured documents or logs.
2. Add the HP 178nw in System Settings > Printers & Scanners using AirPrint
   if it is not already added.
3. Drag "HP178nw Header Buffer.app" onto the Applications shortcut, then open
   the app from Applications. The Support folder in the disk image contains
   the removal app, this guide, readable sources and the low-toner test PDF.
4. Choose the original HP queue if more than one is listed. Click Install &
   Use and approve macOS's administrator prompt. The app selects the new
   "HP 178nw Header Buffer" printer for your account when setup succeeds.
5. Print one copy of low-toner-two-pages.pdf from Preview, explicitly selecting
   the buffered printer. The menu can also open this PDF. Check that both
   numbered pages are correct. Cancel
   at the printer if gibberish starts.

The app uses native macOS tools. No Python, Homebrew, compiler, third-party
runtime, network download or remote account is needed on the destination Mac.
It requires the system Perl runtime and the PPD/CUPS AirPrint filter path;
preflight stops without installing if those prerequisites are unavailable.
The release apps are signed with a Developer ID Application certificate and
use the hardened runtime. macOS checks the signature and Apple notarization
when opening downloaded software; the final release disk image carries its
notarization ticket. The normal downloaded-app confirmation and the one-time
administrator prompt for printer setup may still appear. No security settings
need to be disabled. This independent workaround is not an HP product.

LOGIN STARTUP
In System Settings > General > Login Items & Extensions, add HP178nw Header
Buffer.app to the list of apps that open when you log in. Keep the app in
Applications rather than a temporary Downloads folder.

The app stays in the menu bar, beside the other icons near the battery/clock.
Click its printer icon to see the switch:
  On:  select the buffered HP printer as your default for new jobs.
  Off: return to your original HP printer if the buffered printer is selected.
Your On/Off choice is saved and restored the next time the app opens, including
at login. Switching leaves jobs already queued/printing on their existing
queues. It needs no administrator approval after the one-time setup.

The menu shows the current selected printer and refreshes when your user
printer defaults change. It does not poll or capture traffic from the printer.
The installed filter applies header buffering to each job sent to the buffered
queue, including if the menu-bar app has been quit. Quitting closes the icon;
use Off before quitting if you want the original printer selected.

Other printers can still be selected normally. A print dialog or macOS's
"last printer used" setting can choose a different queue later in a session.
The workaround applies when the selected queue is the buffered one.

On the original investigation Mac, the app recognizes and reuses the verified
"HP 178nw Header Buffer Test" installation, avoiding a duplicate queue or a
second administrator installation. The first open selects that queue by
default; subsequent opens restore your saved On/Off choice. Merely
downloading/copying this app changes no setting.

REMOVE
1. Choose Quit in the printer-icon menu, then remove HP178nw Header Buffer.app
   from Login Items.
2. Open "Remove HP178nw Header Buffer.app", confirm removal, and approve
   the administrator prompt. Finish/cancel buffered-queue jobs beforehand.
   The app restores your original default if the buffered queue was selected,
   then removes only the buffered queue and its marked helper directory.
3. Delete the two apps if you no longer need them.

Removing only the app or only its Login Item does not uninstall the CUPS
filter. The companion removal app also recognizes the original investigation
test installation. A damaged/unrecognized installation is left in place for
inspection rather than overwritten or broadly deleted.

MANUAL CHECK / RECOVERY
The readable installer and helper scripts are inside the app at:
  HP178nw Header Buffer.app/Contents/Resources/Payload/

Read-only preflight (adjust the app path if needed):
  /bin/zsh "/Applications/HP178nw Header Buffer.app/Contents/Resources/Payload/install.zsh" --check

If the portable installation exists and must be removed manually, first set
your normal user's default to an existing original queue, then run:
  sudo /bin/zsh /Library/Printers/HP178nwHeaderBuffer/uninstall.zsh

For the earlier investigation test installation, the rollback is:
  lpoptions -d HP_Color_Laser_MFP_178nw
  sudo /bin/zsh /Library/Printers/HP178nwHeaderTest/rollback.zsh

TEST STATUS AND LIMITS
The original filter preserved three raster samples byte for byte, and a native
two-page Preview job on the investigation Mac printed correctly with exactly
the same raster data as an earlier failing job. The earlier controlled matrix
also separated two successful complete-header cases from two failing split-
header cases. This is evidence for a useful workaround, not a measured
long-term reliability guarantee or a firmware fix.

The menu and graphical switch were checked in an isolated preview, including
On -> Off -> On and matching status labels. Queue-switch tests verify that
On/Off preserves active jobs, both queues and the exact filter. First-time
GUI installation and physical output still need verification on the other Mac.

This portable app is scoped to the HP 178nw and compatible existing AirPrint
profiles. It is not a generic fix for other printer models. The MacBook Air's
saved profiles are checked offline during development; installation and
physical output must still be verified on that Mac. CUPS marks PPD-based
drivers as deprecated, so this app does not promise compatibility with a
future macOS release that removes that mechanism.

SOURCES
Apple login items:
https://support.apple.com/guide/mac-help/open-items-automatically-when-you-log-in-mh15189/mac
CUPS filter interface and file permissions:
https://openprinting.github.io/cups/doc/api-filter.html
CUPS queue/profile management:
https://openprinting.github.io/cups/doc/man-lpadmin.html
