cdf4f611fc
Add OpenSSL dev headers to build dependencies in README
...
reqwest pulls in openssl-sys via native-tls, which requires
OpenSSL development headers to compile from source.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-29 15:43:04 +00:00
Jamie Hewitt
ee10c9fa55
Update README.md with correct curl
2026-01-28 11:05:40 +00:00
d17ea748f6
Bump version to 0.2.0
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
v0.2.0
2026-01-28 00:15:01 +00:00
fb0786122e
Extract built-in theme data from theme.rs into theme_builtins.rs
...
Moves ~265 lines of TOML theme constant data to a dedicated file,
reducing theme.rs from 553 to ~290 lines of logic.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-28 00:07:29 +00:00
763e9bc8db
Split mouse.rs into page-specific handler files
...
Extract handle_artists_click and handle_playlists_click into
mouse_artists.rs and mouse_playlists.rs respectively, reducing
mouse.rs from ~530 to ~247 lines.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-28 00:03:41 +00:00
112f18582a
Fix all 16 clippy warnings
...
- Collapse else { if } blocks into else if (6 instances)
- Replace map_or(false, ...) with is_some_and(...) (6 instances)
- Replace iter().cloned().collect() with .to_vec() (2 instances)
- Replace manual char comparison with array pattern (1 instance)
- Replace useless vec! with array literal (1 instance)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 23:58:18 +00:00
766614f5e9
Remove dead code and #![allow(dead_code)] blanket suppressions
...
- Delete src/audio/queue.rs (321 lines, PlayQueue never used)
- Remove #![allow(dead_code)] from audio, subsonic, and mpris module roots
- Remove unused MpvEvent2 enum, playlist_clear, get_volume, get_path,
is_eof, observe_property from mpv.rs
- Remove unused DEFAULT_DEVICE_ID, is_available, get_effective_rate
from pipewire.rs (and associated dead test)
- Remove unused search(), get_cover_art_url() from subsonic client
- Remove unused SearchResult3Data, SearchResult3 model structs
- Move parse_song_id_from_url into #[cfg(test)] block (only used by tests)
- Add targeted #[allow(dead_code)] on deserialization-only fields
(MpvEvent, SubsonicResponseInner.version, ArtistIndex.name)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 23:56:52 +00:00
7582937439
Add missing tempfile dev-dependency for config tests
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 23:44:01 +00:00
b94c12a301
Refactor app/mod.rs into focused submodules
...
Split the 2495-line mod.rs into 10 files by concern:
- playback.rs: playback controls and track management
- cava.rs: cava process management and VT100 parsing
- input.rs: event dispatch and global keybindings
- input_artists.rs: artists page keyboard handling
- input_queue.rs: queue page keyboard handling
- input_playlists.rs: playlists page keyboard handling
- input_server.rs: server page keyboard handling
- input_settings.rs: settings page keyboard handling
- mouse.rs: all mouse click and scroll handling
- mod.rs: App struct, new(), run(), event_loop(), load_initial_data()
Pure code reorganization — no behavioral changes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 23:41:43 +00:00
bd8f8e6302
Switch install script and README URLs to GitHub
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
v0.1.0
2026-01-27 22:24:10 +00:00
db7dc8dac0
Only highlight selected item in focused pane
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 22:20:34 +00:00
4bc7bb198d
Move cava prompt before build step in install script
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 21:58:44 +00:00
ee688d4086
Fix install script: read cava prompt from terminal, not stdin pipe
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 21:57:55 +00:00
b7d87c533a
Add optional cava install prompt to install script
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 21:55:36 +00:00
cb5b29e924
Add one-line install script and simplify README installation section
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 21:51:35 +00:00
c4e4da4f59
Add screenshot to README
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 21:48:46 +00:00
12cc70e6ec
Initial commit — ferrosonic terminal Subsonic client
...
Terminal-based Subsonic music client in Rust featuring bit-perfect audio
playback via PipeWire sample rate switching, gapless playback, MPRIS2
desktop integration, cava audio visualizer with theme-matched gradients,
13 built-in color themes with custom TOML theme support, mouse controls,
artist/album browser, playlist support, and play queue management.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 21:43:26 +00:00