about summary refs log tree commit diff stats
path: root/.emacs.d/lisp/init-ui.el
diff options
context:
space:
mode:
authorDavid Morgan <djm_uk@protonmail.com>2022-10-14 12:29:07 +0100
committerDavid Morgan <djm_uk@protonmail.com>2022-10-14 12:29:07 +0100
commitfc3ad645792acc8077f4190331725c28f63b9b6b (patch)
tree15a03dee0b8f96da7592439a32f3c340457c3a64 /.emacs.d/lisp/init-ui.el
parent05edd37e19bdaeaab6baeccbbb1b1db3e1ab80b0 (diff)
downloaddotfiles-fc3ad645792acc8077f4190331725c28f63b9b6b.tar.gz
Improve vanity metric: startup time
Diffstat (limited to '.emacs.d/lisp/init-ui.el')
-rw-r--r--.emacs.d/lisp/init-ui.el132
1 files changed, 67 insertions, 65 deletions
diff --git a/.emacs.d/lisp/init-ui.el b/.emacs.d/lisp/init-ui.el
index 15ae247..c92e3cb 100644
--- a/.emacs.d/lisp/init-ui.el
+++ b/.emacs.d/lisp/init-ui.el
@@ -5,13 +5,19 @@
 ;;; Code:
 
 (use-package emacs
-  :config
-  (cond
-   ((find-font (font-spec :name "iosevka comfy"))
-    (set-face-attribute 'default nil :font "iosevka comfy"))
-   ((find-font (font-spec :name "iosevka"))
-    (set-face-attribute 'default nil :font "iosevka")))
+  :hook (emacs-startup . (lambda ()
+                           (cond
+                            ((find-font (font-spec :name "iosevka comfy"))
+                             (set-face-attribute 'default nil :font "iosevka comfy"))
+                            ((find-font (font-spec :name "iosevka"))
+                             (set-face-attribute 'default nil :font "iosevka")))
+
+                           (global-display-line-numbers-mode)
+                           (global-hl-line-mode +1)
+
+                           (global-set-key (kbd "C-x C-S-k") 'kill-this-buffer)))
 
+  :config
   ;; https://github.com/rougier/elegant-emacs/blob/master/sanity.el
   (setq inhibit-startup-screen t
         inhibit-startup-echo-area-message t
@@ -32,13 +38,8 @@
         scroll-conservatively 100000
         scroll-preserve-screen-position 1)
 
-  (global-display-line-numbers-mode)
-  (global-hl-line-mode +1)
-
   (fset 'yes-or-no-p 'y-or-n-p)
 
-  (global-set-key (kbd "C-x C-S-k") 'kill-this-buffer)
-
   (setq frame-title-format
         '("Emacs: " (:eval (if (buffer-file-name)
                                (abbreviate-file-name (buffer-file-name))
@@ -50,46 +51,58 @@
     (setq mac-command-modifier 'super)))
 
 (use-package modus-themes
-  :init
-  (setq modus-themes-syntax '(green-strings yellow-comments)
-        modus-themes-paren-match '(bold intense underline)
-        modus-themes-bold-constructs t
-        modus-themes-italic-constructs t
-        modus-themes-lang-checkers '(text-also))
-  (load-theme 'modus-vivendi t)
-
-  ;; Use less magenta
-  (custom-set-faces
-   `(font-lock-builtin-face ((t (:foreground "LawnGreen"))))
-   `(font-lock-keyword-face ((t (:foreground "gold"))))
-   `(font-lock-function-name-face ((t (:foreground "cyan"))))
-   `(font-lock-variable-name-face ((t (:foreground "gold3"))))
-   `(font-lock-constant-face ((t (:foreground "DeepSkyBlue2"))))
-   `(font-lock-type-face ((t (:foreground "PaleGreen2"))))
-   `(font-lock-string-face ((t (:foreground "SpringGreen3"))))
-   `(font-lock-comment-face ((t (:foreground "burlywood"))))
-   `(font-lock-doc-face ((t :foreground "LightCyan3")))
-   `(region ((t (:background "firebrick"))))
-   `(secondary-selection ((t (:background "firebrick4"))))
-   `(idle-highlight ((t (:background "grey50" :foreground "white"))))
-   `(isearch ((t (:background "coral2"))))
-   `(lazy-highlight ((t (:background "LightSteelBlue2" :foreground "black"))))
-   `(match ((t (:background "gray35" :foreground "grey85"))))
-   `(lsp-face-highlight-textual ((t (:background "DimGrey"))))
-   `(whitespace-empty ((t (:background "gray10"))))
-   `(hl-line ((t :background "gray15" :underline "gray35" :inherit nil)))
-   `(simple-modeline-status-modified ((t :foreground "DeepSkyBlue")))
-   `(consult-async-split ((t :foreground "LightCoral")))
-   `(orderless-match-face-0 ((t :foreground "tomato")))
-   `(orderless-match-face-1 ((t :foreground "SpringGreen2")))
-   `(orderless-match-face-2 ((t :foreground "gold")))
-   `(orderless-match-face-3 ((t :foreground "cyan")))
-   `(flycheck-fringe-warning ((t :foreground "white" :background "gold3")))
-   `(flycheck-fringe-error ((t :foreground "white" :background "red2")))
-   `(flycheck-fringe-info ((t :foreground "white" :background "RoyalBlue3")))
-   `(alt-font-lock-keyword-face ((t :foreground "LightSkyBlue" :weight bold)))
-   `(alt-hl-line-face ((t :underline "gray50" :weight bold))))
   :config
+  (defun my/load-theme ()
+    "Load modus vivendi theme, with my customisations."
+    (setq modus-themes-syntax '(green-strings yellow-comments)
+          modus-themes-paren-match '(bold intense underline)
+          modus-themes-bold-constructs t
+          modus-themes-italic-constructs t
+          modus-themes-lang-checkers '(text-also))
+    (load-theme 'modus-vivendi t)
+
+    (custom-set-faces
+     `(font-lock-builtin-face ((t (:foreground "LawnGreen"))))
+     `(font-lock-keyword-face ((t (:foreground "gold"))))
+     `(font-lock-function-name-face ((t (:foreground "cyan"))))
+     `(font-lock-variable-name-face ((t (:foreground "gold3"))))
+     `(font-lock-constant-face ((t (:foreground "DeepSkyBlue2"))))
+     `(font-lock-type-face ((t (:foreground "PaleGreen2"))))
+     `(font-lock-string-face ((t (:foreground "SpringGreen3"))))
+     `(font-lock-comment-face ((t (:foreground "burlywood"))))
+     `(font-lock-doc-face ((t :foreground "LightCyan3")))
+     `(region ((t (:background "firebrick"))))
+     `(secondary-selection ((t (:background "firebrick4"))))
+     `(idle-highlight ((t (:background "grey50" :foreground "white"))))
+     `(isearch ((t (:background "coral2"))))
+     `(lazy-highlight ((t (:background "LightSteelBlue2" :foreground "black"))))
+     `(match ((t (:background "gray35" :foreground "grey85"))))
+     `(lsp-face-highlight-textual ((t (:background "DimGrey"))))
+     `(whitespace-empty ((t (:background "gray10"))))
+     `(hl-line ((t :background "gray15" :underline "gray35" :inherit nil)))
+     `(simple-modeline-status-modified ((t :foreground "DeepSkyBlue")))
+     `(consult-async-split ((t :foreground "LightCoral")))
+     `(orderless-match-face-0 ((t :foreground "tomato")))
+     `(orderless-match-face-1 ((t :foreground "SpringGreen2")))
+     `(orderless-match-face-2 ((t :foreground "gold")))
+     `(orderless-match-face-3 ((t :foreground "cyan")))
+     `(flycheck-fringe-warning ((t :foreground "white" :background "gold3")))
+     `(flycheck-fringe-error ((t :foreground "white" :background "red2")))
+     `(flycheck-fringe-info ((t :foreground "white" :background "RoyalBlue3")))
+     `(alt-font-lock-keyword-face ((t :foreground "LightSkyBlue" :weight bold)))
+     `(alt-hl-line-face ((t :underline "gray50" :weight bold))))
+
+    (setq hl-todo-keyword-faces
+          '(("TODO"   . "red3")
+            ("FIXME"  . "red3")
+            ("DEBUG"  . "#A020F0")
+            ("GOTCHA" . "#FF4500")
+            ("HACK" . "#FF4500")
+            ("STUB"   . "#1E90FF")
+            ("FAIL"   . "red3")
+            ("NOTE"   . "DarkOrange2")
+            ("DEPRECATED" . "yellow"))))
+
   (defun use-alt-font-lock-keyword-face ()
     "Remap font-lock-keyword-face to the alternate one, in the current buffer"
     (face-remap-add-relative 'font-lock-keyword-face 'alt-font-lock-keyword-face))
@@ -97,12 +110,11 @@
     "Remap hl-line face to the alternate one, in the current buffer"
     (face-remap-add-relative 'hl-line 'alt-hl-line-face))
   :hook
+  (after-init . my/load-theme)
   (cider-inspector-mode . use-alt-font-lock-keyword-face)
   (magit-mode . use-alt-hl-line-face))
 
 (use-package hl-todo
-  :defer 5
-  :after modus-themes
   :bind
   (:map hl-todo-mode-map
         ("C-c c t p" . hl-todo-previous)
@@ -110,19 +122,9 @@
         ("C-c c t o" . hl-todo-occur)
         ("C-c c t r" . hl-todo-rgrep)
         ("C-c c t i" . hl-todo-insert))
-  :custom
-  (hl-todo-keyword-faces
-   '(("TODO"   . "red3")
-     ("FIXME"  . "red3")
-     ("DEBUG"  . "#A020F0")
-     ("GOTCHA" . "#FF4500")
-     ("HACK" . "#FF4500")
-     ("STUB"   . "#1E90FF")
-     ("FAIL"   . "red3")
-     ("NOTE"   . "DarkOrange2")
-     ("DEPRECATED" . "yellow")))
-  :config
-  (global-hl-todo-mode 1))
+  ;; Use emacs-startup-hook so that it runs after my/load-theme is called in after-init-hook
+  ;; hl-todo-keyword-faces is customised in my/load-theme
+  :hook (emacs-startup . global-hl-todo-mode))
 
 (use-package whitespace
   :diminish