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.
This commit is contained in:
beefcarver committed 2026-10-30 18:43:26 -04:00
1 parent 06386d3e1e
commit 2570d9b854
3 files changed
+153 -42

No files matched your search

+20 -1
View File
@@ -2,6 +2,7 @@
from __future__ import annotations
import sys
import textwrap
from rich.console import Group
@@ -31,11 +32,14 @@ HELP_ROWS: tuple[tuple[str, str], ...] = (
("q", "quit"),
)
ABOUT = (
ABOUT_COMMON = (
(
"Stations and song history come from somafm.com "
"(channels.json + songs/<station>.json)."
),
)
ABOUT_LINUX = (
(
"The spectrum captures your actual PulseAudio/PipeWire output with "
"parec (SYNC); otherwise it falls back to a muted ffmpeg stream tap "
@@ -47,6 +51,21 @@ ABOUT = (
),
)
ABOUT_MACOS = (
(
"The spectrum follows your audio output (SYNC) when a loopback device "
"such as BlackHole is available for ffmpeg/avfoundation; otherwise it "
"falls back to a muted ffmpeg stream tap (FFT, can drift) or a "
"synthesized display (SIM)."
),
(
"mpv publishes what is playing to the macOS Now Playing session, so "
"Control Center and the keyboard media keys control this app."
),
)
ABOUT = ABOUT_COMMON + (ABOUT_MACOS if sys.platform == "darwin" else ABOUT_LINUX)
class HelpScreen(ModalScreen[None]):
def compose(self) -> ComposeResult: