80 lines
3.0 KiB
EmacsLisp
80 lines
3.0 KiB
EmacsLisp
|
|
;; TODO - make toggle command for emms-start/emms-stop
|
|
;; TODO - change mode line display - don't show the whole file path, just the name
|
|
(use-package emms
|
|
:ensure t
|
|
:bind
|
|
("<f2> e" . #'hydra-emms/body)
|
|
("<f2> E" . #'emms)
|
|
(:map emms-playlist-mode-map
|
|
("0" . #'emms-volume-raise)
|
|
("9" . #'emms-volume-lower)
|
|
("<up>" . #'emms-volume-raise)
|
|
("<down>" . #'emms-volume-lower)
|
|
("<left>" . #'emms-seek-backward)
|
|
("<right>" . #'emms-seek-forward)
|
|
("n" . #'next-line)
|
|
("p" . #'previous-line)
|
|
("N" . #'emms-next)
|
|
("P" . #'emms-previous)
|
|
("R" . #'emms-toggle-random-playlist)
|
|
("M-n" . #'emms-cue-next)
|
|
("M-p" . #'emms-cue-previous)
|
|
("SPC" . #'emms-pause))
|
|
(:map dired-mode-map
|
|
("E" . #'hydra-emms/body))
|
|
:commands (emms-all
|
|
emms
|
|
emms-play-dired
|
|
emms-add-dired)
|
|
:config (emms-all)
|
|
(emms-default-players)
|
|
(setq emms-player-mpv-parameters
|
|
(lambda ()
|
|
(append
|
|
'("--fs"
|
|
"--quiet"
|
|
"--really-quiet"
|
|
"--force-window=yes"
|
|
"-ao=jack,alsa"
|
|
;; "--loop-file=inf"
|
|
)
|
|
(let* ((dir (->> (emms-playlist-current-selected-track)
|
|
(alist-get 'name)
|
|
(file-name-directory)))
|
|
(subs-in-dir (f-glob "*.srt" dir))
|
|
(subs-in-subdir (f-glob "*/*.srt" dir)))
|
|
(->> (append subs-in-dir subs-in-subdir)
|
|
(-interpose ":")
|
|
(append '("--sub-files="))
|
|
(apply #'concat)
|
|
(list))))))
|
|
;; This won't work for `emms-random', because it runs in a `save-excursion'
|
|
;; (add-to-list 'emms-playlist-selection-changed-hook 'emms-playlist-mode-center-current)
|
|
;; (--map (add-to-list 'emms-player-mpv-parameters it)
|
|
;; '("--fs"))
|
|
(defun contrapunctus-emms-toggle-player ()
|
|
(interactive)
|
|
(if emms-player-stopped-p
|
|
(emms-start)
|
|
(emms-stop)))
|
|
(setq emms-playlist-buffer-name "EMMS Playlist")
|
|
:init (defhydra hydra-emms ()
|
|
("e" #'emms "EMMS")
|
|
("n" #'emms-next "Next")
|
|
("p" #'emms-previous "Previous")
|
|
("SPC" #'emms-pause "Pause")
|
|
("s" #'contrapunctus-emms-toggle-player "Start/Stop")
|
|
("0" #'emms-volume-raise)
|
|
("9" #'emms-volume-lower)
|
|
("<up>" #'emms-volume-raise)
|
|
("<down>" #'emms-volume-lower)
|
|
("<left>" #'emms-seek-backward)
|
|
("<right>" #'emms-seek-forward)
|
|
("l" #'emms-play-dired "Play file (dired)")
|
|
("a" #'emms-add-dired "Add file (dired)")
|
|
("A" #'emms-add-directory-tree "Add directory")
|
|
("u" #'emms-play-url)))
|
|
|
|
(provide 'cp-emms)
|