A few optimizations to start emacs quicker

This commit is contained in:
Joseph Ferano 2022-08-28 21:03:29 +07:00
parent c00fb00276
commit fa37091109

View File

@ -115,10 +115,10 @@ Then bootstrap
This is commented out since it adds ever so slightly to init time, but keep it around in case we This is commented out since it adds ever so slightly to init time, but keep it around in case we
need to benchmark slow init times later. need to benchmark slow init times later.
#+begin_src emacs-lisp #+begin_src emacs-lisp :tangle no
;; (straight-use-package 'benchmark-init) (straight-use-package 'benchmark-init)
;; (require 'benchmark-init) (require 'benchmark-init)
;; (add-hook 'after-init-hook 'benchmark-init/deactivate) (add-hook 'after-init-hook 'benchmark-init/deactivate)
#+end_src #+end_src
** Misc Stuff ** Misc Stuff
@ -530,29 +530,29 @@ Vertico Embark Marginalia Consult Orderless
** Dirvish/Dired ** Dirvish/Dired
#+begin_src emacs-lisp #+begin_src emacs-lisp
(straight-use-package 'dirvish) (straight-use-package 'dirvish)
(require 'dirvish) (with-eval-after-load 'dirvish
(dirvish-override-dired-mode) (dirvish-override-dired-mode)
(setq delete-by-moving-to-trash t) (setq delete-by-moving-to-trash t)
(setq dired-dwim-target t) (setq dired-dwim-target t)
(setq dirvish-reuse-session nil) (setq dirvish-reuse-session nil)
(dirvish-define-preview exa (file) (dirvish-define-preview exa (file)
"Use `exa' to generate directory preview." "Use `exa' to generate directory preview."
:require ("exa") ; tell Dirvish to check if we have the executable :require ("exa") ; tell Dirvish to check if we have the executable
(when (file-directory-p file) ; we only interest in directories here (when (file-directory-p file) ; we only interest in directories here
`(shell . ("exa" "--icons" "--color=always" "--no-user" "-al" "--group-directories-first" ,file)))) `(shell . ("exa" "--icons" "--color=always" "--no-user" "-al" "--group-directories-first" ,file))))
(add-to-list 'dirvish-preview-dispatchers 'exa) (add-to-list 'dirvish-preview-dispatchers 'exa)
(setq dired-listing-switches "-l --sort=version --almost-all --human-readable --time-style=long-iso --group-directories-first --no-group") (setq dired-listing-switches "-l --sort=version --almost-all --human-readable --time-style=long-iso --group-directories-first --no-group")
(setq dirvish-preview-dispatchers (cl-substitute 'pdf-preface 'pdf dirvish-preview-dispatchers)) (setq dirvish-preview-dispatchers (cl-substitute 'pdf-preface 'pdf dirvish-preview-dispatchers))
(setq dirvish-attributes '(all-the-icons file-size collapse subtree-state)) (setq dirvish-attributes '(all-the-icons file-size collapse subtree-state))
(defun joe/dirvish-find-directory (dir) (defun joe/dirvish-find-directory (dir)
(interactive "FDirvish Directory:") (interactive "FDirvish Directory:")
(dirvish-dwim dir)) (dirvish-dwim dir))
(setq dirvish-quick-access-entries (setq dirvish-quick-access-entries
'(("h" "~/" "Home") '(("h" "~/" "Home")
("d" "~/Downloads/" "Downloads") ("d" "~/Downloads/" "Downloads")
("D" "~/Documents/" "Documents") ("D" "~/Documents/" "Documents")
@ -560,34 +560,34 @@ Vertico Embark Marginalia Consult Orderless
("p" "~/Development/" "Dev") ("p" "~/Development/" "Dev")
("B" "~/pCloudDrive/" "pCloud"))) ("B" "~/pCloudDrive/" "pCloud")))
(define-key dirvish-mode-map (kbd "C-c f") #'dirvish-fd)
(define-key dirvish-mode-map (kbd "a" ) #'dirvish-quick-access)
(define-key dirvish-mode-map (kbd "f" ) #'dirvish-file-info-menu)
(define-key dirvish-mode-map (kbd "y" ) #'dirvish-yank-menu)
(define-key dirvish-mode-map (kbd "N" ) #'dirvish-narrow)
(define-key dirvish-mode-map (kbd "^" ) #'dired-up-directory)
(define-key dirvish-mode-map (kbd "h" ) #'dirvish-history-jump)
(define-key dirvish-mode-map (kbd "s" ) #'dirvish-quicksort)
(define-key dirvish-mode-map (kbd "v" ) #'dirvish-vc-menu)
(define-key dirvish-mode-map (kbd "TAB" ) #'dirvish-subtree-toggle)
(define-key dirvish-mode-map (kbd "M-f" ) #'dirvish-history-go-forward)
(define-key dirvish-mode-map (kbd "M-b" ) #'dirvish-history-go-backward)
(define-key dirvish-mode-map (kbd "M-l" ) #'dirvish-ls-switches-menu)
(define-key dirvish-mode-map (kbd "M-m" ) #'dirvish-mark-menu)
(define-key dirvish-mode-map (kbd "M-t" ) #'dirvish-layout-toggle)
(define-key dirvish-mode-map (kbd "M-s" ) #'dirvish-setup-menu)
(define-key dirvish-mode-map (kbd "M-e" ) #'dirvish-emerge-menu)
(define-key dirvish-mode-map (kbd "M-j" ) #'dirvish-fd-jump))
(global-set-key (kbd "C-x d") #'dirvish-dwim) (global-set-key (kbd "C-x d") #'dirvish-dwim)
(global-set-key (kbd "C-x C-d") #'joe/dirvish-find-directory) (global-set-key (kbd "C-x C-d") #'joe/dirvish-find-directory)
(define-key dirvish-mode-map (kbd "C-c f") #'dirvish-fd)
(define-key dirvish-mode-map (kbd "a" ) #'dirvish-quick-access)
(define-key dirvish-mode-map (kbd "f" ) #'dirvish-file-info-menu)
(define-key dirvish-mode-map (kbd "y" ) #'dirvish-yank-menu)
(define-key dirvish-mode-map (kbd "N" ) #'dirvish-narrow)
(define-key dirvish-mode-map (kbd "^" ) #'dired-up-directory)
(define-key dirvish-mode-map (kbd "h" ) #'dirvish-history-jump)
(define-key dirvish-mode-map (kbd "s" ) #'dirvish-quicksort)
(define-key dirvish-mode-map (kbd "v" ) #'dirvish-vc-menu)
(define-key dirvish-mode-map (kbd "TAB" ) #'dirvish-subtree-toggle)
(define-key dirvish-mode-map (kbd "M-f" ) #'dirvish-history-go-forward)
(define-key dirvish-mode-map (kbd "M-b" ) #'dirvish-history-go-backward)
(define-key dirvish-mode-map (kbd "M-l" ) #'dirvish-ls-switches-menu)
(define-key dirvish-mode-map (kbd "M-m" ) #'dirvish-mark-menu)
(define-key dirvish-mode-map (kbd "M-t" ) #'dirvish-layout-toggle)
(define-key dirvish-mode-map (kbd "M-s" ) #'dirvish-setup-menu)
(define-key dirvish-mode-map (kbd "M-e" ) #'dirvish-emerge-menu)
(define-key dirvish-mode-map (kbd "M-j" ) #'dirvish-fd-jump)
#+end_src #+end_src
** Terminals/Shells ** Terminals/Shells
#+begin_src emacs-lisp #+begin_src emacs-lisp
(straight-use-package 'vterm) (straight-use-package 'vterm)
(require 'vterm)
(setq vterm-shell "/bin/fish") (setq vterm-shell "/bin/fish")
(setq vterm-timer-delay 0.01) (setq vterm-timer-delay 0.01)
(setq vterm-buffer-name-string "VTerm - %s") (setq vterm-buffer-name-string "VTerm - %s")
@ -609,9 +609,17 @@ Vertico Embark Marginalia Consult Orderless
(global-set-key (kbd "C-c t") #'vterm) (global-set-key (kbd "C-c t") #'vterm)
(global-set-key (kbd "C-c T") #'joe/vterm-here) (global-set-key (kbd "C-c T") #'joe/vterm-here)
(add-hook 'vterm-mode-hook (lambda () (setq-local global-hl-line-mode nil))) (add-hook 'vterm-mode-hook (lambda () (setq-local global-hl-line-mode nil)))
#+end_src #+end_src
We need this require so we can call `vterm--internal in the joe/vterm-here function, but that slows
down init time because vterm is loading TRAMP which is slow.
#+begin_src emacs-lisp
(run-with-idle-timer 2 nil (lambda () (require 'vterm)))
#+end_src
** Undo Tree ** Undo Tree
#+begin_src emacs-lisp #+begin_src emacs-lisp
(straight-use-package 'undo-tree) (straight-use-package 'undo-tree)