;;; -*- 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 (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) (emms-playlist-mode-go) (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-length-limit 35 emms-mode-line-format " [%s] " emms-repeat-playlist t emms-info-functions '(emms-info-native emms-info-exiftool)) (add-to-list 'display-buffer-alist '((major-mode . emms-playlist-mode) (display-buffer-in-side-window) (side . left) (slot . 0) (width . 0.2) (post-command-select-window t)))) (provide 'bd--emms) ;;; bd--emms.el ends here