- Python 73%
- Nix 15.7%
- PowerShell 11.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Real-world OKI Install.log from a German-locale device: pnputil failed with 'file not found' staging OKW3X058.INF. Root cause: the INF resolves LocaleSubDir/CapSubDir via layered [Strings.<LCID>] sections keyed to the target machine's own Windows UI language (German -> DEU, not the build-time default ENU) - files.json only included the ENU subfolder, so any non-English-locale Windows install was missing files it needed. Regenerated files.json from the real reference extraction to include all 23 language subfolders (still dropping i386/, which genuinely isn't needed). Verified all 327 manifest hashes resolve against the real SFX archive and match the reference extraction byte-for-byte. |
||
| .forgejo | ||
| docs | ||
| lib | ||
| nix | ||
| tools | ||
| vendors | ||
| .envrc | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
intune-printer-packages
Nix build pipeline that packages printer drivers into reusable Microsoft
Intune Win32 (.intunewin) apps — one package per driver series, deployed
to as many printers as you like with per-printer arguments at install time.
🎯 What it does
- 📦 One
.intunewinper driver series (e.g. HP UPD PCL6, UTAX/Kyocera KX), not per printer — build once, reuse it for every printer that uses that driver. - 🖨 Printer identity (name, IP, model) is supplied as install-command arguments when you create the Win32 app in Intune, not baked into the package.
- 🔍 Detection is a plain registry-key check — no detection script needed per printer.
- ❄ Runs everywhere Nix does — Linux and macOS, x86_64 and ARM alike —
including a from-scratch reimplementation of the
.intunewinformat, so there's no Windows build agent anywhere in the pipeline. - 🔒 Driver binaries are fetched from the vendor at build time and pinned by hash — never committed to this repo.
📖 Documentation
Everything else lives on this repo's Wiki
— architecture and the .intunewin format, building and pinning driver
hashes, deploying to Intune, adding a new vendor, and the CI/release setup.
Kept in sync automatically from this repo's docs/ folder on every push to
main.
⚡ Quick start
nix develop # or: direnv allow
nix build .#all # every vendor/series
See the Wiki's Building page for pinning driver hashes, Deploying
for the Intune-side setup, and Supported Printers for which -Model
values each vendor accepts.
📜 License
Repository tooling is MIT-licensed. Driver binaries are fetched from vendors at build time under their own license terms and are not redistributed by this repository.