diff --git a/core/core-keybinds.el b/core/core-keybinds.el index 21c390e5a..f2d70468e 100644 --- a/core/core-keybinds.el +++ b/core/core-keybinds.el @@ -36,6 +36,60 @@ (add-hook 'doom-init-hook #'which-key-mode)) +(def-package! hydra + :demand t + :init + ;; In case I later need to wrap defhydra in any special functionality. + (defalias 'def-hydra! 'defhydra) + (defalias 'def-hydra-radio! 'defhydradio) + :config + (setq lv-use-seperator t) + + (def-hydra! doom@text-zoom (:hint t :color red) + " + Text zoom: _j_:zoom in, _k_:zoom out, _0_:reset +" + ("j" text-scale-increase "in") + ("k" text-scale-decrease "out") + ("0" (text-scale-set 0) "reset")) + + (def-hydra! doom@window-nav (:hint nil) + " + Split: _v_ert _s_:horz + Delete: _c_lose _o_nly + Switch Window: _h_:left _j_:down _k_:up _l_:right + Buffers: _p_revious _n_ext _b_:select _f_ind-file + Resize: _H_:splitter left _J_:splitter down _K_:splitter up _L_:splitter right + Move: _a_:up _z_:down _i_menu +" + ("z" scroll-up-line) + ("a" scroll-down-line) + ("i" idomenu) + + ("h" windmove-left) + ("j" windmove-down) + ("k" windmove-up) + ("l" windmove-right) + + ("p" doom/previous-buffer) + ("n" doom/next-buffer) + ("b" switch-to-buffer) + ("f" find-file) + + ("s" split-window-below) + ("v" split-window-right) + + ("c" delete-window) + ("o" delete-other-windows) + + ("H" hydra-move-splitter-left) + ("J" hydra-move-splitter-down) + ("K" hydra-move-splitter-up) + ("L" hydra-move-splitter-right) + + ("q" nil))) + + ;; (defun doom--keybind-register (key desc &optional modes) "Register a description for KEY with `which-key' in MODES. diff --git a/core/packages.el b/core/packages.el index 4e3a882f8..1f19f2ef5 100644 --- a/core/packages.el +++ b/core/packages.el @@ -49,3 +49,4 @@ ;; core-keybinds.el (package! which-key) +(package! hydra) diff --git a/modules/feature/hydra/config.el b/modules/feature/hydra/config.el deleted file mode 100644 index f2b83baef..000000000 --- a/modules/feature/hydra/config.el +++ /dev/null @@ -1,97 +0,0 @@ -;;; feature/hydra/config.el -*- lexical-binding: t; -*- - -(def-package! hydra - :commands (+hydra-zoom/body +hydra-window/body defhydra) - :config - (setq lv-use-separator t) - - (defhydra +hydra-zoom (:hint t :color red) - "zoom" - ("j" text-scale-increase "in") - ("k" text-scale-decrease "out") - ("0" (text-scale-set 0) "reset")) - - (defhydra +hydra-window (:hint nil) - " - Split: _v_ert _s_:horz - Delete: _c_lose _o_nly - Switch Window: _h_:left _j_:down _k_:up _l_:right - Buffers: _p_revious _n_ext _b_:select _f_ind-file - Resize: _H_:splitter left _J_:splitter down _K_:splitter up _L_:splitter right - Move: _a_:up _z_:down _i_menu" - - - ("z" scroll-up-line) - ("a" scroll-down-line) - ("i" idomenu) - - ("h" windmove-left) - ("j" windmove-down) - ("k" windmove-up) - ("l" windmove-right) - - ("p" previous-buffer) - ("n" next-buffer) - ("b" ido-switch-buffer) - ("f" ido-find-file) - - ("s" split-window-below) - ("v" split-window-right) - - ("c" delete-window) - ("o" delete-other-windows) - - ("H" hydra-move-splitter-left) - ("J" hydra-move-splitter-down) - ("K" hydra-move-splitter-up) - ("L" hydra-move-splitter-right) - - ("q" nil))) - - -(def-package! ivy-hydra - :when (featurep! :completion ivy) - :after hydra - :config - (define-key ivy-mode-map (kbd "C-o") - (defhydra coo-ivy (:hint nil :color pink) - " - Move ^^^^^^^^^^ | Call ^^^^ | Cancel^^ | Options^^ | Action _w_/_s_/_a_: %s(ivy-action-name) -----------^^^^^^^^^^-+--------------^^^^-+-------^^-+--------^^-+--------------------------------- - _g_ ^ ^ _k_ ^ ^ _u_ | _f_orward _o_ccur | _i_nsert | _c_alling: %-7s(if ivy-calling \"on\" \"off\") _C_ase-fold: %-10`ivy-case-fold-search - ^↨^ _h_ ^+^ _l_ ^↕^ | _RET_ done ^^ | _q_uit | _m_atcher: %-7s(ivy--matcher-desc) _t_runcate: %-11`truncate-lines - _G_ ^ ^ _j_ ^ ^ _d_ | _TAB_ alt-done ^^ | ^ ^ | _<_/_>_: shrink/grow -" - ;; arrows - ("j" ivy-next-line) - ("k" ivy-previous-line) - ("l" ivy-alt-done) - ("h" ivy-backward-delete-char) - ("g" ivy-beginning-of-buffer) - ("G" ivy-end-of-buffer) - ("d" ivy-scroll-up-command) - ("u" ivy-scroll-down-command) - ("e" ivy-scroll-down-command) - ;; actions - ("q" keyboard-escape-quit :exit t) - ("C-g" keyboard-escape-quit :exit t) - ("" keyboard-escape-quit :exit t) - ("C-o" nil) - ("i" nil) - ("TAB" ivy-alt-done :exit nil) - ("C-j" ivy-alt-done :exit nil) - ;; ("d" ivy-done :exit t) - ("RET" ivy-done :exit t) - ("C-m" ivy-done :exit t) - ("f" ivy-call) - ("c" ivy-toggle-calling) - ("m" ivy-toggle-fuzzy) - (">" ivy-minibuffer-grow) - ("<" ivy-minibuffer-shrink) - ("w" ivy-prev-action) - ("s" ivy-next-action) - ("a" ivy-read-action) - ("t" (setq truncate-lines (not truncate-lines))) - ("C" ivy-toggle-case-fold) - - ("o" ivy-occur :exit t)))) diff --git a/modules/feature/hydra/packages.el b/modules/feature/hydra/packages.el deleted file mode 100644 index 08cbb525d..000000000 --- a/modules/feature/hydra/packages.el +++ /dev/null @@ -1,7 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; feature/hydra/packages.el - -(package! hydra) -(when (featurep! :completion ivy) - (package! ivy-hydra)) - diff --git a/modules/feature/version-control/+git.el b/modules/feature/version-control/+git.el index 5d87ce08b..96d00bd60 100644 --- a/modules/feature/version-control/+git.el +++ b/modules/feature/version-control/+git.el @@ -33,9 +33,8 @@ nil)) (add-hook '+evil-esc-hook #'+version-control|update-git-gutter t)) - (when (featurep! :feature hydra) - (defhydra +hydra-git-gutter (:body-pre (git-gutter-mode 1) - :hint nil) + (def-hydra! +version-control@git-gutter + (:body-pre (git-gutter-mode 1) :hint nil) " ╭─────────────────┐ Movement Hunk Actions Misc. │ gg: +%-4s(car (git-gutter:statistic))/ -%-3s(cdr (git-gutter:statistic)) │ @@ -46,21 +45,17 @@ ^↓ ^ [_p_] popup ╭────────────────────── ^_j_^ │[_q_] quit ^_G_^ │[_Q_] Quit and disable" - ("j" (progn (git-gutter:next-hunk 1) - (recenter))) - ("k" (progn (git-gutter:previous-hunk 1) - (recenter))) - ("g" (progn (goto-char (point-min)) - (git-gutter:next-hunk 1))) - ("G" (progn (goto-char (point-min)) - (git-gutter:previous-hunk 1))) - ("s" git-gutter:stage-hunk) - ("r" git-gutter:revert-hunk) - ("m" git-gutter:mark-hunk) - ("p" git-gutter:popup-hunk) - ("R" git-gutter:set-start-revision) - ("q" nil :color blue) - ("Q" (git-gutter-mode -1) :color blue)))) + ("j" (progn (git-gutter:next-hunk 1) (recenter))) + ("k" (progn (git-gutter:previous-hunk 1) (recenter))) + ("g" (progn (goto-char (point-min)) (git-gutter:next-hunk 1))) + ("G" (progn (goto-char (point-min)) (git-gutter:previous-hunk 1))) + ("s" git-gutter:stage-hunk) + ("r" git-gutter:revert-hunk) + ("m" git-gutter:mark-hunk) + ("p" git-gutter:popup-hunk) + ("R" git-gutter:set-start-revision) + ("q" nil :color blue) + ("Q" (git-gutter-mode -1) :color blue))) (def-package! git-timemachine diff --git a/modules/feature/version-control/config.el b/modules/feature/version-control/config.el index 9c525e164..2e147f568 100644 --- a/modules/feature/version-control/config.el +++ b/modules/feature/version-control/config.el @@ -26,15 +26,14 @@ :init (add-hook 'find-file-hook #'+vcs|enable-smerge-mode-maybe) :config - (when (featurep! :feature hydra) - (when (version< emacs-version "26") - (defalias #'smerge-keep-upper #'smerge-keep-mine) - (defalias #'smerge-keep-lower #'smerge-keep-other) - (defalias #'smerge-diff-base-upper #'smerge-diff-base-mine) - (defalias #'smerge-diff-upper-lower #'smerge-diff-mine-other) - (defalias #'smerge-diff-base-lower #'smerge-diff-base-other)) + (when (version< emacs-version "26") + (defalias #'smerge-keep-upper #'smerge-keep-mine) + (defalias #'smerge-keep-lower #'smerge-keep-other) + (defalias #'smerge-diff-base-upper #'smerge-diff-base-mine) + (defalias #'smerge-diff-upper-lower #'smerge-diff-mine-other) + (defalias #'smerge-diff-base-lower #'smerge-diff-base-other)) - (defhydra +hydra-smerge (:hint nil + (def-hydra! +hydra-smerge (:hint nil :pre (smerge-mode 1) ;; Disable `smerge-mode' when quitting hydra if ;; no merge conflicts remain. @@ -49,24 +48,24 @@ ^_j_ ↓^ [_a_] all [_H_] hightlight ^_C-j_^ [_RET_] current [_E_] ediff ╭────────── ^_G_^ │ [_q_] quit" - ("g" (progn (goto-char (point-min)) (smerge-next))) - ("G" (progn (goto-char (point-max)) (smerge-prev))) - ("C-j" smerge-next) - ("C-k" smerge-prev) - ("j" next-line) - ("k" previous-line) - ("b" smerge-keep-base) - ("u" smerge-keep-upper) - ("l" smerge-keep-lower) - ("a" smerge-keep-all) - ("RET" smerge-keep-current) - ("\C-m" smerge-keep-current) - ("<" smerge-diff-base-upper) - ("=" smerge-diff-upper-lower) - (">" smerge-diff-base-lower) - ("H" smerge-refine) - ("E" smerge-ediff) - ("C" smerge-combine-with-next) - ("r" smerge-resolve) - ("R" smerge-kill-current) - ("q" nil :color blue)))) + ("g" (progn (goto-char (point-min)) (smerge-next))) + ("G" (progn (goto-char (point-max)) (smerge-prev))) + ("C-j" smerge-next) + ("C-k" smerge-prev) + ("j" next-line) + ("k" previous-line) + ("b" smerge-keep-base) + ("u" smerge-keep-upper) + ("l" smerge-keep-lower) + ("a" smerge-keep-all) + ("RET" smerge-keep-current) + ("\C-m" smerge-keep-current) + ("<" smerge-diff-base-upper) + ("=" smerge-diff-upper-lower) + (">" smerge-diff-base-lower) + ("H" smerge-refine) + ("E" smerge-ediff) + ("C" smerge-combine-with-next) + ("r" smerge-resolve) + ("R" smerge-kill-current) + ("q" nil :color blue))) diff --git a/modules/private/hlissner/+bindings.el b/modules/private/hlissner/+bindings.el index b39ebcab1..f030132dc 100644 --- a/modules/private/hlissner/+bindings.el +++ b/modules/private/hlissner/+bindings.el @@ -381,8 +381,6 @@ ;; counsel (:after counsel - (:map ivy-mode-map - "C-o" #'ivy-dispatching-done) (:map counsel-ag-map [backtab] #'+ivy/wgrep-occur ; search/replace on results "C-SPC" #'counsel-git-grep-recenter ; preview diff --git a/modules/tools/rgb/config.el b/modules/tools/rgb/config.el index 70132f8e3..b69768ce7 100644 --- a/modules/tools/rgb/config.el +++ b/modules/tools/rgb/config.el @@ -10,15 +10,13 @@ (def-package! kurecolor :after rainbow-mode :config - (when (featurep! :feature hydra) - (defhydra hydra-kurecolor (:color pink - :hint nil) - " + (def-hydra! +rgb@kurecolor (:color pink :hint nil) + " Inc/Dec _w_/_W_ brightness _d_/_D_ saturation _e_/_E_ hue " - ("w" kurecolor-decrease-brightness-by-step) - ("W" kurecolor-increase-brightness-by-step) - ("d" kurecolor-decrease-saturation-by-step) - ("D" kurecolor-increase-saturation-by-step) - ("e" kurecolor-decrease-hue-by-step) - ("E" kurecolor-increase-hue-by-step) - ("q" nil "cancel" :color blue)))) + ("w" kurecolor-decrease-brightness-by-step) + ("W" kurecolor-increase-brightness-by-step) + ("d" kurecolor-decrease-saturation-by-step) + ("D" kurecolor-increase-saturation-by-step) + ("e" kurecolor-decrease-hue-by-step) + ("E" kurecolor-increase-hue-by-step) + ("q" nil "cancel" :color blue)))