23 Commits

Author SHA1 Message Date
c4adb30d7b Fix NixOS hash update to use local tarball
Use local tarball hash instead of downloading to avoid race condition where download happens before upload completes
2025-12-06 16:22:13 +01:00
3ab70950e0 Bump version to 0.1.3
All checks were successful
Build and Release / build-and-release (push) Successful in 50s
v0.1.3
2025-12-06 16:08:45 +01:00
f2f79cc0d2 Add video support and improve mpv process management
- Enable video playback by removing --no-video flag
- Add --profile=fast for better performance
- Add --audio-display=no to prevent cover art windows
- Implement mpv process respawn when closed
- Add process death detection and cleanup
- Show refresh status immediately in title bar
- Fix playlist playback after clearing
2025-12-06 16:07:50 +01:00
4b2757b17f Bump version to 0.1.2
All checks were successful
Build and Release / build-and-release (push) Successful in 57s
v0.1.2
2025-12-06 15:57:19 +01:00
bee25505c0 Bump version to 0.1.1
All checks were successful
Build and Release / build-and-release (push) Successful in 50s
v0.1.1
2025-12-06 15:24:48 +01:00
b4084b9dcf Fix NixOS config path in release workflow 2025-12-06 15:23:43 +01:00
7b20b121d9 Remove unused code and fix compiler warnings
Some checks failed
Build and Release / build-and-release (push) Failing after 1m22s
v0.1.0
2025-12-06 14:43:29 +01:00
b535d0e9cb Improve search and playlist management
- Add folder priority boost in fuzzy search scoring
- Show search results in top status bar after Enter
- Change keybindings: v for mark, a for add to playlist, c for clear
- Add playlist management: add_to_playlist() and clear_playlist()
- Fix playlist index reset when clearing playlist
- Display incremental search status in bottom bar while typing
2025-12-06 14:40:53 +01:00
e44c9e5bba Update CLAUDE.md with completed features
- Replace implementation plan with feature documentation
- Document all keybindings
- Add technical details about MPV IPC
- List UI layout structure
- Mark all phases as complete
2025-12-06 13:15:02 +01:00
81908beb75 Add seek and volume controls
- Left/Right arrows: seek backward/forward 10 seconds
- +/- keys: adjust volume by 5% increments
- Volume clamped between 0-100%
- Only allow seeking when track is playing
- Update status bar help text with new controls
2025-12-06 13:13:49 +01:00
cc86f8eb55 Implement cm-dashboard style layout
- Add title bar at top: 'cm-player • Playing/Stopped' (cyan bg)
- Three-section vertical layout: title, content, status bar
- Content area: left (files) | right (player + playlist)
- Bottom status bar centered with • separators
- Player state moved to title bar
- Progress and volume in Player panel
- Matches cm-dashboard layout structure
2025-12-06 13:11:19 +01:00
7f5aa7602d Reorganize UI layout with playlist panel and status bar
- Merge Status, Progress, Volume into one compact top panel
- Add Playlist panel showing queue with highlighted current track
- Move help to bottom status bar (cm-dashboard style)
- Bottom bar shows all keybindings in one line
- Right panel now: Status (top) + Playlist (bottom)
- Current playing track highlighted in cyan in playlist
2025-12-06 13:08:04 +01:00
71b43d644c Show refreshing status during library scan
- Add is_refreshing flag to AppState
- Display 'Refreshing library...' in status panel during scan
- Note: scan is currently blocking, message may be brief
- Infrastructure ready for future async scanning
2025-12-06 13:04:00 +01:00
afc58a7920 Redirect logging to file to avoid TUI interference
- Logs now written to /tmp/cm-player.log
- Clean TUI display without INFO messages
- Logs still available for debugging
2025-12-06 13:00:33 +01:00
43951a200d Remove automatic cache scan on startup
- Cache is now only refreshed when user presses 'r'
- Empty cache on first launch - user must manually scan
- More explicit control over library updates
2025-12-06 12:57:51 +01:00
c0fd204b97 Replace libmpv with MPV IPC subprocess approach
- Remove libmpv dependency to avoid version mismatch issues
- Spawn mpv as subprocess with --input-ipc-server
- Communicate via Unix socket with JSON IPC protocol
- Add update_properties() to poll MPV state
- No linking required, only mpv binary needed at runtime
- More stable and portable across MPV versions
2025-12-06 12:54:56 +01:00
e840aa9b26 Implement MPV integration for audio/video playback
- Initialize libmpv with audio-only configuration
- Implement play, pause, resume, stop, seek controls
- Add position and duration tracking from MPV
- Auto-advance to next track when current ends
- Update keybindings to use actual player
- Add shell.nix for development environment with libmpv
- Real playback now working with Enter/Space/n/p keys
2025-12-06 12:49:46 +01:00
0093db98c2 Add playlist support with marking and folder playback
- Mark files with 't' key (shown with * prefix in yellow)
- Clear marks with 'c' key
- Enter plays: marked files > whole folder > single file
- Navigate playlist with 'n' (next) and 'p' (previous)
- Show playlist position in status (e.g., "song.mp3 [3/10]")
- Collect all files recursively when playing folder
- Remove emoji icons from status panel
- Update help text with new keybindings
2025-12-06 12:46:15 +01:00
e906fbf294 Remove expand/collapse markers from UI
- Clean display with only directory names and / suffix
- No [+] or [-] markers shown
- Directories still expand/collapse with h/l
- Minimal vifm-style appearance
2025-12-06 12:41:54 +01:00
d7c1710482 Start with all directories collapsed
- Directories now start collapsed by default (vifm-style)
- User must press 'l' to expand directories
- Preserves expanded state during rescan
- Remove unused collect_all_dirs function
2025-12-06 12:40:53 +01:00
8104f54887 Add vim bindings and directory expand/collapse
- Replace arrow keys with j/k for navigation
- Add h/l for collapse/expand directories
- Remove emoji icons, use clean text markers
- Show directories with [-]/[+] expand markers
- Track expanded state per directory path
- Add directory suffix (/) for clarity
- Update help text with vim bindings
2025-12-06 12:39:11 +01:00
7ce264fd96 Implement Phase 1: Foundation and cache system
- Add Cargo project with TUI and async dependencies
- Implement cache-only architecture for low bandwidth operation
- Add file scanner with media type detection
- Create two-panel TUI layout (file tree and status)
- Add config file support for scan path management
- Implement XDG-compliant cache and config directories
- Add Gitea CI/CD workflow for automated releases
2025-12-06 12:32:17 +01:00
a1fd8eb6e5 Initial commit 2025-12-06 12:00:46 +01:00