add mpdel evil keybinds

This commit is contained in:
Vonfry 2021-01-03 09:43:14 +08:00 committed by James N
parent 323bb7d858
commit 953fe16e1b
2 changed files with 97 additions and 0 deletions

View File

@ -206,6 +206,7 @@ through removing their entry from `evil-collection-mode-list'."
magit-todos
,@(when evil-collection-setup-minibuffer '(minibuffer))
monky
mpdel
mu4e
mu4e-conversation
neotree

View File

@ -0,0 +1,96 @@
;;; evil-collection-mpdel.el --- Evil bindings for mpdel -*- lexical-binding: t -*-
;; Copyright (C) 2021 Ruoyu Feng
;; Author: Ruoyu Feng <mail@vonfry.name>
;; Maintainer: James Nguyen <james@jojojames.com>
;; Pierre Neidhardt <mail@ambrevar.xyz>
;; URL: https://github.com/emacs-evil/evil-collection
;; Version: 0.0.4
;; Package-Requires: ((emacs "25.1"))
;; Keywords: evil, tools, mpd
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published
;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;;
;; This file is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; For a full copy of the GNU General Public License
;; see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; Evil bindings for mpdel.
;;; Code:
(require 'mpdel nil t)
(require 'evil-collection)
(defvar mpdel-core-map)
(defconst evil-collection-mpdel-maps '(mpdel-core-map))
(defconst evil-collection-mpdel-modes '(mpdel-browser-mode mpdel-playlist-mode
mpdel-song-mode mpdel-browser-mode
mpdel-playlist-current-playlist-mode
mpdel-playlist-stored-playlist-mode))
;;;###autoload
(defun evil-collection-mpdel-setup ()
"Set up `evil' bindings for `mpdel'."
(evil-collection-set-readonly-bindings 'mpdel-core-map)
(dolist (mode evil-collection-mpdel-modes)
(evil-set-initial-state mode 'normal))
(evil-collection-define-key 'normal 'mpdel-core-map
"p" 'libmpdel-playback-play-pause
"{" 'libmpdel-playback-next
"}" 'libmpdel-playback-previous
"a" 'mpdel-core-add-to-current-playlist
"A" 'mpdel-core-add-to-stored-playlist
"r" 'mpdel-core-replace-current-playlist
"R" 'mpdel-core-replace-stored-playlist
"i" 'mpdel-core-insert-current-playlist
"gD" 'mpdel-core-dired
"gA" 'mpdel-core-open-artists
"gL" 'mpdel-core-open-stored-playlists
"ss" 'mpdel-core-search-by-title
"sl" 'mpdel-core-search-by-album
"sr" 'mpdel-core-search-by-artist
"gp" 'navigel-open-parent
"j" 'evil-next-line
"k" 'evil-previous-line
"+" 'mpdel-core-volume-increase
"-" 'mpdel-core-volume-decrease
"C" 'libmpdel-connect-profile
"gb" 'mpdel-browser-open
"go" 'mpdel-song-open
"gr" 'mpdel-song-refresh
"I" 'mpdel-song-play
"q" 'mpdel-song-quit-window
"g-s" 'mpdel-song-small-increment
"g-n" 'mpdel-song-normal-increment
"g-l" 'mpdel-song-large-increment
"g+s" 'mpdel-song-small-decrement
"g+n" 'mpdel-song-normal-decrement
"g+l" 'mpdel-song-large-decrement
"gl" 'mpdel-playlist-open
"(" 'mpdel-playlist-move-up
")" 'mpdel-playlist-move-down
"w" 'mpdel-playlist-save
"P" 'mpdel-playlist-play)
(evil-collection-define-key 'normal 'mpdel-tablist-mode-map
"D" 'tablist-do-delete))
(provide 'evil-collection-mpdel)
;;; evil-collection-mpdel.el ends here