From b44d7d1c91a397aabed8ebb556a6682e48609d96 Mon Sep 17 00:00:00 2001 From: Micheal Smith Date: Tue, 10 Feb 2026 23:29:40 -0600 Subject: [PATCH] Added casual. Updated clojure support. --- README.org | 150 ++++++++++++++++++++--------------------- config/formatting.org | 5 +- config/hydra.org | 72 +------------------- config/lsp.org | 1 + config/major_modes.org | 14 +++- config/org_mode.org | 1 + config/qol.org | 57 ++++++++++++++++ 7 files changed, 150 insertions(+), 150 deletions(-) diff --git a/README.org b/README.org index 6dcf5ba..72b85dd 100644 --- a/README.org +++ b/README.org @@ -426,8 +426,9 @@ breeze. :init (setq parinfer-rust-auto-download t) :hook - emacs-lisp-mode - clojure-ts-mode) + (emacs-lisp-mode . parinfer-rust-mode) + (clojure-mode . parinfer-rust-mode) + (clojure-ts-mode . parinfer-rust-mode)) #+end_src I also have =smart-parens= for parentheses matching in modes where =parinfer= would @@ -697,6 +698,63 @@ bar. :config (global-anzu-mode)) #+end_src +** Casual + +I'd like to start using transient over hydra. [[https://github.com/kickingvegas/casual][Casual]] does a lot of the +leg work for us. + +#+begin_src emacs-lisp +(use-package casual + :ensure t + :bind + ("C-o" . casual-editkit-main-tmenu) ;; Global EditKit menu + (:map dired-mode-map + ("C-o" . casual-dired-tmenu) + ("s" . casual-dired-sort-by-tmenu) + ("/" . casual-dired-search-replace-tmenu)) + (:map org-agenda-mode-map + ("C-o" . casual-agenda-tmenu) + ("M-j" . org-agenda-clock-goto) + ("J" . bookmark-jump)) + (:map ibuffer-mode-map + ("C-o" . casual-ibuffer-tmenu) + ("F" . casual-ibuffer-filter-tmenu) + ("s" . casual-ibuffer-sortby-tmenu) + ("{" . ibuffer-backwards-next-marked) + ("}" . ibuffer-forward-next-marked) + ("[" . ibuffer-backward-filter-group) + ("]" . ibuffer-forward-filter-group) + ("$" . ibuffer-toggle-filter-group)) + (:map calc-mode-map + ("C-o" . casual-calc-tmenu)) + (:map calc-alg-map + ("C-o" . casual-calc-tmenu)) + (:map eshell-mode-map + ("C-o" . casual-eshell-tmenu)) + (:map eww-mode-map + ("C-o" . casual-eww-tmenu)) + (:map eww-bookmark-mode-map + ("C-o" . casual-eww-bookmarks-tmenu)) + (:map help-mode-map + ("C-o" . casual-help-tmenu)) + (:map Info-mode-map + ("C-o" . casual-info-tmenu)) + :config + ;; Dired configuration + (add-hook 'dired-mode-hook #'hl-line-mode) + (add-hook 'dired-mode-hook #'context-menu-mode) + + ;; IBuffer configuration + (add-hook 'ibuffer-mode-hook #'hl-line-mode) + (add-hook 'ibuffer-mode-hook #'ibuffer-auto-mode) + (keymap-set ibuffer-mode-map "" #'ibuffer-visit-buffer) + (keymap-set ibuffer-mode-map "M-" #'ibuffer-visit-buffer-other-window) + + ;; Info configuration + (add-hook 'Info-mode-hook #'hl-line-mode) + (add-hook 'Info-mode-hook #'scroll-lock-mode)) +#+end_src + ** Embark [[https://github.com/oantolin/embark][Embark]] is like a DWIM version of which-key in a sense. Though it is more @@ -783,83 +841,13 @@ _l_ → _c_ lose (global-set-key (kbd "C-c t") 'hydra-tab/body) #+end_src -** Windows - -Quite a helpful window hydra. I cannot take credit for this. I copied it -from somewhere. When I find the link I'll add it here. - -#+name: window-hydra -#+begin_src emacs-lisp :tangle no - (defhydra hydra-window (:color red :hint nil) - " -Movement^^ ^Split^ ^Switch^ ^Resize^ ----------------------------------------------------------------- -_h_ ← _v_ertical _b_uffer _q_ X← -_j_ ↓ _x_ horizontal _f_ind files _w_ X↓ -_k_ ↑ _z_ undo _a_ce 1 _e_ X↑ -_l_ → _Z_ reset _s_wap _r_ X→ -_F_ollow _D_lt Other _S_ave max_i_mize -_SPC_ cancel _o_nly this _d_elete -" - ("h" windmove-left ) - ("j" windmove-down ) - ("k" windmove-up ) - ("l" windmove-right ) - ("q" hydra-move-splitter-left) - ("w" hydra-move-splitter-down) - ("e" hydra-move-splitter-up) - ("r" hydra-move-splitter-right) - ("b" consult-buffer) - ("f" consult-fd) - ("F" follow-mode) - ("a" (lambda () - (interactive) - (ace-window 1) - (add-hook 'ace-window-end-once-hook - 'hydra-window/body)) - ) - ("v" (lambda () - (interactive) - (split-window-right) - (windmove-right)) - ) - ("x" (lambda () - (interactive) - (split-window-below) - (windmove-down)) - ) - ("s" (lambda () - (interactive) - (ace-window 4) - (add-hook 'ace-window-end-once-hook - 'hydra-window/body))) - ("S" save-buffer) - ("d" delete-window) - ("D" (lambda () - (interactive) - (ace-window 16) - (add-hook 'ace-window-end-once-hook - 'hydra-window/body)) - ) - ("o" delete-other-windows) - ("i" ace-maximize-window) - ("z" (progn - (winner-undo) - (setq this-command 'winner-undo)) - ) - ("Z" winner-redo) - ("SPC" nil)) - (global-set-key (kbd "C-c w") 'hydra-window/body) -#+end_src - ** Pulling it all together #+begin_src emacs-lisp (use-package hydra :demand t :config - <> - <>) + <>) #+end_src # #+INCLUDE: "config/bufferlo.org" :minlevel 1 @@ -1532,6 +1520,7 @@ the package. :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) (c-ts-mode . lsp-deferred) (c++-ts-mode . lsp-deferred) + (clojure-mode . lsp-deferred) (clojure-ts-mode . lsp-deferred) (crystal-mode . lsp-deferred) (elixir-ts-mode . lsp-deferred) @@ -1615,9 +1604,19 @@ bother with an explanation on each. ;; Clojure (use-package clojure-mode :ensure t - :after (rainbox-mode) + :after (rainbow-mode) :hook - cider-mode) + (clojure-mode . cider-mode) + (clojure-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil)))) + +(use-package clojure-ts-mode + :ensure t + :mode (("\\.clj\\'" . clojure-ts-mode) + ("\\.cljs\\'" . clojure-ts-mode) + ("\\.cljc\\'" . clojure-ts-mode)) + :hook + (clojure-ts-mode . cider-mode) + (clojure-ts-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil)))) ;; Gleam (use-package gleam-ts-mode @@ -1665,6 +1664,7 @@ and managing my notes. (use-feature org :defer t :config + (require 'org-agenda) (setq org-confirm-babel-evaluate nil) :custom (org-ellipsis (nth 5 '("↴" "˅" "…" " ⬙" " ▽" "▿"))) diff --git a/config/formatting.org b/config/formatting.org index 3d413fc..b18c1e3 100644 --- a/config/formatting.org +++ b/config/formatting.org @@ -13,8 +13,9 @@ breeze. :init (setq parinfer-rust-auto-download t) :hook - emacs-lisp-mode - clojure-ts-mode) + (emacs-lisp-mode . parinfer-rust-mode) + (clojure-mode . parinfer-rust-mode) + (clojure-ts-mode . parinfer-rust-mode)) #+end_src I also have =smart-parens= for parentheses matching in modes where =parinfer= would diff --git a/config/hydra.org b/config/hydra.org index 79c6abf..f4157a1 100644 --- a/config/hydra.org +++ b/config/hydra.org @@ -25,81 +25,11 @@ _l_ → _c_ lose (global-set-key (kbd "C-c t") 'hydra-tab/body) #+end_src -** Windows - -Quite a helpful window hydra. I cannot take credit for this. I copied it -from somewhere. When I find the link I'll add it here. - -#+name: window-hydra -#+begin_src emacs-lisp :tangle no - (defhydra hydra-window (:color red :hint nil) - " -Movement^^ ^Split^ ^Switch^ ^Resize^ ----------------------------------------------------------------- -_h_ ← _v_ertical _b_uffer _q_ X← -_j_ ↓ _x_ horizontal _f_ind files _w_ X↓ -_k_ ↑ _z_ undo _a_ce 1 _e_ X↑ -_l_ → _Z_ reset _s_wap _r_ X→ -_F_ollow _D_lt Other _S_ave max_i_mize -_SPC_ cancel _o_nly this _d_elete -" - ("h" windmove-left ) - ("j" windmove-down ) - ("k" windmove-up ) - ("l" windmove-right ) - ("q" hydra-move-splitter-left) - ("w" hydra-move-splitter-down) - ("e" hydra-move-splitter-up) - ("r" hydra-move-splitter-right) - ("b" consult-buffer) - ("f" consult-fd) - ("F" follow-mode) - ("a" (lambda () - (interactive) - (ace-window 1) - (add-hook 'ace-window-end-once-hook - 'hydra-window/body)) - ) - ("v" (lambda () - (interactive) - (split-window-right) - (windmove-right)) - ) - ("x" (lambda () - (interactive) - (split-window-below) - (windmove-down)) - ) - ("s" (lambda () - (interactive) - (ace-window 4) - (add-hook 'ace-window-end-once-hook - 'hydra-window/body))) - ("S" save-buffer) - ("d" delete-window) - ("D" (lambda () - (interactive) - (ace-window 16) - (add-hook 'ace-window-end-once-hook - 'hydra-window/body)) - ) - ("o" delete-other-windows) - ("i" ace-maximize-window) - ("z" (progn - (winner-undo) - (setq this-command 'winner-undo)) - ) - ("Z" winner-redo) - ("SPC" nil)) - (global-set-key (kbd "C-c w") 'hydra-window/body) -#+end_src - ** Pulling it all together #+begin_src emacs-lisp (use-package hydra :demand t :config - <> - <>) + <>) #+end_src diff --git a/config/lsp.org b/config/lsp.org index d8269d3..0aead37 100644 --- a/config/lsp.org +++ b/config/lsp.org @@ -16,6 +16,7 @@ the package. :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) (c-ts-mode . lsp-deferred) (c++-ts-mode . lsp-deferred) + (clojure-mode . lsp-deferred) (clojure-ts-mode . lsp-deferred) (crystal-mode . lsp-deferred) (elixir-ts-mode . lsp-deferred) diff --git a/config/major_modes.org b/config/major_modes.org index fe8d3d1..682198c 100644 --- a/config/major_modes.org +++ b/config/major_modes.org @@ -30,9 +30,19 @@ bother with an explanation on each. ;; Clojure (use-package clojure-mode :ensure t - :after (rainbox-mode) + :after (rainbow-mode) :hook - cider-mode) + (clojure-mode . cider-mode) + (clojure-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil)))) + +(use-package clojure-ts-mode + :ensure t + :mode (("\\.clj\\'" . clojure-ts-mode) + ("\\.cljs\\'" . clojure-ts-mode) + ("\\.cljc\\'" . clojure-ts-mode)) + :hook + (clojure-ts-mode . cider-mode) + (clojure-ts-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil)))) ;; Gleam (use-package gleam-ts-mode diff --git a/config/org_mode.org b/config/org_mode.org index f5b9f43..aaa651a 100644 --- a/config/org_mode.org +++ b/config/org_mode.org @@ -8,6 +8,7 @@ and managing my notes. (use-feature org :defer t :config + (require 'org-agenda) (setq org-confirm-babel-evaluate nil) :custom (org-ellipsis (nth 5 '("↴" "˅" "…" " ⬙" " ▽" "▿"))) diff --git a/config/qol.org b/config/qol.org index e81b48b..3264d01 100644 --- a/config/qol.org +++ b/config/qol.org @@ -24,6 +24,63 @@ bar. :config (global-anzu-mode)) #+end_src +** Casual + +I'd like to start using transient over hydra. [[https://github.com/kickingvegas/casual][Casual]] does a lot of the +leg work for us. + +#+begin_src emacs-lisp +(use-package casual + :ensure t + :bind + ("C-o" . casual-editkit-main-tmenu) ;; Global EditKit menu + (:map dired-mode-map + ("C-o" . casual-dired-tmenu) + ("s" . casual-dired-sort-by-tmenu) + ("/" . casual-dired-search-replace-tmenu)) + (:map org-agenda-mode-map + ("C-o" . casual-agenda-tmenu) + ("M-j" . org-agenda-clock-goto) + ("J" . bookmark-jump)) + (:map ibuffer-mode-map + ("C-o" . casual-ibuffer-tmenu) + ("F" . casual-ibuffer-filter-tmenu) + ("s" . casual-ibuffer-sortby-tmenu) + ("{" . ibuffer-backwards-next-marked) + ("}" . ibuffer-forward-next-marked) + ("[" . ibuffer-backward-filter-group) + ("]" . ibuffer-forward-filter-group) + ("$" . ibuffer-toggle-filter-group)) + (:map calc-mode-map + ("C-o" . casual-calc-tmenu)) + (:map calc-alg-map + ("C-o" . casual-calc-tmenu)) + (:map eshell-mode-map + ("C-o" . casual-eshell-tmenu)) + (:map eww-mode-map + ("C-o" . casual-eww-tmenu)) + (:map eww-bookmark-mode-map + ("C-o" . casual-eww-bookmarks-tmenu)) + (:map help-mode-map + ("C-o" . casual-help-tmenu)) + (:map Info-mode-map + ("C-o" . casual-info-tmenu)) + :config + ;; Dired configuration + (add-hook 'dired-mode-hook #'hl-line-mode) + (add-hook 'dired-mode-hook #'context-menu-mode) + + ;; IBuffer configuration + (add-hook 'ibuffer-mode-hook #'hl-line-mode) + (add-hook 'ibuffer-mode-hook #'ibuffer-auto-mode) + (keymap-set ibuffer-mode-map "" #'ibuffer-visit-buffer) + (keymap-set ibuffer-mode-map "M-" #'ibuffer-visit-buffer-other-window) + + ;; Info configuration + (add-hook 'Info-mode-hook #'hl-line-mode) + (add-hook 'Info-mode-hook #'scroll-lock-mode)) +#+end_src + ** Embark [[https://github.com/oantolin/embark][Embark]] is like a DWIM version of which-key in a sense. Though it is more