diff --git a/.emacs.d/lisp/init-evil-debbugs.el b/.emacs.d/lisp/init-evil-debbugs.el index 477bde03..c3eb9f5b 100644 --- a/.emacs.d/lisp/init-evil-debbugs.el +++ b/.emacs.d/lisp/init-evil-debbugs.el @@ -3,22 +3,36 @@ (evil-set-initial-state 'debbugs-gnu-mode 'motion) (evil-define-key 'motion debbugs-gnu-mode-map + ;; motion (kbd "") 'forward-button (kbd "") 'backward-button - (kbd "") 'debbugs-gnu-select-report (kbd "SPC") 'scroll-up-command - (kbd "M-s f") 'debbugs-gnu-narrow-to-status - "gB" 'debbugs-gnu-show-blocking-reports + + (kbd "") 'debbugs-gnu-select-report "c" 'debbugs-gnu-send-control-message - "r" 'debbugs-gnu-show-all-blocking-reports - "S" 'tabulated-list-sort - "gb" 'debbugs-gnu-show-blocked-by-reports "d" 'debbugs-gnu-display-status - "gr" 'debbugs-gnu-rescan - "q" 'quit-window + + ;; filtering + (kbd "M-s f") 'debbugs-gnu-narrow-to-status ; TODO: bad binding + + ;; sorting "s" 'debbugs-gnu-toggle-sort + "S" 'tabulated-list-sort + + ;; show + "gB" 'debbugs-gnu-show-blocking-reports + "r" 'debbugs-gnu-show-all-blocking-reports + "gb" 'debbugs-gnu-show-blocked-by-reports "i" 'debbugs-gnu-toggle-tag "o" 'debbugs-gnu-widen - "x" 'debbugs-gnu-toggle-suppress) + "x" 'debbugs-gnu-toggle-suppress ; TODO: bad binding + + ;; 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 index 5a738a81..a6ba7dae 100644 --- a/.emacs.d/lisp/init-evil-elfeed.el +++ b/.emacs.d/lisp/init-evil-elfeed.el @@ -3,14 +3,21 @@ (evil-set-initial-state 'elfeed-search-mode 'motion) (evil-define-key 'motion elfeed-search-mode-map (kbd "") 'elfeed-search-show-entry - "R" 'elfeed-search-fetch - "S" 'elfeed-search-set-filter "o" 'elfeed-search-browse-url - "O" 'elfeed-play-in-mpv ; Custom function - "r" 'elfeed-search-update--force - "q" 'quit-window + "y" 'elfeed-search-yank + + ;; filter "s" 'elfeed-search-live-filter - "y" 'elfeed-search-yank) + "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 @@ -20,20 +27,32 @@ (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 - "o" 'elfeed-show-visit "d" 'elfeed-show-save-enclosure - "r" 'elfeed-show-refresh + "]" '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 - "s" 'elfeed-show-new-live-search - "y" 'elfeed-show-yank) + "ZQ" 'elfeed-kill-buffer + "ZZ" 'elfeed-kill-buffer) ;;; Custom (evil-define-key 'motion elfeed-search-mode-map diff --git a/.emacs.d/lisp/init-evil-emms.el b/.emacs.d/lisp/init-evil-emms.el index a1869e09..503c681f 100644 --- a/.emacs.d/lisp/init-evil-emms.el +++ b/.emacs.d/lisp/init-evil-emms.el @@ -46,77 +46,95 @@ The return value is the yanked text." (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 - (kbd "C-") 'emms-browser-add-tracks-and-play (kbd "") 'emms-browser-add-tracks + (kbd "C-") 'emms-browser-add-tracks-and-play + "x" 'emms-pause ; TODO: bad binding + (kbd "") 'emms-browser-toggle-subitems (kbd "SPC") 'emms-browser-toggle-subitems - "/" 'emms-isearch-buffer ; This shows hidden items during search. "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 - "<" 'emms-browser-previous-filter - ">" 'emms-browser-next-filter - "C" 'emms-browser-clear-playlist - "D" 'emms-browser-delete-files "g0" 'emms-browser-expand-all - "d" 'emms-browser-view-in-dired - (kbd "C-j") 'emms-browser-next-non-track - (kbd "C-k") 'emms-browser-prev-non-track - (kbd "M-j") 'emms-browser-next-non-track ; Custom - (kbd "M-k") 'emms-browser-prev-non-track ; Custom - "[" 'emms-browser-prev-non-track - "]" 'emms-browser-next-non-track - "{" 'emms-browser-prev-non-track - "}" 'emms-browser-next-non-track "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 - "x" 'emms-pause + + "/" 'emms-isearch-buffer ; This shows hidden items during search. + + ;; filter + "<" 'emms-browser-previous-filter + ">" 'emms-browser-next-filter + "s" (lookup-key emms-browser-mode-map (kbd "s")) - "z" (lookup-key emms-browser-mode-map (kbd "W")))) + "z" (lookup-key emms-browser-mode-map (kbd "W")) + + "C" 'emms-browser-clear-playlist + "D" 'emms-browser-delete-files + "d" 'emms-browser-view-in-dired + + ;; motion + (kbd "C-j") 'emms-browser-next-non-track + (kbd "C-k") 'emms-browser-prev-non-track + ;; (kbd "M-j") 'emms-browser-next-non-track ; Custom + ;; (kbd "M-k") 'emms-browser-prev-non-track ; Custom + "[" 'emms-browser-prev-non-track + "]" 'emms-browser-next-non-track)) (evil-set-initial-state 'emms-playlist-mode 'motion) (evil-define-key 'motion emms-playlist-mode-map - "o" 'evil/emms-playlist-mode-insert-newline-below - "O" 'evil/emms-playlist-mode-insert-newline-above - "d" 'emms-playlist-mode-kill-track (kbd "") 'emms-playlist-mode-play-smart - "P" 'evil/emms-playlist-mode-paste-before - "p" 'evil/emms-playlist-mode-paste-after - "u" 'emms-playlist-mode-undo - "<" 'emms-seek-backward - ">" 'emms-seek-forward - "C" 'emms-playlist-mode-clear - "D" 'emms-playlist-mode-kill-track - "ze" 'emms-tag-editor-edit - "x" 'emms-pause - "R" 'emms-tag-editor-rename - "a" 'emms-playlist-mode-add-contents - "zp" 'emms-playlist-set-playlist-buffer - "c" 'emms-playlist-mode-center-current - "gd" 'emms-playlist-mode-goto-dired-at-point - "zs" 'emms-show - (kbd "C-j") 'emms-next - (kbd "C-k") 'emms-previous - (kbd "M-j") 'emms-next ; Custom - (kbd "M-k") 'emms-previous ; Custom + "x" 'emms-pause ; TODO: bad binding "r" 'emms-random "s" 'emms-stop - "S" (lookup-key emms-playlist-mode-map (kbd "S")) - "zf" (lookup-key emms-playlist-mode-map (kbd "/")) - "zff" 'emms-playlist-limit-to-all + "]" 'emms-next + "[" 'emms-previous + "<" 'emms-seek-backward + ">" 'emms-seek-forward + (kbd "C-j") 'emms-next + (kbd "C-k") 'emms-previous + ;; (kbd "M-j") 'emms-next ; Custom + ;; (kbd "M-k") 'emms-previous ; Custom + + ;; 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 + "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 + + "c" 'emms-playlist-mode-center-current + "gd" 'emms-playlist-mode-goto-dired-at-point ; TODO: Use "d"? + + "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")) + "zf" (lookup-key emms-playlist-mode-map (kbd "/")) + "zff" 'emms-playlist-limit-to-all + (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 "D" 'emms-playlist-mode-kill) (provide 'init-evil-emms) diff --git a/.emacs.d/lisp/init-evil-gnus.el b/.emacs.d/lisp/init-evil-gnus.el index c6e5d0a2..ab99c7e4 100644 --- a/.emacs.d/lisp/init-evil-gnus.el +++ b/.emacs.d/lisp/init-evil-gnus.el @@ -2,12 +2,18 @@ (evil-set-initial-state 'gnus-summary-mode 'motion) (evil-define-key 'motion gnus-summary-mode-map + ;; motion (kbd "") 'gnus-summary-widget-forward (kbd "") 'gnus-summary-widget-backward (kbd "") 'gnus-summary-prev-page (kbd "S-SPC") 'gnus-summary-prev-page (kbd "SPC") 'gnus-summary-next-page - (kbd "") 'gnus-summary-scroll-up + (kbd "") 'gnus-summary-scroll-up ; TODO: bad binding? + "]" 'gnus-summary-next-article + "[" 'gnus-summary-prev-article + (kbd "C-j") 'gnus-summary-next-article + (kbd "C-k") 'gnus-summary-prev-article + "zz" 'gnus-recenter "z#" 'gnus-summary-mark-as-processable "!" 'gnus-summary-execute-command @@ -29,11 +35,11 @@ ;; "gK" ;; "zL" ;; "gM" - "J" 'gnus-summary-next-article - "K" 'gnus-summary-prev-article - "gO" 'gnus-summary-save-map - "Q" 'gnus-summary-exit-no-update + + "r" 'gnus-summary-reply "R" 'gnus-summary-reply-with-original + + "gO" 'gnus-summary-save-map "gS" 'gnus-summary-send-map "gT" 'gnus-summary-thread-map "gV" 'gnus-summary-score-map @@ -43,14 +49,20 @@ "gZ" 'gnus-summary-exit-map "z^" 'gnus-summary-refer-parent-article ;; "a" ... - "r" 'gnus-summary-reply - "s" 'gnus-summary-isearch-article "zt" 'gnus-summary-toggle-header "u" 'gnus-summary-tick-article-forward "U" 'gnus-summary-tick-article-backward "x" 'gnus-summary-limit-to-unread "zp" 'gnus-summary-pipe-output - "q" 'gnus-summary-exit) + + ;; filter + "s" 'gnus-summary-isearch-article + + ;; quit + "Q" 'gnus-summary-exit-no-update + "q" 'gnus-summary-exit + "ZQ" 'gnus-summary-exit-no-update + "ZZ" 'gnus-summary-exit) (evil-set-initial-state 'gnus-article-mode 'motion) diff --git a/.emacs.d/lisp/init-evil-helm.el b/.emacs.d/lisp/init-evil-helm.el index 5874ddaa..e1c125f5 100644 --- a/.emacs.d/lisp/init-evil-helm.el +++ b/.emacs.d/lisp/init-evil-helm.el @@ -1,6 +1,6 @@ ;;; Evil+Helm -(global-set-key "\M-y" 'helm-show-kill-ring) +(global-set-key (kbd "M-y") 'helm-show-kill-ring) ;;; To navigate helm entries with hjkl, using the C- modifier would conflict ;;; with C-h (help prefix) and C-k (`evil-insert-digraph'). We use M- instead. @@ -20,12 +20,11 @@ "" 'helm-keyboard-quit) (evil-define-key 'normal helm-map - "h" 'helm-next-source "j" 'helm-next-line "k" 'helm-previous-line - "l" 'helm-execute-persistent-action "g" 'helm-beginning-of-buffer "G" 'helm-end-of-buffer + "SPC" 'helm-toggle-visible-mark (kbd "C-f") 'helm-next-page (kbd "C-b") 'helm-previous-page) @@ -38,14 +37,13 @@ (dolist (map (list helm-find-files-map helm-read-file-map)) (define-keys map + "M-." 'helm-end-of-buffer + "M-," 'helm-beginning-of-buffer "M-o" 'helm-ff-run-switch-other-window "C-/" 'helm-ff-run-find-sh-command "M-h" 'helm-find-files-up-one-level "M-l" 'helm-execute-persistent-action - "C-l" nil) ; So the header displays the above binding. - (evil-define-key 'normal map - "h" 'helm-find-files-up-one-level - "l" 'helm-execute-persistent-action)) + "C-l" nil)) ; So the header displays the above binding. (with-eval-after-load 'init-exwm (define-keys exwm/helm-browser-map "M-d" 'helm-buffer-run-kill-persistent) diff --git a/.emacs.d/lisp/init-evil-pdf.el b/.emacs.d/lisp/init-evil-pdf.el index 97b6c5cc..b77d2d06 100644 --- a/.emacs.d/lisp/init-evil-pdf.el +++ b/.emacs.d/lisp/init-evil-pdf.el @@ -14,67 +14,83 @@ (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 - "H" 'pdf-view-fit-height-to-window - "P" 'pdf-view-fit-page-to-window - "Q" 'kill-this-buffer - "W" 'pdf-view-fit-width-to-window "b" 'image-previous-frame "f" 'image-next-frame - "m" 'pdf-view-position-to-register - (kbd "C-j") 'pdf-view-next-page-command - (kbd "C-k") 'pdf-view-previous-page-command - (kbd "M-j") 'pdf-view-next-page-command ; Custom - (kbd "M-k") 'pdf-view-previous-page-command ; Custom - "q" 'quit-window - "r" 'revert-buffer - (kbd "") 'pdf-view-scroll-down-or-previous-page - (kbd "S-SPC") 'pdf-view-scroll-down-or-previous-page + "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-next-line-or-next-page (kbd "") 'pdf-view-mouse-set-region - (kbd "") 'forward-page - (kbd "") 'backward-page - (kbd "") 'pdf-view-previous-line-or-previous-page + (kbd "C-c C-c") 'docview-mode - "zd" 'pdf-view-dark-minor-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 - "gg" 'evil-pdf-view-goto-first-page - "G" 'evil-pdf-view-goto-page + ;; goto "gl" 'pdf-view-goto-label "y" 'pdf-view-kill-ring-save - "h" 'image-backward-hscroll - "^" 'image-bol - "$" 'image-eol - "l" 'image-forward-hscroll - (kbd "C-f") 'pdf-view-scroll-up-or-next-page - (kbd "C-b") 'pdf-view-scroll-down-or-previous-page - "a+" 'image-increase-speed - "a-" 'image-decrease-speed - "a0" 'image-reset-speed - "ar" 'image-reverse-speed - - (kbd "M-s o") 'pdf-occur ; Custom + ;; 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) + "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 @@ -82,32 +98,55 @@ (kbd "M-") 'pdf-outline-follow-link-and-quit (kbd "SPC") 'pdf-outline-display-link "." 'pdf-outline-move-to-current-page - "G" 'pdf-outline-end-of-buffer "o" 'pdf-outline-select-pdf-window - "<" 'pdf-outline-up-heading + + "G" 'pdf-outline-end-of-buffer "^" 'pdf-outline-up-heading - "zf" 'pdf-outline-follow-mode - (kbd "C-w q") 'pdf-outline-quit-and-kill) + "<" '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 "C-o") 'pdf-occur-view-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 - "G" 'tablist-revert - "K" 'pdf-occur-abost-search + + ;; sort "S" 'tabulated-list-sort + + ;; update + "G" 'tablist-revert + + "K" 'pdf-occur-abort-search + + ;; mark + "*m" 'tablist-mark-forward + "m" 'tablist-mark-forward + "t" 'tablist-toggle-marks + "u" 'tablist-unmark-forward "U" '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 - "m" 'tablist-mark-forward - "q" 'tablist-quit "s" 'tablist-sort - "t" 'tablist-toggle-marks - "u" 'tablist-unmark-forward "x" 'pdf-occur-tablist-do-flagged-delete (kbd "") 'tablist-unmark-backward (kbd "S-SPC") 'scroll-down-command @@ -118,6 +157,8 @@ [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 @@ -133,12 +174,9 @@ "/t" 'tablist-toggle-first-filter-logic "/z" 'tablist-suspend-filter - "*!" 'tablist-unmark-all-marks - "*c" 'tablist-change-marks - "*m" 'tablist-mark-forward - "*n" 'tablist-mark-items-numeric - "*r" 'tablist-mark-items-regexp - - "%m" 'tablist-mark-items-regexp) + ;; quit + "q" 'tablist-quit + "ZQ" 'tablist-quit + "ZZ" 'tablist-quit) (provide 'init-evil-pdf) diff --git a/.emacs.d/lisp/init-evil-ztree.el b/.emacs.d/lisp/init-evil-ztree.el index bb9b0c15..fcce7586 100644 --- a/.emacs.d/lisp/init-evil-ztree.el +++ b/.emacs.d/lisp/init-evil-ztree.el @@ -6,18 +6,27 @@ (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 - "x" 'ztree-toggle-expand-subtree) + "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 - "R" 'ztree-diff-full-rescan "d" 'ztree-diff-simple-diff-files "zh" 'ztree-diff-toggle-show-equal-files - "r" 'ztree-diff-partial-rescan - "gf" 'ztree-diff-view-file) + "gf" 'ztree-diff-view-file + + ;; update + "gr" 'ztree-diff-partial-rescan + "gR" 'ztree-diff-full-rescan) (provide 'init-evil-ztree)