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 :)