aboutsummaryrefslogtreecommitdiff
path: root/bard-emacs-modules/bard-emacs-emms.el
blob: 0a7d249fae31ac95eb0138d13aae5ae84bae8392 (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
;; |------------------------------------|
;; |             EMMS                   |
;; |------------------------------------|

(require 'emms)
(require 'emms-setup)
(require 'emms-mpris)
(require 'emms-mode-line-icon)

(emms-all)
(emms-default-players)
(emms-mpris-enable)
(setq emms-player-list '(emms-player-mpv)
      emms-info-functions '(emms-info-native))

(setq emms-browser-covers 'emms-browser-cache-thumbnail)

(setq emms-volume-amixer-card 0)

;; center line function
(defun bard/emms-recenter ()
  (interactive)
  (recenter-top-bottom)
  (emms-playlist-mode-center-current))

;; modeline
(emms-mode-line-disable)
(emms-playing-time-disable-display)

;; Keymaps
(use-package emms
  :bind
  (:map emms-playlist-mode-map
   ("M-<f8>" . emms-browser)
   ("A" . emms-add-directory)
   ("T" . emms-add-directory-tree)
   ("F" . emms-add-file)
   ("U" . emms-add-url)
   ("L" . emms-toggle-repeat-track)
   ("<mouse-3>" . emms-pause)
   ("<SPC>" . emms-pause)
   ("c" . bard/emms-recenter))
  :bind ("<f8>" . emms)
  :hook
  (emms-playlist-mode . hl-line-mode))

(provide 'bard-emacs-emms)