Skip to content

Restore reliable uv/Tk macOS packaging and double-click installation #47

Open

Description

@JoshCLWren

Problem

The current main refactor removed the earlier macOS app-bundle/Tk bootstrap work:

  • cdisplayagain-macos.spec was deleted.
  • tk_bootstrap.py was deleted.
  • pyproject.toml no longer prefers uv-managed Python.
  • Makefile deploy now builds a plain one-file executable.
  • macOS install-desktop only prints instructions; it does not register .cbz/.cbr with Launch Services.
  • README setup reverted to brew install python-tk.

This risks bringing back the original macOS failure where uv-managed Python has _tkinter but cannot locate Tcl/Tk runtime files. It also means a clean macOS checkout cannot reliably provide double-click opening through the documented one-command deployment.

Fix

Choose and document one supported macOS distribution path:

  1. Build a real .app bundle with Tcl/Tk resources, the existing icon, CBZ/CBR document declarations, and a stable bundle identifier; or
  2. Explicitly require a system Python/packaged runtime and provide a tested Launch Services registration command.

The preferred path should remain compatible with the project’s uv-first setup and should not silently depend on a developer’s working directory or manually installed Python packages.

Tests/manual verification

  • Run the documented setup on a clean macOS environment.
  • Launch a CBZ and CBR by Finder double-click.
  • Launch a file whose path contains spaces and Unicode.
  • Launch when the app is already running.
  • Verify the existing cdisplayagain icon appears.
  • Verify the app logs to a writable user directory.
  • Inspect the final bundle’s Info.plist and confirm CBZ/CBR document declarations.

Done criteria

  • A fresh macOS install can follow the README and open CBZ/CBR files by double-click.
  • No brew install python-tk workaround is required if uv-managed Python is the supported path.
  • Launch Services registration is repeatable and documented.
  • CLI launching still works.

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions