Native NSPrintPanel bound to the selected CUPS queue via PMPrinterCreateFromPrinterID → PMSessionSetCurrentPMPrinter → session defaults — never System Settings, CUPS web UI, or NSWorkspace (#188).
Default button “Use Settings” (settings capture, not print); cancel → nil, not an error.
NSPrinter(name: displayName) fallback (from lpoptionsprinter-info) when PM binding fails; PMRelease on every path via defer.
UITestHooks panel stub (ICCERY_TEST_PRINT_PANEL=ok|cancel + PANEL_OPTIONS/PANEL_PRINTER) and ICCERY_CUPS_BIN_DIR for mock CUPS binaries — XCUITest can't drive the modal.
Layers ②–⑥ (ColorSync suppression + capture) land in issue 14 between binding and runModal.
Tests: PrintPanelStubTests cover cancel→nil, ok→result, default printer mapping. Panel-on-hardware PDE check is the M3 hardware gate.
Native `NSPrintPanel` bound to the selected CUPS queue via `PMPrinterCreateFromPrinterID` → `PMSessionSetCurrentPMPrinter` → session defaults — never System Settings, CUPS web UI, or `NSWorkspace` (#188).
- Default button **“Use Settings”** (settings capture, not print); cancel → `nil`, not an error.
- `NSPrinter(name: displayName)` fallback (from `lpoptions` `printer-info`) when PM binding fails; `PMRelease` on every path via `defer`.
- `UITestHooks` panel stub (`ICCERY_TEST_PRINT_PANEL=ok|cancel` + `PANEL_OPTIONS`/`PANEL_PRINTER`) and `ICCERY_CUPS_BIN_DIR` for mock CUPS binaries — XCUITest can't drive the modal.
- Layers ②–⑥ (ColorSync suppression + capture) land in issue 14 between binding and `runModal`.
Tests: `PrintPanelStubTests` cover cancel→nil, ok→result, default printer mapping. Panel-on-hardware PDE check is the M3 hardware gate.
Closes #13.
Generated with [Devin](https://devin.ai)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Native
NSPrintPanelbound to the selected CUPS queue viaPMPrinterCreateFromPrinterID→PMSessionSetCurrentPMPrinter→ session defaults — never System Settings, CUPS web UI, orNSWorkspace(#188).nil, not an error.NSPrinter(name: displayName)fallback (fromlpoptionsprinter-info) when PM binding fails;PMReleaseon every path viadefer.UITestHookspanel stub (ICCERY_TEST_PRINT_PANEL=ok|cancel+PANEL_OPTIONS/PANEL_PRINTER) andICCERY_CUPS_BIN_DIRfor mock CUPS binaries — XCUITest can't drive the modal.runModal.Tests:
PrintPanelStubTestscover cancel→nil, ok→result, default printer mapping. Panel-on-hardware PDE check is the M3 hardware gate.Closes #13.
Generated with Devin