commit 0c86e72b88066cdd2b54ef47bb1fb2f93ad9ad84
parent 73432e5149e99f5490d613657b7070f281d113c5
Author: andsy10 <andsy1016@gmail.com>
Date: Mon, 28 Sep 2026 00:58:42 +0800
Cleanup configuration
Diffstat:
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"