Skip to content

Add minimal settings profiles#60

Merged
aurorascharff merged 1 commit into
mainfrom
codex/minimal-settings-profiles
May 30, 2026
Merged

Add minimal settings profiles#60
aurorascharff merged 1 commit into
mainfrom
codex/minimal-settings-profiles

Conversation

@aurorascharff

Copy link
Copy Markdown
Owner

Summary

  • Add a Profiles settings pane for saving visual ClickLight setups.
  • Support applying, deleting, importing, and exporting profiles as JSON.
  • Keep profiles scoped to visual/click behavior only: hotkeys, launch at login, menu layout, permissions, and activity history are excluded.

Validation

  • Built locally with ./build-app.sh.
  • Installed and launched the rebuilt app locally for manual testing.

@aurorascharff aurorascharff linked an issue May 30, 2026 that may be closed by this pull request
@aurorascharff aurorascharff marked this pull request as ready for review May 30, 2026 15:44
Copilot AI review requested due to automatic review settings May 30, 2026 15:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new "Profiles" settings pane that lets users save, apply, delete, import, and export reusable visual setups (click visuals, laser pointer, live shortcut display). Hotkeys, launch-at-login, menu layout, and activity history are intentionally not part of profiles.

Changes:

  • New ClickProfileStore plus ClickSettingsProfile / ClickProfileSettings model that persists profiles to UserDefaults and supports JSON import/export with a versioned envelope.
  • New profilesPane in ClickLightSettingsView, a .profiles case in SettingsPane, and supporting save/apply/delete/export/import UI wiring.
  • AppDelegate and SettingsWindowController plumb the new ClickProfileStore into the settings view; several enums in SettingsStore gain Codable conformance so they can be serialized inside profiles.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Sources/ClickLight/ClickProfileStore.swift New profile model and ObservableObject store handling persistence, import, and export.
Sources/ClickLight/ClickLightSettingsView.swift Adds the Profiles pane UI and import/export panels; registers the new SettingsPane case.
Sources/ClickLight/SettingsStore.swift Adds Codable conformance to enums used by profile serialization.
Sources/ClickLight/SettingsWindowController.swift Accepts ClickProfileStore and forwards it to the SwiftUI settings view; adds applyProfile on the view model.
Sources/ClickLight/AppDelegate.swift Instantiates ClickProfileStore and passes it when constructing the settings window.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Sources/ClickLight/ClickProfileStore.swift
Comment thread Sources/ClickLight/ClickProfileStore.swift
@aurorascharff aurorascharff force-pushed the codex/minimal-settings-profiles branch from ae043a8 to c722230 Compare May 30, 2026 15:48
@aurorascharff aurorascharff force-pushed the codex/minimal-settings-profiles branch from c722230 to d7a8626 Compare May 30, 2026 15:50
@aurorascharff aurorascharff merged commit 7f791f5 into main May 30, 2026
2 checks passed
@aurorascharff aurorascharff deleted the codex/minimal-settings-profiles branch May 30, 2026 15:51
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.

[Feature]: Settings Profiles with export and import

2 participants