@deltaroboticsinc/protoboard
v0.1.0
Published
Register the .protoboard file type with its logo and a double-click handler across Windows, macOS, and Linux.
Maintainers
Readme
protoboard-desktop
Downloadable, self-hostable build of Protoboard for desktop or sandbox use.
Until the full desktop build lands, this repo ships @deltaroboticsinc/protoboard — a one-command installer that registers the .protoboard file type with its logo and a double-click handler on Windows, macOS, and Linux.
Quickstart
npx @deltaroboticsinc/protoboard installThat's it. Save a .protoboard file anywhere (Desktop, Downloads, wherever) and it will show the Protoboard mark. Double-clicking opens the board in your default browser at https://alpha.protoboard.xyz/open?boardId=....
To remove:
npx @deltaroboticsinc/protoboard uninstallNo admin/root required. All registration is per-user.
How it works
- Windows — writes per-user keys under
HKCU:\Software\Classes; copiesProtoboardFile.icoand a launcherOpen-Protoboard.ps1into%LOCALAPPDATA%\Protoboard\. Double-click runs the launcher, which readsboard.metadata.idfrom the JSON and opens the browser. - macOS — installs a tiny
Protoboard.appbundle into~/Applications/declaring thexyz.protoboard.fileUTI;iconutilassembles.icnsfrom the bundled PNGs; LaunchServices picks it up vialsregister. Ifdutiis installed, also sets as the default handler. - Linux — installs an XDG MIME definition, a
.desktopentry, and mimetype icons viaxdg-icon-resource.xdg-mime defaultmakes it the default handler.
The .protoboard format itself doesn't change — it's still plain JSON with a custom extension.
For maintainers
pnpm install
pnpm run generate-icons # rebuilds .ico + PNGs from assets/PB Logo N-200.svgGenerated icons (assets/ProtoboardFile.ico, assets/icons/*.png) are checked into the repo so install-time has no native build step. .icns is assembled on the user's mac at install time via Apple's iconutil, so it doesn't need to be checked in.
Publishing
Tag a version and push:
git tag v0.1.0 && git push origin v0.1.0The Publish to npm workflow uses the repo's NPM_TOKEN secret to publish to @deltaroboticsinc/protoboard on npmjs.com. First-time setup:
- NPM org
deltaroboticsincalready exists. - Generate an automation token at npmjs.com and add it as
NPM_TOKENin this repo's GitHub secrets.
Repo layout
assets/ # SVG source + generated icons (committed)
installers/
windows/ # install.ps1, uninstall.ps1, Open-Protoboard.ps1
macos/ # install.sh, uninstall.sh, Protoboard.app/
linux/ # install.sh, uninstall.sh, .xml, .desktop, launcher
scripts/generate-icons.mjs
cli.js # the published bin: detects OS and dispatchesTroubleshooting
- Windows: icon doesn't update in Explorer. Sign out/in, or run
ie4uinit.exe -show. The installer triggersSHChangeNotifybut Explorer occasionally caches aggressively. - macOS: Finder still shows the JSON icon. Right-click any
.protoboardfile → Get Info → Open with → Protoboard → Change All. Or installduti(brew install duti) and re-run the installer. - Linux: handler doesn't open. Confirm
~/.local/binis onPATH, or checkxdg-mime query default application/x-protoboard+jsonreturnsprotoboard-open.desktop.
