Files
printserver/openspec/changes/fix-colour-defaults-and-client-options/tasks.md
T
2026-10-20 07:30:09 +02:00

79 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tasks
## 1. PPD: Farbmodus-Default, Presets und Dokumentation
- [ ] 1.1 `assets/Brother HL-4150CDN/ppd/BR4150_2.PPD`: `*DefaultBRColorMode`
von `Normal` auf `None` ändern, alle eigenen Ergänzungen mit
`%`-Kommentar (Herkunft/Zweck) markieren.
Verifikation: `grep -n 'DefaultBRColorMode\|^% Modified' "assets/Brother HL-4150CDN/ppd/BR4150_2.PPD"`
zeigt `*DefaultBRColorMode: None` und den Kommentar.
- [ ] 1.2 PPD: sechs `APPrinterPreset`-Einträge ergänzen (Kombinationen
color/monochrome × low/normal/high gemäß Tabelle in `design.md`,
z. B. `*APPrinterPreset MonoNormal/Schwarz-Weiß Normal:
"*com.apple.print.preset.output-mode=monochrome
*com.apple.print.preset.quality=normal *BRPrintQuality=Black
*TonerSaveMode=False"`).
Verifikation: `grep -c '^\*APPrinterPreset' "assets/Brother HL-4150CDN/ppd/BR4150_2.PPD"`
ergibt 6, und nach einem Build listet
`lpoptions -p <queue> -l` weiterhin alle Optionen ohne
PPD-Warnung in `/var/log/cups/error_log`.
- [ ] 1.3 PPD: Choice `VividNoCIE` unter `BRColorMode` ergänzen
(`<</UseCIEColor false /BRColorMode 1>>setpagedevice`) und per
Testdruck gegen `None` vergleichen; nur behalten, wenn der Ausdruck
deutlich gesättigter ist.
Verifikation: `lpoptions -p <queue> -l` zeigt die Choice, die
Entscheidung (behalten/entfernen) ist im README-Auswertungs-Abschnitt
notiert.
- [ ] 1.4 README: Abschnitt „Farben sind blass" (Ursache `UseCIEColor`,
durchgeführte Testreihe mit `lp -o BRColorMode=…`,
Ergebnis `None`), Abschnitt „Änderungen an der Hersteller-PPD"
(welche Einträge ergänzt wurden und warum) und Abschnitt
„Optionen fehlen im macOS/iOS-Dialog" (nur IPP-Standardoptionen
sichtbar, PPD-Optionen über `PRINTER_OPTIONS`/CUPS-Web-UI/`lp`).
Verifikation: die im README genannten `lp`/`lpoptions`-Befehle
laufen unverändert gegen den laufenden Container.
## 2. entrypoint: `PRINTER_OPTIONS`
- [ ] 2.1 `entrypoint.sh`: `PRINTER_OPTIONS` (Standard leer) nach der
Queue-Erzeugung in Tokens `key=value` zerlegen und jedes per
`lpadmin -o` setzen, an derselben Stelle wie
`printer-is-shared`/`-D`/`-d`, bei jedem Start.
Verifikation: Start mit
`PRINTER_OPTIONS="BRColorMode=Vivid TonerSaveMode=False"` und
`lpoptions -p <queue> -l` zeigt `Vivid` und `True` als Default
(`*Vivid`, `*True`).
- [ ] 2.2 Fehler pro Token abfangen, damit `set -eu` den Start nicht
abbricht, und warnen.
Verifikation: Start mit `PRINTER_OPTIONS="NoSuchOption=Foo"` erzeugt
eine Warning-Zeile im Log, der Container erreicht
„ready: CUPS on 631/tcp" und `lpstat -r` meldet „scheduler is running".
- [ ] 2.3 README: neue Zeile in der Env-Var-Tabelle plus Kurzbeispiel unter
„Environment variables" (inkl. Hinweis `lpoptions -p <queue> -l` zur
Entdeckbarkeit der Namen).
Verifikation: das Beispiel aus der Tabelle in einen `podman run`-Befehl
übertragen, Start und `lpoptions`-Abfrage wie beschrieben.
## 3. Integrationstests am laufenden System
- [ ] 3.1 Image neu bauen und Container starten.
Verifikation: `podman build -t printserver:latest .` endet ohne Fehler,
das Log enthält „ready: CUPS on 631/tcp, mDNS on 5353/udp".
- [ ] 3.2 S/W-Druck aus dem macOS-Dialog (derselbe Farbjob wie zuvor).
Verifikation: Ausdruck ist schwarz/weiß – vorher kam er farbig heraus.
- [ ] 3.3 Farbdruck ohne weitere Optionen aus dem Dialog und per
`lp -d <queue> test.pdf`.
Verifikation: Ausdruck ist so gesättigt wie der bisherige
`BRColorMode=None`-Testdruck; `lpoptions -p <queue> -l` zeigt `*None`
als Farbmodus-Default.
- [ ] 3.4 Qualitätsstufen prüfen.
Verifikation: `lp -o print-quality=2 test.pdf` (draft, sichtbar
tonersparender) und `lp -o print-quality=5 test.pdf` (high, `CAPT`
SuperFine) erzeugen unterscheidbare Ausdrucke gegenüber
`print-quality=3`.
## Workflow follow-up
- Nach Review und grünem Durchlauf die Änderung mit `/opsx-archive`
archivieren und das Ergebnis prüfen.