lowfi/README.md
2024-10-07 22:47:32 +02:00

99 lines
2.3 KiB
Markdown

# lowfi
lowfi is a tiny rust app that serves a single purpose: play lofi.
It'll do this as simply as it can: no albums, no ads, just lofi.
![example image](media/example1.png)
## Disclaimer
**All** of the audio files played in lowfi are from [Lofi Girl's](https://lofigirl.com/) website,
under their [licensing guidelines](https://form.lofigirl.com/CommercialLicense).
If god forbid you're planning to use this in a commercial setting, please
follow their rules.
## Why?
I really hate modern music platforms, and I wanted a small, "suckless"
app that would literally just play lofi without video so I could use it
whenever.
I also wanted it to be fairly resiliant to inconsistent networks,
so it buffers 5 whole songs at a time instead of parts of the same song.
Although, lowfi is yet to be properly tested in difficult conditions,
so don't rely on it too much until I do that. See [Scraping](#scraping) if
you're interested in downloading the tracks. Beware, there's a lot of them.
## Installing
> [!NOTE]
>
> If you're interested in maintaining a package for `lowfi`
> on package managers such as homebrew and the like, open an issue.
### Dependencies
You'll need Rust 1.74.0+.
On MacOS & Windows, no extra dependencies are needed.
On Linux, you'll also need alsa and it's headers (`alsa-lib` on Arch,
`libasound2-dev` on Ubuntu). Make sure to also install `pulseaudio-alsa`
if you're using pulseaudio.
### Cargo
The recommended installation method is to use cargo:
```sh
cargo install lowfi
# If you want MPRIS support.
cargo install lowfi --features mpris
```
and making sure `$HOME/.cargo/bin` is added to `$PATH`.
### AUR
If you're on Arch, you can also use the AUR:
```sh
yay -S lowfi
```
### Manual
```sh
git clone https://github.com/talwat/lowfi
cd lowfi
cargo build --release
./target/release/lowfi
```
## Usage
`lowfi`
Yeah, that's it. Controls are documented in the app.
### Extra Flags
If you have something you'd like to tweak about lowfi, you can run `lowfi help`
to view the available options.
### Scraping
lowfi also has a `scrape` command which is usually not relevant, but
if you're trying to download some files from Lofi Girls' website,
it can be useful.
An example of scrape is as follows,
`lowfi scrape --extension zip --include-full`
where more information can be found by running `lowfi help scrape`.