Music setup now relies on jellyfin-tui
This commit is contained in:
@@ -1,170 +1,42 @@
|
||||
#+TITLE: Music/Sound Configuration
|
||||
#+TITLE:Music Setup
|
||||
#+SETUPFILE: ./setup/org-setup-file.org
|
||||
|
||||
* =pwvucontrol= - Volume Control for Pipewire
|
||||
|
||||
* =mopidy= - Music Server
|
||||
* Music Install Script
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.config/mopidy/mopidy.conf
|
||||
:header-args:conf+: :comments none :mkdirp yes :noweb no-export
|
||||
:CUSTOM_ID: mopidy
|
||||
:header-args:bash: :tangle scripts/install-music.sh :shebang "#!/bin/bash" :mkdirp yes
|
||||
:END:
|
||||
|
||||
Things done to get mopidy to work:
|
||||
#+begin_src bash :eval no :tangle no
|
||||
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
|
||||
#+begin_src bash
|
||||
set -euo pipefail
|
||||
#+end_src
|
||||
|
||||
To run mopidy:
|
||||
#+begin_src bash :eval no :tangle no
|
||||
~/.local/soft/mopidy-jellyfin/env/bin/mopidy
|
||||
** Packages
|
||||
|
||||
#+begin_src bash
|
||||
echo "==> Music packages"
|
||||
paru -S --needed --noconfirm jellyfin-tui playerctl
|
||||
#+end_src
|
||||
|
||||
#+begin_src conf
|
||||
[core]
|
||||
cache_dir = ~/.cache/mopidy
|
||||
config_dir = ~/.config/mopidy
|
||||
data_dir = ~/.local/data/mopidy
|
||||
** Tangle Configuration
|
||||
|
||||
[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
|
||||
#+begin_src bash
|
||||
echo "==> Tangling music.org"
|
||||
emacsclient -e '(org-babel-tangle-file "/home/thomas/.config/literate-dotfiles/music.org")'
|
||||
#+end_src
|
||||
|
||||
* =ncmpcpp= - Ncurses based MPD client
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: ncmpcpp
|
||||
:END:
|
||||
* Jellyfin-tui config
|
||||
|
||||
https://rybczak.net/ncmpcpp/
|
||||
Cheatsheet: https://pkgbuild.com/~jelle/ncmpcpp/
|
||||
#+begin_src conf :noweb yes :tangle ~/.config/jellyfin-tui/config.yaml
|
||||
servers:
|
||||
- name: Home Server
|
||||
password: <<get-password(passname="jellyfin.tdehaeze.xyz/tdehaeze")>>
|
||||
url: https://jellyfin.tdehaeze.xyz
|
||||
username: tdehaeze
|
||||
|
||||
** Config
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.config/ncmpcpp/config
|
||||
:header-args:conf+: :comments both :mkdirp yes
|
||||
:END:
|
||||
persist: true
|
||||
always_show_lyrics: false
|
||||
|
||||
keymap:
|
||||
q: !Shell "tmux detach"
|
||||
|
||||
Configuration directory.
|
||||
#+begin_src conf
|
||||
ncmpcpp_directory = ~/.config/ncmpcpp
|
||||
lyrics_directory = ~/.local/share/lyrics
|
||||
#+end_src
|
||||
|
||||
MPD Configuration.
|
||||
#+begin_src conf
|
||||
mpd_host = localhost
|
||||
mpd_port = 6600
|
||||
mpd_music_dir = ~/Music
|
||||
#+end_src
|
||||
|
||||
Notification of song change.
|
||||
#+begin_src conf
|
||||
execute_on_song_change = dunstify --replace=19845 "Now Playing ♫" "$(mpc current)"
|
||||
#+end_src
|
||||
|
||||
Better user interface
|
||||
#+begin_src conf
|
||||
user_interface = "alternative"
|
||||
playlist_editor_display_mode = "columns"
|
||||
search_engine_display_mode = "columns"
|
||||
browser_display_mode = "columns"
|
||||
playlist_display_mode = "columns"
|
||||
#+end_src
|
||||
|
||||
Lyrics
|
||||
#+begin_src conf
|
||||
lyrics_fetchers = musixmatch, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet
|
||||
#+end_src
|
||||
|
||||
Sorting by tracking number and then title
|
||||
#+begin_src conf
|
||||
browser_sort_mode = "format"
|
||||
browser_sort_format = '{%n - %t}|{%t}'
|
||||
#+end_src
|
||||
|
||||
#+begin_src conf
|
||||
ask_before_clearing_playlists = "no"
|
||||
#+end_src
|
||||
|
||||
** Bindings
|
||||
:PROPERTIES:
|
||||
:header-args:conf: :tangle ~/.config/ncmpcpp/bindings
|
||||
:header-args:conf+: :comments none :mkdirp yes
|
||||
:END:
|
||||
|
||||
#+begin_src conf
|
||||
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
|
||||
#+end_src
|
||||
|
||||
Reference in New Issue
Block a user