cover

Configuration

Configuration of gomp is done through a config.yml file in $HOME/.config/gomp/

Note

  • About Music Directory and MPD_PORT

gomp reads your mpd.conf file for setting the defaults.

first it checks for user-wide configuration @ $HOME/mpd/mpd.conf if that doesn’t exists it checks for /etc/mpd.conf.

The MUSIC_DIRECTORY from config.yml overrides the default values.

  • Default Image

If there is no DEFAULT_IMAGE_PATH key in the config.yml it downloads a default image @ ~/$USER_CACHE_DIR/gomp_default.jpg

Network Type

By Default gomp assumes that you connect to MPD Server through tcp, But if your MPD Server is configured to expose a unix socket rather than a port, then you can specify network type to “unix” Defaults to tcp if not provided.

NETWORK_TYPE : "unix"

Read More about it in the sample_config

Network Address

The Address of the Host for e.g "localhost" or "/path/to/unix/socket/" if you are using unix sockets Defaults to localhost if not provided.

NETWORK_ADDRESS : "/home/$USER/.mpd/socket"

Read More about it in the sample_config

Default Image Path

This is the Fallback Image that will be rendered if gomp doesn’t find the embedded cover art or LastFM Cover Art.

DEFAULT_IMAGE_PATH : "/path/to/default/image"

Cache Directory

By Default Images are cached to avoid re-extracting images and making redundant API Calls. The Extracted Images are copied to the CACHE_DIR.

CACHE_DIR : "/path/to/the/cache/Directory/"

Read More about Caching in the sample_config

Seek Offset

The amount of seconds by which the current song should seek forward or backward.

SEEK_OFFSET : 5

Redraw Interval

The amount of milliseconds after which the cover art should be redrawn if there is a event.

REDRAW_INTERVAL : 500

MPD Port

This is the port where your Music Player Daemon Is Running.

If not provided gomp looks for the port in mpd.conf in ~/.config/mpd/
MPD_PORT : "6600"

Music Directory

It is the path to your Music Folder that you have provided to mpd in the mpd.conf file. If you do not provide the path to the MUSIC_DIRECTORY then gomp parses the mpd.conf file for the music_directory key.

MUSIC_DIRECTORY : "~/Music"

The reason why you need to provide MUSIC_DIRECTORY is because the paths to the songs received from mpd are relative the MUSIC_DIRECTORY.

Image Rendering

The Default Position of the Image without any configuration assumes that you have no font or terminal padding or margin so Image will be rendered at different places in different terminals, Also the TUIs calculates positions with the respect to 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 some extra padding and your own image width ratio in config.yml. Please Read more about it in the sample_config

Additional Padding

Extra padding for the placement of the image

Additional Padding

Note: Padding can be negative or positive ADDITIONAL_PADDING_X on decrementing will move the image to right and on incrementing will move the image to left similarly ADDITIONAL_PADDING_Y on decrementing will move the image UP and on incrementing will move the image DOWN

Image Width

Add extra IMAGE_WIDTH to the image so that it fits perfectly in the image preview box

Image Width

Note: IMAGE_WIDTH_EXTRA_X and IMAGE_WIDTH_EXTRA_Y can be positive or negative

Tutorial

for e.g

Cover Art Position

Let’s say upon opening gomp for the first time and your image is rendered this way.

Here the Y Position is too low hence we have to decrease the ADDITIONAL_PADDING_Y so that image will be rendered in a better position so we decrement the ADDITIONAL_PADDING_Y by 9

Now the configuration becomes

ADDITIONAL_PADDING_Y : 9

and the image appears like this:

Padding

One might be happy the way things turn out but for a perfectionist like me this is not enough. You can notice that the Height of the image is a little bit more than the box height and hence the image is flowing outside the box. Now it’s time to change the WIDTH_Y.

Width can be changed by defining the IMAGE_WIDTH_EXTRA_Y and IMAGE_WIDTH_EXTRA_X it act’s a little differently think of it like a chunk which is either added or subtracted from the image’s original width. We can look at the configuration and realize that the chunk IMAGE_WIDTH_EXTRA_Y when subtracted from the original IMAGE_WIDTH doesn’t get us the proper result and is a little to low. We need to subtract a more bigger chunk, Hence we will increase the magnitude of IMAGE_WIDTH_EXTRA_Y or decrease IMAGE_WIDTH_EXTRA_Y

Now the Configuration becomes:

IMAGE_WIDTH_EXTRA_Y : - 3.2

and the image appears like this:

Width

Which looks perfect. 🎉

Read More about Additional Padding and Image Width in the sample_config

Please change the configuration according to your needs.

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

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 e.g

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

Following functions are provided :

Functions Default Key Mapping
showChildrenContent l
togglePlayBack p
showParentContent h
nextSong n
clearPlaylist c
previousSong N
addToPlaylist a
toggleRandom z
toggleRepeat r
decreaseVolume -
increaseVolume +
navigateToPlaylist 1
navigateToFiles 2
navigateToSearch 3
quit q
stop s
updateDB u
deleteSongFromPlaylist d
FocusSearch ?
FocusBuffSearch /
SeekBackward b
SeekForward f

Colors and Style

You can change colors and styles for some of the aspects of gomp

Let’s say to you want to change Color of Artist from the default Purple to Red

In your config.yml

COLORS:

artist:

 foreground: Red

# Another Example
pbar_artist:

 foreground: "#ff0000" # For Hex Values
 bold: True # Changes the Style
 italic: False

Dec30(Fri)012241PM Dec30(Fri)012315PM

Following Aspects can be changed:

  • album
  • artist
  • track
  • file
  • folder
  • timestamp
  • matched_title
  • matched_folder
  • pbar_artist
  • pbar_track
  • autocomplete