Go to file
Brendan Mesters 86f3f56edb
feat: add volume control & display (#4)
* feat: added volume control

I added a simple volume control to the program, using native
functionality in `rodio::sink`.

This logic has also been linked through to the UI so that users will be
aware of this fucntionality (bound to the '-' and '+' keys) and adding a
volume readout to the UI as well.

* feat: add volume bindings which work without shift

A small issue I noticed I had was that I had to press shift to hit '+',
I now bound the volume up fucntionality to '+' and '=' and the volume
down functionality to '-' and '_', to make both undependant of shift
(assuming most default western keyboard layouts)

* feat: support arrow keys

* feat: add temporarily appearing audio bar

* fix: polish input controls

---------

Co-authored-by: talwat <83217276+talwat@users.noreply.github.com>
2024-10-02 21:20:16 +02:00
.github/workflows fix: revert to using cross for ubuntu compilations 2024-10-02 18:38:09 +02:00
data feat: initial commit 2024-09-23 21:59:07 +02:00
media fix: remove invalid asciinema recording for now 2024-10-01 13:29:50 +02:00
src feat: add volume control & display (#4) 2024-10-02 21:20:16 +02:00
.gitignore feat: initial commit 2024-09-23 21:59:07 +02:00
Cargo.lock ci: try compiling natively with linux 2024-10-02 14:34:30 +02:00
Cargo.toml ci: try compiling natively with linux 2024-10-02 14:34:30 +02:00
LICENSE chore: get ready for publishing 2024-09-28 00:06:22 +02:00
README.md docs: include mention of -a 2024-10-02 18:39:30 +02:00

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

Disclaimer

All of the audio files played in lowfi are from Lofi Girl's website, under their licensing guidelines.

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 if you're interested in downloading the tracks. Beware, there's a lot of them.

Installing

You'll need Rust 1.74.0+.

Cargo

The recommended installation method is to use cargo:

cargo install lowfi

and making sure $HOME/.cargo/bin is added to $PATH.

AUR

If you're on Arch, you can also use the AUR:

yay -S lowfi

Usage

lowfi

Yeah, that's it. Controls are documented in the app.

Extra Flags

If you're having issues on Linux with error messages, or you don't want your terminal history to be visible when you run lofi, you can use the --alternate or -a flag to hide your history.

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.