Skip to content

Give Conjure a real app icon - #6

Merged
TheDaveCalaz merged 1 commit into
mainfrom
claude/app-icon
Aug 14, 2026
Merged

TheDaveCalaz merged 1 commit into
mainfrom
claude/app-icon

Conversation

@TheDaveCalaz

Copy link
Copy Markdown
Owner

Summary

  • Replaces PyInstaller's generic default icon with a custom one: a wand + spark badge in purple/gold, matching the "Conjure" name.
  • assets/icon.ico (multi-resolution: 16/24/32/48/64/128/256) and assets/icon.png are generated with Pillow (script not committed, output is).
  • The PyInstaller build command (both README's manual steps and the CI workflow) now passes --icon=assets/icon.ico, so the built .exe carries it in Explorer/taskbar.
  • conjure.py also sets the window icon directly for a source run (python conjure.py): iconbitmap with the .ico on Windows, iconphoto with the .png elsewhere — both best-effort, silently skipped if the assets folder or platform doesn't support it, so it can never crash the app.

Test plan

  • python -m unittest tests.test_conjure tests.test_wizard -v — 48/48 passing (no core.py/wizard.py logic touched)
  • Verified headless (xvfb-run) that the source-run icon-setting code doesn't raise on Linux, where it takes the iconphoto fallback path
  • Visually checked the icon at 16/32/48/64px — reads clearly as a wand+sparkle from 32px up

Generated by Claude Code

Adds assets/icon.ico (multi-resolution) and assets/icon.png -- a wand
and spark badge in purple/gold, matching the "Conjure" name. Wired in
two places:
  - PyInstaller build (README's manual steps and the CI workflow) now
    passes --icon=assets/icon.ico, so the built .exe carries it in
    Explorer and the taskbar.
  - conjure.py sets the window icon directly for a source run
    (python conjure.py): iconbitmap with the .ico on Windows, iconphoto
    with the .png elsewhere, both best-effort and silently skipped if
    the assets folder or platform doesn't support it.

Verified headless (xvfb) that the source-run icon path doesn't raise
on Linux (takes the iconphoto fallback), and the full test suite still
passes (48/48) since this touches no core.py/wizard.py logic.
@TheDaveCalaz
TheDaveCalaz merged commit 2d09dd0 into main Aug 14, 2026
2 checks passed
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.

2 participants