sinuous

Crates.iosinuous
lib.rssinuous
version0.1.4
sourcesrc
created_at2022-03-25 00:06:38.468645
updated_at2023-09-17 01:09:22.346859
descriptionA simple TUI for controlling local Sonos speakers
homepagehttps://github.com/abusch/sinuous
repositoryhttps://github.com/abusch/sinuous.git
max_upload_size
id555983
size233,190
Antoine Büsch (abusch)

documentation

README

Sinuous

dependency status CI

Sinuous is a simple TUI for controlling local Sonos speakers.

It currently allows you to cycle through the different groups (zone players), displays the current track, and the current queue.

Note: sinuous directly talks to the Sonos speakers via their local upnp interface, and the speakers are discovered via the SSDP protocol. This means your Sonos speakers need to be on the same network (or visible from your current network).

Key bindings

  • Space: Play / Pause
  • p / n: Skip to previous / next track
  • [ / ]: Adjust volume of the coordinator of the current group
  • Shift+Tab / Tab: Switch to previous / next group
  • q: Quit

To run

Install a recent Rust toolchain via rustup, if you don't already have one, then simply run cargo run.

To get debug logs, run RUST_LOG="sinuous=debug" cargo run. The logs can be found in /tmp/sinuous.log.

Screenshot

screenshot

Todo

  • Allow switching between speakers
  • Support more actions (seek forward, backward, change playing mode, volume...)
  • Display play/pause indicator as well as current play mode (shuffle+repeat)
  • Allow searching for tracks and modify the queue
  • Allow customizing colours
  • Allow specifying speaker to connect to as a command line argument
  • Handle grouping of speakers
Commit count: 87

cargo fmt