Skip to content

Implement Settings UI for Hotkey Customization, Launch at Login, and Model Download Status #13

Description

@srlynch1

Summary

Implement the missing Settings UI features identified during UI test expansion (issue #11).

These were marked as OUT OF SCOPE in the UI test expansion because the underlying UI doesn't exist yet.

Missing Requirements

Requirement Description Priority
FR-009 Hotkey customization UI is accessible P2
FR-010 "Launch at login" toggle works P2
FR-011 Language model download status is displayed P2

User Stories

Hotkey Customization (FR-009)

As a user, I want to customize the global hotkey for triggering recording so that I can use a key combination that doesn't conflict with my other applications.

Acceptance Criteria:

  • Settings window has a "Hotkey" section
  • Current hotkey is displayed (default: Cmd+Ctrl+Space)
  • User can click to record a new hotkey
  • Invalid/reserved hotkeys show error message
  • New hotkey is persisted and takes effect immediately

Launch at Login (FR-010)

As a user, I want to enable/disable launching the app at login so that the app is ready when I need it.

Acceptance Criteria:

  • Settings window has a "Launch at Login" toggle
  • Toggle reflects current LaunchAgent status
  • Enabling creates/updates LaunchAgent plist
  • Disabling removes LaunchAgent
  • State persists across app restarts

Model Download Status (FR-011)

As a user, I want to see the download status of language models so that I know when I can use different languages.

Acceptance Criteria:

  • Settings Language tab shows download status for each language
  • Downloaded models show checkmark
  • Not downloaded models show download button
  • Active download shows progress indicator
  • Download errors show retry option

Technical Notes

  • Hotkey registration uses Carbon APIs (existing HotkeyService)
  • Launch at Login uses SMAppService or LaunchAgent plist
  • Model download status requires FluidAudio SDK model management

Related

Labels

enhancement, settings, P2

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions