From 831503060fd22ea835645850230bc9d524053c06 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Tue, 16 Feb 2021 22:40:44 +0000 Subject: [PATCH] chore(startup): stop using emacs-startup-hook to trigger package load Packages that need to be loaded on emacs startup, should just be loaded through use-package in a non-deferred manner. It makes no real difference to startup, loading the packages either slows down emacs before "startup" is complete, or right after it completes. End result is that Emacs is unresponsive for basically the same amount of time regardless. --- core/siren-core-performance.el | 7 +++++-- modules/editor/siren-doom-modeline.el | 7 ++++--- modules/editor/siren-edit-server.el | 6 ++++-- modules/editor/siren-undo-tree.el | 6 +++--- modules/projects/siren-projectile.el | 7 +++---- modules/text-editing/siren-yasnippet.el | 6 ++---- modules/version-control/siren-diff-hl.el | 11 ++++++++--- modules/workspaces/siren-desktop.el | 10 +++++----- modules/workspaces/siren-persp-mode.el | 5 ++--- modules/workspaces/siren-tab-bar.el | 6 +++--- 10 files changed, 39 insertions(+), 32 deletions(-) diff --git a/core/siren-core-performance.el b/core/siren-core-performance.el index 65cb432..6991724 100644 --- a/core/siren-core-performance.el +++ b/core/siren-core-performance.el @@ -8,13 +8,16 @@ ;; Setup and use gcmh-mode for improved garbage collection. (use-package gcmh + :demand :hook - (emacs-startup . (lambda() (gcmh-mode +1))) (focus-out-hook . gcmh-idle-garbage-collect) :custom (gcmh-idle-delay 10) - (gcmh-high-cons-threshold 104857600)) + (gcmh-high-cons-threshold 104857600) + + :config + (gcmh-mode +1)) (provide 'siren-core-performance) ;;; siren-core-performance.el ends here diff --git a/modules/editor/siren-doom-modeline.el b/modules/editor/siren-doom-modeline.el index a54042f..951e94d 100644 --- a/modules/editor/siren-doom-modeline.el +++ b/modules/editor/siren-doom-modeline.el @@ -7,8 +7,6 @@ ;;; Code: (use-package doom-modeline - :hook (emacs-startup . doom-modeline-mode) - :custom (doom-modeline-bar-width 3) (doom-modeline-buffer-encoding nil) @@ -22,7 +20,10 @@ (doom-modeline-minor-modes t) (doom-modeline-persp-name nil) (doom-modeline-vcs-max-length 24) - (doom-modeline-workspace-name nil)) + (doom-modeline-workspace-name nil) + + :config + (doom-modeline-mode)) (provide 'siren-doom-modeline) ;;; siren-doom-modeline.el ends here diff --git a/modules/editor/siren-edit-server.el b/modules/editor/siren-edit-server.el index ff6213a..38740d1 100644 --- a/modules/editor/siren-edit-server.el +++ b/modules/editor/siren-edit-server.el @@ -8,7 +8,6 @@ (use-package edit-server :if window-system - :hook (emacs-startup . edit-server-start) :custom (edit-server-default-major-mode 'markdown-mode) @@ -17,7 +16,10 @@ (width . 90) (height . 45) (minibuffer . t) - (menu-bar-lines . t)))) + (menu-bar-lines . t))) + + :config + (edit-server-start)) (provide 'siren-edit-server) ;;; siren-edit-server.el ends here diff --git a/modules/editor/siren-undo-tree.el b/modules/editor/siren-undo-tree.el index 0c43eff..dc6618f 100644 --- a/modules/editor/siren-undo-tree.el +++ b/modules/editor/siren-undo-tree.el @@ -7,9 +7,7 @@ ;;; Code: (use-package undo-tree - :hook - (emacs-startup . global-undo-tree-mode) - + :demand :bind (:map undo-tree-map ("C-x u" . undo-tree-visualize) @@ -30,6 +28,8 @@ (undo-tree-auto-save-history nil) :config + (global-undo-tree-mode) + ;; Unbind keys that I don't use. (unbind-key "C-/" undo-tree-map) (unbind-key "C-?" undo-tree-map) diff --git a/modules/projects/siren-projectile.el b/modules/projects/siren-projectile.el index e958bf2..52c5572 100644 --- a/modules/projects/siren-projectile.el +++ b/modules/projects/siren-projectile.el @@ -7,9 +7,6 @@ ;;; Code: (use-package projectile - :hook - (emacs-startup . projectile-mode) - :bind ("C-c p p" . projectile-switch-project) ("C-c p k" . projectile-kill-buffers) @@ -58,7 +55,9 @@ (push "Rakefile" projectile-project-root-files) ;; Treat separate directories with Gemfiles within a single git repo as ;; separate projects. - (push "Gemfile" projectile-project-root-files-bottom-up)) + (push "Gemfile" projectile-project-root-files-bottom-up) + + (projectile-mode)) (provide 'siren-projectile) ;;; siren-projectile.el ends here diff --git a/modules/text-editing/siren-yasnippet.el b/modules/text-editing/siren-yasnippet.el index d54503b..61f2ad3 100644 --- a/modules/text-editing/siren-yasnippet.el +++ b/modules/text-editing/siren-yasnippet.el @@ -8,15 +8,13 @@ (use-package yasnippet :diminish yas-minor-mode - :hook - (emacs-startup . yas-global-mode) :config + (yas-global-mode) (yas-reload-all)) (use-package yasnippet-snippets - :defer t - :after (yasnippet)) + :after yasnippet) (provide 'siren-yasnippet) ;;; siren-yasnippet.el ends here diff --git a/modules/version-control/siren-diff-hl.el b/modules/version-control/siren-diff-hl.el index 4904aca..1cbd949 100644 --- a/modules/version-control/siren-diff-hl.el +++ b/modules/version-control/siren-diff-hl.el @@ -10,10 +10,15 @@ (use-package diff-hl :hook - (emacs-startup . global-diff-hl-mode) - (emacs-startup . diff-hl-flydiff-mode) + (prog-mode . siren-turn-on-diff-hl-mode) + (text-mode . siren-turn-on-diff-hl-mode) (dired-mode . diff-hl-dired-mode) - (magit-post-refresh . diff-hl-magit-post-refresh)) + (magit-post-refresh . diff-hl-magit-post-refresh) + + :init + (defun siren-turn-on-diff-hl-mode () + (turn-on-diff-hl-mode) + (diff-hl-flydiff-mode 1))) (provide 'siren-diff-hl) ;;; siren-diff-hl.el ends here diff --git a/modules/workspaces/siren-desktop.el b/modules/workspaces/siren-desktop.el index cbaf927..fe9d95d 100644 --- a/modules/workspaces/siren-desktop.el +++ b/modules/workspaces/siren-desktop.el @@ -10,10 +10,8 @@ (use-package desktop :straight (:type built-in) - :demand t :hook - (emacs-startup . siren-desktop-setup) (desktop-after-read . siren-desktop-after-read-hook) :custom @@ -24,6 +22,8 @@ (desktop-restore-frames t) :config + (siren-desktop-setup) + (add-to-list 'desktop-clear-preserve-buffers "\\*straight-process\\*") (add-to-list 'desktop-clear-preserve-buffers "\\*Async-native-compile-log\\*") (push '(alpha . :never) frameset-filter-alist) @@ -71,9 +71,6 @@ :force-onscreen desktop-restore-forces-onscreen))) (use-package desktop+ - :hook - (emacs-startup . siren-desktop+-setup) - :bind (:map siren-workspace-map ("C-z c" . desktop+-create) @@ -85,6 +82,9 @@ ("C-z l" . desktop+-load) ("C-z C-l" . desktop+-load)) + :config + (siren-desktop+-setup) + :init (defvar siren-desktop+-base-dir (expand-file-name "desktops" siren-dir)) diff --git a/modules/workspaces/siren-persp-mode.el b/modules/workspaces/siren-persp-mode.el index c705abf..dfa3772 100644 --- a/modules/workspaces/siren-persp-mode.el +++ b/modules/workspaces/siren-persp-mode.el @@ -10,9 +10,6 @@ (require 'siren-workspace-map) (use-package persp-mode - :hook - (emacs-startup . persp-mode) - :bind ("s-}" . persp-next) ("s-{" . persp-prev) @@ -180,6 +177,8 @@ ARG counts from 1." (if name (persp-switch name)))) :config + (persp-mode) + (add-hook 'persp-common-buffer-filter-functions 'siren-persp-mode-filter-magit-buffers) diff --git a/modules/workspaces/siren-tab-bar.el b/modules/workspaces/siren-tab-bar.el index b360218..5e33949 100644 --- a/modules/workspaces/siren-tab-bar.el +++ b/modules/workspaces/siren-tab-bar.el @@ -11,9 +11,6 @@ (use-package tab-bar :straight (:type built-in) - :hook - (emacs-startup . siren-tab-bar-setup) - :bind ("s-}" . tab-next) ("s-{" . tab-previous) @@ -59,6 +56,9 @@ (tab-bar-new-tab-choice "*scratch*") (tab-bar-tab-hints nil) + :config + (siren-tab-bar-setup) + :init (defun siren-tab-bar-setup () (tab-bar-mode)