Skip to content

NID-501: Add MenuBarIconStyle.monochrome for minimalist volume-independent icon - #425

Closed
jfcanon wants to merge 1 commit into
ronitsingh10:mainfrom
jfcanon:feature/nid-501-monochrome-icon-style
Closed

jfcanon wants to merge 1 commit into
ronitsingh10:mainfrom
jfcanon:feature/nid-501-monochrome-icon-style

Conversation

@jfcanon

@jfcanon jfcanon commented Aug 27, 2026

Copy link
Copy Markdown

Feature Extension: New MenuBarIconStyle.monochrome

Adds a new MenuBarIconStyle.monochrome case for a minimalist, volume-independent menu bar icon.

Changes

  • SettingsUITypes.swift — Added .monochrome = "Monochrome" enum case with speaker.fill icon name
  • MenuBarIconState.swift — .monochrome renders speaker.fill when unmuted and .speakerMuted when muted (static appearance at all volume levels)
  • SettingsManager.swift — Bumped Settings.version from 12 → 13

Settings Migration

  • Old v12 settings files decode correctly (backward compatible)
  • The new enum case is additive; no fields removed or renamed
  • A settings-v13.json fixture was created

Tests Added

  • 3 new tests for monochrome style behavior
  • 5 new tests for v12→v13 migration
  • Updated version assertion from 12 → 13

Risk Assessment

  • Settings schema: Additive change (new enum case). No existing users break.
  • Core Audio: No changes to audio engine, process taps, or routing.
  • Scope: Self-contained menu bar icon rendering.

…ndent icon

- New .monochrome enum case with speaker.fill icon
- Renders speaker.fill when unmuted, speaker.slash.fill when muted
- Volume-independent (static appearance at all levels)
- Settings version bumped 12 → 13
- Added settings-v13.json fixture
- 8 new unit tests for style and migration
@jfcanon

jfcanon commented Aug 28, 2026

Copy link
Copy Markdown
Author

Closing — this was mis-targeted at the upstream repo. Per our team's decision this work belongs in our own fork (jfcanon/FineTune) and PRs should target our account only. Re-opening the same branch as an internal PR against jfcanon/FineTune. Apologies for the noise.

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.

1 participant