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
need to benchmark slow init times later.
#+begin_src emacs-lisp
;; (straight-use-package 'benchmark-init)
;; (require 'benchmark-init)
;; (add-hook 'after-init-hook 'benchmark-init/deactivate)
#+begin_src emacs-lisp :tangle no
(straight-use-package 'benchmark-init)
(require 'benchmark-init)
(add-hook 'after-init-hook 'benchmark-init/deactivate)
#+end_src
** Misc Stuff
@ -530,64 +530,64 @@ Vertico Embark Marginalia Consult Orderless
** Dirvish/Dired
#+begin_src emacs-lisp
(straight-use-package 'dirvish)
(require 'dirvish)
(dirvish-override-dired-mode)
(setq delete-by-moving-to-trash t)
(setq dired-dwim-target t)
(setq dirvish-reuse-session nil)
(with-eval-after-load 'dirvish
(dirvish-override-dired-mode)
(setq delete-by-moving-to-trash t)
(setq dired-dwim-target t)
(setq dirvish-reuse-session nil)
(dirvish-define-preview exa (file)
"Use `exa' to generate directory preview."
:require ("exa") ; tell Dirvish to check if we have the executable
(when (file-directory-p file) ; we only interest in directories here
`(shell . ("exa" "--icons" "--color=always" "--no-user" "-al" "--group-directories-first" ,file))))
(add-to-list 'dirvish-preview-dispatchers 'exa)
(dirvish-define-preview exa (file)
"Use `exa' to generate directory preview."
:require ("exa") ; tell Dirvish to check if we have the executable
(when (file-directory-p file) ; we only interest in directories here
`(shell . ("exa" "--icons" "--color=always" "--no-user" "-al" "--group-directories-first" ,file))))
(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 dirvish-preview-dispatchers (cl-substitute 'pdf-preface 'pdf dirvish-preview-dispatchers))
(setq dirvish-attributes '(all-the-icons file-size collapse subtree-state))
(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-attributes '(all-the-icons file-size collapse subtree-state))
(defun joe/dirvish-find-directory (dir)
(interactive "FDirvish Directory:")
(dirvish-dwim dir))
(defun joe/dirvish-find-directory (dir)
(interactive "FDirvish Directory:")
(dirvish-dwim dir))
(setq dirvish-quick-access-entries
'(("h" "~/" "Home")
("d" "~/Downloads/" "Downloads")
("D" "~/Documents/" "Documents")
("b" "~/Documents/Books/" "Books")
("p" "~/Development/" "Dev")
("B" "~/pCloudDrive/" "pCloud")))
(setq dirvish-quick-access-entries
'(("h" "~/" "Home")
("d" "~/Downloads/" "Downloads")
("D" "~/Documents/" "Documents")
("b" "~/Documents/Books/" "Books")
("p" "~/Development/" "Dev")
("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 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
** Terminals/Shells
#+begin_src emacs-lisp
(straight-use-package 'vterm)
(require 'vterm)
(setq vterm-shell "/bin/fish")
(setq vterm-timer-delay 0.01)
(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") #'joe/vterm-here)
(add-hook 'vterm-mode-hook (lambda () (setq-local global-hl-line-mode nil)))
#+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
#+begin_src emacs-lisp
(straight-use-package 'undo-tree)