summaryrefslogtreecommitdiff
path: root/modules/music-config.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-10-19 17:00:44 -0500
committerCraig Jennings <c@cjennings.net>2025-10-19 17:00:44 -0500
commit63b7e7e5f87f270685379145ac44a5284a48b69a (patch)
tree9811ceb71f7351b98cc0e80acc9bbb925dd6b302 /modules/music-config.el
parentecea24c5d477edfca3f41ad0d58ef27005537abb (diff)
fix:music: issue with not setting EMMS Playlist name and spaces
Diffstat (limited to 'modules/music-config.el')
-rw-r--r--modules/music-config.el44
1 files changed, 21 insertions, 23 deletions
diff --git a/modules/music-config.el b/modules/music-config.el
index 3002517f..35273969 100644
--- a/modules/music-config.el
+++ b/modules/music-config.el
@@ -14,22 +14,12 @@
;; - Playlist window toggling
;; - MPD as player
;;
-;; Enhancements applied:
-;; 1) Reorganized/grouped functions; unified helpers
-;; 3) Standardized error handling (user-error for user-facing errors; consistent messages)
-;; 4) Removed redundant wrappers in favor of binding to EMMS functions directly
-;;
-;; Bug fixes:
-;; - cj/music-playlist-edit validates file, and always opens it correctly even after save prompt
-;; - Keep cj/music-playlist-file in sync even when emms-playlist-clear is called elsewhere
-;;
;;; Code:
(eval-when-compile (require 'emms))
-(eval-when-compile (require 'emms-source-playlist))
-(eval-when-compile (require 'emms-setup))
(eval-when-compile (require 'emms-player-mpd))
(eval-when-compile (require 'emms-playlist-mode))
+(eval-when-compile (require 'emms-setup))
(eval-when-compile (require 'emms-source-file))
(eval-when-compile (require 'emms-source-playlist))
@@ -105,7 +95,10 @@ Directories are suffixed with /; files are plain. Hidden dirs/files skipped."
(let ((buffer (get-buffer-create cj/music-playlist-buffer-name)))
(with-current-buffer buffer
(unless (eq major-mode 'emms-playlist-mode)
- (emms-playlist-mode)))
+ (emms-playlist-mode))
+ (setq emms-playlist-buffer-p t))
+ ;; Set this as the current EMMS playlist buffer
+ (setq emms-playlist-buffer buffer)
buffer))
(defun cj/music--m3u-file-tracks (m3u-file)
@@ -179,6 +172,7 @@ Signals user-error if missing or deleted."
(list (read-directory-name "Add directory recursively: " cj/music-root nil t)))
(unless (file-directory-p directory)
(user-error "Not a directory: %s" directory))
+ (cj/music--ensure-playlist-buffer)
(emms-add-directory-tree directory)
(message "Added recursively: %s" directory))
@@ -196,6 +190,7 @@ Directories (trailing /) are added recursively; files added singly."
(substring choice-rel 0 -1)
choice-rel))
(abs (expand-file-name cleaned cj/music-root)))
+ (cj/music--ensure-playlist-buffer)
(if (file-directory-p abs)
(cj/music-add-directory-recursive abs)
(emms-add-file abs))
@@ -340,6 +335,7 @@ Dirs added recursively."
(interactive)
(unless (derived-mode-p 'dired-mode)
(user-error "This command must be run in a Dired buffer"))
+ (cj/music--ensure-playlist-buffer)
(let ((files (if (use-region-p)
(dired-get-marked-files)
(list (dired-get-file-for-visit)))))
@@ -360,6 +356,8 @@ Dirs added recursively."
:defer t
:init
(defvar cj/music-map (make-sparse-keymap) "Keymap for music commands.")
+ ;; Set buffer name BEFORE emms loads to prevent default buffer creation
+ (setq emms-playlist-buffer-name "*EMMS-Playlist*")
:commands (emms-mode-line-mode)
:config
(require 'emms-setup)
@@ -368,10 +366,15 @@ Dirs added recursively."
(require 'emms-source-file)
(require 'emms-source-playlist)
- (emms-all)
+ ;; Basic EMMS configuration - MUST be set before emms-all
+ (setq emms-source-file-default-directory cj/music-root)
+ (setq emms-playlist-default-major-mode 'emms-playlist-mode)
+
+ ;; Use only MPD as player - MUST be set before emms-all
+ (setq emms-player-list '(emms-player-mpd))
- ;; Use only mpd to play
- (add-to-list 'emms-player-list 'emms-player-mpd)
+ ;; Now initialize EMMS
+ (emms-all)
;; MPD configuration
(setq emms-player-mpd-server-name "localhost")
@@ -381,11 +384,6 @@ Dirs added recursively."
(emms-player-mpd-connect)
(error (message "Failed to connect to MPD: %s" err)))
- ;; Basic EMMS configuration
- (setq emms-source-file-default-directory cj/music-root)
- (setq emms-playlist-buffer-name cj/music-playlist-buffer-name)
- (setq emms-playlist-default-major-mode 'emms-playlist-mode)
-
;; note setopt as variable is customizeable
(setopt emms-player-mpd-supported-regexp
(apply #'emms-player-simple-regexp cj/music-file-extensions))
@@ -413,11 +411,11 @@ Dirs added recursively."
("s" . emms-stop)
("x" . emms-shuffle)
("q" . emms-playlist-mode-bury-buffer)
- ;; Manipulation
- ("a" . cj/music-fuzzy-select-and-add)
+ ("a" . cj/music-fuzzy-select-and-add)
+ ;; Manipulation
("C" . cj/music-playlist-clear)
("L" . cj/music-playlist-load)
- ("e" . cj/music-playlist-edit)
+ ("E" . cj/music-playlist-edit)
("R" . cj/music-playlist-reload)
("S" . cj/music-playlist-save)
;; Track reordering (bind directly to EMMS commands; no wrappers)