Go to file
2021-11-17 00:45:15 +05:30
cache minor changes 2021-11-14 20:58:06 +05:30
config minor changes 2021-11-12 14:32:06 +05:30
.gitignore minor changes 2021-11-05 15:06:42 +05:30
App.go Rename Application Fields 2021-11-13 16:57:54 +05:30
client.go Rename conn -> CONN ( Also made it Global ) 2021-11-13 11:32:00 +05:30
fileBrowser.go Updated FileNode Struct 2021-10-17 21:51:01 +05:30
go.mod Updated go Modules 2021-11-13 11:34:56 +05:30
go.sum Updated go Modules 2021-11-13 11:34:56 +05:30
imageUtils.go Rewriting image Rendering 2021-11-08 11:48:49 +05:30
lastfm.go Connecting LastFm Api to get Image Urls which is then rendered 2021-11-13 01:34:24 +05:30
LICENSE Initial commit 2021-10-08 20:22:09 +05:30
main.go Rename notificationServer -> NOTIFICATION_SERVER 2021-11-14 12:02:36 +05:30
notification.go Simple Implementation of notification Mechanism. 2021-11-13 23:52:16 +05:30
progressBar.go Minor changes 2021-11-14 14:21:16 +05:30
README.md UPDATE README 2021-11-17 00:45:15 +05:30
render.go Now a notification is sent when Image is downloaded from lastfm 2021-11-14 12:04:54 +05:30
sample_config.yml Added functionality to set image paths 2021-11-05 14:11:14 +05:30
utils.go Making a config package for Generating keymappings 2021-11-11 21:57:01 +05:30

goMP

MPD client inspired by ncmpcpp written in GO

https://user-images.githubusercontent.com/51816057/141670212-34b62601-19b0-40c0-8797-f21bce2e11f3.mp4

Table Of Contents

Roadmap

  • Add Functionality to Sort out most played songs
  • Add a config parser
  • Image Previews
  • User Key Mappings
  • Querying LastFM API for getting Album Art
  • Fuzzy Searching [ checkout this pull request ]
  • Visual Mode (like vim) for updating playlists

Setting Up

  • Music Player Daemon must be setup
  • Go Should Be Installed ( for building )
  • Make a YAML/TOML file in $HOME/.config/goMP named config.yml / config.toml
  • Read the sample_config.yml for config options

Installing / Building

git clone https://github.com/aditya-K2/goMP &&
cd goMP &&
go build

Configuration

Image Rendering :

The Default Position of the Image without any configuration assumes that you have no padding or margin so Image will be rendered at different places in different terminals, Also the TUI calculates positions with the help of rows and columns and the image is rendered at pixel positions so the exact position can't be defined [ the app tries its best by calculating the font width and then predicting the position but it is best that you define extra padding and own image width ratio in config.yml. Please Read more about it in the sample_config

Key Mappings

Following Keys can be used for Mappings

Keys Using them in Config
a-z a-z
A-Z A-z
{,},(,),[,],<,> {,},(,),[,],<,>
Enter(Return) ENTER/RETURN
Tab TAB
Space SPACE

See config/kMap.go for more information

For mapping a key to some function use the following format:

Function: [ firstMapping, secondMapping, thirdMapping]

for.eg

togglePlayBack : [ "p", "TAB", "[" ] # using the quotes is neccessary.

Following functions are provided :

Functions
showChildrenContent
togglePlayBack
showParentContent
nextSong
clearPlaylist
previousSong
addToPlaylist
toggleRandom
toggleRepeat
decreaseVolume
increaseVolume
navigateToFiles
navigateToPlaylist
navigateToMostPlayed
navigateToSearch
quit
stop
updateDB
deleteSongFromPlaylist
FocusSearch

Getting Album Art from LastFm API

  1. Generate API Key here

    Screenshot from 2021-11-13 21-54-54

  2. Add the api key and api secret to config.yml


GET_COVER_ART_FROM_LAST_FM : "TRUE" # Turn On Getting Album art from lastfm api
LASTFM_API_KEY: "YOUR API KEY HERE"
LASTFM_API_SECRET: "YOUR API SECRET HERE"
  1. Auto correct

Screenshot from 2021-11-13 21-59-46 :


LASTFM_AUTO_CORRECT: 1  # 0 means it is turned off

Tested on following terminals:

  • Alacritty
  • ST
  • URXVT ( URXVT sometimes crashes when downloading coverart from lastfm )