- Remove consult-dir, nerd-icons-completion, org-contrib and some other unused package - Delete init-org-refile.el and related keybindings - Prune EMMS config - Remove EXWM flatpak launcher helpers (vscodium, localsend, steam) - Extract Windows dirvish video preview fix to standalone module - Drop built-in settings moved elsewhere (startup defaults, whitespace, etc.) - Clean up trailing whitespace / process list prettify configs
112 lines
3.3 KiB
EmacsLisp
112 lines
3.3 KiB
EmacsLisp
;;; init-emms.el --- emms -*- lexical-binding: t -*-
|
|
|
|
;;; Commentary:
|
|
|
|
;;; Code:
|
|
|
|
(use-package emms
|
|
:init
|
|
;; 设置音乐文件默认目录
|
|
(when *is-windows*
|
|
(setq emms-source-file-default-directory "F:/luping26-1-11/"))
|
|
|
|
:config
|
|
;; --- 基础设置 ---
|
|
(require 'emms-setup)
|
|
(emms-all) ; 加载所有稳定功能
|
|
|
|
;; 使用简单模式的 mpv 播放器
|
|
;; 移除默认的 emms-player-mpv
|
|
(require 'emms-player-simple)
|
|
|
|
;; 定义简单的 mpv 播放器
|
|
(define-emms-simple-player mpv-simple '(file url streamlist playlist)
|
|
(concat "\\.\\("
|
|
(mapconcat 'identity
|
|
'("mp3" "mp4" "avi" "mkv" "flv" "mov" "wmv" "webm"
|
|
"ogg" "ogv" "oga" "ogx"
|
|
"flac" "wav" "aac" "m4a" "wma"
|
|
"mpg" "mpeg" "mpe" "mpv"
|
|
"3gp" "3g2"
|
|
"m3u" "pls")
|
|
"\\|")
|
|
"\\)\\'\\|http[s]?://")
|
|
"mpv"
|
|
"--force-window=immediate"
|
|
"--keep-open=yes"
|
|
"--fs=no"
|
|
"--quiet")
|
|
|
|
;; 设置播放器列表
|
|
(setq emms-player-list '(emms-player-mpv-simple
|
|
emms-player-vlc
|
|
emms-player-mplayer))
|
|
|
|
(setq emms-playlist-default-playlist-name "*EMMS Playlist*")
|
|
(setq emms-playlist-buffer-name "*EMMS Playlist*")
|
|
|
|
;; 使用更快的文件查找方法(windows上需要使用internal)
|
|
;; (setq emms-source-file-directory-tree-function 'emms-source-file-directory-tree-find)
|
|
(setq emms-source-file-directory-tree-function 'emms-source-file-directory-tree-internal)
|
|
|
|
;; 使用原生 Elisp 元数据读取器
|
|
(setq emms-info-functions '(emms-info-native))
|
|
|
|
;; 异步读取元数据
|
|
(setq emms-info-asynchronously t)
|
|
|
|
;; 使用更详细的曲目描述
|
|
(setq emms-track-description-function #'emms-info-track-description)
|
|
|
|
;; 模式行设置
|
|
(require 'emms-mode-line)
|
|
(emms-mode-line-mode 1)
|
|
(emms-mode-line-blank) ; 初始为空
|
|
|
|
;; 自定义模式行格式
|
|
(setq emms-mode-line-format " [%s] ")
|
|
(setq emms-mode-line-length-limit 60)
|
|
|
|
;; 播放时间显示
|
|
(require 'emms-playing-time)
|
|
(emms-playing-time-mode 1)
|
|
|
|
;; 添加(playlist中的)快捷键
|
|
(define-key emms-playlist-mode-map (kbd "SPC") 'emms-pause)
|
|
(define-key emms-playlist-mode-map (kbd "N") 'emms-next)
|
|
(define-key emms-playlist-mode-map (kbd "P") 'emms-previous)
|
|
(define-key emms-playlist-mode-map (kbd "R") 'emms-random)
|
|
(define-key emms-playlist-mode-map (kbd "/") 'emms-playlist-limit)
|
|
|
|
;; 启用播放列表排序
|
|
(require 'emms-playlist-sort)
|
|
(define-key emms-playlist-mode-map (kbd "S s") 'emms-playlist-sort-map)
|
|
|
|
;; 启动后自动恢复播放列表
|
|
;; (add-hook 'after-init-hook 'emms-history-load)
|
|
|
|
;; 显示加载完成消息
|
|
(message "EMMS loaded")
|
|
|
|
;; 关闭自动连播
|
|
(add-hook 'emms-playlist-mode-hook
|
|
(lambda ()
|
|
(setq emms-single-track t))))
|
|
|
|
;; 提供 EMMS 快捷启动函数
|
|
(defun my-emms-start-browser ()
|
|
"Open emms browser."
|
|
(interactive)
|
|
(emms-browser)
|
|
(message "EMMS browser loaded"))
|
|
|
|
(defun my-emms-play-directory (dir)
|
|
"Play all files in directory.."
|
|
(interactive "Dchoose a directory: ")
|
|
(emms-play-directory-tree dir)
|
|
(message "playing: %s" dir))
|
|
|
|
(provide 'init-emms)
|
|
|
|
;;; init-emms.el ends here
|