diff --git a/Makefile b/Makefile index 355651f..74cffd7 100644 --- a/Makefile +++ b/Makefile @@ -100,11 +100,15 @@ $(APP)/Contents/Info.plist: Resources/Info.plist mkdir -p "$(APP)/Contents" cp "$<" "$@" +$(APP)/Contents/Resources/AppIcon.icns: Resources/AppIcon.icns + mkdir -p "$(APP)/Contents/Resources" + cp "$<" "$@" + $(CLI): $(CLI_SOURCES) $(CONFIG_LIBRARY) Makefile mkdir -p "$(APP)/Contents/MacOS" $(SWIFT) -target $(ARCH)-apple-macosx15.0 -swift-version 6 -parse-as-library -O $(DEBUG_FLAGS) $(CLI_SOURCES) $(CONFIG_FLAGS) -framework AppKit -o $@ -$(BUNDLE_STAMP): $(PLAYER) $(BOOTSTRAP) $(CLI) $(APP)/Contents/Info.plist $(APP)/Contents/Resources/TOMLDecoder-LICENSE.txt $(NATIVE_STAMP) $(HELPER_STAMP) Scripts/bundle.py +$(BUNDLE_STAMP): $(PLAYER) $(BOOTSTRAP) $(CLI) $(APP)/Contents/Info.plist $(APP)/Contents/Resources/AppIcon.icns $(APP)/Contents/Resources/TOMLDecoder-LICENSE.txt $(NATIVE_STAMP) $(HELPER_STAMP) Scripts/bundle.py python3 Scripts/bundle.py --app "$(APP)" --dependencies "$(DEPENDENCY_ROOT)" --signing-identity "$(SIGNING_IDENTITY)" touch "$@" diff --git a/README.md b/README.md index 406d357..d764d40 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ The first build downloads dependencies. Quit Terebi before updating, then run `m To run without installing, use `make run`. The built `.build/terebi.app` is self-contained; no separate FFmpeg, Python or yt-dlp installation is needed at runtime. Builds are ad-hoc signed, not notarized. Bundled licenses and source archives are in the app's Resources; public binary redistribution needs a separate license audit. +The television app icon is bundled from `Resources/AppIcon.icns`; its editable vector source is `Resources/AppIcon.svg`. + ## Usage - **Local files:** use **⌘O**, drag files onto the player, or choose Finder's **Open With**. Multiple files form a queue in natural filename order, with automatic advance. Use **View → Show Queue** to play, reorder or remove items; **+ → file icon** or dropping files onto the sidebar appends them. The queue lasts only for the session; opening other media replaces it. diff --git a/Resources/AppIcon.icns b/Resources/AppIcon.icns new file mode 100644 index 0000000..8fec067 Binary files /dev/null and b/Resources/AppIcon.icns differ diff --git a/Resources/AppIcon.svg b/Resources/AppIcon.svg new file mode 100644 index 0000000..c949748 --- /dev/null +++ b/Resources/AppIcon.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Info.plist b/Resources/Info.plist index c0ec001..1e1902d 100644 --- a/Resources/Info.plist +++ b/Resources/Info.plist @@ -6,6 +6,7 @@ CFBundleIdentifierlocal.personal.terebi CFBundleNameTerebi CFBundleDisplayNameTerebi + CFBundleIconFileAppIcon CFBundlePackageTypeAPPL CFBundleShortVersionString0.1 LSMinimumSystemVersion15.0