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
- youtube-dl integration
- audio file management
- customizable
- find music from youtube
- scriptable config
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
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
.
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 |
m | open repl |
T | switch lyrics |
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/p | yank/paste file |
/ | find in playlist |
s | search audio from youtube |
t | edit mp3 tags |
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 |
Scripting
Gomu uses anko as its scripting language. You can read more about scripting at our wiki
Keybinds.def_g("ctrl_x", func() {
out, err = shell(`echo "hello world"`)
if err != nil {
debug_popup("an error occured")
}
info_popup(out)
})
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 :)