diff --git a/.bin/homeinit b/.bin/homeinit index cf32a722..40fc53d4 100755 --- a/.bin/homeinit +++ b/.bin/homeinit @@ -56,7 +56,8 @@ if command -v emacs >/dev/null 2>&1; then yes | emacs --batch -l ~/.emacs.d/init.el --eval '(progn (package-refresh-contents) (package-install-selected-packages))' echo "==> Emacs extra packages" mkdir -pv ~/.emacs.d/site-lisp - git_update https://github.com/Ambrevar/evil-special-modes ~/.emacs.d/site-lisp/evil-special-modes + git_update https://github.com/jojojames/evil-collection ~/.emacs.d/site-lisp/evil-collection + # git_update https://github.com/Ambrevar/evil-special-modes ~/.emacs.d/site-lisp/evil-special-modes # git_update https://github.com/Ambrevar/emacs-fish-completion ~/.emacs.d/site-lisp/fish-completion fi diff --git a/.emacs.d/lisp/init-evil-debbugs.el b/.emacs.d/lisp/init-evil-debbugs.el deleted file mode 100644 index 4f0a0496..00000000 --- a/.emacs.d/lisp/init-evil-debbugs.el +++ /dev/null @@ -1,40 +0,0 @@ -;;; Evil+Debbugs - -(evil-set-initial-state 'debbugs-gnu-mode 'motion) - -(evil-define-key 'motion debbugs-gnu-mode-map - ;; motion - (kbd "") 'forward-button - (kbd "") 'backward-button - (kbd "SPC") 'scroll-up-command - - (kbd "") 'debbugs-gnu-select-report - "c" 'debbugs-gnu-send-control-message - "d" 'debbugs-gnu-display-status - - ;; filtering - (kbd "s") 'debbugs-gnu-narrow-to-status - ;; "S" 'debbugs-gnu-widen ; Useless if we can just press "s RET" (empty filter). - "S" 'debbugs-gnu-toggle-suppress - "r" 'debbugs-gnu-show-all-blocking-reports - - ;; sorting - "o" 'debbugs-gnu-toggle-sort - "O" 'tabulated-list-sort - - ;; show - "gB" 'debbugs-gnu-show-blocking-reports - "gb" 'debbugs-gnu-show-blocked-by-reports - - ;; marking - "m" 'debbugs-gnu-toggle-tag - - ;; update - "gr" 'debbugs-gnu-rescan - - ;; quit - "q" 'quit-window - "ZQ" 'quit-window - "ZZ" 'quit-window) - -(provide 'init-evil-debbugs) diff --git a/.emacs.d/lisp/init-evil-elfeed.el b/.emacs.d/lisp/init-evil-elfeed.el deleted file mode 100644 index a6ba7dae..00000000 --- a/.emacs.d/lisp/init-evil-elfeed.el +++ /dev/null @@ -1,65 +0,0 @@ -;;; Evil+Elfeed - -(evil-set-initial-state 'elfeed-search-mode 'motion) -(evil-define-key 'motion elfeed-search-mode-map - (kbd "") 'elfeed-search-show-entry - "o" 'elfeed-search-browse-url - "y" 'elfeed-search-yank - - ;; filter - "s" 'elfeed-search-live-filter - "S" 'elfeed-search-set-filter - - ;; update - "R" 'elfeed-search-fetch ; TODO: Which update function is more useful? - "r" 'elfeed-search-update--force - - ;; quit - "q" 'quit-window - "ZQ" 'quit-window - "ZZ" 'quit-window) - -(evil-define-key '(motion visual) elfeed-search-mode-map - "+" 'elfeed-search-tag-all - "-" 'elfeed-search-untag-all - "U" 'elfeed-search-tag-all-unread - "u" 'elfeed-search-untag-all-unread) - -(evil-set-initial-state 'elfeed-show-mode 'motion) -(evil-define-key 'motion elfeed-show-mode-map - "o" 'elfeed-show-visit - - ;; filter - "s" 'elfeed-show-new-live-search - - "y" 'elfeed-show-yank - - "+" 'elfeed-show-tag - "-" 'elfeed-show-untag - - "A" 'elfeed-show-add-enclosure-to-playlist - "P" 'elfeed-show-play-enclosure - "d" 'elfeed-show-save-enclosure - - "]" 'elfeed-show-next - "[" 'elfeed-show-prev - (kbd "C-j") 'elfeed-show-next - (kbd "C-k") 'elfeed-show-prev - - ;; update - "r" 'elfeed-show-refresh - - ;; quit - "q" 'elfeed-kill-buffer - "ZQ" 'elfeed-kill-buffer - "ZZ" 'elfeed-kill-buffer) - -;;; Custom -(evil-define-key 'motion elfeed-search-mode-map - (kbd "") 'elfeed-visit-or-play-with-mpv - "o" 'elfeed-visit-or-play-with-mpv) -(evil-define-key 'motion elfeed-show-mode-map - (kbd "") 'elfeed-visit-or-play-with-mpv - "o" 'elfeed-visit-or-play-with-mpv) - -(provide 'init-evil-elfeed) diff --git a/.emacs.d/lisp/init-evil-emms.el b/.emacs.d/lisp/init-evil-emms.el deleted file mode 100644 index ca530d99..00000000 --- a/.emacs.d/lisp/init-evil-emms.el +++ /dev/null @@ -1,143 +0,0 @@ -;;; Evil+EMMS - -;;; TODO: Make all play bindings consistent across modes "stop, pause, volume, next/previous, fast-forward/backward". - -;;; TODO: Add bindings to search map. - -;;; emms-browser does not run any mode hook. As such the default state is 'normal. -;;; TODO: Report upstream. -(defun evil/emms-browser () - (evil-motion-state)) -(advice-add 'emms-browser :after 'evil/emms-browser) - -(defun evil/emms-playlist-mode-insert-newline-above () - "Insert a newline above point." - (interactive) - (emms-with-inhibit-read-only-t - (evil-insert-newline-above))) - -(defun evil/emms-playlist-mode-insert-newline-below () - "Insert a newline below point." - (interactive) - (emms-with-inhibit-read-only-t - (evil-insert-newline-below))) - -(defun evil/emms-playlist-mode-paste-before () - "Pastes the latest yanked playlist items before the cursor position. -The return value is the yanked text." - (interactive) - (emms-with-inhibit-read-only-t - (goto-char (point-at-bol)) - (yank) - (emms-playlist-mode-correct-previous-yank) - (evil-previous-line) - (evil-beginning-of-line))) - -(defun evil/emms-playlist-mode-paste-after () - "Pastes the latest yanked playlist items behind point. -The return value is the yanked text." - (interactive) - (evil-next-line) - (evil/emms-playlist-mode-paste-before)) - -(dolist (map (list emms-browser-mode-map emms-playlist-mode-map)) - (evil-define-key 'motion map - "+" 'emms-volume-raise - "=" 'emms-volume-raise - "-" 'emms-volume-lower - "u" 'emms-playlist-mode-undo)) - -(with-eval-after-load 'emms-browser - ;; TODO: Why do we need to define emms-browser-mode-map after load and not emms-playlist-mode-map? - (evil-define-key 'motion emms-browser-mode-map - ;; playback controls - "x" 'emms-pause - "X" 'emms-stop - "r" 'emms-random - "<" 'emms-seek-backward - ">" 'emms-seek-forward - (kbd "") 'emms-browser-add-tracks - (kbd "C-") 'emms-browser-add-tracks-and-play - - ;; motion - "[" 'emms-browser-prev-non-track - "]" 'emms-browser-next-non-track - - (kbd "") 'emms-browser-toggle-subitems - (kbd "SPC") 'emms-browser-toggle-subitems - ;; TODO: Use S-? - "g1" 'emms-browser-collapse-all - "g2" 'emms-browser-expand-to-level-2 - "g3" 'emms-browser-expand-to-level-3 - "g4" 'emms-browser-expand-to-level-4 - "g0" 'emms-browser-expand-all - "ga" 'emms-browse-by-artist - "gA" 'emms-browse-by-album - "gb" 'emms-browse-by-genre - "gy" 'emms-browse-by-year - "gc" 'emms-browse-by-composer - "gp" 'emms-browse-by-performer - - "/" 'emms-isearch-buffer ; This shows hidden items during search. - - ;; filter - ;; "" 'emms-browser-previous-filter ; TODO: What does this do? - ;; "" 'emms-browser-next-filter - - "s" (lookup-key emms-browser-mode-map (kbd "s")) - "g" (lookup-key emms-browser-mode-map (kbd "W")) ;; TODO: This breaks other evil keys. - - "C" 'emms-browser-clear-playlist - "D" 'emms-browser-delete-files - "d" 'emms-browser-view-in-dired - "gd" 'emms-playlist-mode-goto-dired-at-point)) ; "d" does the same, keep "gd" for consistency. - -(evil-set-initial-state 'emms-playlist-mode 'motion) -(evil-define-key 'motion emms-playlist-mode-map - ;; playback controls - "x" 'emms-pause - "X" 'emms-stop - "r" 'emms-random - "<" 'emms-seek-backward - ">" 'emms-seek-forward - (kbd "C-j") 'emms-next - (kbd "C-k") 'emms-previous - (kbd "") 'emms-playlist-mode-play-smart - - ;; motion - "gg" 'emms-playlist-mode-first - "G" 'emms-playlist-mode-last - "]" 'emms-playlist-mode-next - "[" 'emms-playlist-mode-previous - - "D" 'emms-playlist-mode-kill-track ; emms-browser uses "D" - "C" 'emms-playlist-mode-clear - "O" 'evil/emms-playlist-mode-insert-newline-above - "o" 'evil/emms-playlist-mode-insert-newline-below - "P" 'evil/emms-playlist-mode-paste-before - "p" 'evil/emms-playlist-mode-paste-after - - "u" 'emms-playlist-mode-undo - - "ze" 'emms-tag-editor-edit - "R" 'emms-tag-editor-rename - - "." 'emms-playlist-mode-center-current - "gd" 'emms-playlist-mode-goto-dired-at-point ; "d" does the same, keep "gd" for consistency. - - "zs" 'emms-show - "a" 'emms-playlist-mode-add-contents - "zp" 'emms-playlist-set-playlist-buffer - - ;; filter - "S" (lookup-key emms-playlist-mode-map (kbd "S")) - "s" (lookup-key emms-playlist-mode-map (kbd "/")) - ;; "" 'emms-playlist-limit-to-all ; TODO: Test. - - (kbd "M-y") 'emms-playlist-mode-yank-pop) - -(evil-define-key 'visual emms-playlist-mode-map - ;; "d" 'emms-playlist-mode-kill - "D" 'emms-playlist-mode-kill) - -(provide 'init-evil-emms) diff --git a/.emacs.d/lisp/init-evil-image+.el b/.emacs.d/lisp/init-evil-image+.el deleted file mode 100644 index 5493e68c..00000000 --- a/.emacs.d/lisp/init-evil-image+.el +++ /dev/null @@ -1,14 +0,0 @@ -;;; Evil+Image+ - -(when (require 'image+ nil t) - (evil-define-key 'motion image-mode-map - "+" 'imagex-sticky-zoom-in - "-" 'imagex-sticky-zoom-out - "M" 'imagex-sticky-maximize - "m" 'imagex-auto-adjust-mode - "O" 'imagex-sticky-restore-original - "S" 'imagex-sticky-save-image - "r" 'imagex-sticky-rotate-right - "l" 'imagex-sticky-rotate-left)) - -(provide 'init-evil-image+) diff --git a/.emacs.d/lisp/init-evil-leader.el b/.emacs.d/lisp/init-evil-leader.el index 6dbd6886..87badccf 100644 --- a/.emacs.d/lisp/init-evil-leader.el +++ b/.emacs.d/lisp/init-evil-leader.el @@ -1,5 +1,7 @@ ;;; Evil leader +;;; TODO: Remove evil leader config? + ;;; Leader mode and its key must be set before evil-mode. (evil-leader/set-leader "SPC") (global-evil-leader-mode) diff --git a/.emacs.d/lisp/init-evil-pdf.el b/.emacs.d/lisp/init-evil-pdf.el deleted file mode 100644 index 2cc1e22e..00000000 --- a/.emacs.d/lisp/init-evil-pdf.el +++ /dev/null @@ -1,182 +0,0 @@ -;;; Evil+pdftools - -(defun evil-pdf-view-goto-page (&optional page) - (interactive "P") - (if page - (pdf-view-goto-page page) - (pdf-view-last-page))) - -(defun evil-pdf-view-goto-first-page (&optional page) - (interactive "P") - (if page - (pdf-view-goto-page page) - (pdf-view-first-page))) - -(evil-set-initial-state 'pdf-view-mode 'motion) -(evil-define-key 'motion pdf-view-mode-map - ;; motion - (kbd "") 'image-next-line - "j" 'pdf-view-next-line-or-next-page - "k" 'pdf-view-previous-line-or-previous-page - (kbd "SPC") 'pdf-view-scroll-up-or-next-page - (kbd "S-SPC") 'pdf-view-scroll-down-or-previous-page - (kbd "") 'pdf-view-scroll-down-or-previous-page - (kbd "C-f") 'pdf-view-scroll-up-or-next-page - (kbd "C-b") 'pdf-view-scroll-down-or-previous-page - "]" 'pdf-view-next-page-command - "[" 'pdf-view-previous-page-command - (kbd "C-j") 'pdf-view-next-page-command - (kbd "C-k") 'pdf-view-previous-page-command - (kbd "") 'forward-page - (kbd "") 'backward-page - (kbd "") 'pdf-view-next-line-or-next-page - (kbd "") 'pdf-view-previous-line-or-previous-page - "gg" 'evil-pdf-view-goto-first-page - "G" 'evil-pdf-view-goto-page - - ;; mark - "'" 'pdf-view-jump-to-register - "m" 'pdf-view-position-to-register - - "+" 'pdf-view-enlarge - "-" 'pdf-view-shrink - "0" 'pdf-view-scale-reset - "=" 'pdf-view-enlarge - - ;; TODO: Why is this here? - "a+" 'image-increase-speed - "a-" 'image-decrease-speed - "a0" 'image-reset-speed - "ar" 'image-reverse-speed - "F" 'image-goto-frame - "b" 'image-previous-frame - "f" 'image-next-frame - "h" 'image-backward-hscroll - "^" 'image-bol - "$" 'image-eol - "l" 'image-forward-hscroll - - "H" 'pdf-view-fit-height-to-window ; evil-image has "H" - "P" 'pdf-view-fit-page-to-window - "W" 'pdf-view-fit-width-to-window ; evil-image has "W" - - ;; update - "gr" 'revert-buffer - - (kbd "") 'pdf-view-mouse-extend-region - (kbd "") 'pdf-view-mouse-set-region-rectangle - (kbd "") 'pdf-view-mouse-set-region - - (kbd "C-c C-c") 'docview-mode - (kbd "C-c ") 'pdf-view-extract-region-image - - "sb" 'pdf-view-set-slice-from-bounding-box - "sm" 'pdf-view-set-slice-using-mouse - "sr" 'pdf-view-reset-slice - - ;; goto - "gl" 'pdf-view-goto-label - - "y" 'pdf-view-kill-ring-save - - ;; search - (kbd "M-s o") 'pdf-occur ; TODO: bad binding - - "zd" 'pdf-view-dark-minor-mode - "zm" 'pdf-view-midnight-minor-mode - "zp" 'pdf-view-printer-minor-mode - - ;; quit - "q" 'quit-window - "Q" 'kill-this-buffer - "ZQ" 'kill-this-buffer - "ZZ" 'quit-window) - -(evil-set-initial-state 'pdf-outline-buffer-mode 'motion) -(evil-define-key 'motion pdf-outline-buffer-mode-map - (kbd "") 'pdf-outline-follow-link - (kbd "M-") 'pdf-outline-follow-link-and-quit - (kbd "SPC") 'pdf-outline-display-link - "." 'pdf-outline-move-to-current-page - "o" 'pdf-outline-select-pdf-window - - "G" 'pdf-outline-end-of-buffer - "^" 'pdf-outline-up-heading - "<" 'pdf-outline-up-heading ; TODO: Don't set this by default? - - "zf" 'pdf-outline-follow-mode ; helm has "C-c C-f". - - ;; quit - (kbd "C-w q") 'pdf-outline-quit-and-kill ; TODO: Do we need to set this? I think no. - "q" 'quit-window - "ZQ" 'quit-window - "ZZ" 'pdf-outline-quit-and-kill) - -(evil-define-key 'motion pdf-occur-buffer-mode-map - (kbd "") 'pdf-occur-goto-occurrence - (kbd "o") 'pdf-occur-view-occurrence - (kbd "C-o") 'pdf-occur-view-occurrence ; TODO: "o" is a better binding. - (kbd "SPC") 'pdf-occur-view-occurrence - - "A" 'pdf-occur-tablist-gather-documents - "D" 'pdf-occur-tablist-do-delete - - ;; sort - "S" 'tabulated-list-sort - - ;; update - "G" 'tablist-revert - - "K" 'pdf-occur-abort-search - - ;; mark - "*m" 'tablist-mark-forward - "m" 'tablist-mark-forward - "~" 'tablist-toggle-marks - "u" 'tablist-unmark-forward - "M" 'tablist-unmark-all-marks - "*!" 'tablist-unmark-all-marks - "*c" 'tablist-change-marks - "*n" 'tablist-mark-items-numeric - "*r" 'tablist-mark-items-regexp - "%" 'tablist-mark-items-regexp - - "a" 'tablist-flag-forward - - ;; "f" 'tablist-find-entry ; TODO: Equivalent to 'pdf-occur-goto-occurrence? - "r" 'pdf-occur-revert-buffer-with-args - "d" 'tablist-do-kill-lines - "s" 'tablist-sort - "x" 'pdf-occur-tablist-do-flagged-delete - (kbd "") 'tablist-unmark-backward - (kbd "S-SPC") 'scroll-down-command - (kbd "") 'tablist-backward-column - (kbd "C-c C-e") 'tablist-export-csv - - [remap evil-first-non-blank] 'tablist-move-to-major-columnj - [remap evil-next-line] 'tablist-next-line - [remap evil-previous-line] 'tablist-previous-line - - ;; filter - ;; TODO: See if overriding "/" is a good idea. - "/!" 'tablist-negate-filter - "//" 'tablist-display-filter - "/=" 'tablist-push-equal-filter - "/C" 'tablist-clear-filter - "/D" 'tablist-delete-named-filter - "/a" 'tablist-push-named-filter - "/d" 'tablist-deconstruct-named-filter - "/e" 'tablist-edit-filter - "/n" 'tablist-push-numeric-filter - "/p" 'tablist-pop-filter - "/r" 'tablist-push-regexp-filter - "/s" 'tablist-name-current-filter - "/t" 'tablist-toggle-first-filter-logic - "/z" 'tablist-suspend-filter - - ;; quit - "q" 'tablist-quit - "ZQ" 'tablist-quit - "ZZ" 'tablist-quit) - -(provide 'init-evil-pdf) diff --git a/.emacs.d/lisp/init-evil-transmission.el b/.emacs.d/lisp/init-evil-transmission.el deleted file mode 100644 index 07d8d0cb..00000000 --- a/.emacs.d/lisp/init-evil-transmission.el +++ /dev/null @@ -1,105 +0,0 @@ -;;; Evil+Transmission - -(evil-set-initial-state 'transmission-mode 'motion) -(evil-define-key 'motion transmission-mode-map - ;; motion - (kbd "SPC") 'scroll-up-command - (kbd "S-SPC") 'scroll-down-command - (kbd "") 'scroll-down-command - - ;; sort - "s" 'tabulated-list-sort - - (kbd "") 'transmission-files - "p" 'transmission-peers - "i" 'transmission-info - - "a" 'transmission-add - ;; "D" 'transmission-delete ; Useless with `transmission-remove'? - "p" 'transmission-move - "d" 'transmission-remove - "x" 'transmission-toggle ; EMMS has "x" for pause. - "t" 'transmission-trackers-add - "c" 'transmission-verify ; "c" for "[c]heck". - "D" 'transmission-set-download - "U" 'transmission-set-upload - "S" 'transmission-set-ratio ; "S" for "[S]eed" - "P" 'transmission-set-bandwidth-priority - - ;; mark - "m" 'transmission-toggle-mark - "M" 'transmission-unmark-all - "~" 'transmission-invert-marks - - ;; update - "gr" 'revert-buffer - - ;; quit - "q" 'transmission-quit - "ZQ" 'evil-quit - "ZZ" 'transmission-quit) - -(evil-set-initial-state 'transmission-files-mode 'motion) -(evil-define-key 'motion transmission-files-mode-map - (kbd "SPC") 'scroll-up-command - (kbd "S-SPC") 'scroll-down-command - (kbd "") 'scroll-down-command - - ;; sort - "s" 'tabulated-list-sort - - "p" 'transmission-peers - "i" 'transmission-info - - "R" 'transmission-move - "u" 'transmission-files-unwant - "U" 'transmission-files-want - "P" 'transmission-files-priority - (kbd "") 'transmission-find-file - (kbd "S-") 'transmission-display-file - "o" 'transmission-find-file-other-window - "O" 'transmission-view-file - "!" 'transmission-files-command - ;; "X" 'transmission-files-command - "t" 'transmission-trackers-add - "T" 'transmission-trackers-remove - - ;; goto URL - "gx" 'transmission-browse-url-of-file ; See mu4e. - - ;; quit - "q" 'transmission-quit - "ZQ" 'evil-quit - "ZZ" 'transmission-quit) - -(evil-set-initial-state 'transmission-info-mode 'motion) -(evil-define-key 'motion transmission-info-mode-map - "p" 'transmission-peers - - "t" 'transmission-trackers-add - "T" 'transmission-trackers-remove - "D" 'transmission-set-torrent-download - "U" 'transmission-set-torrent-upload - "S" 'transmission-set-torrent-ratio ; "S" for "[S]eed" - "P" 'transmission-set-bandwidth-priority - "gy" 'transmission-copy-magnet ; TODO: Use "ym"? - "R" 'transmission-move - - ;; quit - "q" 'quit-window - "ZQ" 'evil-quit - "ZZ" 'quit-window) - -(evil-set-initial-state 'transmission-peers-mode 'motion) -(evil-define-key 'motion transmission-peers-mode-map - ;; sort - "s" 'tabulated-list-sort - - "i" 'transmission-info - - ;; quit - "q" 'quit-window - "ZQ" 'evil-quit - "ZZ" 'quit-window) - -(provide 'init-evil-transmission) diff --git a/.emacs.d/lisp/init-evil-ztree.el b/.emacs.d/lisp/init-evil-ztree.el deleted file mode 100644 index fcce7586..00000000 --- a/.emacs.d/lisp/init-evil-ztree.el +++ /dev/null @@ -1,32 +0,0 @@ -;;; Evil+Ztree - -(evil-set-initial-state 'ztree-mode 'motion) - -(evil-define-key 'motion ztree-mode-map - (kbd "") 'ztree-jump-side - (kbd "") 'ztree-perform-action - (kbd "SPC") 'ztree-perform-soft-action - - "x" 'ztree-toggle-expand-subtree - - ;; update - "gr" 'ztree-refresh-buffer - - ;; quit - "q" 'quit-window - "ZQ" 'quit-window - "ZZ" 'quit-window) - -(evil-define-minor-mode-key 'motion 'ztreediff-mode - "C" 'ztree-diff-copy - "D" 'ztree-diff-delete-file - "zH" 'ztree-diff-toggle-show-filtered-files - "d" 'ztree-diff-simple-diff-files - "zh" 'ztree-diff-toggle-show-equal-files - "gf" 'ztree-diff-view-file - - ;; update - "gr" 'ztree-diff-partial-rescan - "gR" 'ztree-diff-full-rescan) - -(provide 'init-evil-ztree) diff --git a/.emacs.d/lisp/init-evil.el b/.emacs.d/lisp/init-evil.el index 74256d89..281f9487 100644 --- a/.emacs.d/lisp/init-evil.el +++ b/.emacs.d/lisp/init-evil.el @@ -106,12 +106,40 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Mode specific bindings. -;;; Emacs special modes -(when (require 'evil-special-modes nil t) - (evil-special-modes-init) +(when (require 'evil-collection nil t) + (evil-collection-init) (require 'evil-minibuffer) (evil-minibuffer-init)) +(with-eval-after-load 'elfeed + ;; Custom + (evil-define-key 'motion elfeed-search-mode-map + (kbd "") 'elfeed-visit-or-play-with-mpv + "o" 'elfeed-visit-or-play-with-mpv) + (evil-define-key 'motion elfeed-show-mode-map + (kbd "") 'elfeed-visit-or-play-with-mpv + "o" 'elfeed-visit-or-play-with-mpv)) + +(with-eval-after-load 'init-helm (require 'init-evil-helm)) + +;; TODO: Delete this. +;; (with-eval-after-load 'debbugs (require 'init-evil-debbugs nil t)) +;; (with-eval-after-load 'emms (require 'init-evil-emms)) +;; TODO: `image-mode-map' is the parent of `pdf-view-mode-map'. A bug(?) in +;; image-mode-map and pdf-mode-map seem to conflict with Evil. +;; See https://github.com/emacs-evil/evil/issues/938 +;; and https://github.com/politza/pdf-tools/issues/324. +;; Changing load order only changes which mode overrides the other. +;; (with-eval-after-load 'pdf-view (require 'init-evil-pdf)) +;; (with-eval-after-load 'image+ (require 'init-evil-image+)) +;; (with-eval-after-load 'transmission (require 'init-evil-transmission)) +;; (with-eval-after-load 'ztree-diff (require 'init-evil-ztree)) +;;; Emacs special modes +;; (when (require 'evil-special-modes nil t) +;; (evil-special-modes-init) +;; (require 'evil-minibuffer) +;; (evil-minibuffer-init)) + ;;; nXML ;;; TODO: Add to Emacs special modes? (evil-define-key 'normal nxml-mode-map @@ -129,14 +157,6 @@ ">" 'nxml-down-element "<" 'nxml-backward-up-element) -(with-eval-after-load 'transmission (require 'init-evil-transmission)) - -(with-eval-after-load 'elfeed (require 'init-evil-elfeed)) - -(with-eval-after-load 'emms (require 'init-evil-emms)) - -(with-eval-after-load 'image+ (require 'init-evil-image+)) - (with-eval-after-load 'mu4e (when (require 'evil-mu4e nil t) ;; TODO: evil-mu4e needs a big overhaul, e.g. 'visual commands are not supported. Report upstream. @@ -165,8 +185,6 @@ "gx" 'mu4e-view-go-to-url) (evil-set-initial-state 'mu4e-compose-mode 'insert))) -(with-eval-after-load 'init-helm (require 'init-evil-helm)) - (with-eval-after-load 'magit (when (require 'evil-magit nil t) (evil-magit-define-key evil-magit-state 'magit-mode-map "<" 'magit-section-up) @@ -181,15 +199,6 @@ ;; (add-hook 'org-mode-hook 'evil-org-mode) ;; (evil-org-set-key-theme '(textobjects insert navigation additional shift todo heading))) -;; TODO: `image-mode-map' is the parent of `pdf-view-mode-map'. A bug(?) in -;; image-mode-map and pdf-mode-map seem to conflict with Evil. -;; See https://github.com/emacs-evil/evil/issues/938 -;; and https://github.com/politza/pdf-tools/issues/324. -;; Changing load order only changes which mode overrides the other. -(with-eval-after-load 'pdf-view (require 'init-evil-pdf)) - -(with-eval-after-load 'ztree-diff (require 'init-evil-ztree)) (with-eval-after-load 'gnus (require 'init-evil-gnus)) -(with-eval-after-load 'debbugs (require 'init-evil-debbugs nil t)) (provide 'init-evil)