No description
  • Python 73%
  • Nix 15.7%
  • PowerShell 11.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Alexander Stumpe bb6335c1ae
All checks were successful
wiki / sync (push) Successful in 14s
build / build (push) Successful in 1m11s
fix: include all OKI driver language subfolders, not just English
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.
2026-08-20 16:48:25 +02:00
.forgejo fix(wiki): remove characters flagged by Forgejo's actual confusables table 2026-08-10 18:09:15 +02:00
docs fix: include all OKI driver language subfolders, not just English 2026-08-20 16:48:25 +02:00
lib fix: resolve pnputil via Sysnative to survive Intune's 32-bit PowerShell host 2026-08-11 15:54:44 +02:00
nix feat: add OKI MC8x3/ES84x3 vendor via reconstructed SFX extraction 2026-08-11 12:00:00 +02:00
tools feat: add OKI MC8x3/ES84x3 vendor via reconstructed SFX extraction 2026-08-11 12:00:00 +02:00
vendors fix: include all OKI driver language subfolders, not just English 2026-08-20 16:48:25 +02:00
.envrc Initial commit: Nix-based Intune Win32 packaging for printer drivers 2026-08-10 14:09:07 +02:00
.gitignore Initial commit: Nix-based Intune Win32 packaging for printer drivers 2026-08-10 14:09:07 +02:00
CONTRIBUTING.md fix(wiki): avoid hyphens in wiki page titles 2026-08-10 17:51:31 +02:00
flake.lock fix: pin nixpkgs to a stable branch that still supports x86_64-darwin 2026-08-10 18:22:11 +02:00
flake.nix feat: add OKI MC8x3/ES84x3 vendor via reconstructed SFX extraction 2026-08-11 12:00:00 +02:00
LICENSE Initial commit: Nix-based Intune Win32 packaging for printer drivers 2026-08-10 14:09:07 +02:00
README.md feat: add OKI MC8x3/ES84x3 vendor via reconstructed SFX extraction 2026-08-11 12:00:00 +02:00

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 .intunewin per 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 .intunewin format, 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.