Gomu (Go Music Player)

Gomu is a Terminal User Interface TUI music player to play mp3 files from your local machine.

Features
- lightweight
- simple
- fast
- show audio files as tree
- queue cache
- vim keybindings
- fzf integration
- youtube-dl integration
- audio file management
- customizable
- find music from youtube
Dependencies
If you are using ubuntu, you need to install alsa and required dependencies
$ sudo apt install libasound2-dev go
Optional dependencies can be installed by this command
$ sudo apt install youtube-dl fzf fonts-noto
Installation
$ go get -u github.com/issadarkthing/gomu
For arch users, you can install from the AUR
using yay:
$ yay -S gomu
using aura:
$ sudo aura -A gomu
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
and change music_dir: path/to/your/musicDir.
Sample config file:
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
history_path: ~/.local/share/gomu/urls
popup_timeout: 5s
volume: 100
emoji: false
emoji:
playlist:
file:
loop: ﯩ
noloop:
# vi:ft=yaml
Fzf (Deprecated)
Eventhough gomu can use fzf as its finder but it is recommended to use built-in
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.
Keybindings
Each panel has it's own additional keybinding. To view the available keybinding for the specific panel use ?
| Key (General) |
Description |
| tab |
change panel |
| space |
toggle play/pause |
| esc |
close popup |
| n |
skip |
| q |
quit |
| + |
volume up |
| - |
volume down |
| f/F |
forward 10/60 seconds |
| b/B |
rewind 10/60 seconds |
| ? |
toggle help |
| Key (Playlist) |
Description |
| 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 |
| s |
search audio from youtube |
| Key (Queue) |
Description |
| j |
down |
| k |
up |
| l (lowercase L) |
play selected song |
| d |
remove from queue |
| D |
delete playlist |
| z |
toggle loop |
| s |
shuffle |
| / |
find in queue |
Project Background
I just wanted to implement my own music player with a programming language i'm currently learning (Go). 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
- forward and rewind
Seeking and more advanced stuff has not yet been implemented; feel free to contribute :)