2024-09-04 11:13:14 +09:00

121 lines
3.3 KiB
EmacsLisp

;;; 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-persp)
(require 'init-highlight)
(require 'init-ibuffer)
;;(require 'init-window)
(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)
;;
;;;; Programming
;;(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