From 8e10dd21fd9396ef932a7076522606f36818d51a Mon Sep 17 00:00:00 2001 From: winebarrel Date: Sun, 9 Aug 2026 17:52:18 +0900 Subject: [PATCH] Trim the README to what a user needs Binaries are what gets distributed now, so building from source, the preview harness, the thumbnail notes, the release procedure and the license section are no longer what someone landing here is looking for. The license still lives in LICENSE, which GitHub surfaces on its own, and the release steps are in the Makefile. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 92 ------------------------------------------------------- 1 file changed, 92 deletions(-) diff --git a/README.md b/README.md index 9cf53b0..51c69e9 100644 --- a/README.md +++ b/README.md @@ -8,23 +8,6 @@ cycle through the spectrum. Requires macOS 13 or later. Universal (Apple silicon and Intel). -## Install - -```sh -make install -``` - -Then open System Settings → Screen Saver and pick **Macstify**. - -macOS keeps the loaded bundle cached, so when you install a newer build over an older one, the old -version may keep running. Force a reload with: - -```sh -killall legacyScreenSaver -``` - -and quit and reopen System Settings. - ## Options ![Options](docs/options.png) @@ -39,78 +22,3 @@ and quit and reopen System Settings. | Color speed | 1.00× | 0.0–3.0 | Hue cycling rate. `0.00×` freezes each shape on its starting color. | Settings are stored per user through `ScreenSaverDefaults` under `jp.winebarrel.Macstify`. - -## Development - -Built in Swift 6 language mode, so strict concurrency checking is on. Everything that touches AppKit -runs on the main actor; `MacstifyEngine` stays free of actor isolation, which is what lets the -snapshot path drive it directly. - -`Sources/MacstifyEngine.swift` holds the simulation and drawing, and depends on nothing but a -`CGRect` and a `CGContext`. `MacstifyPreview` is a development harness around it: - -```sh -make preview # build it and open the live window - -P=build/Build/Products/Release/MacstifyPreview.app/Contents/MacOS/MacstifyPreview - -$P # live window -$P --options # live window with the Options sheet open -$P --snapshot out.png --frames 900 # render frames offscreen, write a PNG -$P --snapshot out.png --preview # as the small System Settings thumbnail -$P --snapshot out.png --speed 4 # override the saved speed for one render -$P --snapshot out.png --options # render the Options sheet itself -``` - -The live window hosts the real `MacstifyView`; snapshots drive the engine directly, which is how -`--speed` applies to a single render without touching your saved settings. `--size` is in points and -snapshots are written at 2x, as on a Retina display. - -The screenshots above were produced with `--snapshot`. - -CI builds and analyses both schemes and runs the same checks `make lint` and `make format` run -locally. - -### Thumbnail - -The picker in System Settings shows `Contents/Resources/thumbnail.png` and `thumbnail@2x.png` -(90×58 and 180×116, the sizes Apple's own savers use). Without them macOS substitutes a generic -placeholder image. `COMBINE_HIDPI_IMAGES` is off so the two stay separate PNGs instead of being -merged into a single `thumbnail.tiff`, which the picker does not pick up. - -Trail spacing is proportional to the screen's shorter edge while line width is absolute, so a -render this small collapses into a fat line at the stored speed. `--speed` compensates: - -```sh -$P --snapshot Resources/thumbnail@2x.png --preview --size 90x58 --speed 4 --frames 600 -sips -Z 90 Resources/thumbnail@2x.png --out Resources/thumbnail.png -``` - -## Releasing - -`make install` signs with whatever certificate the project is configured for, which is enough for a -saver you build and install yourself. Copying that bundle to another Mac is not: it arrives -quarantined, and Gatekeeper refuses anything without a Developer ID signature and a notarization -ticket. - -```sh -make release -``` - -builds with the Developer ID identity and a secure timestamp, submits the bundle to Apple's notary -service, staples the returned ticket, and writes `dist/Macstify.zip` alongside a SHA-256 -`dist/checksum.txt`. The zip that gets submitted and the zip that gets distributed are different -files — stapling applies to the bundle, so the distributable has to be re-zipped afterwards. - -It needs a `Developer ID Application` certificate in the keychain and notary credentials stored -under the profile name `macstify`: - -```sh -xcrun notarytool store-credentials macstify --apple-id you@example.com --team-id TEAMID -``` - -Override the defaults with `make release CODESIGN_IDENTITY="..." NOTARY_PROFILE="..."`. - -## License - -[CC0 1.0 Universal](LICENSE).