diff --git a/README.md b/README.md index 1b29ccd..0520441 100644 --- a/README.md +++ b/README.md @@ -150,11 +150,48 @@ spectrum and image passthrough through tmux, install the optional tools too: sudo pacman -S mpv ffmpeg libpulse tmux ``` +### Standalone binary (no Nix, no packaging step) + +`uv` can build the package and drop the executable in `~/.local/bin` — this is +the `pip install --user`-style install, without touching a system or project +environment: + +```bash +uv tool install git+https://tildeforge.dev/beefcarver/beefy-player +# or, from a checkout: +uv tool install . +``` + +That creates its own isolated environment under `~/.local/share/uv/tools/` and +symlinks `beefy-player` into `~/.local/bin` (uv's default, which is also where +`pip install --user` writes on Linux). If uv warns that the directory is not on +your `PATH`: + +```bash +uv tool update-shell # or add ~/.local/bin to PATH by hand +``` + +Then run `beefy-player` from anywhere. `uv tool upgrade beefy-player` +re-installs the current source; `uv tool uninstall beefy-player` removes it. +`pipx install git+https://tildeforge.dev/beefcarver/beefy-player` is the +`pipx` equivalent and lands in the same place. + +Only the Python side is installed this way, so `mpv` / `ffmpeg` (and `parec` +for the synced spectrum) still come from your package manager; without them the +app runs but has no audio. + +> On macOS, note that `~/.local/bin` is uv's and pipx's choice, not Python's: +> a `pip install --user` against Homebrew's Python uses +> `~/Library/Python/3.x/bin` instead. + ### From source +`uv sync` installs into a project virtualenv, so the executable is +`.venv/bin/beefy-player` and is not on your `PATH`: + ```bash uv sync -uv run beefy-player +uv run beefy-player # or: .venv/bin/beefy-player ``` ## Usage