An open API service indexing awesome lists of open source software.

https://github.com/rsmeowry/verses

A Terminal UI viewer for your synchronized Spotify lyrics
https://github.com/rsmeowry/verses

lyrics-viewer lyrics-visualizer rust-tui spotify spotify-api spotify-lyrics tui

Last synced: 9 months ago
JSON representation

A Terminal UI viewer for your synchronized Spotify lyrics

Awesome Lists containing this project

README

          

# verses

Verses is a TUI tool to view synchronized Spotify lyrics.

![Preview GIF](./assets/showcase.gif)

## Installation

### AUR (for Arch users)
Verses is available on AUR under `verses-bin`

```sh
yay -S verses-bin
```

### With cargo:
```sh
cargo install verses
```

### From source:

```sh
git clone https://github.com/Maxuss/verses
cd verses
cargo install --path .
```

## Prerequesities

To track spotify stats you will have to create your own Spotify developer app [here](https://developer.spotify.com/dashboard/create).

Run `verses` for the first time and it will prompt you for your
Client ID. You can get it in the *Settings* section of your app dashboard. Do not confuse it with client secret!

After that, you can run verses.

## Controls

* `q` - quit
* `a` - toggle auto-scrolling
* `j` | `down key` - scroll down
* `k` | `up key` - scroll up
* `r` - reset scroll position

## Config

Config file is located at `$HOME/.config/verses/config.toml`

Each TOML section can be included in a separate file, just specify it using the `include` field.

For example:

```toml
# config.toml

[theme]
include = "themes/catppuccin.toml"

# themes/catppuccin.toml
[borders]
# configuration there...

[lyrics]
# ...

[progress_bar]
# ...
```

Config has certain special value types:

### general.display.*_format

These are formatting strings using the Handlebars syntax, specifically [the Rust implementation](https://github.com/sunng87/handlebars-rust).
Available variables are listend in the example config. There is also an utility function `join` that allows to join a list of strings separated by a comma.

### Colors

Colors can either be represented the [Ratatui stringified way](https://docs.rs/ratatui/latest/ratatui/style/enum.Color.html) or as a hex RGB value, prefixed with `#`

### Border styles

These are enum variants. You can see [all variants here](https://docs.rs/ratatui/latest/ratatui/widgets/block/enum.BorderType.html)

## Windows support
Windows was not tested at all, and while it should run well, I do not guarantee flawless performance