.emacs.d

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

commit 65ae87180fbca48810d8fd401cf374410a2a87d9
parent 53a28cbb27015b983f8cd4a1b3335737d5390052
Author: andsy10 <andsy1016@gmail.com>
Date:   Fri,  7 Aug 2026 16:19:42 +0800

Update keybindings and clean up config

Diffstat:
Mlisp/init-base.el | 6++----
Mlisp/init-completion.el | 33++++++++++++---------------------
Mlisp/init-edit.el | 16++++++----------
Mlisp/init-elpa.el | 4+---
Mlisp/init-kbd-func.el | 14+++++++-------
Mlisp/init-kbd.el | 12+++++++-----
Mlisp/init-org.el | 15+++------------
Mlisp/init-package.el | 23+++++++++++------------
Mlisp/init-prog.el | 3+--
Mlisp/init-startup.el | 6+-----
Mlisp/init-terminal.el | 28----------------------------
Mlisp/init-ui.el | 2+-
Mlisp/init-window.el | 9+--------
13 files changed, 53 insertions(+), 118 deletions(-)

diff --git a/lisp/init-base.el b/lisp/init-base.el @@ -83,8 +83,7 @@ (unless *is-android* (use-package async :hook - (after-init . dired-async-mode) - (after-init . async-bytecomp-package-mode))) + (after-init . dired-async-mode))) ;; autorevert buffer (use-package autorevert @@ -221,8 +220,7 @@ (ibuffer-do-sort-by-alphabetic)))) (setq ibuffer-show-empty-filter-groups nil - ibuffer-use-other-window t - ibuffer-default-sorting-mode 'filename)) + ibuffer-use-other-window t)) (use-package simple :straight nil diff --git a/lisp/init-completion.el b/lisp/init-completion.el @@ -4,6 +4,12 @@ ;;; Code: +(use-package emacs + :custom + (tab-always-indent 'complete) + (text-mode-ispell-word-completion nil) + (read-extended-command-predicate #'command-completion-default-include-p)) + ;; minibuffer completion (use-package vertico :hook @@ -36,8 +42,8 @@ (setq consult-locate-args "plocate --basename --ignore-case"))) ;; help - (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help) (setq consult-narrow-key "<") + (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help) ;; xref (setq xref-show-definitions-function #'consult-xref) @@ -132,7 +138,8 @@ targets." (corfu-quit consult-completion-in-region) :bind (:map corfu-map - ("M-d" . corfu-popupinfo-documentation)) + ("M-d" . corfu-popupinfo-documentation) + ("RET" . nil)) :custom (corfu-auto t) (corfu-auto-prefix 2) @@ -155,12 +162,9 @@ targets." ;;Quit completion before saving (add-hook 'before-save-hook #'corfu-quit) (add-hook 'eshell-mode-hook - (lambda () - (setq-local corfu-auto nil) - (local-set-key (kbd "TAB") #'completion-at-point))) - :bind - (:map corfu-map - ("RET" . nil))) + (lambda () + (setq-local corfu-auto nil) + (local-set-key (kbd "TAB") #'completion-at-point)))) (if (not (and (display-graphic-p) (>= emacs-major-version 31))) @@ -168,19 +172,6 @@ targets." :hook (after-init . corfu-terminal-mode))) -(use-package emacs - :custom - (tab-always-indent 'complete) - - ;; Emacs 30 and newer: Disable Ispell completion function. - ;; Try `cape-dict' as an alternative. - (text-mode-ispell-word-completion nil) - - ;; Hide commands in M-x which do not apply to the current mode. Corfu - ;; commands are hidden, since they are not used via M-x. This setting is - ;; useful beyond Corfu. - (read-extended-command-predicate #'command-completion-default-include-p)) - ;; cape (use-package cape :commands (cape-file cape-elisp-block cape-keyword) diff --git a/lisp/init-edit.el b/lisp/init-edit.el @@ -48,8 +48,7 @@ ;; better undo/redo (use-package undo-fu :config - (setq undo-in-region t - undo-fu-allow-undo-in-region t)) + (setq undo-fu-allow-undo-in-region t)) ;; save undo history across sessions (use-package undo-fu-session @@ -59,9 +58,9 @@ ;; undo tree (use-package vundo :init - (setq undo-limit 800000 - undo-strong-limit 1200000 - undo-outer-limit 12000000)) + (setq undo-limit 67108864 + undo-strong-limit 100663296 + undo-outer-limit 1006632960)) ;; expand-region (use-package expand-region @@ -77,10 +76,7 @@ (after-init . ace-pinyin-global-mode)) ;; avy-zap -(use-package avy-zap - :bind - (("M-z" . avy-zap-to-char-dwim) - ("M-Z" . avy-zap-up-to-char-dwim))) +(use-package avy-zap) ;; modal editing (use-package god-mode @@ -99,7 +95,7 @@ (let ((desired (if (and (bound-and-true-p god-local-mode) display-line-numbers-mode) 'relative display-line-numbers-type))) - (unless (or (eq display-line-numbers desired) (bound-and-true-p olivetti-mode)) + (unless (or (eq display-line-numbers desired) (not display-line-numbers-mode)) (setq display-line-numbers desired)))) (add-hook 'post-command-hook #'my-sync-line-numbers-with-god-mode)) diff --git a/lisp/init-elpa.el b/lisp/init-elpa.el @@ -22,8 +22,6 @@ (eval-print-last-sexp))) (load bootstrap-file nil 'nomessage)) -(setq straight-repository-branch t) - ;; el-patch (use-package el-patch :straight t) @@ -35,7 +33,7 @@ ;; configure use-package (setq use-package-always-defer t use-package-expand-minimally t - use-package-verbose t + use-package-verbose nil straight-use-package-version t straight-use-package-by-default t) diff --git a/lisp/init-kbd-func.el b/lisp/init-kbd-func.el @@ -5,9 +5,9 @@ ;;; Code: (defun open-init-file() - "Open user's init.el file in ~/.emacs.d ." + "Open user's init.el file." (interactive) - (find-file "~/.emacs.d/init.el")) + (find-file user-init-file)) (when *is-windows* (defun restart-emacs () @@ -26,6 +26,11 @@ (let ((case-fold-search nil)) (call-interactively #'query-replace))) +(defun my-show-utc-time () + "Display current UTC time in echo area." + (interactive) + (message (format-time-string "%Y-%m-%d %H:%M UTC" nil t))) + (defun my-jinx-smart-toggle () "Toggle jinx-mode smartly. Disable jinx-mode if it's enable and global-jinx-mode is disable , @@ -286,11 +291,6 @@ value of the selected COLOR." :history '(:input consult-colors-history)))) (insert color)) -(defun fix-theme-colors () - "Fix invalid color name in theme files." - (interactive) - (load-file (expand-file-name "~/.emacs.d/lisp/fix-theme-colors.el"))) - (when *is-linux* (defun reboot () "Execute loginctl reboot command." diff --git a/lisp/init-kbd.el b/lisp/init-kbd.el @@ -72,8 +72,10 @@ :prefix "C-x p" "b" #'consult-project-buffer "t" #'ghostel-project - "r" #'my-consult-git-grep-project - "R" #'project-query-replace-regexp + "g" #'my-consult-git-grep-project + "r" #'project-find-regexp + "R" #'project-or-external-find-regexp + "q" #'project-query-replace-regexp "v" #'magit-project-status "V" #'project-vc-dir "i" #'project-ibuffer @@ -82,11 +84,9 @@ ;; v for version control (general-def :prefix "C-x v" - "=" #'magit-diff-buffer-file "c" #'magit-clone "i" #'magit-init - "l" #'magit-log-buffer-file - "h" #'magit-log-buffer-file) + "l" #'magit-log-buffer-file) ;; t for modes toggle (general-def @@ -346,6 +346,8 @@ "C-c c" #'hydra-multiple-cursors/body "C-S-<mouse-1>" #'mc/add-cursor-on-click "C-x :" #'comment-kill + "M-z" #'avy-zap-to-char-dwim + "M-Z" #'avy-zap-up-to-char-dwim ;; undo "C-/" #'undo-fu-only-undo diff --git a/lisp/init-org.el b/lisp/init-org.el @@ -8,7 +8,6 @@ :hook (org-mode . org-indent-mode) (org-mode . visual-line-mode) - (org-mode . my-org-electric-pair-fix) (org-mode . electric-pair-local-mode) :init @@ -34,15 +33,6 @@ (if *is-windows* (add-hook 'org-mode-hook 'font-lock-update)) - (unless *is-windows* - (add-hook 'org-mode 'jinx-mode)) - - (defun my-org-electric-pair-fix () - (setq-local electric-pair-inhibit-predicate - (lambda (char) - (or (eq char ?<) - (electric-pair-default-inhibit char))))) - ;; show inline images (setq org-startup-with-inline-images 'inlineimages) @@ -99,8 +89,9 @@ denote-signature-history '("note" "project" "fun" "wisdom" "article" "data" "metanote" "agenda" "journal" "archive") denote-known-keywords - '("emacs") - denote-title-history nil)) + '("emacs")) + (with-eval-after-load 'savehist + (add-to-list 'savehist-ignored-variables 'denote-title-history))) ;; denote-org (use-package denote-org) diff --git a/lisp/init-package.el b/lisp/init-package.el @@ -61,16 +61,15 @@ _a_ : all dwim :config (setq jinx-languages "en_US") (add-to-list 'jinx-exclude-regexps '(t "\\cc")) - (with-eval-after-load 'jinx - (dolist (range '((#x4E00 . #x9FFF) - (#x3400 . #x4DBF) - (#x3000 . #x303F) - (#xFF00 . #xFFEF) - (#x20000 . #x2A6DF))) - (let ((start (car range)) - (end (cdr range))) - (dotimes (i (- end start)) - (modify-syntax-entry (+ start i) "_" jinx--syntax-table)))))) + (dolist (range '((#x4E00 . #x9FFF) + (#x3400 . #x4DBF) + (#x3000 . #x303F) + (#xFF00 . #xFFEF) + (#x20000 . #x2A6DF))) + (let ((start (car range)) + (end (cdr range))) + (dotimes (i (- end start)) + (modify-syntax-entry (+ start i) "_" jinx--syntax-table))))) (use-package consult-jinx :straight @@ -143,8 +142,8 @@ _a_ : all dwim (seq-uniq (append project-switch-commands '((magit-project-status "Magit" ?v) (ghostel-project "Ghostel" ?t) - (project-query-replace-regexp "Query Replace" ?R) - (consult-grep "Grep" ?r) + (project-query-replace-regexp "Query Replace" ?q) + (consult-grep "Grep" ?g) (consult-project-buffer "Buffers" ?b) (project-ibuffer "Ibuffer" ?i) (pi-coding-agent "Pi" ?a)))))) diff --git a/lisp/init-prog.el b/lisp/init-prog.el @@ -41,8 +41,7 @@ ;; scheme (use-package geiser :config - (with-eval-after-load 'geiser - (setq geiser-default-implementation 'guile))) + (setq geiser-default-implementation 'guile)) (use-package geiser-guile) diff --git a/lisp/init-startup.el b/lisp/init-startup.el @@ -14,7 +14,6 @@ (set-file-name-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-next-selection-coding-system 'utf-8) -(set-selection-coding-system 'utf-8) (set-terminal-coding-system 'utf-8) (setq locale-coding-system 'utf-8) (setq system-time-locale "C") @@ -23,7 +22,6 @@ (cond (*is-mac* (set-frame-parameter nil 'fullscreen 'fullscreen) - (toggle-frame-fullscreen) (global-unset-key (kbd "<f12>")) (global-set-key (kbd "<f12>") #'toggle-frame-fullscreen)) (*is-windows* @@ -41,9 +39,6 @@ (setq auto-save-file-name-transforms `((".*" ,(expand-file-name "auto-save-list/" user-emacs-directory) t))) -;; horizontal scroll -(put 'scroll-left 'disabled nil) - ;; disable lockfiles (setq create-lockfiles nil) @@ -96,6 +91,7 @@ ;; disabled commands (put 'narrow-to-region 'disabled nil) +(put 'scroll-left 'disabled nil) ;; modifier keys on mac (when *is-mac* diff --git a/lisp/init-terminal.el b/lisp/init-terminal.el @@ -15,7 +15,6 @@ (set-file-name-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-next-selection-coding-system 'utf-8) -(set-selection-coding-system 'utf-8) (set-terminal-coding-system 'utf-8) (setq locale-coding-system 'utf-8) (setq system-time-locale "C") @@ -48,12 +47,6 @@ (add-to-list 'exec-path (expand-file-name "~/.guix-home/profile/bin/")) (setenv "PATH" (concat (expand-file-name "~/.guix-home/profile/bin/") ":" (getenv "PATH"))))) -(global-auto-revert-mode 1) - -(when (display-graphic-p) - (recentf-mode) - (setq recentf-max-saved-items 30)) - (delete-selection-mode) (setq initial-scratch-message @@ -119,22 +112,6 @@ :hook (after-init . global-auto-revert-mode)) -(use-package savehist - :init - (setq enable-recursive-minibuffers t - history-length 50 - savehist-additional-variables '(mark-ring - global-mark-ring - search-ring - regexp-search-ring - extended-command-history) - savehist-autosave-interval 300) - (savehist-mode)) - -(use-package saveplace - :init - (save-place-mode)) - (use-package icomplete :init (fido-mode) @@ -298,14 +275,9 @@ there's a region, all lines that region covers will be duplicated." (keymap-global-set "M-l" #'downcase-dwim) (keymap-global-set "C-," #'crux-duplicate-current-line-or-region) (keymap-global-set "M-y" #'yank-from-kill-ring) -(keymap-global-set "M-z" #'avy-zap-to-char-dwim) -(keymap-global-set "M-Z" #'avy-zap-up-to-char-dwim) -(keymap-global-set "M-P" #'drag-stuff-up) -(keymap-global-set "M-N" #'drag-stuff-down) (keymap-global-set "C-M-@" #'er/mark-symbol) (keymap-global-set "M-@" #'er/mark-word) (keymap-global-set "C-M-h" #'backward-kill-sexp) -(keymap-global-set "C-c e" #'er/expand-region) (keymap-global-set "C-c k" #'comment-line) ;; undo diff --git a/lisp/init-ui.el b/lisp/init-ui.el @@ -5,7 +5,7 @@ ;;; Code: ;; custom-theme-load-path -(add-to-list 'custom-theme-load-path "~/.emacs.d/lisp/") +(add-to-list 'custom-theme-load-path (concat user-emacs-directory "lisp/")) ;; trust all themes (setq custom-safe-themes t) diff --git a/lisp/init-window.el b/lisp/init-window.el @@ -41,12 +41,8 @@ "^\\*Finder-" "Buffers\\*$" "^\\*Geiser" - "\\*gptel-Kimi-Code\\*" - "\\*gptel-agent:.*\\*" - "^\\*OpenCode Sessions" "^\\*pi-coding-agent-input" "^\\*sly" - "^magit" "\\*discomfort\\*" bookmark-bmenu-mode lsp-bridge-ref-mode @@ -54,14 +50,13 @@ compilation-mode help-mode helpful-mode tabulated-list-mode - Buffer-menu-mode + buffer-menu-mode occur-mode gnus-article-mode devdocs-mode grep-mode occur-mode rg-mode deadgrep-mode ag-mode pt-mode ivy-occur-mode ivy-occur-grep-mode process-menu-mode list-environment-mode cargo-process-mode youdao-dictionary-mode osx-dictionary-mode fanyi-mode - gptel-mode ibuffer-mode "^\\*eshell.*\\*.*$" eshell-mode @@ -75,13 +70,11 @@ "\\*ELP Profiling Restuls\\*" profiler-report-mode "\\*Flycheck errors\\*$" " \\*Flycheck checker\\*$" "\\*Paradox Report\\*$" "\\*package update results\\*$" "\\*Package-Lint\\*$" - "\\*[Wo]*Man.*\\*$" "\\*ert\\*$" overseer-buffer-mode "\\*gud-debug\\*$" "\\*lsp-help\\*$" "\\*lsp session\\*$" "\\*quickrun\\*$" "\\*tldr\\*$" - "\\*vc-.*\\*$" "\\*eldoc\\*" ;; "^\\*elfeed-entry\\*$" "^\\*macro expansion\\**"