summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--emms.el
blob: 2ecb684672900ef9064cfbaf7efb89bacc1b9722 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
;;; -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:


(use-package emms
  :bind (("C-z C-s" . #'emms-quickstart)
	 ("C-z C-m" . #'switch-to-emms)
	 :map emms-playlist-mode-map
	 ("q" . #'quit-window))
  :config
  (require 'emms-setup)
  (require 'emms-player-mpv)
  (require 'emms-playlist-mode)
  (emms-all)

  (defun emms-quickstart ()
    "Queues a shuffled playlist and starts
playback."
    (interactive)
    (emms-stop)
    (when (bufferp emms-playlist-buffer-name)
      (kill-buffer emms-playlist-buffer-name))
    (emms-play-directory-tree (expand-file-name "~/ik/music/"))
    (emms-shuffle))
  (defun switch-to-emms ()
    (interactive)
    (if (get-buffer emms-playlist-buffer-name)
        (display-buffer emms-playlist-buffer-name)
      (message "The Ainur cannot hear you...")))

  (add-to-list 'emms-player-list 'emms-player-mpv)
  (emms-playing-time-disable-display)
  (setq-default emms-playlist-default-major-mode 'emms-playlist-mode

                emms-player-list '(emms-player-mpv)
                emms-player-mpv-environment '("PULSE_PROP_media.role=music")
                emms-player-mpv-parameters '("--quiet" "--really-quiet" "--no-audio-display" "--force-window=no" "--vo=null"))
  (setopt
   emms-track-description-function
   '(lambda (track)
      (let ((artist (emms-track-get track 'info-artist))
            (title  (emms-track-get track 'info-title)))
        (cond
         ((and artist title)
          (concat artist " - " title))
         (title
          title)
         (t
          (emms-track-simple-description track))))))
  (setopt emms-source-file-default-directory (expand-file-name "~/ik/playlists/")
	  emms-info-report-each-num-tracks 2000
	  emms-playlist-buffer-name "*Playlist*"
	  emms-mode-line-icon-enabled-p nil
	  emms-mode-line-format " [%s] "
	  emms-repeat-playlist t))


(provide 'bd--emms)
;;; bd--emms.el ends here