;;; init.el -*- lexical-binding: t no-byte-compile: t -*- ;; copied from centaur emacs (setq gc-cons-threshold most-positive-fixnum) (setq-default mode-line-format nil) ;; only for startup (setq auto-mode-case-fold nil) (setq vc-follow-symlinks t) ;; always follow symlink (unless (or (daemonp) noninteractive init-file-debug) ;; Prevent flashing of messages at startup (when (display-graphic-p) (setq-default inhibit-redisplay t inhibit-message t) (defun reset-inhibit-vars () (setq-default inhibit-redisplay nil inhibit-message nil) (redraw-frame)) (add-hook 'window-setup-hook #'reset-inhibit-vars) (define-advice startup--load-user-init-file (:after (&rest _) reset-inhibit-vars) (and init-file-had-error (reset-inhibit-vars)))) ;; Suppress file handlers operations at startup ;; `file-name-handler-alist' is consulted on each call to `require' and `load' (let ((old-value file-name-handler-alist)) (setq file-name-handler-alist nil) (set-default-toplevel-value 'file-name-handler-alist file-name-handler-alist) (add-hook 'emacs-startup-hook (lambda () "Recover file name handlers." (setq file-name-handler-alist (delete-dups (append file-name-handler-alist old-value)))) 101))) ;; Load path ;; Optimize: Force "lisp"" and "site-lisp" at the head to reduce the startup time. (defun update-load-path (&rest _) "Update `load-path'." (dolist (dir '("site-lisp" "lisp")) (push (expand-file-name dir user-emacs-directory) load-path))) (defun add-subdirs-to-load-path (&rest _) "Add subdirectories to `load-path'. Don't put large files in `site-lisp' directory, e.g. EAF. Otherwise the startup will be very slow. " (let ((default-directory (expand-file-name "site-lisp" user-emacs-directory))) (normal-top-level-add-subdirs-to-load-path))) (advice-add #'package-initialize :after #'update-load-path) (advice-add #'package-initialize :after #'add-subdirs-to-load-path) (update-load-path) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'init-package) (require 'init-base) (require 'init-hydra) (require 'init-evil) (require 'init-general) (require 'init-ui) (require 'init-edit) (require 'init-vertico) (require 'init-yasnippet) (require 'init-bookmark) (require 'init-dashboard) (require 'init-dired) (require 'init-highlight) (require 'init-ibuffer) (require 'init-persp) ;; (require 'init-window) ;; will be removed (require 'init-treemacs) ;; ;;;; shell ;;(require 'init-eshell) ;; ;;;; markdown ;;(require 'init-markdown) ;;(require 'init-org) ;;(require 'init-reader) ;; ;;;; ;;(require 'init-dict) ;; ;;;; docker ;;(when ON-LINUX ;; (require 'init-docker)) ;;;; utils ;;(require 'init-utils) ;; ;; (require 'init-dict) ;; will be removed ;;(require 'init-vcs) ;;(require 'init-flycheck) ;;(require 'init-eglot) ;;(require 'init-ctags) ;;(require 'init-prog) ;; ;;(require 'init-elisp) ;;(require 'init-c) ;;(require 'init-rust) ;;(require 'init-python) ;;(require 'init-ruby) ;;(require 'init-shell) ;; ;;(require 'init-latex) ;;(require 'init-verilog) ;; ;;(require 'init-debug) ;; ;;(require 'init-extra) (require 'init-chatgpt) ;; ;;(require 'init-copilot) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init.el ends here