Christopher James Hayward
4 years ago
4 changed files with 104 additions and 14 deletions
-
13README.org
-
6config/mpd.conf
-
13early-init.el
-
86modules/emms.org
@ -0,0 +1,6 @@ |
|||||
|
music_directory "~/.local/share/media/music" |
||||
|
|
||||
|
playlist_directory "~/.local/share/media/playlists" |
||||
|
|
||||
|
bind_to_address "localhost" |
||||
|
port "6600" |
@ -0,0 +1,86 @@ |
|||||
|
#+TITLE: EMMS |
||||
|
#+AUTHOR: Christopher James Hayward |
||||
|
#+EMAIL: chris@chrishayward.xyz |
||||
|
|
||||
|
#+PROPERTY: header-args:emacs-lisp :tangle emms.el :comments org |
||||
|
#+PROPERTY: header-args :results silent :eval no-export :comments org |
||||
|
|
||||
|
#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil |
||||
|
#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp: nil |
||||
|
|
||||
|
EMMS[fn:1] is Emacs as a multimedia player. |
||||
|
|
||||
|
* Setup |
||||
|
|
||||
|
Make sure you install the required packages on your system before loading the module. |
||||
|
|
||||
|
#+begin_src shell |
||||
|
RUN apt install -y mpc mpd mpv |
||||
|
#+end_src |
||||
|
|
||||
|
** Music player daemon |
||||
|
:PROPERTIES: |
||||
|
:header-args: :tangle ../config/mpd.conf |
||||
|
:END: |
||||
|
|
||||
|
MPD[fn:2] uses a simple text configuration file. Most options only accept a string in " quotes ". The most important option to configure is the ~music_directory~. This is where all of the music ~mpd~[fn:2] will serve exists. It will read the directory recursively. |
||||
|
|
||||
|
#+begin_src conf |
||||
|
music_directory "~/.local/share/media/music" |
||||
|
#+end_src |
||||
|
|
||||
|
You can configure where ~mpd~[fn:2] will look for playlists. You may want to configure this option if you share your playlists between devices. |
||||
|
|
||||
|
#+begin_src conf |
||||
|
playlist_directory "~/.local/share/media/playlists" |
||||
|
#+end_src |
||||
|
|
||||
|
It's possible to serve ~mpd~[fn:2] over the network by configuring it to listen on =0.0.0.0=, or by the systems host name. For a local setup, leave it as =localhost=. |
||||
|
|
||||
|
#+begin_src conf |
||||
|
bind_to_address "localhost" |
||||
|
port "6600" |
||||
|
#+end_src |
||||
|
|
||||
|
*** Deploy the configuration |
||||
|
|
||||
|
MPD[fn:2] will look for its configuration in =~/.config/mpd/mpd.conf=, and =/etc/mpd.conf= respectively. |
||||
|
|
||||
|
#+begin_src emacs-lisp |
||||
|
(let ((mpd-dir "~/.config/mpd")) |
||||
|
(unless (file-exists-p mpd-dir) |
||||
|
(make-directory mpd-dir t)) |
||||
|
(dotfiles/symlink "~/.emacs.d/config/mpd.conf" |
||||
|
(concat mpd-dir "/mpd.conf"))) |
||||
|
#+end_src |
||||
|
|
||||
|
* Config |
||||
|
|
||||
|
Displays and play multimedia from within Emacs with ~emms~[fn:1], using a variety of external players from different sources. It can run as a minimalist player and controlled with commands, or a fully fledged interactive media browser. It can display album art, play streaming media, tag files, search lyrics, and provide ~mpd~[fn:2] connectivity. |
||||
|
|
||||
|
#+begin_src emacs-lisp |
||||
|
(use-package emms |
||||
|
:custom (emms-player-mpd-server-name "localhost") |
||||
|
(emms-player-mpd-server-port "6600") |
||||
|
:config (require 'emms-setup) |
||||
|
(require 'emms-player-mpd) |
||||
|
(emms-all) |
||||
|
(emms-default-players) |
||||
|
(add-to-list 'emms-info-functions 'emms-info-mpd) |
||||
|
(add-to-list 'emms-player-list 'emms-player-mpd)) |
||||
|
#+end_src |
||||
|
|
||||
|
* Shortcuts |
||||
|
|
||||
|
Place bindings for ~emms~[fn:1] behind =SPC u=: |
||||
|
|
||||
|
#+begin_src emacs-lisp |
||||
|
(dotfiles/leader |
||||
|
"u" '(:ignore t :which-key "EMMS")) |
||||
|
#+end_src |
||||
|
|
||||
|
* Footnotes |
||||
|
|
||||
|
[fn:1] https://gnu.org/software/emms/ |
||||
|
|
||||
|
[fn:2] https://musicpd.org |
Write
Preview
Loading…
Cancel
Save
Reference in new issue