From f061fe925f61b7a678263ec2ccf143bcc6a48891 Mon Sep 17 00:00:00 2001 From: Liu Miao <liumiaogemini@mail.ustc.edu.cn> Date: Tue, 15 Jun 2021 20:25:33 +0800 Subject: [PATCH] better init.el --- init.el | 187 +++++++++++++++++++++++++++--------------------- lisp/configs.el | 12 ++++ 2 files changed, 116 insertions(+), 83 deletions(-) diff --git a/init.el b/init.el index 7e1053d..8ccef14 100644 --- a/init.el +++ b/init.el @@ -10,91 +10,112 @@ ;; (setq debug-on-error t) -(let ( - ;; adjust garbage collection at startup - (gc-cons-threshold (* 128 1024 1024)) - (gc-cons-percentage 0.6)) - - ;; Use a hook so the messages doesn't get clobbered by other messages. - (add-hook 'emacs-startup-hook - (lambda () - (message "Emacs ready in %s with %d garbage collections." - (format "%.2f seconds" - (float-time - (time-subtract after-init-time before-init-time))) - gcs-done))) - - ;; add `lisp' to `load-path'. - (add-to-list 'load-path - (expand-file-name "lisp" user-emacs-directory)) - - ;; load user configs. - (require 'configs) - (or (file-exists-p user/userconfig-file) - (copy-file (concat user-emacs-directory "lisp/templates/userconfig.template") - user/userconfig-file) - ) - (load user/userconfig-file) - - ;; load `custom-file' - (setq custom-file user/custom-file) - (when (file-exists-p custom-file) - (load custom-file)) - - (require 'cl-lib) - ;; Language and coding - (set-language-environment "utf-8") - ;; (set-keyboard-coding-system 'utf-8) - ;; (set-default-coding-systems 'utf-8) +;; adjust garbage collection at startup +(defvar better-gc-cons-threshold (* 128 1024 1024)) +(add-hook 'emacs-startup-hook + (lambda () + (setq gc-cons-threshold better-gc-cons-threshold) + (setq gc-cons-percentage 0.6))) + +;; Use a hook so the messages doesn't get clobbered by other messages. +(add-hook 'emacs-startup-hook + (lambda () + (message "Emacs ready in %s with %d garbage collections." + (format "%.2f seconds" + (float-time + (time-subtract after-init-time before-init-time))) + gcs-done))) + +;; AutoGC +(add-hook 'emacs-startup-hook + (lambda () + (if (boundp 'after-focus-change-function) + (add-function :after after-focus-change-function + (lambda () + (unless (frame-focus-state) + (garbage-collect)))) + (add-hook 'after-focus-change-function 'garbage-collect)) + (defun gc-minibuffer-setup-hook () + (setq gc-cons-threshold (* better-gc-cons-threshold 2))) + + (defun gc-minibuffer-exit-hook () + (garbage-collect) + (setq gc-cons-threshold better-gc-cons-threshold)) + (add-hook 'minibuffer-setup-hook #'gc-minibuffer-setup-hook) + (add-hook 'minibuffer-exit-hook #'gc-minibuffer-exit-hook))) + +;; add `lisp' to `load-path'. +(add-to-list 'load-path + (expand-file-name "lisp" user-emacs-directory)) + +;; load user configs. +(require 'configs) +(or (file-exists-p user/userconfig-file) + (copy-file (concat user-emacs-directory "lisp/templates/userconfig.template") + user/userconfig-file)) +(load user/userconfig-file) + +;; load `custom-file' +(setq custom-file user/custom-file) +(when (file-exists-p custom-file) + (load custom-file)) + +(require 'cl-lib) +;; Language and coding +(set-language-environment "utf-8") +;; (set-keyboard-coding-system 'utf-8) +;; (set-default-coding-systems 'utf-8) ;;; Packages - (require 'package) - (setq package--init-file-ensured t - package-enable-at-startup nil - package-archives user/package-mirror) - - ;; Evaluate the correct package subdirectory of packages. - (setq package-user-dir - (file-name-as-directory - (if (not elpa-subdirectory) - elpa-pack-dir - (let ((subdir (format "%d%s%d" - emacs-major-version - version-separator - emacs-minor-version))) - (expand-file-name subdir elpa-pack-dir))))) - - ;; Load Emacs packages and initialize them. - (package-initialize) - - ;; Install use-package from melpa - (or (package-installed-p 'use-package) - (progn - (package-refresh-contents) - (package-install 'use-package))) - ;; Install use-package from melpa - (unless (package-installed-p 'quelpa) - (progn - (package-refresh-contents) - (package-install 'quelpa))) - (setq quelpa-checkout-melpa-p nil) - - (require 'keybindings) - (require 'editor) - (require 'completion) - (require 'core-libs) - - (require 'prog-common) - (require 'prog-c-cpp) - (require 'prog-python) - (require 'prog-haskell) - (require 'prog-lisp) - (require 'prog-verilog) - (require 'init-org) - (require 'apps) - - (user/lazy-load) - ) +(require 'package) +(setq package--init-file-ensured t + package-enable-at-startup nil + package-archives user/package-mirror) + +;; Evaluate the correct package subdirectory of packages. +(setq package-user-dir + (file-name-as-directory + (if (not elpa-subdirectory) + elpa-pack-dir + (let ((subdir (format "%d%s%d" + emacs-major-version + version-separator + emacs-minor-version))) + (expand-file-name subdir elpa-pack-dir))))) + +;; Load Emacs packages and initialize them. +(unless (bound-and-true-p package--initialized) + (package-initialize)) + +;; Install use-package from melpa +(unless (package-installed-p 'use-package) + (progn + (package-refresh-contents) + (package-install 'use-package))) + +;; Install quelpa from melpa +(unless (package-installed-p 'quelpa) + (progn + (package-refresh-contents) + (package-install 'quelpa))) +(setq quelpa-checkout-melpa-p nil) + +(require 'keybindings) +(require 'editor) +(require 'completion) +(require 'core-libs) + +(require 'prog-common) +(require 'prog-c-cpp) +(require 'prog-python) +(require 'prog-haskell) +(require 'prog-lisp) +(require 'prog-verilog) +(require 'init-org) +(require 'apps) + +(user/lazy-load) + (provide 'init) ;;; init.el ends here diff --git a/lisp/configs.el b/lisp/configs.el index 655bfd4..91b842c 100644 --- a/lisp/configs.el +++ b/lisp/configs.el @@ -3,6 +3,18 @@ ;;; Commentary: ;;; Code: +(defvar user/full-name "Liu Miao") +(defvar user/email-address "liumiaogemini@foxmail.com") + +(defconst *sys/win32* + (eq system-type 'windows-nt)) + +(defconst *sys/linux* + (eq system-type 'gnu/linux)) + +(defconst *sys/mac* + (eq system-type 'darwin)) + (defvar user/default-font '("Consolas" :size 10 :weight normal -- GitLab