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
Password
The password to your MPD Server Defaults to unauthenticated connection if empty string is provided.
MPD_PASSWORD : "my_password"
Hide Image
By default, the cover art is rendered. Set this parameter to true, in order to hide the image.
HIDE_IMAGE : False
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
Rounded Corners
Enable Rounded Corners for the UI. Defaults to True.
ROUNDED_CORNERS: True
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
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
Note: IMAGE_WIDTH_EXTRA_X and IMAGE_WIDTH_EXTRA_Y can be positive or negative
Tutorial
for e.g
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:
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:
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
-
Generate API Key here
-
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"
- Auto correct
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
Following Aspects can be changed:
album
artist
track
file
folder
timestamp
matched_title
matched_folder
pbar_artist
pbar_track
autocomplete