.emacs.d

the most bloated Emacs config on this planet
git clone https://git.trogloxene.org/.emacs.d.git
Log | Files | Refs

commit 0c86e72b88066cdd2b54ef47bb1fb2f93ad9ad84
parent 73432e5149e99f5490d613657b7070f281d113c5
Author: andsy10 <andsy1016@gmail.com>
Date:   Mon, 28 Sep 2026 00:58:42 +0800

Cleanup configuration

Diffstat:
Mlisp/init-base.el | 5+++--
Mlisp/init-kbd-func.el | 19+++++++++++++++----
Mlisp/init-kbd.el | 13+++++++++++--
Mlisp/init-org.el | 33++++++++++++++++++---------------
Mlisp/init-package.el | 24+++++++++++++-----------
Mlisp/init-prog.el | 26+++-----------------------
Mlisp/init-terminal.el | 8++++----
Mlisp/init-ui.el | 3+--
Mlisp/init-window.el | 1+
9 files changed, 69 insertions(+), 63 deletions(-)

diff --git a/lisp/init-base.el b/lisp/init-base.el @@ -117,7 +117,8 @@ ("Scratch" (or (name . "^*scratch"))) ("Text" (or - (and (mode . org-mode) (not (name . "^\\*gptel"))) + (predicate (lambda () (and (hsys-org-mode-p) + (not (memq 'gptel-mode local-minor-modes))))) (mode . markdown-mode) (mode . rst-mode) (filename . ".\\.md") @@ -197,7 +198,7 @@ ("AI" (or (name . "^\\*OpenCode") (name . "\\*opencode-serve\\*") - (name . "^\\*gptel") + (predicate (lambda () (memq 'gptel-mode local-minor-modes))) (name . "^\\*pilish"))) ("Calc" (or (mode . calc-mode) diff --git a/lisp/init-kbd-func.el b/lisp/init-kbd-func.el @@ -46,10 +46,6 @@ there's a region, all lines that region covers will be duplicated." (defun enable-truncate-lines () (toggle-truncate-lines 1)) -(defun other-window-backward () - (interactive) - (other-window -1)) - (defun query-replace-case-sensitive () "Case-sensitive `query-replace'." (interactive) @@ -64,6 +60,21 @@ there's a region, all lines that region covers will be duplicated." (progn (kill-new time) (message "Save `%s' to kill ring." time)) (message time)))) +;; from Purcell's Emacs configuration +(defun my-headerise-elisp () + "Add minimal header and footer to an elisp buffer in order to placate flycheck." + (interactive) + (let ((fname (if (buffer-file-name) + (file-name-nondirectory (buffer-file-name)) + (error "This buffer is not visiting a file")))) + (save-excursion + (goto-char (point-min)) + (insert ";;; " fname " --- Insert description here -*- lexical-binding: t -*-\n" + ";;; Commentary:\n" + ";;; Code:\n\n") + (goto-char (point-max)) + (insert ";;; " fname " ends here\n")))) + (defun my-straight-packages-count () "Count how many straight.el package are currently installed." (interactive) diff --git a/lisp/init-kbd.el b/lisp/init-kbd.el @@ -37,8 +37,8 @@ "M-N" #'drag-stuff-down "M-F" #'drag-stuff-right "M-B" #'drag-stuff-left - "C-M-SPC" #'er/mark-symbol - "M-@" #'er/mark-word + [remap mark-sexp] #'er/mark-symbol + [remap mark-word] #'er/mark-word "C-c e" #'er/expand-region "M-z" #'avy-zap-to-char-dwim "M-Z" #'avy-zap-up-to-char-dwim @@ -133,6 +133,9 @@ "v" #'my-elfeed-search-preview-other-window "TAB" #'my-elfeed-search-preview-other-window) +;; emacs-lisp-mode +(general-def emacs-lisp-mode-map "C-c C-z" #'my-switch-to-ielm) + ;; embark (general-def embark-file-map "d" #'consult-directory-externally @@ -200,10 +203,16 @@ "h A" #'my-persp-set-marked-ibuffers "h a" #'my-persp-add-marked-ibuffers) +;; ielm +(general-def ielm-map "C-c C-z" #'my-repl-switch-back) + ;; info (general-def Info-mode-map "M-n" #'forward-paragraph) +;; lisp-interaction-mode +(general-def lisp-interaction-mode-map "C-c C-z" #'my-switch-to-ielm) + ;; magit (general-def (magit-mode-map tokei-mode-map) "C-<tab>" #'my-magit-toggle-parent-section) diff --git a/lisp/init-org.el b/lisp/init-org.el @@ -18,12 +18,13 @@ (*is-linux* "~/org/my-org-note") (*is-android* "~/storage/shared/my-org-note"))) - (defvar my-blog-directory + (defcustom my-blog-directory (cond - (*is-windows* "h:/emacs/blog/posts") + (*is-windows* "h:/emacs/blog/posts/") (*is-mac* "~/org/blog/posts/") (*is-linux* "~/org/blog/posts/") - (*is-android* "~/org/blog/posts/"))) + (*is-android* "~/org/blog/posts/")) + "My blog directory") :config (defun my-org-tab-complete () @@ -97,6 +98,13 @@ :init (setq org-startup-truncated nil)) +;; consult-denote +(use-package consult-denote + :hook + (after-init . consult-denote-mode) + :init + (setq consult-denote-buffer-sources nil)) + ;; denote (use-package denote :hook @@ -123,6 +131,7 @@ (fetcher (lambda () (xref-matches-in-files id files)))) (consult-xref fetcher nil))) + :init (setq denote-directory org-directory denote-org-store-link-to-heading 'context denote-date-prompt-use-org-read-date t @@ -196,6 +205,7 @@ (advice-add 'calendar-redraw :after #'denote-journal-calendar-mark-dates) + :init (setq denote-journal-directory (expand-file-name "journal" denote-directory)) (setq denote-journal-keyword nil) (setq denote-journal-signature "journal") @@ -204,22 +214,15 @@ ;; denote-explore (use-package denote-explore :commands my-denote-explore-isolate-files-dired + :init + (setq denote-explore-isolated-ignore-keywords '("daily")) :config (defun my-denote-explore-isolate-files-dired () "Identify Denote files without (back)links." (interactive) - (let ((denote-excluded-directories-regexp - (file-name-nondirectory (directory-file-name denote-journal-directory)))) - (dired (cons "notes" - (mapcar (lambda (file) (car file)) - (denote-explore--idenitfy-isolated))))))) - -;; consult-denote -(use-package consult-denote - :hook - (after-init . consult-denote-mode) - :init - (setq consult-denote-buffer-sources nil)) + (dired (cons "notes" + (mapcar (lambda (file) (car file)) + (denote-explore--idenitfy-isolated)))))) ;; org-download (use-package org-download diff --git a/lisp/init-package.el b/lisp/init-package.el @@ -118,7 +118,8 @@ With a prefix ARG create a new *scratch* buffer." (interactive) (let ((buffers (ibuffer-get-marked-buffers))) (dolist (buf buffers) - (persp-remove-buffer buf)))) + (persp-remove-buffer buf))) + (ibuffer-update nil t)) (defun my-persp-add-marked-ibuffers (persp-name) "Add marked buffers to perspective." @@ -140,7 +141,8 @@ With a prefix ARG create a new *scratch* buffer." (let ((buffers (ibuffer-get-marked-buffers))) (persp-switch persp-name) (dolist (buf buffers) - (persp-set-buffer buf)))) + (persp-set-buffer buf))) + (ibuffer-update nil t)) (setq persp-switch-to-buffer-behavior 'switch persp-sort 'oldest) @@ -184,7 +186,7 @@ With a prefix ARG create a new *scratch* buffer." ;; vc (use-package vc :straight nil - :autoload vc-create-repo + :commands vc-create-repo :config (defun my-vc-annotate-diff-current-revision () "Show the diff of the revision displayed in this vc-annotate buffer @@ -360,14 +362,14 @@ against its previous revision." "Append metadata to the entry at point." (interactive) (pass--with-closest-entry - entry - (call-interactively - (lambda (field value) - (interactive - (let* ((f (completing-read "Field: " my-pass-meta-fields)) - (v (read-string (format "%s: " f)))) - (list f v))) - (my-password-store-append-field entry field value))))) + entry + (call-interactively + (lambda (field value) + (interactive + (let* ((f (completing-read "Field: " my-pass-meta-fields)) + (v (read-string (format "%s: " f)))) + (list f v))) + (my-password-store-append-field entry field value))))) (defun my-pass-copy-email () "Copy email of entry at point to kill ring." diff --git a/lisp/init-prog.el b/lisp/init-prog.el @@ -55,11 +55,7 @@ (interactive) (if my-repl-original-buffer (funcall my-repl-switch-function my-repl-original-buffer) - (error "No original buffer"))) - - :init - (general-def emacs-lisp-mode-map "C-c C-z" #'my-switch-to-ielm) - (general-def ielm-map "C-c C-z" #'my-repl-switch-back)) + (error "No original buffer")))) ;; hideshow (use-package hideshow @@ -84,27 +80,11 @@ (setq eglot-send-changes-idle-time 0.25)) ;; syntax checking -(use-package flycheck - :init - ;; from Purcell's Emacs configuration - (defun my-headerise-elisp () - "Add minimal header and footer to an elisp buffer in order to placate flycheck." - (interactive) - (let ((fname (if (buffer-file-name) - (file-name-nondirectory (buffer-file-name)) - (error "This buffer is not visiting a file")))) - (save-excursion - (goto-char (point-min)) - (insert ";;; " fname " --- Insert description here -*- lexical-binding: t -*-\n" - ";;; Commentary:\n" - ";;; Code:\n\n") - (goto-char (point-max)) - (insert ";;; " fname " ends here\n"))))) +(use-package flycheck) (use-package flycheck-guile :hook - (scheme-mode . (lambda () - (require 'flycheck-guile)))) + (scheme-mode . (lambda () (require 'flycheck-guile)))) (use-package consult-flycheck) diff --git a/lisp/init-terminal.el b/lisp/init-terminal.el @@ -38,13 +38,13 @@ (setq ring-bell-function 'ignore) (cond - (*is-windows* + ((or (eq system-type 'ms-dos) (eq system-type 'windows-nt)) (add-to-list 'exec-path (expand-file-name "H/appppppppppp/scoop/apps/")) (setenv "PATH" (concat (expand-file-name "H/appppppppppp/scoop/apps/") ";" (getenv "PATH")))) - (*is-mac* + ((eq system-type 'darwin) (add-to-list 'exec-path (expand-file-name "/opt/homebrew/bin/")) (setenv "PATH" (concat (expand-file-name "/opt/homebrew/bin/") ":" (getenv "PATH")))) - (*is-linux* + ((eq system-type 'gnu/linux) (add-to-list 'exec-path (expand-file-name "~/.guix-home/profile/bin/")) (setenv "PATH" (concat (expand-file-name "~/.guix-home/profile/bin/") ":" (getenv "PATH"))))) @@ -255,7 +255,7 @@ there's a region, all lines that region covers will be duplicated." (skip-syntax-backward "w")))) ;; scratch buffer -(if *is-mac* +(if (eq system-type 'darwin) (keymap-global-set "C-c <f12>" #'my-scratch-buffer) (keymap-global-set "C-c <delete>" #'my-scratch-buffer) (keymap-global-set "C-c <deletechar>" #'my-scratch-buffer)) diff --git a/lisp/init-ui.el b/lisp/init-ui.el @@ -128,8 +128,7 @@ from `readable-foreground-color'." (use-package olivetti :delight :hook - ((org-mode markdown-mode outline-mode kotl-mode rst-mode) - . olivetti-mode) + (text-mode . olivetti-mode) (olivetti-mode . (lambda () (display-line-numbers-mode -1))) :init (setq olivetti-body-width 85)) diff --git a/lisp/init-window.el b/lisp/init-window.el @@ -40,6 +40,7 @@ "\\*Ibuffer\\*" "^\\*Finder-" "Buffers\\*$" + "^\\*ielm" "^\\*Geiser" "^\\*pilish-input" "^\\*sly"