Skip to content

feat: configurable custom audio feedback sounds#768

Closed
boeserwolf wants to merge 2 commits intocjpais:mainfrom
boeserwolf:feature/custom-audio-feedback-files
Closed

feat: configurable custom audio feedback sounds#768
boeserwolf wants to merge 2 commits intocjpais:mainfrom
boeserwolf:feature/custom-audio-feedback-files

Conversation

@boeserwolf
Copy link
Copy Markdown
Contributor

@boeserwolf boeserwolf commented Feb 10, 2026

Before Submitting This PR

Please confirm you have done the following:

If this is a feature or change that was previously closed/rejected:

  • I have explained in the description below why this should be reconsidered
  • I have gathered community feedback (link to discussion below)

Human Written Description

I wanted to keep Handy’s existing audio feedback behavior, but make it possible to use personal sounds for recording start and stop.
This adds optional custom start/stop sound file selection in settings without removing the built-in sound themes.
The goal is to make feedback sounds more flexible while keeping the default flow unchanged for existing users.

Related Issues/Discussions

Fixes #
Discussion:

Community Feedback

No separate discussion thread yet.
This change was tested directly in a real Linux desktop workflow and is backward compatible with existing sound themes.

Testing

  • Verified built-in themes still work as before.
  • Enabled audio feedback and selected custom file for Start.
  • Enabled audio feedback and selected custom file for Stop.
  • Confirmed custom sounds play on recording start/stop.
  • Confirmed removing custom files falls back to built-in theme sounds.
  • Confirmed preview controls work for both custom and built-in sounds.
  • Built and tested desktop app locally (tauri build + AppImage run).

Screenshots/Videos (if applicable)

N/A

AI Assistance

  • No AI was used in this PR
  • AI was used (please describe below)

If AI was used:

  • Tools used: Codex (gpt-5.3-codex)
  • How extensively: Assisted with implementation, refactoring, and PR text formatting.

@cjpais
Copy link
Copy Markdown
Owner

cjpais commented Feb 11, 2026

I'll review this when I get a chance, but if you could, could you rebase?

@boeserwolf boeserwolf force-pushed the feature/custom-audio-feedback-files branch from 739c925 to 05afcc4 Compare February 11, 2026 10:50
@boeserwolf boeserwolf force-pushed the feature/custom-audio-feedback-files branch from 05afcc4 to bde43cd Compare February 11, 2026 10:57
@boeserwolf
Copy link
Copy Markdown
Contributor Author

Thanks a lot! Rebase is ready.

DylanBricar added a commit to DylanBricar/Phonara that referenced this pull request Mar 11, 2026
Implemented PRs:
- cjpais#991: Windows mic permission onboarding (registry + UI)
- cjpais#381: Local file transcription (WAV, file picker, 16kHz resampling)
- cjpais#704: LLM template variables ($time_local, $date, $language)
- cjpais#455: Text replacements (exact find/replace, case-sensitive, 7 tests)
- cjpais#874: Custom recordings directory (folder picker + validation)
- cjpais#768: Custom audio feedback sounds (wav/mp3/ogg/flac)
- cjpais#997: Model loading failure toast notifications (17 locales)
- cjpais#996: Russian translation improvements (48 corrections)

Fixed issues:
- cjpais#199: Whisper initial prompt option (settings + pass-through)
- cjpais#858: Partial downloads (stale cleanup + Content-Range validation)
- cjpais#921: Clipboard images preserved during paste-via-clipboard
- cjpais#502: Clipboard race condition (write-verify-retry + delays)
- cjpais#434: Admin window freeze (Windows SendInput replaces enigo)

Review fixes:
- App.tsx: missing `t` from useTranslation() (runtime crash)
- commands/transcription.rs: State<TranscriptionManager> -> State<Arc<TranscriptionManager>>
- settings.rs: missing #[serde(default)] on external_script_path
- bindings.ts: missing whisper_initial_prompt in AppSettings
- settingsStore.ts: missing settingUpdaters for text_replacements, whisper_initial_prompt
- shortcut/mod.rs: added update_text_replacements, change_whisper_initial_prompt_setting commands
- TextReplacements.tsx: hardcoded "(delete)" -> i18n key
- TranscribeFile.tsx: hardcoded "Audio Files" -> i18n key
- input.rs: fixed warn macro scope, removed duplicate import
- Eliminated all compiler warnings (overlay.rs, signal_handle.rs, shortcut/mod.rs)
- Fixed lazy_close_gen race condition in audio manager

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@cjpais
Copy link
Copy Markdown
Owner

cjpais commented Mar 18, 2026

Okay, I'm sorry, I just don't really have time to accept new features and ones that potentially could introduce bugs. I don't think that this is a bad change, but maybe it's something we can pick up in the future. I just need to kind of clean out my PRs so I have a little less to focus on.

@cjpais cjpais closed this Mar 18, 2026
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