From 038e5de1adf2de6cdf28a428a44b0753813b928c Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 29 Dec 2021 22:55:55 -0600 Subject: Lots and lots of changes, oh jeez --- init.el | 223 ++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 120 insertions(+), 103 deletions(-) (limited to 'init.el') diff --git a/init.el b/init.el index d4a6a0f..1000714 100644 --- a/init.el +++ b/init.el @@ -24,13 +24,19 @@ (setq debug-on-error t) (setup (:require +emacs) + (:also-load +lisp) ;; +emacs.el contains super-basic defaults that are basically ;; necessary for good functioning. In this block, I add extra ;; things or more "experimental" ones that might not belong in a ;; separate file. - (:global "C-x C-k" 'kill-this-buffer - "C-x 4 n" 'clone-buffer - "C-c v" 'visible-mode) + (:global "C-x C-k" #'kill-this-buffer + "C-x 4 n" #'clone-buffer + "C-c v" #'visible-mode + "C-M-;" #'+lisp-comment-or-uncomment-sexp) + ;; Unbind stuff, too. + (dolist (key '("C-M-j" + "M-j")) + (global-set-key (kbd key) nil)) ;; C-h deletes backward - see https://idiomdrottning.org/bad-emacs-defaults (global-set-key (kbd "C-h") 'delete-backward-char) (keyboard-translate ?\C-h ?\C-?) @@ -44,10 +50,7 @@ (advice-add 'yank-pop :after '+yank@indent)) (setup (:require +init) - (:bind "C-c s" (lambda () - (interactive) - (+init-sort) - (save-buffer))) + (:bind "C-c s" #'+init-sort-then-save) (:hook #'+init-add-setup-to-imenu)) (setup (:require +key) @@ -68,8 +71,7 @@ (:also-load +pulse) (:option pulse-flag nil pulse-delay 0.5 - pulse-iterations 1 - (append +pulse-location-commands) 'lui-track-jump-to-indicator) + pulse-iterations 1) (+pulse-location-mode +1)) (setup (:require reading) @@ -93,8 +95,8 @@ (setup browse-url (:require +browse-url) (:option browse-url-secondary-browser-function (if (executable-find "firefox") - 'browse-url-firefox - 'browse-url-default-browser) + #'browse-url-firefox + #'browse-url-default-browser) browse-url-new-window-flag nil browse-url-firefox-arguments '("--new-tab") browse-url-firefox-new-window-is-tab t) @@ -105,15 +107,15 @@ "." (or "jpeg" "jpg" "png") eos) (lambda (&rest args) (apply - (cond ((executable-find "mpv") '+browse-image-with-mpv) - (t 'eww-browse-url)) + (cond ((executable-find "mpv") #'+browse-image-with-mpv) + (t #'eww-browse-url)) args))) (cons (rx ; videos (or "youtube.com" "youtu.be" "yewtu.be" (seq "." (or "mp4" "gif" "mov" "MOV") eos))) (lambda (&rest args) (apply (if (executable-find "mpv") - '+browse-url-with-mpv + #'+browse-url-with-mpv browse-url-secondary-browser-function) args))) (cons (rx ; non-eww-friendly websites @@ -130,7 +132,7 @@ )) browse-url-secondary-browser-function) (cons "." ; everything else - 'eww-browse-url))) + #'eww-browse-url))) ;; Transform URLs before passing to `browse-url' (:option +browse-url-transformations `((,(rx "//" (or "youtube.com" "youtu.be")) @@ -163,7 +165,8 @@ custom-raised-buttons nil custom-unlispify-tag-names nil custom-variable-default-form 'lisp - +custom-variable-allowlist '(safe-local-variable-values)) + +custom-variable-allowlist '(safe-local-variable-values + warning-suppress-types)) (when (file-exists-p custom-file) (+custom-load-ignoring-most-customizations t)) (advice-add #'custom-buffer-create-internal :after #'+cus-edit-expand-widgets) @@ -183,10 +186,10 @@ dired-listing-switches "-Al" ls-lisp-dirs-first t dired-ls-F-marks-symlinks t - dired-no-confirm '(byte-compile - chgrp chmod chown copy - hardlink load move - shell touch symlink) + dired-no-confirm '(byte-compile load + chgrp chmod chown + copy move hardlink symlink + shell touch) dired-dwim-target t) (:bind "" #'dired-up-directory "TAB" #'dired-subtree-cycle @@ -205,7 +208,7 @@ (:option dired-listing-switches (concat dired-listing-switches " -F"))))) (with-eval-after-load 'frowny - (add-to-list 'frowny-inhibit-modes 'dired-mode))) + (add-to-list 'frowny-inhibit-modes #'dired-mode))) (setup eldoc (:hook-into elisp-mode @@ -333,7 +336,7 @@ (setup scratch (:require +scratch) - (:option initial-major-mode 'lisp-interaction-mode + (:option initial-major-mode #'lisp-interaction-mode initial-scratch-message ";; ABANDON ALL HOPE YE WHO ENTER HERE\n\n") (add-hook 'kill-buffer-query-functions #'+scratch-immortal)) @@ -344,7 +347,7 @@ (setup (:straight 0x0) (:option 0x0-default-server 'ttm) (with-eval-after-load 'embark - (define-key embark-region-map (kbd "U") '0x0-dwim))) + (define-key embark-region-map (kbd "U") #'0x0-dwim))) (setup (:straight ace-window) (:require +ace-window) @@ -416,7 +419,7 @@ circe-prompt-string (format (format "%%%ds> " (- +circe-left-margin 2)) " ")) - + (:option +circe-server-buffer-action (lambda (buf) (message "Connected to %s" buf)) +circe-network-inhibit-autoconnect _circe-network-inhibit-autoconnect @@ -434,7 +437,7 @@ (advice-add #'circe-command-PART :after #'+circe-kill-buffer) (advice-add #'circe-command-QUIT :after #'+circe-quit@kill-buffer) (advice-add #'circe-command-GQUIT :after #'+circe-gquit@kill-buffer) - + (:with-mode circe-chat-mode (:hook #'enable-circe-color-nicks #'enable-circe-new-day-notifier @@ -454,7 +457,8 @@ (,(+lui-make-formatting-list-rx "_") 1 lui-emphasis-face) (,(+lui-make-formatting-list-rx "/") - 1 lui-emphasis-face))) + 1 lui-emphasis-face)) + (append +pulse-location-commands) 'lui-track-jump-to-indicator) (:hook #'visual-line-mode #'enable-lui-track #'visual-fill-column-mode) @@ -481,67 +485,67 @@ (:also-load +consult) ;; from Consult wiki (:option register-preview-delay 0 - register-preview-function 'consult-register-format - xref-show-xrefs-function 'consult-xref - xref-show-definitions-function 'consult-xref - tab-always-indent 'complete - completion-in-region-function 'consult-completion-in-region) + register-preview-function 'consult-register-format + xref-show-xrefs-function 'consult-xref + xref-show-definitions-function 'consult-xref + tab-always-indent 'complete + completion-in-region-function 'consult-completion-in-region) (advice-add #'register-preview :override #'consult-register-window) (advice-add #'completing-read-multiple :override - #'consult-completing-read-multiple) + #'consult-completing-read-multiple) (dolist (binding '(;; C-c bindings (mode-specific-map) - ("C-c h" . consult-history) - ("C-c m" . consult-mode-command) - ("C-c b" . consult-bookmark) - ("C-c k" . consult-kmacro) - ;; C-x bindings (ctl-x-map) - ("C-x M-:" . consult-complex-command) - ("C-x b" . consult-buffer) - ("C-x 4 b" . consult-buffer-other-window) - ("C-x 5 b" . consult-buffer-other-frame) - ;; Custom M-# bindings for fast register access - ("M-#" . consult-register-load) - ("M-'" . consult-register-store) - ("C-M-#" . consult-register) - ;; Other custom bindings - ("M-y" . consult-yank-pop) - (" a" . consult-apropos) - ;; M-g bindings (goto-map) - ("M-g e" . consult-compile-error) - ("M-g f" . consult-flymake) ; or consult-flycheck - ("M-g g" . consult-goto-line) - ("M-g M-g" . consult-goto-line) - ("M-g o" . consult-outline) ; or consult-org-heading - ("M-g m" . consult-mark) - ("M-g k" . consult-global-mark) - ("M-g i" . consult-imenu) - ("M-g I" . consult-imenu-multi) - ;; M-s bindings (search-map) - ("M-s f" . consult-find) - ("M-s F" . consult-locate) - ("M-s g" . consult-grep) - ("M-s G" . consult-git-grep) - ("M-s r" . consult-ripgrep) - ("M-s l" . consult-line) - ("M-s L" . consult-line-multi) - ("M-s m" . consult-multi-occur) - ("M-s k" . consult-keep-lines) - ("M-s u" . consult-focus-lines) - ;; Isearch integration - ("M-s e" . consult-isearch-history))) + ("C-c h" . consult-history) + ("C-c m" . consult-mode-command) + ("C-c b" . consult-bookmark) + ("C-c k" . consult-kmacro) + ;; C-x bindings (ctl-x-map) + ("C-x M-:" . consult-complex-command) + ("C-x b" . consult-buffer) + ("C-x 4 b" . consult-buffer-other-window) + ("C-x 5 b" . consult-buffer-other-frame) + ;; Custom M-# bindings for fast register access + ("M-#" . consult-register-load) + ("M-'" . consult-register-store) + ("C-M-#" . consult-register) + ;; Other custom bindings + ("M-y" . consult-yank-pop) + (" a" . consult-apropos) + ;; M-g bindings (goto-map) + ("M-g e" . consult-compile-error) + ("M-g f" . consult-flymake) ; or consult-flycheck + ("M-g g" . consult-goto-line) + ("M-g M-g" . consult-goto-line) + ("M-g o" . consult-outline) ; or consult-org-heading + ("M-g m" . consult-mark) + ("M-g k" . consult-global-mark) + ("M-g i" . consult-imenu) + ("M-g I" . consult-imenu-multi) + ;; M-s bindings (search-map) + ("M-s f" . consult-find) + ("M-s F" . consult-locate) + ("M-s g" . consult-grep) + ("M-s G" . consult-git-grep) + ("M-s r" . consult-ripgrep) + ("M-s l" . consult-line) + ("M-s L" . consult-line-multi) + ("M-s m" . consult-multi-occur) + ("M-s k" . consult-keep-lines) + ("M-s u" . consult-focus-lines) + ;; Isearch integration + ("M-s e" . consult-isearch-history))) (define-key +key-mode-map (kbd (car binding)) (cdr binding))) (with-eval-after-load 'isearch-mode (dolist (binding '(("M-e" . consult-isearch-history) - ("M-s e" . consult-isearch-history) - ("M-s l" . consult-line) - ("M-s L" . consult-line-multi))) + ("M-s e" . consult-isearch-history) + ("M-s l" . consult-line) + ("M-s L" . consult-line-multi))) (define-key isearch-mode-map (car binding) (cdr binding)))) (with-eval-after-load 'org-mode (define-key org-mode-map "M-g o" 'consult-org-heading)) (advice-add 'consult-yank-pop :after '+yank@indent) (with-eval-after-load 'consult (:option consult-narrow-key "<" - consult-project-root-function '+consult-project-root) + consult-project-root-function '+consult-project-root) (consult-customize consult-theme :preview-key '(:debounce 0.2 any) @@ -629,8 +633,8 @@ See also `crux-reopen-as-root-mode'." (setup (:straight embark) (:option prefix-help-command 'embark-prefix-help-command) (:+key "C-." #'embark-act - "M-." #'embark-dwim - " B" #'embark-bindings)) + "M-." #'embark-dwim + " B" #'embark-bindings)) (setup (:straight embark-consult) (:load-after consult embark) @@ -708,7 +712,7 @@ See also `crux-reopen-as-root-mode'." (setup (:straight hungry-delete) (:option hungry-delete-chars-to-skip " \t" - hungry-delete-join-reluctantly nil) + hungry-delete-join-reluctantly nil) (:bind-into paredit ;; I define these functions here because they really require both packages ;; to make any sense. So, would I put them in `+hungry-delete' or @@ -717,14 +721,14 @@ See also `crux-reopen-as-root-mode'." (defun acdw/paredit-hungry-delete-backward (arg) (interactive "P") (if (looking-back "[ \t]" 1) - (hungry-delete-backward (or arg 1)) - (paredit-backward-delete arg))) + (hungry-delete-backward (or arg 1)) + (paredit-backward-delete arg))) [remap paredit-forward-delete] (defun acdw/paredit-hungry-delete-forward (arg) (interactive "P") (if (looking-at "[ \t]") - (hungry-delete-forward (or arg 1)) - (paredit-forward-delete arg)))) + (hungry-delete-forward (or arg 1)) + (paredit-forward-delete arg)))) (global-hungry-delete-mode +1)) (setup (:straight isearch-mb) @@ -733,19 +737,19 @@ See also `crux-reopen-as-root-mode'." ;; project's README. (with-eval-after-load 'isearch-mb (dolist (spec '((isearch-mb--with-buffer - ("M-e" . consult-isearch) - ("C-o" . loccur-isearch)) - (isearch-mb--after-exit - ("M-%" . anzu-isearch-query-replace) - ("M-s l" . consult-line)))) + ("M-e" . consult-isearch) + ("C-o" . loccur-isearch)) + (isearch-mb--after-exit + ("M-%" . anzu-isearch-query-replace) + ("M-s l" . consult-line)))) (let ((isearch-mb-list (car spec)) - (isearch-mb-binds (cdr spec))) - (dolist (cell isearch-mb-binds) - (let ((key (car cell)) - (command (cdr cell))) - (when (fboundp command) - (add-to-list isearch-mb-list command) - (define-key isearch-mb-minibuffer-map (kbd key) command))))))) + (isearch-mb-binds (cdr spec))) + (dolist (cell isearch-mb-binds) + (let ((key (car cell)) + (command (cdr cell))) + (when (fboundp command) + (add-to-list isearch-mb-list command) + (define-key isearch-mb-minibuffer-map (kbd key) command))))))) (isearch-mb-mode +1)) (setup (:straight lacarte) @@ -881,11 +885,18 @@ See also `crux-reopen-as-root-mode'." (setup (:straight org-sticky-header) (:hook-into org-mode)) +(setup (:straight package-lint)) + (setup (:straight paredit) (:bind "DEL" #'paredit-backward-delete "C-" #'paredit-backward-kill-word) - (:hook-into emacs-lisp-mode lisp-interaction-mode - lisp-mode scheme-mode) + (dolist (hook '(emacs-lisp-mode-hook + eval-expression-minibuffer-setup-hook + ielm-mode-hook + lisp-interaction-mode-hook + lisp-mode-hook + scheme-mode-hook)) + (add-hook hook #'enable-paredit-mode)) (:also-load eldoc) (eldoc-add-command #'paredit-backward-delete #'paredit-close-round)) @@ -911,13 +922,15 @@ See also `crux-reopen-as-root-mode'." (setup (:straight sicp)) (setup (:straight (simple-modeline - :fork (:repo "duckwork/simple-modeline"))) + :fork (:host github :repo "duckwork/simple-modeline"))) (:also-load +modeline) - (:option simple-modeline-segments '((;; left + (:option simple-modeline-segments `((;; left +modeline-ace-window-display +modeline-modified - +modeline-reading-mode - +modeline-narrowed + ,(+modeline-concat + '(+modeline-reading-mode + +modeline-narrowed) + ",") +modeline-buffer-name +modeline-position +modeline-anzu @@ -968,8 +981,8 @@ See also `crux-reopen-as-root-mode'." (list (propertize " " 'display - `((space - :align-to + `((space + :align-to ,(unless (bound-and-true-p visual-fill-column-mode) 0)))) (funcall topsy-fn)))))) @@ -1023,7 +1036,6 @@ See also `crux-reopen-as-root-mode'." (setup (:straight whitespace-cleanup-mode) (:option whitespace-cleanup-mode-preserve-point t) - ;;(remove-hook 'before-save-hook 'whitespace-cleanup) (global-whitespace-cleanup-mode +1)) (setup (:straight zoom-frm)) @@ -1034,3 +1046,8 @@ See also `crux-reopen-as-root-mode'." (interactive "P") (call-interactively (if prefix #'zzz-up-to-char #'zzz-to-char))))) + +(setup (:straight (actually-selected-window + :host github + :repo "duckwork/actually-selected-window.el")) + (actually-selected-window-mode +1)) -- cgit 1.4.1-21-gabe81