Add bundled default sound pack with auto-copy functionality

Features:
- Complete default sound pack with 14 OGG audio files covering all Bifrost events
- Auto-copy bundled pack to user data directory on first run (XDG compliant)
- Graceful fallback if bundled pack is missing or copy fails
- No network dependency for immediate audio feedback

Sound Pack Contents:
- Core sounds: startup, shutdown, success, error
- Communication: private_message, mention, boost, reply, post_sent
- Interface: timeline_update, notification
- Interaction: autocomplete, autocomplete_end

Technical Implementation:
- Enhanced SoundManager.create_default_pack() to copy from bundled location
- Smart path detection for bundled pack across different installation scenarios
- Robust error handling with minimal fallback pack.json creation
- Total pack size: ~260KB (suitable for regular Git without LFS)

User Experience:
- Immediate audio feedback from first application launch
- No setup or configuration required
- Sounds install to proper XDG data directory (~/.local/share/bifrost/sounds/)
- Users can still customize or replace the default pack

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Storm Dragon
2025-08-17 01:50:37 -04:00
parent eae3191081
commit f0f761a118
15 changed files with 73 additions and 21 deletions

21
sounds/default/pack.json Normal file
View File

@@ -0,0 +1,21 @@
{
"name": "Default",
"description": "Clean, accessible default sounds for Bifrost",
"author": "Bifrost Development Team",
"version": "1.0",
"sounds": {
"private_message": "private_message.ogg",
"mention": "mention.ogg",
"boost": "boost.ogg",
"reply": "reply.ogg",
"post_sent": "post_sent.ogg",
"timeline_update": "timeline_update.ogg",
"notification": "notification.ogg",
"autocomplete": "autocomplete.ogg",
"autocomplete_end": "autocomplete_end.ogg",
"startup": "startup.ogg",
"shutdown": "shutdown.ogg",
"success": "success.ogg",
"error": "error.ogg"
}
}