2020-06-23 19:27:59 +08:00
2020-08-11 23:10:29 +08:00
# Gomu (Go Music Player) [](https://goreportcard.com/report/github.com/issadarkthing/gomu) [](https://travis-ci.com/issadarkthing/gomu)
Gomu is a Terminal User Interface **TUI** music player to play mp3 files from your local machine.
2020-06-23 19:27:59 +08:00
2021-02-06 11:28:12 +08:00

2020-06-23 19:27:59 +08:00
## Features
- lightweight
2020-06-28 13:50:59 +08:00
- simple
- fast
2020-06-23 19:27:59 +08:00
- show audio files as tree
2020-08-11 23:10:29 +08:00
- queue cache
2020-08-22 23:32:56 +08:00
- [vim ](https://github.com/vim/vim ) keybindings
- [fzf ](https://github.com/junegunn/fzf ) integration
- [youtube-dl ](https://github.com/ytdl-org/youtube-dl ) integration
2020-06-28 13:50:59 +08:00
- audio file management
2021-02-04 21:56:46 +08:00
- customizable
2021-02-06 11:14:26 +08:00
- find music from youtube
2020-08-11 23:10:29 +08:00
## Dependencies
2020-08-11 23:50:24 -05:00
If you are using ubuntu, you need to install alsa and required dependencies
2020-08-11 23:10:29 +08:00
```sh
$ sudo apt install libasound2-dev go
```
Optional dependencies can be installed by this command
```sh
2020-08-22 15:17:23 +08:00
$ sudo apt install youtube-dl fzf fonts-noto
2020-08-11 23:10:29 +08:00
```
2020-06-23 19:27:59 +08:00
2020-06-24 13:00:31 +08:00
## Installation
2020-08-22 23:32:56 +08:00
```sh
$ go get -u github.com/issadarkthing/gomu
```
For arch users, you can install from the AUR
using [yay ](https://github.com/Jguer/yay ):
```sh
$ yay -S gomu
```
using [aura ](https://github.com/fosskers/aura ):
2020-06-24 13:00:31 +08:00
```sh
2020-08-22 23:32:56 +08:00
$ sudo aura -A gomu
2020-06-24 13:00:31 +08:00
```
2020-08-22 23:32:56 +08:00
2020-06-28 13:50:59 +08:00
## Configuration
By default, gomu will look for audio files in `~/music` directory. If you wish to change to your desired location, edit `~/.config/gomu/config` file
2020-08-11 23:44:54 -05:00
and change `music_dir: path/to/your/musicDir` .
Sample config file:
2020-06-28 13:50:59 +08:00
```
2020-08-11 23:44:54 -05:00
color:
accent: "#008B8B "
background: none
foreground: "#FFFFFF "
now_playing_title: "#017702 "
playlist: "#008B8B "
popup: "#0A0F14 "
general:
confirm_bulk_add: true
confirm_on_exit: true
load_prev_queue: true
music_dir: ~/music
2021-01-27 22:15:40 +08:00
history_path: ~/.local/share/gomu/urls
2020-08-11 23:44:54 -05:00
popup_timeout: 5s
volume: 100
2021-02-06 11:14:26 +08:00
emoji: false
2021-01-27 22:15:40 +08:00
emoji:
playlist:
file:
2021-02-06 00:18:31 +08:00
loop: ﯩ
noloop:
2021-01-27 22:15:40 +08:00
# vi:ft=yaml
2020-06-28 13:50:59 +08:00
```
2021-02-11 14:49:14 +08:00
## Fzf (Deprecated)
2020-08-22 23:32:56 +08:00
Eventhough gomu can use [fzf ](https://github.com/junegunn/fzf ) as its finder but it is recommended to use built-in
2020-08-18 12:26:28 +08:00
finder. This is due to the bug which may cause the application to hang up
if fzf is being used for a long period of time (not everytime). As of `v1.5.0` ,
the default built-in finder will be used instead of fzf. To override this behaviour,
edit this line `fzf: false` to change it into `true` in `~/.config/gomu/config` .
2020-08-18 22:06:22 +08:00
2020-07-03 12:31:38 +08:00
## Keybindings
2020-08-22 23:32:56 +08:00
Each panel has it's own additional keybinding. To view the available keybinding for the specific panel use `?`
2020-07-03 12:31:38 +08:00
2021-02-06 11:14:26 +08:00
| Key (General) | Description |
2021-02-06 00:18:31 +08:00
|:----------------|--------------------------------:|
| tab | change panel |
| space | toggle play/pause |
| esc | close popup |
| n | skip |
| q | quit |
| + | volume up |
| - | volume down |
2021-02-06 15:43:41 +08:00
| f/F | forward 10/60 seconds |
| b/B | rewind 10/60 seconds |
2021-02-06 00:18:31 +08:00
| ? | toggle help |
2021-02-06 11:14:26 +08:00
| Key (Playlist) | Description |
2021-02-06 00:18:31 +08:00
|:----------------|--------------------------------:|
| j | down |
| k | up |
| h | close node in playlist |
| a | create playlist |
| l (lowercase L) | add song to queue |
| L | add playlist to queue |
| d | delete file from filesystemd |
| D | delete playlist from filesystem |
| Y | download audio |
| r | refresh |
| R | rename |
| y | yank file |
| p | paste file |
| / | find in playlist |
2021-02-06 11:14:26 +08:00
| s | search audio from youtube |
| Key (Queue) | Description |
2021-02-06 00:18:31 +08:00
|:----------------|--------------------------------:|
| j | down |
| k | up |
| l (lowercase L) | play selected song |
| d | remove from queue |
| D | delete playlist |
| z | toggle loop |
| s | shuffle |
2021-02-07 03:25:04 +08:00
| / | find in queue |
2020-06-23 19:27:59 +08:00
## Project Background
2020-08-11 23:50:24 -05:00
I just wanted to implement my own music player with a programming language i'm currently learning ([Go ](https://golang.org/ )). Gomu might not be stable as it in constant development. For now, it can fulfill basic music player functions such as:
- add and delete songs from queue
- create playlists
- skip
- play
- pause
2021-02-06 00:18:31 +08:00
- forward and rewind
2020-08-11 23:50:24 -05:00
Seeking and more advanced stuff has not yet been implemented; feel free to contribute :)