diff options
Diffstat (limited to 'lisp/mpc.el')
-rw-r--r-- | lisp/mpc.el | 91 |
1 files changed, 42 insertions, 49 deletions
diff --git a/lisp/mpc.el b/lisp/mpc.el index dc61ce78bda..ba95308bf67 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -1126,32 +1126,30 @@ If PLAYLIST is t or nil or missing, use the main playlist." ;;; The actual UI code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defvar mpc-mode-map - (let ((map (make-sparse-keymap))) - ;; (define-key map "\e" #'mpc-stop) - (define-key map "q" #'mpc-quit) - (define-key map "\r" #'mpc-select) - (define-key map [(shift return)] #'mpc-select-toggle) - (define-key map [mouse-2] #'mpc-select) - (define-key map [S-mouse-2] #'mpc-select-extend) - (define-key map [C-mouse-2] #'mpc-select-toggle) - (define-key map [drag-mouse-2] #'mpc-drag-n-drop) - ;; We use `always' because a binding to t is like a binding to nil. - (define-key map [follow-link] :always) - ;; But follow-link doesn't apply blindly to header-line and - ;; mode-line clicks. - (define-key map [header-line follow-link] #'ignore) - (define-key map [mode-line follow-link] #'ignore) - ;; Doesn't work because the first click changes the buffer, so the second - ;; is applied elsewhere :-( - ;; (define-key map [(double mouse-2)] #'mpc-play-at-point) - (define-key map "p" #'mpc-pause) - (define-key map "s" #'mpc-toggle-play) - (define-key map ">" #'mpc-next) - (define-key map "<" #'mpc-prev) - (define-key map "g" #'mpc-seek-current) - (define-key map "o" #'mpc-goto-playing-song) - map)) +(defvar-keymap mpc-mode-map + ;; "ESC" #'mpc-stop + "q" #'mpc-quit + "RET" #'mpc-select + "S-<return>" #'mpc-select-toggle + "<mouse-2>" #'mpc-select + "S-<mouse-2>" #'mpc-select-extend + "C-<mouse-2>" #'mpc-select-toggle + "<drag-mouse-2>" #'mpc-drag-n-drop + ;; We use `always' because a binding to t is like a binding to nil. + "<follow-link>" :always + ;; But follow-link doesn't apply blindly to header-line and + ;; mode-line clicks. + "<header-line> <follow-link>" #'ignore + "<mode-line> <follow-link>" #'ignore + ;; Doesn't work because the first click changes the buffer, so the second + ;; is applied elsewhere :-( + ;; "<double-mouse-2>" #'mpc-play-at-point + "p" #'mpc-pause + "s" #'mpc-toggle-play + ">" #'mpc-next + "<" #'mpc-prev + "g" #'mpc-seek-current + "o" #'mpc-goto-playing-song) (easy-menu-define mpc-mode-menu mpc-mode-map "Menu for MPC mode." @@ -1571,8 +1569,9 @@ when constructing the set of constraints." (mpc-tagbrowser-refresh) buf)))) -(defvar tag-browser-tagtypes - (lazy-completion-table tag-browser-tagtypes +(define-obsolete-variable-alias 'tag-browser-tagtypes 'mpc-tag-browser-tagtypes "29.1") +(defvar mpc-tag-browser-tagtypes + (lazy-completion-table mpc-tag-browser-tagtypes (lambda () (append '("Playlist" "Directory") (mpc-cmd-tagtypes))))) @@ -1583,7 +1582,7 @@ when constructing the set of constraints." (list (let ((completion-ignore-case t)) (intern - (completing-read "Tag: " tag-browser-tagtypes nil 'require-match))))) + (completing-read "Tag: " mpc-tag-browser-tagtypes nil 'require-match))))) (let* ((newbuf (mpc-tagbrowser-buf tag)) (win (get-buffer-window newbuf 0))) (if win (select-window win) @@ -1748,11 +1747,9 @@ Return non-nil if a selection was deactivated." ;; present (because we're in the non-selected part and the parent is ;; in the selected part). -(defvar mpc-tagbrowser-dir-mode-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map mpc-tagbrowser-mode-map) - (define-key map [?\M-\C-m] #'mpc-tagbrowser-dir-toggle) - map)) +(defvar-keymap mpc-tagbrowser-dir-mode-map + :parent mpc-tagbrowser-mode-map + "M-RET" #'mpc-tagbrowser-dir-toggle) ;; (defvar mpc-tagbrowser-dir-keywords ;; '(mpc-tagbrowser-dir-hide-prefix)) @@ -1859,17 +1856,15 @@ A value of t means the main playlist.") ;;; Volume management ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defvar mpc-volume-map - (let ((map (make-sparse-keymap))) - ;; Bind the up-events rather than the down-event, so the - ;; `message' isn't canceled by the subsequent up-event binding. - (define-key map [down-mouse-1] #'ignore) - (define-key map [mouse-1] #'mpc-volume-mouse-set) - (define-key map [header-line mouse-1] #'mpc-volume-mouse-set) - (define-key map [header-line down-mouse-1] #'ignore) - (define-key map [mode-line mouse-1] #'mpc-volume-mouse-set) - (define-key map [mode-line down-mouse-1] #'ignore) - map)) +(defvar-keymap mpc-volume-map + ;; Bind the up-events rather than the down-event, so the + ;; `message' isn't canceled by the subsequent up-event binding. + "<down-mouse-1>" #'ignore + "<mouse-1>" #'mpc-volume-mouse-set + "<header-line> <mouse-1>" #'mpc-volume-mouse-set + "<header-line> <down-mouse-1>" #'ignore + "<mode-line> <mouse-1>" #'mpc-volume-mouse-set + "<mode-line> <down-mouse-1>" #'ignore) (defvar mpc-volume nil) (put 'mpc-volume 'risky-local-variable t) @@ -1937,10 +1932,8 @@ A value of t means the main playlist.") (defvar mpc-previous-window-config nil) -(defvar mpc-songs-mode-map - (let ((map (make-sparse-keymap))) - (define-key map [remap mpc-select] #'mpc-songs-jump-to) - map)) +(defvar-keymap mpc-songs-mode-map + "<remap> <mpc-select>" #'mpc-songs-jump-to) (defvar mpc-songpointer-set-visible nil) |