summary refs log tree commit diff stats
path: root/init.el
diff options
context:
space:
mode:
Diffstat (limited to 'init.el')
-rw-r--r--init.el223
1 files changed, 120 insertions, 103 deletions
diff --git a/init.el b/init.el index d4a6a0f..1000714 100644 --- a/init.el +++ b/init.el
@@ -24,13 +24,19 @@
24(setq debug-on-error t) 24(setq debug-on-error t)
25 25
26(setup (:require +emacs) 26(setup (:require +emacs)
27 (:also-load +lisp)
27 ;; +emacs.el contains super-basic defaults that are basically 28 ;; +emacs.el contains super-basic defaults that are basically
28 ;; necessary for good functioning. In this block, I add extra 29 ;; necessary for good functioning. In this block, I add extra
29 ;; things or more "experimental" ones that might not belong in a 30 ;; things or more "experimental" ones that might not belong in a
30 ;; separate file. 31 ;; separate file.
31 (:global "C-x C-k" 'kill-this-buffer 32 (:global "C-x C-k" #'kill-this-buffer
32 "C-x 4 n" 'clone-buffer 33 "C-x 4 n" #'clone-buffer
33 "C-c v" 'visible-mode) 34 "C-c v" #'visible-mode
35 "C-M-;" #'+lisp-comment-or-uncomment-sexp)
36 ;; Unbind stuff, too.
37 (dolist (key '("C-M-j"
38 "M-j"))
39 (global-set-key (kbd key) nil))
34 ;; C-h deletes backward - see https://idiomdrottning.org/bad-emacs-defaults 40 ;; C-h deletes backward - see https://idiomdrottning.org/bad-emacs-defaults
35 (global-set-key (kbd "C-h") 'delete-backward-char) 41 (global-set-key (kbd "C-h") 'delete-backward-char)
36 (keyboard-translate ?\C-h ?\C-?) 42 (keyboard-translate ?\C-h ?\C-?)
@@ -44,10 +50,7 @@
44 (advice-add 'yank-pop :after '+yank@indent)) 50 (advice-add 'yank-pop :after '+yank@indent))
45 51
46(setup (:require +init) 52(setup (:require +init)
47 (:bind "C-c s" (lambda () 53 (:bind "C-c s" #'+init-sort-then-save)
48 (interactive)
49 (+init-sort)
50 (save-buffer)))
51 (:hook #'+init-add-setup-to-imenu)) 54 (:hook #'+init-add-setup-to-imenu))
52 55
53(setup (:require +key) 56(setup (:require +key)
@@ -68,8 +71,7 @@
68 (:also-load +pulse) 71 (:also-load +pulse)
69 (:option pulse-flag nil 72 (:option pulse-flag nil
70 pulse-delay 0.5 73 pulse-delay 0.5
71 pulse-iterations 1 74 pulse-iterations 1)
72 (append +pulse-location-commands) 'lui-track-jump-to-indicator)
73 (+pulse-location-mode +1)) 75 (+pulse-location-mode +1))
74 76
75(setup (:require reading) 77(setup (:require reading)
@@ -93,8 +95,8 @@
93(setup browse-url 95(setup browse-url
94 (:require +browse-url) 96 (:require +browse-url)
95 (:option browse-url-secondary-browser-function (if (executable-find "firefox") 97 (:option browse-url-secondary-browser-function (if (executable-find "firefox")
96 'browse-url-firefox 98 #'browse-url-firefox
97 'browse-url-default-browser) 99 #'browse-url-default-browser)
98 browse-url-new-window-flag nil 100 browse-url-new-window-flag nil
99 browse-url-firefox-arguments '("--new-tab") 101 browse-url-firefox-arguments '("--new-tab")
100 browse-url-firefox-new-window-is-tab t) 102 browse-url-firefox-new-window-is-tab t)
@@ -105,15 +107,15 @@
105 "." (or "jpeg" "jpg" "png") eos) 107 "." (or "jpeg" "jpg" "png") eos)
106 (lambda (&rest args) 108 (lambda (&rest args)
107 (apply 109 (apply
108 (cond ((executable-find "mpv") '+browse-image-with-mpv) 110 (cond ((executable-find "mpv") #'+browse-image-with-mpv)
109 (t 'eww-browse-url)) 111 (t #'eww-browse-url))
110 args))) 112 args)))
111 (cons (rx ; videos 113 (cons (rx ; videos
112 (or "youtube.com" "youtu.be" "yewtu.be" 114 (or "youtube.com" "youtu.be" "yewtu.be"
113 (seq "." (or "mp4" "gif" "mov" "MOV") eos))) 115 (seq "." (or "mp4" "gif" "mov" "MOV") eos)))
114 (lambda (&rest args) 116 (lambda (&rest args)
115 (apply (if (executable-find "mpv") 117 (apply (if (executable-find "mpv")
116 '+browse-url-with-mpv 118 #'+browse-url-with-mpv
117 browse-url-secondary-browser-function) 119 browse-url-secondary-browser-function)
118 args))) 120 args)))
119 (cons (rx ; non-eww-friendly websites 121 (cons (rx ; non-eww-friendly websites
@@ -130,7 +132,7 @@
130 )) 132 ))
131 browse-url-secondary-browser-function) 133 browse-url-secondary-browser-function)
132 (cons "." ; everything else 134 (cons "." ; everything else
133 'eww-browse-url))) 135 #'eww-browse-url)))
134 ;; Transform URLs before passing to `browse-url' 136 ;; Transform URLs before passing to `browse-url'
135 (:option +browse-url-transformations `((,(rx "//" (or "youtube.com" 137 (:option +browse-url-transformations `((,(rx "//" (or "youtube.com"
136 "youtu.be")) 138 "youtu.be"))
@@ -163,7 +165,8 @@
163 custom-raised-buttons nil 165 custom-raised-buttons nil
164 custom-unlispify-tag-names nil 166 custom-unlispify-tag-names nil
165 custom-variable-default-form 'lisp 167 custom-variable-default-form 'lisp
166 +custom-variable-allowlist '(safe-local-variable-values)) 168 +custom-variable-allowlist '(safe-local-variable-values
169 warning-suppress-types))
167 (when (file-exists-p custom-file) 170 (when (file-exists-p custom-file)
168 (+custom-load-ignoring-most-customizations t)) 171 (+custom-load-ignoring-most-customizations t))
169 (advice-add #'custom-buffer-create-internal :after #'+cus-edit-expand-widgets) 172 (advice-add #'custom-buffer-create-internal :after #'+cus-edit-expand-widgets)
@@ -183,10 +186,10 @@
183 dired-listing-switches "-Al" 186 dired-listing-switches "-Al"
184 ls-lisp-dirs-first t 187 ls-lisp-dirs-first t
185 dired-ls-F-marks-symlinks t 188 dired-ls-F-marks-symlinks t
186 dired-no-confirm '(byte-compile 189 dired-no-confirm '(byte-compile load
187 chgrp chmod chown copy 190 chgrp chmod chown
188 hardlink load move 191 copy move hardlink symlink
189 shell touch symlink) 192 shell touch)
190 dired-dwim-target t) 193 dired-dwim-target t)
191 (:bind "<backspace>" #'dired-up-directory 194 (:bind "<backspace>" #'dired-up-directory
192 "TAB" #'dired-subtree-cycle 195 "TAB" #'dired-subtree-cycle
@@ -205,7 +208,7 @@
205 (:option dired-listing-switches 208 (:option dired-listing-switches
206 (concat dired-listing-switches " -F"))))) 209 (concat dired-listing-switches " -F")))))
207 (with-eval-after-load 'frowny 210 (with-eval-after-load 'frowny
208 (add-to-list 'frowny-inhibit-modes 'dired-mode))) 211 (add-to-list 'frowny-inhibit-modes #'dired-mode)))
209 212
210(setup eldoc 213(setup eldoc
211 (:hook-into elisp-mode 214 (:hook-into elisp-mode
@@ -333,7 +336,7 @@
333 336
334(setup scratch 337(setup scratch
335 (:require +scratch) 338 (:require +scratch)
336 (:option initial-major-mode 'lisp-interaction-mode 339 (:option initial-major-mode #'lisp-interaction-mode
337 initial-scratch-message 340 initial-scratch-message
338 ";; ABANDON ALL HOPE YE WHO ENTER HERE\n\n") 341 ";; ABANDON ALL HOPE YE WHO ENTER HERE\n\n")
339 (add-hook 'kill-buffer-query-functions #'+scratch-immortal)) 342 (add-hook 'kill-buffer-query-functions #'+scratch-immortal))
@@ -344,7 +347,7 @@
344(setup (:straight 0x0) 347(setup (:straight 0x0)
345 (:option 0x0-default-server 'ttm) 348 (:option 0x0-default-server 'ttm)
346 (with-eval-after-load 'embark 349 (with-eval-after-load 'embark
347 (define-key embark-region-map (kbd "U") '0x0-dwim))) 350 (define-key embark-region-map (kbd "U") #'0x0-dwim)))
348 351
349(setup (:straight ace-window) 352(setup (:straight ace-window)
350 (:require +ace-window) 353 (:require +ace-window)
@@ -416,7 +419,7 @@
416 circe-prompt-string (format (format "%%%ds> " 419 circe-prompt-string (format (format "%%%ds> "
417 (- +circe-left-margin 2)) 420 (- +circe-left-margin 2))
418 " ")) 421 " "))
419 422
420 (:option +circe-server-buffer-action (lambda (buf) 423 (:option +circe-server-buffer-action (lambda (buf)
421 (message "Connected to %s" buf)) 424 (message "Connected to %s" buf))
422 +circe-network-inhibit-autoconnect _circe-network-inhibit-autoconnect 425 +circe-network-inhibit-autoconnect _circe-network-inhibit-autoconnect
@@ -434,7 +437,7 @@
434 (advice-add #'circe-command-PART :after #'+circe-kill-buffer) 437 (advice-add #'circe-command-PART :after #'+circe-kill-buffer)
435 (advice-add #'circe-command-QUIT :after #'+circe-quit@kill-buffer) 438 (advice-add #'circe-command-QUIT :after #'+circe-quit@kill-buffer)
436 (advice-add #'circe-command-GQUIT :after #'+circe-gquit@kill-buffer) 439 (advice-add #'circe-command-GQUIT :after #'+circe-gquit@kill-buffer)
437 440
438 (:with-mode circe-chat-mode 441 (:with-mode circe-chat-mode
439 (:hook #'enable-circe-color-nicks 442 (:hook #'enable-circe-color-nicks
440 #'enable-circe-new-day-notifier 443 #'enable-circe-new-day-notifier
@@ -454,7 +457,8 @@
454 (,(+lui-make-formatting-list-rx "_") 457 (,(+lui-make-formatting-list-rx "_")
455 1 lui-emphasis-face) 458 1 lui-emphasis-face)
456 (,(+lui-make-formatting-list-rx "/") 459 (,(+lui-make-formatting-list-rx "/")
457 1 lui-emphasis-face))) 460 1 lui-emphasis-face))
461 (append +pulse-location-commands) 'lui-track-jump-to-indicator)
458 (:hook #'visual-line-mode 462 (:hook #'visual-line-mode
459 #'enable-lui-track 463 #'enable-lui-track
460 #'visual-fill-column-mode) 464 #'visual-fill-column-mode)
@@ -481,67 +485,67 @@
481 (:also-load +consult) 485 (:also-load +consult)
482 ;; from Consult wiki 486 ;; from Consult wiki
483 (:option register-preview-delay 0 487 (:option register-preview-delay 0
484 register-preview-function 'consult-register-format 488 register-preview-function 'consult-register-format
485 xref-show-xrefs-function 'consult-xref 489 xref-show-xrefs-function 'consult-xref
486 xref-show-definitions-function 'consult-xref 490 xref-show-definitions-function 'consult-xref
487 tab-always-indent 'complete 491 tab-always-indent 'complete
488 completion-in-region-function 'consult-completion-in-region) 492 completion-in-region-function 'consult-completion-in-region)
489 (advice-add #'register-preview :override #'consult-register-window) 493 (advice-add #'register-preview :override #'consult-register-window)
490 (advice-add #'completing-read-multiple :override 494 (advice-add #'completing-read-multiple :override
491 #'consult-completing-read-multiple) 495 #'consult-completing-read-multiple)
492 (dolist (binding '(;; C-c bindings (mode-specific-map) 496 (dolist (binding '(;; C-c bindings (mode-specific-map)
493 ("C-c h" . consult-history) 497 ("C-c h" . consult-history)
494 ("C-c m" . consult-mode-command) 498 ("C-c m" . consult-mode-command)
495 ("C-c b" . consult-bookmark) 499 ("C-c b" . consult-bookmark)
496 ("C-c k" . consult-kmacro) 500 ("C-c k" . consult-kmacro)
497 ;; C-x bindings (ctl-x-map) 501 ;; C-x bindings (ctl-x-map)
498 ("C-x M-:" . consult-complex-command) 502 ("C-x M-:" . consult-complex-command)
499 ("C-x b" . consult-buffer) 503 ("C-x b" . consult-buffer)
500 ("C-x 4 b" . consult-buffer-other-window) 504 ("C-x 4 b" . consult-buffer-other-window)
501 ("C-x 5 b" . consult-buffer-other-frame) 505 ("C-x 5 b" . consult-buffer-other-frame)
502 ;; Custom M-# bindings for fast register access 506 ;; Custom M-# bindings for fast register access
503 ("M-#" . consult-register-load) 507 ("M-#" . consult-register-load)
504 ("M-'" . consult-register-store) 508 ("M-'" . consult-register-store)
505 ("C-M-#" . consult-register) 509 ("C-M-#" . consult-register)
506 ;; Other custom bindings 510 ;; Other custom bindings
507 ("M-y" . consult-yank-pop) 511 ("M-y" . consult-yank-pop)
508 ("<f1> a" . consult-apropos) 512 ("<f1> a" . consult-apropos)
509 ;; M-g bindings (goto-map) 513 ;; M-g bindings (goto-map)
510 ("M-g e" . consult-compile-error) 514 ("M-g e" . consult-compile-error)
511 ("M-g f" . consult-flymake) ; or consult-flycheck 515 ("M-g f" . consult-flymake) ; or consult-flycheck
512 ("M-g g" . consult-goto-line) 516 ("M-g g" . consult-goto-line)
513 ("M-g M-g" . consult-goto-line) 517 ("M-g M-g" . consult-goto-line)
514 ("M-g o" . consult-outline) ; or consult-org-heading 518 ("M-g o" . consult-outline) ; or consult-org-heading
515 ("M-g m" . consult-mark) 519 ("M-g m" . consult-mark)
516 ("M-g k" . consult-global-mark) 520 ("M-g k" . consult-global-mark)
517 ("M-g i" . consult-imenu) 521 ("M-g i" . consult-imenu)
518 ("M-g I" . consult-imenu-multi) 522 ("M-g I" . consult-imenu-multi)
519 ;; M-s bindings (search-map) 523 ;; M-s bindings (search-map)
520 ("M-s f" . consult-find) 524 ("M-s f" . consult-find)
521 ("M-s F" . consult-locate) 525 ("M-s F" . consult-locate)
522 ("M-s g" . consult-grep) 526 ("M-s g" . consult-grep)
523 ("M-s G" . consult-git-grep) 527 ("M-s G" . consult-git-grep)
524 ("M-s r" . consult-ripgrep) 528 ("M-s r" . consult-ripgrep)
525 ("M-s l" . consult-line) 529 ("M-s l" . consult-line)
526 ("M-s L" . consult-line-multi) 530 ("M-s L" . consult-line-multi)
527 ("M-s m" . consult-multi-occur) 531 ("M-s m" . consult-multi-occur)
528 ("M-s k" . consult-keep-lines) 532 ("M-s k" . consult-keep-lines)
529 ("M-s u" . consult-focus-lines) 533 ("M-s u" . consult-focus-lines)
530 ;; Isearch integration 534 ;; Isearch integration
531 ("M-s e" . consult-isearch-history))) 535 ("M-s e" . consult-isearch-history)))
532 (define-key +key-mode-map (kbd (car binding)) (cdr binding))) 536 (define-key +key-mode-map (kbd (car binding)) (cdr binding)))
533 (with-eval-after-load 'isearch-mode 537 (with-eval-after-load 'isearch-mode
534 (dolist (binding '(("M-e" . consult-isearch-history) 538 (dolist (binding '(("M-e" . consult-isearch-history)
535 ("M-s e" . consult-isearch-history) 539 ("M-s e" . consult-isearch-history)
536 ("M-s l" . consult-line) 540 ("M-s l" . consult-line)
537 ("M-s L" . consult-line-multi))) 541 ("M-s L" . consult-line-multi)))
538 (define-key isearch-mode-map (car binding) (cdr binding)))) 542 (define-key isearch-mode-map (car binding) (cdr binding))))
539 (with-eval-after-load 'org-mode 543 (with-eval-after-load 'org-mode
540 (define-key org-mode-map "M-g o" 'consult-org-heading)) 544 (define-key org-mode-map "M-g o" 'consult-org-heading))
541 (advice-add 'consult-yank-pop :after '+yank@indent) 545 (advice-add 'consult-yank-pop :after '+yank@indent)
542 (with-eval-after-load 'consult 546 (with-eval-after-load 'consult
543 (:option consult-narrow-key "<" 547 (:option consult-narrow-key "<"
544 consult-project-root-function '+consult-project-root) 548 consult-project-root-function '+consult-project-root)
545 (consult-customize 549 (consult-customize
546 consult-theme 550 consult-theme
547 :preview-key '(:debounce 0.2 any) 551 :preview-key '(:debounce 0.2 any)
@@ -629,8 +633,8 @@ See also `crux-reopen-as-root-mode'."
629(setup (:straight embark) 633(setup (:straight embark)
630 (:option prefix-help-command 'embark-prefix-help-command) 634 (:option prefix-help-command 'embark-prefix-help-command)
631 (:+key "C-." #'embark-act 635 (:+key "C-." #'embark-act
632 "M-." #'embark-dwim 636 "M-." #'embark-dwim
633 "<f1> B" #'embark-bindings)) 637 "<f1> B" #'embark-bindings))
634 638
635(setup (:straight embark-consult) 639(setup (:straight embark-consult)
636 (:load-after consult embark) 640 (:load-after consult embark)
@@ -708,7 +712,7 @@ See also `crux-reopen-as-root-mode'."
708 712
709(setup (:straight hungry-delete) 713(setup (:straight hungry-delete)
710 (:option hungry-delete-chars-to-skip " \t" 714 (:option hungry-delete-chars-to-skip " \t"
711 hungry-delete-join-reluctantly nil) 715 hungry-delete-join-reluctantly nil)
712 (:bind-into paredit 716 (:bind-into paredit
713 ;; I define these functions here because they really require both packages 717 ;; I define these functions here because they really require both packages
714 ;; to make any sense. So, would I put them in `+hungry-delete' or 718 ;; to make any sense. So, would I put them in `+hungry-delete' or
@@ -717,14 +721,14 @@ See also `crux-reopen-as-root-mode'."
717 (defun acdw/paredit-hungry-delete-backward (arg) 721 (defun acdw/paredit-hungry-delete-backward (arg)
718 (interactive "P") 722 (interactive "P")
719 (if (looking-back "[ \t]" 1) 723 (if (looking-back "[ \t]" 1)
720 (hungry-delete-backward (or arg 1)) 724 (hungry-delete-backward (or arg 1))
721 (paredit-backward-delete arg))) 725 (paredit-backward-delete arg)))
722 [remap paredit-forward-delete] 726 [remap paredit-forward-delete]
723 (defun acdw/paredit-hungry-delete-forward (arg) 727 (defun acdw/paredit-hungry-delete-forward (arg)
724 (interactive "P") 728 (interactive "P")
725 (if (looking-at "[ \t]") 729 (if (looking-at "[ \t]")
726 (hungry-delete-forward (or arg 1)) 730 (hungry-delete-forward (or arg 1))
727 (paredit-forward-delete arg)))) 731 (paredit-forward-delete arg))))
728 (global-hungry-delete-mode +1)) 732 (global-hungry-delete-mode +1))
729 733
730(setup (:straight isearch-mb) 734(setup (:straight isearch-mb)
@@ -733,19 +737,19 @@ See also `crux-reopen-as-root-mode'."
733 ;; project's README. 737 ;; project's README.
734 (with-eval-after-load 'isearch-mb 738 (with-eval-after-load 'isearch-mb
735 (dolist (spec '((isearch-mb--with-buffer 739 (dolist (spec '((isearch-mb--with-buffer
736 ("M-e" . consult-isearch) 740 ("M-e" . consult-isearch)
737 ("C-o" . loccur-isearch)) 741 ("C-o" . loccur-isearch))
738 (isearch-mb--after-exit 742 (isearch-mb--after-exit
739 ("M-%" . anzu-isearch-query-replace) 743 ("M-%" . anzu-isearch-query-replace)
740 ("M-s l" . consult-line)))) 744 ("M-s l" . consult-line))))
741 (let ((isearch-mb-list (car spec)) 745 (let ((isearch-mb-list (car spec))
742 (isearch-mb-binds (cdr spec))) 746 (isearch-mb-binds (cdr spec)))
743 (dolist (cell isearch-mb-binds) 747 (dolist (cell isearch-mb-binds)
744 (let ((key (car cell)) 748 (let ((key (car cell))
745 (command (cdr cell))) 749 (command (cdr cell)))
746 (when (fboundp command) 750 (when (fboundp command)
747 (add-to-list isearch-mb-list command) 751 (add-to-list isearch-mb-list command)
748 (define-key isearch-mb-minibuffer-map (kbd key) command))))))) 752 (define-key isearch-mb-minibuffer-map (kbd key) command)))))))
749 (isearch-mb-mode +1)) 753 (isearch-mb-mode +1))
750 754
751(setup (:straight lacarte) 755(setup (:straight lacarte)
@@ -881,11 +885,18 @@ See also `crux-reopen-as-root-mode'."
881(setup (:straight org-sticky-header) 885(setup (:straight org-sticky-header)
882 (:hook-into org-mode)) 886 (:hook-into org-mode))
883 887
888(setup (:straight package-lint))
889
884(setup (:straight paredit) 890(setup (:straight paredit)
885 (:bind "DEL" #'paredit-backward-delete 891 (:bind "DEL" #'paredit-backward-delete
886 "C-<backspace>" #'paredit-backward-kill-word) 892 "C-<backspace>" #'paredit-backward-kill-word)
887 (:hook-into emacs-lisp-mode lisp-interaction-mode 893 (dolist (hook '(emacs-lisp-mode-hook
888 lisp-mode scheme-mode) 894 eval-expression-minibuffer-setup-hook
895 ielm-mode-hook
896 lisp-interaction-mode-hook
897 lisp-mode-hook
898 scheme-mode-hook))
899 (add-hook hook #'enable-paredit-mode))
889 (:also-load eldoc) 900 (:also-load eldoc)
890 (eldoc-add-command #'paredit-backward-delete #'paredit-close-round)) 901 (eldoc-add-command #'paredit-backward-delete #'paredit-close-round))
891 902
@@ -911,13 +922,15 @@ See also `crux-reopen-as-root-mode'."
911(setup (:straight sicp)) 922(setup (:straight sicp))
912 923
913(setup (:straight (simple-modeline 924(setup (:straight (simple-modeline
914 :fork (:repo "duckwork/simple-modeline"))) 925 :fork (:host github :repo "duckwork/simple-modeline")))
915 (:also-load +modeline) 926 (:also-load +modeline)
916 (:option simple-modeline-segments '((;; left 927 (:option simple-modeline-segments `((;; left
917 +modeline-ace-window-display 928 +modeline-ace-window-display
918 +modeline-modified 929 +modeline-modified
919 +modeline-reading-mode 930 ,(+modeline-concat
920 +modeline-narrowed 931 '(+modeline-reading-mode
932 +modeline-narrowed)
933 ",")
921 +modeline-buffer-name 934 +modeline-buffer-name
922 +modeline-position 935 +modeline-position
923 +modeline-anzu 936 +modeline-anzu
@@ -968,8 +981,8 @@ See also `crux-reopen-as-root-mode'."
968 (list 981 (list
969 (propertize " " 982 (propertize " "
970 'display 983 'display
971 `((space 984 `((space
972 :align-to 985 :align-to
973 ,(unless (bound-and-true-p visual-fill-column-mode) 986 ,(unless (bound-and-true-p visual-fill-column-mode)
974 0)))) 987 0))))
975 (funcall topsy-fn)))))) 988 (funcall topsy-fn))))))
@@ -1023,7 +1036,6 @@ See also `crux-reopen-as-root-mode'."
1023 1036
1024(setup (:straight whitespace-cleanup-mode) 1037(setup (:straight whitespace-cleanup-mode)
1025 (:option whitespace-cleanup-mode-preserve-point t) 1038 (:option whitespace-cleanup-mode-preserve-point t)
1026 ;;(remove-hook 'before-save-hook 'whitespace-cleanup)
1027 (global-whitespace-cleanup-mode +1)) 1039 (global-whitespace-cleanup-mode +1))
1028 1040
1029(setup (:straight zoom-frm)) 1041(setup (:straight zoom-frm))
@@ -1034,3 +1046,8 @@ See also `crux-reopen-as-root-mode'."
1034 (interactive "P") 1046 (interactive "P")
1035 (call-interactively 1047 (call-interactively
1036 (if prefix #'zzz-up-to-char #'zzz-to-char))))) 1048 (if prefix #'zzz-up-to-char #'zzz-to-char)))))
1049
1050(setup (:straight (actually-selected-window
1051 :host github
1052 :repo "duckwork/actually-selected-window.el"))
1053 (actually-selected-window-mode +1))