Skip to content

build a Windows installer for nontechnical distribution #50

Description

@laceyp99

Summary

Add a Windows installer for murmur so nontechnical users can install, launch, update, and uninstall the app without manually managing the PyInstaller folder.

Current distribution

The validated packaged workflow is currently a ZIP containing the complete dist\murmur folder. Users extract it to:

%LOCALAPPDATA%\Programs\murmur

They launch murmur.exe directly or create an optional Desktop shortcut. The application’s Start with Windows setting manages automatic launch through the current user’s Windows Run key.

Goal

Turn that working per-user ZIP workflow into a repeatable installer experience while preserving the existing runtime behavior and user data.

Requirements

  • Install the complete packaged folder without separating murmur.exe from its supporting files.
  • Install per-user by default under %LOCALAPPDATA%\Programs\murmur.
  • Create a Start Menu shortcut and offer an optional Desktop shortcut.
  • Preserve %APPDATA%\murmur during upgrades and uninstall.
  • Keep the existing in-app Start with Windows setting as the source of truth for autostart.
  • Provide a clean uninstall path.
  • Handle upgrades while murmur is running.
  • Retain packaged metadata, icon, notifications, CUDA support, Ollama support, and first-run model download behavior.
  • Validate shortcut targets, registry behavior, upgrade preservation, and uninstall boundaries.

Options

Option 1: Inno Setup

Use an Inno Setup script to install the existing onedir artifact, create shortcuts, and provide uninstall support. This is likely the simplest first installer because it fits a traditional Windows executable folder and supports per-user installation.

Option 2: MSIX

Package the application as MSIX for stronger installation and update boundaries. First verify compatibility with tray behavior, user-writable AppData, Windows notifications, autostart, CUDA DLLs, and local model caches.

Option 3: Winget or a scripted ZIP installer

Publish the ZIP through a package manager or provide a small installer script. This reduces installer development but provides a less familiar setup and uninstall experience.

Recommendation

Start with Inno Setup around the existing onedir build. Keep the application payload unchanged, install it under %LOCALAPPDATA%\Programs\murmur, create Start Menu and optional Desktop shortcuts, and leave %APPDATA%\murmur untouched during uninstall. Consider MSIX later if update distribution and Windows package management become priorities.

Suggested implementation

  1. Add an installer definition that consumes dist\murmur as a complete directory.
  2. Add per-user installation and shortcut configuration.
  3. Add upgrade behavior that closes or detects a running murmur process safely.
  4. Verify that autostart points to the installed executable and is removed or repaired appropriately when the install location changes.
  5. Add installer validation to the release checklist.
  6. Document installation, upgrade, uninstall, and rollback behavior.

Acceptance criteria

  • A nontechnical user can install murmur from a release artifact and launch it from the Start Menu.
  • The optional Desktop shortcut works.
  • The complete packaged payload remains together after installation.
  • Existing settings, vocabulary, training data, model cache, and consent state survive an upgrade.
  • Uninstall removes installed application files and shortcuts but preserves user data unless the user explicitly chooses otherwise.
  • Packaged notifications, dictation, clipboard delivery, CUDA/GPU transcription, Ollama cleanup, and autostart remain functional after installation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions