Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/betta-cyber/netease-music-tui

netease cloud music terminal client by rust :zap:
https://github.com/betta-cyber/netease-music-tui

linux netease-cloud-music netease-cloudmusic netease-music-tui rust rust-language tui

Last synced: about 2 months ago
JSON representation

netease cloud music terminal client by rust :zap:

Awesome Lists containing this project

README

        

# NETEASE CLOUD MUSIC TUI

[![Actions Status](https://github.com/betta-cyber/netease-music-tui/workflows/Continuous%20Integration/badge.svg)](https://github.com/betta-cyber/netease-music-tui/actions)

>A netease cloud music client for the terminal written in Rust.

![Demo](https://i.loli.net/2019/12/06/n6DCTS4cW2Z1dmH.gif)

## Installation

### Manual
1. you can download the latest binary `ncmt` for your OS
2. `cd` to the file you just downloaded and unzip
3. `cd` to folder and run with `./ncmt`

### Cargo

First, install [Rust](https://www.rust-lang.org/tools/install) (using the recommended `rustup` installation method) and then
```
git clone https://github.com/betta-cyber/netease-music-tui.git
cd netease-music-tui

// build release and install
make && make install
```

and then you can make some soft link to the binary and use it.

### Arch Linux

for Arch based distributions, users can install from [AUR](https://aur.archlinux.org/packages/netease-music-tui)
```
// build and install from source
yay -S netease-music-tui

// install from release binary file
yay -S netease-music-tui-bin
```

## Configuration

A configuration file is located at ${HOME}/.config/netease-music-tui/Settings.toml

The following is a sample Settings.toml file:
```toml
# Your account username (email/cellphone).
username = "username"
# Your account password.
password = "password"
```
Fill your account info to the config file.

## Usage

The binary is named ```ncmt```

When running netease-music-tui press ? to bring up a help menu that shows currently implemented key events and their actions.

This table shows some key binds

| Description | Event | Context |
| ------------- | ---------------- | --------------- |
| Increase volume | + | General |
| Decrease volume | - | General |
| Skip to next track | n | General |
| Skip to previous track | p | General |
| Toggle repeat mode | r | General |
| Move selection left | h \| \ | General |
| Move selection down | j \| \ | General |
| Move selection up | k \| \ | General |
| Move selection right | l \| \ | General |
| Jump to currently playing album | a | General |
| Enter Search | / | General |
| Pause/Resume playback | \ | General |
| Fullsize playbar | f | General |
| Go back or exit when nowhere left to back to | q | General |
| Enter hover mode | \ | General |
| like current playing track | \ | General |
| dislike current playing track | \ | General |
| move track to trash | \ | Fm block |
| Enter active mode | \ | Hover mode |
| Delete entire input | \ | Search input |
| Search with input text | \| Search input |
| Jump to start of input | \ | Search input |
| Jump to end of input | \ | Search input |
| Subscribe current hover playlist | \ | Playlist block |,
| Unsubscribe current hover playlist | \ | Playlist block |,
| Jump to next page | \ | Search result \| top list |
| Jump to previous page | \ | Search result \| top list |

## custom theme

user can custom some theme color in config file. such as:

```
hover = "#565656"
active = "#abe047"
other = "#eb4129"
```

hover means hover block border color
active means current select block border color
other means other block border color

text color will add in the future.

## Dev plan
- [x] Djradio and djprogram
- [ ] User page
- [ ] Spectrum effect
- [ ] Comment function
- [ ] mpris support
- [x] remove gstreamer (but current player no seek function)

## Features

dbus mpris
`cargo run --features dbus_mpris`

## License
MIT