Runnable now — the Linux standalone on a real desktop (ADR-0131)
Not hardware-gated for any one vendor, and it is the only functional check the Linux capture
path has: no CI runner has a sound server with something playing, so capture_linux.rs is
compiled and linted on every push and executed only here. The scope is the artifact that
ships — the .tar.gz from a v* tag or a workflow_dispatch run, unpacked on a real desktop
— not a cargo run, whose binary was linked against the box’s own glibc and says nothing about
the runner’s. Plan 0214 Phase 6 runs this list on the
Ubuntu box.
Run it from the graphical session, not over SSH — there is no user sound server to reach there — with music playing at a normal volume.
- It extracts and launches. Record whether
chmod +x ritmoluxwas needed (the tar header carries the bit;packaging/linux/stage.shasserts it), and the distribution, version and$XDG_SESSION_TYPE. - F3’s
audioline readslive PulseAudio 48000/2 @DEFAULT_MONITOR@, and the visuals react. The endpoint is the server’s special name because the simple API cannot ask what it resolved to;pactl get-default-sinknames the sink behind it. Afailed PulseAudio …line is a finding with its reason attached;unsupportedmeans the wrong arm compiled. -
~/.local/share/Ritmolux/appears (capital R) and holdsconfig.toml, the preset copy anddiagnostics.log, whosecapturecolumn carries the same token. -
Ftoggles fullscreen.Dmoves to the next monitor, or is a no-op — expected under Wayland, where the compositor places windows. Recorded either way, not treated as a bug. - The frame rate F3 shows, the adapter the
# renderer adapterline ofdiagnostics.lognames, and whether the tier auto-dropped. On a laptop with two GPUs, note which one wgpu picked;ritmolux --list-adaptersprints the roster. - Capture follows a change of default sink. Stop the app, switch the default output in the
desktop’s sound settings (or
pactl set-default-sink), relaunch: the bands move with what the new sink plays. A Bluetooth sink is worth one run, since that is what Plan 0120 Phase 1 probed against. - Stopping the sound server mid-run degrades rather than hangs.
systemctl --user restart pipewire-pulsewhile it runs: thecapturecolumn moves offlive, the shell’s bounded recovery reopens@DEFAULT_MONITOR@, and closing the window afterwards exits at once.
Anything that fails becomes a backlog entry, not a silent fix.
Built from 13c7582 at version 0.158.0. This site tracks main and is not versioned per release.