diff options
| author | Paul Buetow <paul@buetow.org> | 2025-10-02 08:38:03 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-10-02 08:38:03 +0300 |
| commit | 0c1b108ff5fccf39ae5bc6dc06802ce565bda633 (patch) | |
| tree | 914e65e04bae26d3eae565f9d6a64d08ade361d0 /README.md | |
| parent | 36be499ed342d92969ccaaff083c557a0951def9 (diff) | |
new version major refactorv0.2.0
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 45 |
1 files changed, 44 insertions, 1 deletions
@@ -1,5 +1,48 @@ # Yoga -A yoga video selector. Fully vibe-coded. +Yoga is a TUI for browsing local yoga videos with quick filtering, duration probing, and one-key playback via VLC.  + +## Usage + +```bash +yoga [--root PATH] [--crop WxH] [--version] +``` + +- `--root` sets the directory to scan for videos. When omitted, Yoga uses `~/Yoga` and creates it on first launch. +- `--crop` supplies an optional VLC crop string (for example `5:4`). Toggle the crop at runtime with the `c` key. +- `--version` prints the current version and exits. + +Yoga recognises common video extensions (`.mp4`, `.mkv`, `.mov`, `.avi`, `.wmv`, `.m4v`) and follows symlinks when scanning. Duration metadata is cached per directory in `.video_duration_cache.json`. + +### Keyboard Shortcuts + +- `↑/↓` – Navigate the table +- `enter` – Play the selected video in VLC +- `/` or `f` – Open the filter dialog +- `r` – Reset filters +- `n`, `l`, `a` – Sort by name, length, or age +- `c` – Toggle VLC crop +- `q` – Quit + +## Development + +The project uses [Mage](https://magefile.org/) for common tasks. Targets live in `magefile.go`. + +```bash +mage build # go build ./cmd/yoga +mage test # go test ./... +mage install # go install ./cmd/yoga +mage coverage # go test with coverage (fails if <85%) +``` + +Before sending changes: + +1. Format Go code with `gofumpt`. +2. Run `mage test` and `mage coverage` to ensure the suite passes and coverage stays above 85%. +3. Update documentation when flags or behaviour change. + +## Licensing + +This repository is released under the terms specified in the accompanying license file (if present). |
