From fa3709110970136a28ac80f714c307ef98b0041f Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Sun, 28 Aug 2022 21:03:29 +0700 Subject: [PATCH] A few optimizations to start emacs quicker --- .emacs.bankruptcy/init.org | 104 ++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 48 deletions(-) diff --git a/.emacs.bankruptcy/init.org b/.emacs.bankruptcy/init.org index 450ce31..2aae63e 100644 --- a/.emacs.bankruptcy/init.org +++ b/.emacs.bankruptcy/init.org @@ -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)