Commit Graph
6 Commits
Author SHA1 Message Date
beefcarver 2570d9b854 docs(readme): document macOS support, Now Playing and loopback capture
Split the install instructions per platform, add the macOS microphone
permission and BlackHole/Multi-Output recipe for a synced spectrum,
describe the Now Playing integration and its limits, and note that config
and cache stay in the XDG locations. The in-app help text is now
platform-aware too, and the package metadata lists macOS.
2026-10-30 18:43:26 -04:00
beefcarver 06386d3e1e fix(art): keep iTerm2 inline images on screen
iTerm2 images live in the cell grid, unlike Kitty placements: repainting
the mosaic behind them erases the picture. Re-emit the image whenever the
mosaic identity (station + track) changes, even if the artwork bytes are
the same.

Also send doNotMoveCursor=1 to iTerm2 itself so the terminal does not
scroll or jump the cursor out from under Textual's compositor; WezTerm
keeps the previous payload since it is pickier about parameters.
2026-10-30 18:43:22 -04:00
beefcarver 9c722c5f61 feat(macos): drive the system Now Playing session through mpv
macOS has no D-Bus/MPRIS: the audio engine is what the OS media UI talks
to. mpv's Cocoa backend registers with MPRemoteCommandCenter and
MPNowPlayingInfoCenter, so it already publishes the live ICY title and
receives the media keys.

Add a platform-neutral media session (mediasession.py) so the app keeps a
single interface: MprisService on D-Bus platforms, NowPlayingSession on
macOS. Map mpv's NEXT/PREV/PLAY/PLAYONLY/PAUSEONLY/STOP keys onto
script-messages and read them back as client-message IPC events, so the
hardware media keys and Control Center drive the TUI (station changes,
play/pause/stop) instead of fighting it.

--no-mpris (now also --no-media) disables the media keys too. macOS-only
mpv options are gated on sys.platform so the Linux command line is
unchanged; mpv aborts on unknown flags.
2026-10-30 18:43:03 -04:00
beefcarver 66729c7542 feat(stage): show Bandcamp link in ON AIR 2026-10-30 15:12:37 +00:00
beefcarver 59fc4dd7fd fix(header): right-align clock, date and volume in the top bar 2026-10-30 04:31:51 +00:00
beefcarver 237de2efe9 feat(tui): implement SomaFM terminal radio player 2026-10-30 04:17:53 +00:00