Skip to content

Add system, light and dark appearance choices - #13

Closed
brzvsk wants to merge 1 commit into
tarikbc:mainfrom
brzvsk:feat/appearance-choice
Closed

brzvsk wants to merge 1 commit into
tarikbc:mainfrom
brzvsk:feat/appearance-choice

Conversation

@brzvsk

@brzvsk brzvsk commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

What this changes

Replaces Always Use Dark Shelf with Follow System / Light / Dark. The choice applies to the shelf, its modal windows, Paste Stack and its editor, and Settings. Existing Pro Dark users migrate to Dark; other users keep Follow System. Saved new choices take precedence over the legacy flag.

Independent PR; no merge dependencies. Paste Stack is retained.

How you tested it

  • Compiled and ran Scripts/Tests/AppearanceTests.swift with the real Copy/Settings/SettingsStore.swift: both legacy values, all saved choices, restart persistence, invalid values, callback behavior and NSAppearance mappings passed.

  • Command: swiftc -parse-as-library Copy/Settings/SettingsStore.swift Scripts/Tests/AppearanceTests.swift -o /tmp/copy-appearance-tests && /tmp/copy-appearance-tests.

  • Xcode Debug build and git diff --check passed.

  • Every commit is signed off.

  • All three SPM pins are preserved.

Signed-off-by: Nikolai Berezovskii <nikolai@brzv.sk>
@tarikbc

tarikbc commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Merged as b268509.

Rebased onto current main. The conflict was your shelfTheme meeting the favoritesEnabled setting from #15, so both are in now, and the migration from the old shelfProDark flag is intact.

Two small things I changed. I put a doc comment back on the new property, since the one explaining the pro dark look got dropped with the old boolean. And I removed Scripts/Tests/AppearanceTests.swift. Your logic there was right, but nothing compiles that directory: the Copy target's sources are Copy and Copy/Assets.xcassets, and CI runs swift test against CopyCore only. The app layer has no test target at all, which is my gap to fix, not yours.

Closing because the rebase changed the SHAs. Thanks!

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