Files
literate-dotfiles/music.org

3.5 KiB

Music/Sound Configuration

pwvucontrol - Volume Control for Pipewire

mopidy - Music Server

Things done to get mopidy to work:

cd ~/.local/soft/
git clone git@github.com:jellyfin/mopidy-jellyfin.git && cd mopidy-jellyfin
python -m venv env --system-site-packages
env/bin/python setup.py develop
env/bin/pip install mopidy-mpd

To run mopidy:

~/.local/soft/mopidy-jellyfin/env/bin/mopidy
[core]
cache_dir = ~/.cache/mopidy
config_dir = ~/.config/mopidy
data_dir = ~/.local/data/mopidy

[audio]
output = queue2 max-size-buffers=20000 max-size-time=0 max-size-bytes=0 ! audioconvert ! pulsesink

[stream]
enabled = true
protocols =
    http
    https
timeout = 30000

[mpd]
enabled = true
hostname = 127.0.0.1
port = 6600
password =
max_connections = 20
connection_timeout = 60
zeroconf = Mopidy MPD server on $hostname
command_blacklist = listall,listallinfo
default_playlist_scheme = m3u

[jellyfin]
hostname = https://jellyfin.tdehaeze.xyz
username = tdehaeze
password = <<get-password(passname="music.tdehaeze.xyz/tdehaeze")>>
libraries = Music
albumartistsort = True
album_format = {ProductionYear} - {Name}

[file]
enabled = false

[logging]
verbosity = 4
format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n  %(message)s
color = true

ncmpcpp - Ncurses based MPD client

https://rybczak.net/ncmpcpp/ Cheatsheet: https://pkgbuild.com/~jelle/ncmpcpp/

Config

Configuration directory.

ncmpcpp_directory = ~/.config/ncmpcpp
lyrics_directory = ~/.local/share/lyrics

MPD Configuration.

mpd_host = localhost
mpd_port = 6600
mpd_music_dir = ~/Music

Notification of song change.

execute_on_song_change = dunstify --replace=19845 "Now Playing ♫" "$(mpc current)"

Better user interface

user_interface = "alternative"
playlist_editor_display_mode = "columns"
search_engine_display_mode = "columns"
browser_display_mode = "columns"
playlist_display_mode = "columns"

Lyrics

lyrics_fetchers = musixmatch, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet

Sorting by tracking number and then title

browser_sort_mode = "format"
browser_sort_format = '{%n - %t}|{%t}'
ask_before_clearing_playlists = "no"

Bindings

def_key "q"
  run_external_command "sh -c 'if [ $TMUX ] ; then tmux detach; fi'"
def_key "Q"
  quit
def_key "g"
  move_home
def_key "G"
  move_end
def_key "j"
  scroll_down
def_key "k"
  scroll_up
def_key "ctrl-u"
  page_up
def_key "ctrl-d"
  page_down
def_key "l"
  enter_directory
def_key "h"
  jump_to_parent_directory
def_key "."
  show_lyrics
def_key "n"
  next_found_item
def_key "N"
  previous_found_item
def_key "J"
  move_sort_order_down
def_key "K"
  move_sort_order_up
def_key "d"
  delete_playlist_items
def_key "+"
  volume_up
def_key "-"
  volume_down