Skip to content

feat(installer): Botloft's own look, with no third-party names - #45

Merged
httpsphl merged 1 commit into
mainfrom
feat/installer-brand
Sep 30, 2026
Merged

httpsphl merged 1 commit into
mainfrom
feat/installer-brand

Conversation

@httpsphl

Copy link
Copy Markdown
Owner

What

The installer used Tauri's default NSIS setup with nothing of ours, so it showed third-party names and art. Now:

  • Icon: the installer and the uninstaller use the app icon instead of NSIS's generic one.
  • Welcome and finish pages: a black side image with the mascot and "Botloft" (windows/installer-sidebar.bmp, 164×314).
  • Other pages: the mascot in the header, on the right (windows/installer-header.bmp, 150×57, with MUI_HEADERIMAGE_RIGHT in the hooks file).
  • Footer: "Copyright 2026 Phelipe Lorran" (bundle.copyright) instead of "Nullsoft Install System v3.11". The same text goes into the file properties of Botloft.exe and the setup.
  • Installed apps: Botloft as the publisher instead of "github", written by a new NSIS_HOOK_POSTINSTALL.

Both images come from app-icon.svg without its black square.

Why the publisher is set in a hook

bundle.publisher stays unset on purpose. Tauri also names the registry key that keeps the install folder after it (Software\<publisher>\Botloft, today github, the second part of the identifier). During an update, the new installer reads that key to run the old uninstaller with _?=<folder>. With a new name the key would be empty on the first update, and the old uninstaller would run without its folder, possibly while the new files are written. The hook changes only what Installed apps shows. The one visible leftover is "github" as the company in Botloft.exe's file properties.

Spec 15.4 describes it.

Tests

  • pnpm bundle built Botloft_0.5.0_x64-setup.exe; only the updater signature step failed locally, since the private key lives in CI.
  • Opened the setup and looked at the welcome page and the folder page (side image, header, footer), then closed it before installing. The setup's icon is the app icon.

Still to try by hand

  • A full install: the finish page, and Botloft as the publisher in Installed apps.
  • An update from 0.5.0 (the publisher key and the install folder carry over).
  • Uninstall: the confirm page with the header, and the uninstaller's icon.

The installer and uninstaller use the app icon instead of NSIS's own; the
welcome and finish pages get a black side image with the mascot and the
name, and the other pages the mascot in the header, on the right. Both
images come from app-icon.svg without its square.

The footer shows the copyright instead of "Nullsoft Install System", and
a post-install hook writes Botloft as the publisher in Installed apps.
bundle.publisher stays unset on purpose: Tauri also names the registry
key that keeps the install folder after it, so changing it would make the
first update of an existing install run the old uninstaller without its
folder. Spec 15.4 follows.
@httpsphl
httpsphl enabled auto-merge September 30, 2026 01:45
@httpsphl
httpsphl merged commit bab1b37 into main Sep 30, 2026
3 checks passed
@httpsphl httpsphl mentioned this pull request Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant