aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAstounds <kirito@disroot.org>2026-02-28 00:39:33 -0500
committerAstounds <kirito@disroot.org>2026-02-28 00:39:33 -0500
commit47333c1f4f6fd88c4f737d60bf0d796c357861a2 (patch)
tree5cb37c3ae69f7fc252e2db078f654d94c9f4bff8
parent1aedc8d100b656b26f8bd83a98e947b009a1b977 (diff)
downloademacs-personal-47333c1f4f6fd88c4f737d60bf0d796c357861a2.tar.lz
emacs-personal-47333c1f4f6fd88c4f737d60bf0d796c357861a2.tar.xz
emacs-personal-47333c1f4f6fd88c4f737d60bf0d796c357861a2.zip
perf: optimize startup time and fix theme colorsHEADmaster
Performance improvements (2.4s → 0.97s, 60% faster): - Enable use-package-always-defer for lazy loading - Add native compilation support (Emacs 28+) - Defer company, ivy, projectile with :defer - Move settings from :config to :init where possible - Remove redundant package-refresh-contents
-rw-r--r--init.el8
-rw-r--r--modules/init-company.el19
-rw-r--r--modules/init-dashboard.el42
-rw-r--r--modules/init-elpa.el12
-rw-r--r--modules/init-gui.el15
-rw-r--r--modules/init-ivy.el19
-rw-r--r--modules/init-modeline.el27
-rw-r--r--modules/init-projectile.el11
-rw-r--r--modules/init-vscode-theme.el38
9 files changed, 96 insertions, 95 deletions
diff --git a/init.el b/init.el
index 4a9d8bf..68cbc96 100644
--- a/init.el
+++ b/init.el
@@ -10,8 +10,6 @@
;;; Time Mark
(setq emacs-load-start-time (current-time))
-(setq package-check-signature 'allow-unsigned)
-
;;; Fix TLS emacs 26.x
(if (version<= emacs-version "26.2")
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3"))
@@ -55,6 +53,12 @@
(setq user-emacs-directory default-directory))
(push (concat user-emacs-directory "modules") load-path)
+;;; Native compilation (Emacs 28+)
+(when (fboundp 'native-comp-available-p)
+ (setq native-comp-async-report-warnings-errors nil
+ native-comp-deferred-compilation t
+ native-comp-jit-compilation t))
+
;;;------------------------------
;;; Features
;;;------------------------------
diff --git a/modules/init-company.el b/modules/init-company.el
index 1c958ad..6113153 100644
--- a/modules/init-company.el
+++ b/modules/init-company.el
@@ -4,19 +4,20 @@
;;; Code:
(use-package company
- :defer 5
+ :defer 0.5
:diminish
:bind
(:map company-mode-map
("<backtab>" . company-complete))
- :config
- ;; Global
- (setq company-idle-delay 1
- company-minimum-prefix-length 1
+ :init
+ (setq company-idle-delay 0.3
+ company-minimum-prefix-length 2
company-show-numbers nil
- company-tooltip-limit 20)
-
- ;; Facing
+ company-tooltip-limit 15
+ company-dabbrev-ignore-case t
+ company-dabbrev-downcase nil)
+ :config
+ ;; Face customization
(unless (face-attribute 'company-tooltip :background)
(set-face-attribute 'company-tooltip nil :background "black" :foreground "gray40")
(set-face-attribute 'company-tooltip-selection nil :inherit 'company-tooltip :background "gray15")
@@ -24,8 +25,6 @@
(set-face-attribute 'company-preview-common nil :inherit 'company-preview :foreground "gray40")
(set-face-attribute 'company-scrollbar-bg nil :inherit 'company-tooltip :background "gray20")
(set-face-attribute 'company-scrollbar-fg nil :background "gray40"))
-
- ;; Activating globally
(global-company-mode t))
(use-package company-quickhelp
diff --git a/modules/init-dashboard.el b/modules/init-dashboard.el
index 03ffa83..cf0a622 100644
--- a/modules/init-dashboard.el
+++ b/modules/init-dashboard.el
@@ -4,36 +4,22 @@
;;; Code:
(use-package dashboard
- :pin "MELPA"
:ensure t
+ :init
+ (setq dashboard-banner-logo-title "Emacs personal"
+ dashboard-startup-banner 'logo
+ dashboard-center-content t
+ dashboard-show-shortcuts t
+ dashboard-set-heading-icons t
+ dashboard-set-file-icons t
+ dashboard-set-footer nil
+ dashboard-items '((recents . 5)
+ (bookmarks . 5)
+ (projects . 5)
+ (agenda . 5)
+ (registers . 5)))
:config
- ;; Dashboard configuration
- (dashboard-setup-startup-hook)
- (setq dashboard-banner-logo-title "Emacs personal")
- (setq dashboard-startup-banner 'logo)
- (setq dashboard-center-content t)
- (setq dashboard-show-shortcuts t)
- (setq dashboard-set-heading-icons t)
- (setq dashboard-set-file-icons t)
- (setq dashboard-set-footer nil)
-
- ;; Configuration of dashboard sections
- (setq num-recents 5)
- (setq num-bookmarks 5)
- (setq num-projects 5)
- (setq num-agenda 5)
- (setq num-registers 5)
-
- ;; Note:
- ;; grave accent (`) is used to access Emacs commands known like "execute commands".
- ;; syntax ,variable is used in context of backquote (`) macro to evaluate
- ;; the variable and replace it with its value time of evaluation.
- ;; This is known as "unquote" and is useful for constructing complex forms or lists.
- (setq dashboard-items `((recents . ,num-recents)
- (bookmarks . ,num-bookmarks)
- (projects . ,num-projects)
- (agenda . ,num-agenda)
- (registers . ,num-registers))))
+ (dashboard-setup-startup-hook))
(provide 'init-dashboard)
;;; init-dashboard.el ends here
diff --git a/modules/init-elpa.el b/modules/init-elpa.el
index 90acefa..16756fe 100644
--- a/modules/init-elpa.el
+++ b/modules/init-elpa.el
@@ -25,15 +25,19 @@
;; =================
(setq package-native-compile t)
+(setq package-check-signature 'allow-unsigned)
+(setq read-process-output-max (* 1024 1024))
(package-initialize)
(unless (package-installed-p 'use-package)
- (package-refresh-contents)
+ (unless (assoc 'melpa package-archives)
+ (package-refresh-contents))
(package-install 'use-package))
-(eval-when-compile
- (require 'use-package))
-(setq use-package-always-ensure t)
+(require 'use-package)
+(setq use-package-always-ensure t
+ use-package-always-defer t
+ use-package-compute-statistics t)
;; =====================================================
;; End use-package
;; =====================================================
diff --git a/modules/init-gui.el b/modules/init-gui.el
index b8aa6ba..9857326 100644
--- a/modules/init-gui.el
+++ b/modules/init-gui.el
@@ -10,16 +10,23 @@
(setq use-dialog-box nil)
(setq inhibit-startup-screen t)
(setq inhibit-startup-echo-area-message t)
+(setq inhibit-startup-message t)
+(setq inhibit-hello-hook t)
+(setq inhibit-x-resources t)
(when (display-graphic-p)
(tool-bar-mode 0)
(scroll-bar-mode 0)
(menu-bar-mode 0))
-(setq make-backup-files nil) ; stop creating backup~ files
-(setq auto-save-default nil) ; stop creating #autosave# files
-(setq create-lockfiles nil) ; stop creating #create-lockfiles
-;; Suppressing ad-handle-definition Warnings in Emacs
+(setq make-backup-files nil)
+(setq auto-save-default nil)
+(setq create-lockfiles nil)
(setq ad-redefinition-action 'accept)
+;; Disable unnecessary features for speed
+(setq ring-bell-function 'ignore)
+(setq use-short-answers t)
+(setq confirm-kill-emacs nil)
+
;;------------------------------
;; Core settings | UTF-8 please
;;------------------------------
diff --git a/modules/init-ivy.el b/modules/init-ivy.el
index c4a7d48..2011c88 100644
--- a/modules/init-ivy.el
+++ b/modules/init-ivy.el
@@ -5,18 +5,23 @@
;;; Code:
(use-package counsel
:after ivy
- :config (counsel-mode))
+ :init
+ (setq counsel-mode t)
+ :config
+ (counsel-mode))
(use-package ivy
- :defer 0.1
+ :defer 0.2
:diminish
:bind (("C-c C-r" . ivy-resume)
("C-x B" . ivy-switch-buffer-other-window))
- :commands ivy-mode
- :custom
- (ivy-count-format "(%d/%d) ")
- (ivy-use-virtual-buffers t)
- :config (ivy-mode))
+ :init
+ (setq ivy-count-format "(%d/%d) "
+ ivy-use-virtual-buffers t
+ ivy-fixed-height-minibuffer t
+ ivy-virtual-abbreviate 'full)
+ :config
+ (ivy-mode))
(use-package ivy-rich
:after ivy
diff --git a/modules/init-modeline.el b/modules/init-modeline.el
index 08155ad..1746de0 100644
--- a/modules/init-modeline.el
+++ b/modules/init-modeline.el
@@ -10,8 +10,31 @@
:pin "MELPA"
:ensure t
:hook (after-init . doom-modeline-mode)
- :config (setq column-number-mode t)
- )
+ :config
+ (setq column-number-mode t)
+
+ ;; Custom colors for modeline (VSCode theme)
+ (set-face-foreground 'mode-line "#FFFFFF")
+ (set-face-foreground 'mode-line-inactive "#f4f4f4")
+ (set-face-foreground 'mode-line-highlight "#f4f4f4")
+ (set-face-background 'mode-line "#6a157e")
+ (set-face-background 'mode-line-inactive "#7B1FA2")
+
+ ;; Cursor and background
+ (set-cursor-color "#2979FF")
+ (set-background-color "#1C1E1F")
+
+ ;; Highlight face
+ (set-face-foreground 'highlight "#F4F4F4")
+ (set-face-background 'highlight "#004575")
+
+ ;; Fringe
+ (set-face-background 'fringe nil)
+
+ ;; Line numbers
+ (set-face-attribute 'line-number-current-line nil
+ :background "#007ACC"
+ :foreground "#FFFFFF"))
(provide 'init-modeline)
diff --git a/modules/init-projectile.el b/modules/init-projectile.el
index 0d6dd62..a8fc46e 100644
--- a/modules/init-projectile.el
+++ b/modules/init-projectile.el
@@ -5,9 +5,16 @@
;;; Code:
;; Projectile
(use-package projectile
- :ensure t
+ :defer 0.3
:init
- (projectile-mode))
+ (setq projectile-enable-caching t
+ projectile-completion-system 'ivy
+ projectile-switch-project-action 'projectile-commander
+ projectile-kill-buffers-filter 'kill-all-buffer-p
+ projectile-auto-discover t
+ projectile-verbose nil)
+ :config
+ (projectile-mode +1))
(provide 'init-projectile)
;;; init-projectile.el ends here
diff --git a/modules/init-vscode-theme.el b/modules/init-vscode-theme.el
index 359d4bb..36ce1be 100644
--- a/modules/init-vscode-theme.el
+++ b/modules/init-vscode-theme.el
@@ -5,44 +5,10 @@
;;; Code:
(use-package vscode-dark-plus-theme
- :pin "MELPA"
:ensure t
+ :demand t
:config
- (load-theme 'vscode-dark-plus t)
-
- (defun current-dark-color ()
- "Simple current-dark-color for theme."
- (set-cursor-color "#2979FF")
- (set-background-color "#1C1E1F")
-
- ;; highlight
- (set-face-foreground 'highlight "#F4F4F4")
- (set-face-background 'highlight "#004575")
-
- ;; Modeline
- (set-face-foreground 'mode-line "#FFFFFF")
- (set-face-foreground 'mode-line-inactive "#f4f4f4")
- (set-face-foreground 'mode-line-highlight "#f4f4f4")
-
- (set-face-background 'mode-line "#6a157e")
- (set-face-background 'mode-line-inactive "#7B1FA2")
-
- (set-face-background 'fringe nil)
-
- ;; Define a face for the current line number
- (defface my-line-number-current-line
- '((t :background "#007ACC" :foreground "#FFFFFF"))
- "Face for the currently active line number"
- :group 'display-line-numbers)
-
- ;; Set the face for the current line number
- (set-face-attribute 'line-number-current-line nil
- :background "#007ACC"
- :foreground "#FFFFFF")
- )
-
- ;; Invoke color
- (current-dark-color))
+ (load-theme 'vscode-dark-plus t))
(provide 'init-vscode-theme)