diff options
| author | cashmere <cashmere@autistici.org> | 2026-03-18 04:05:02 +0100 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2026-03-18 04:05:02 +0100 |
| commit | 833584d61988a0bad0393d6b702f9645eeb2ec16 (patch) | |
| tree | 075693e802c7bff7a9aa380f3b6aaa55bd853f2e | |
| parent | f55ebafa5cb6c8d0568be8dbbc29cfa50a11af3f (diff) | |
| download | emacs-833584d61988a0bad0393d6b702f9645eeb2ec16.tar.gz | |
2026-03-18T04:05:09+01:00
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | config.el | 294 | ||||
| -rw-r--r-- | config.org | 340 | ||||
| -rw-r--r-- | org-clock-save.el | 4 | ||||
| -rw-r--r-- | themes/noctalia-theme.el | 975 |
5 files changed, 1390 insertions, 224 deletions
@@ -63,3 +63,4 @@ dirvish/thumbnails /elfeed/data/ /eaf/ *.md +/elpaca @@ -690,6 +690,59 @@ Temporarily disables notifications during the fetch." (setq gptel-default-mode 'markdown-mode) (setq gptel-backends (list my/openrouter-backend))) +(use-package markdown-mode + :ensure t + :hook (markdown-mode . nb/markdown-unhighlight) + :init + (setq-default abbrev-mode t) + :config + (defvar nb/current-line '(0 . 0) + "(start . end) of current line in current buffer") + (make-variable-buffer-local 'nb/current-line) + + (defun nb/unhide-current-line (limit) + "Font-lock function" + (let ((start (max (point) (car nb/current-line))) + (end (min limit (cdr nb/current-line)))) + (when (< start end) + (remove-text-properties start end + '(invisible t display "" composition "")) + (goto-char limit) + t))) + + (defun nb/refontify-on-linemove () + "Post-command-hook" + (let* ((start (line-beginning-position)) + (end (line-beginning-position 2)) + (needs-update (not (equal start (car nb/current-line))))) + (setq nb/current-line (cons start end)) + (when needs-update + ;; FIX: Verwende jit-lock-refontify statt font-lock-fontify-block + (jit-lock-refontify start end)))) + + (defun nb/markdown-unhighlight () + "Enable markdown concealling" + (interactive) + (markdown-toggle-markup-hiding 'toggle) + (font-lock-add-keywords nil '((nb/unhide-current-line)) t) + ;; FIX: Stelle sicher dass jit-lock aktiv ist + (jit-lock-register #'font-lock-fontify-region) + (add-hook 'post-command-hook #'nb/refontify-on-linemove nil t)) + + :custom-face + (markdown-header-delimiter-face ((t (:foreground "#616161" :height 0.9)))) + (markdown-header-face-1 ((t (:height 1.6 :foreground "#A3BE8C" :weight extra-bold :inherit markdown-header-face)))) + (markdown-header-face-2 ((t (:height 1.4 :foreground "#EBCB8B" :weight extra-bold :inherit markdown-header-face)))) + (markdown-header-face-3 ((t (:height 1.2 :foreground "#D08770" :weight extra-bold :inherit markdown-header-face)))) + (markdown-header-face-4 ((t (:height 1.15 :foreground "#BF616A" :weight bold :inherit markdown-header-face)))) + (markdown-header-face-5 ((t (:height 1.1 :foreground "#b48ead" :weight bold :inherit markdown-header-face)))) + (markdown-header-face-6 ((t (:height 1.05 :foreground "#5e81ac" :weight semi-bold :inherit markdown-header-face))))) + +(use-package eca + :ensure (:host github :repo "editor-code-assistant/eca-emacs" + :files ("*.el")) + :defer t) + (use-package eldoc :ensure nil :config @@ -729,6 +782,7 @@ Temporarily disables notifications during the fetch." :ensure t :config (setq flycheck-global-modes '(not org-mode)) + (setq flycheck-display-errors-function nil) (add-hook 'after-init-hook #'global-flycheck-mode)) (use-package flycheck-rust @@ -748,6 +802,19 @@ Temporarily disables notifications during the fetch." :config (global-flycheck-eglot-mode 1)) +(use-package sideline + :ensure t + :hook (flycheck-mode . sideline-mode) + :config + (setq sideline-delay 0.001) + :custom + (sideline-backends-right '(sideline-flycheck)) + (sideline-display-backend-name t)) + +(use-package sideline-flycheck + :ensure t + :hook (flycheck-mode . sideline-flycheck-setup)) + (use-package xref :ensure nil) @@ -757,23 +824,26 @@ Temporarily disables notifications during the fetch." (setq org-directory "~/org/") (use-package org :ensure nil + :custom + (org-list-demote-modify-bullet '(("+" . "-") ("-" . "+"))) :config (require 'org-tempo) (custom-set-faces - '(org-document-title ((t (:height 1.6)))) - '(outline-1 ((t (:height 1.25)))) - '(outline-2 ((t (:height 1.2)))) - '(outline-3 ((t (:height 1.2)))) - '(outline-4 ((t (:height 1.2)))) + '(org-document-title ((t (:height 1.5)))) + '(outline-1 ((t (:height 1.5)))) + '(outline-2 ((t (:height 1.4)))) + '(outline-3 ((t (:height 1.3)))) + '(outline-4 ((t (:height 1.25)))) '(outline-5 ((t (:height 1.2)))) - '(outline-6 ((t (:height 1.2)))) - '(outline-7 ((t (:height 1.2)))) - '(outline-8 ((t (:height 1.2)))) - '(outline-9 ((t (:height 1.2))))) + '(outline-6 ((t (:height 1.175)))) + '(outline-7 ((t (:height 1.0)))) + '(outline-8 ((t (:height 1.0)))) + '(outline-9 ((t (:height 1.0))))) (setq org-startup-folded 'overview) - (setq org-adapt-indentation t + (setq + ;; org-adapt-indentation t ;; org-time-stamp-rounding-minutes '(5 5) org-return-follows-link t org-hide-leading-stars t @@ -791,7 +861,7 @@ Temporarily disables notifications during the fetch." org-insert-heading-respect-content t) (add-hook 'org-mode-hook 'variable-pitch-mode) - (add-hook 'org-mode-hook 'org-indent-mode) + ;; (add-hook 'org-mode-hook 'org-indent-mode) (add-hook 'org-mode-hook 'visual-line-mode) (add-hook 'org-mode-hook (lambda () (electric-indent-local-mode -1))) @@ -812,6 +882,15 @@ Temporarily disables notifications during the fetch." (advice-add 'org-read-date :around #'my-org-read-date-always-with-time) +(use-package org-crypt + :ensure nil + :after org + :config + (org-crypt-use-before-save-magic) + (setq org-crypt-key "1ED9D600A040D0AF193AAF30B877C0AC3B080FBB") + (setq org-tags-exclude-from-inheritance '("crypt")) + (add-hook 'org-mode-hook (lambda () (setq-local auto-save-default nil)))) + (use-package org-appear :ensure t :commands (org-appear-mode) @@ -2005,28 +2084,28 @@ Timers that expired while Emacs was closed fire immediately." " ") cand)))) -(use-package vertico-posframe - :ensure t - :init - (setq vertico-posframe-parameters '((left-fringe . 12) ;; Fringes - (right-fringe . 12) - (accept-focus . t))) - ;; (undecorated . nil) ;; Rounded frame +;; (use-package vertico-posframe +;; :ensure t +;; :init +;; (setq vertico-posframe-parameters '((left-fringe . 12) ;; Fringes +;; (right-fringe . 12) +;; (accept-focus . t))) +;; ;; (undecorated . nil) ;; Rounded frame - :config - (vertico-posframe-mode 1) - (setq vertico-posframe-width 96 ;; Narrow frame - vertico-posframe-height vertico-count ;; Default height - ;; Don't create posframe for these commands - vertico-multiform-commands '((consult-line (:not posframe)) - (consult-ripgrep (:not posframe))))) +;; :config +;; (vertico-posframe-mode 1) +;; (setq vertico-posframe-width 96 ;; Narrow frame +;; vertico-posframe-height vertico-count ;; Default height +;; ;; Don't create posframe for these commands +;; vertico-multiform-commands '((consult-line (:not posframe)) +;; (consult-ripgrep (:not posframe))))) (use-package corfu :ensure t :custom (corfu-cycle t) (corfu-auto t) - (corfu-auto-delay 0.2) + (corfu-auto-delay 0.001) (corfu-auto-prefix 2) :init (global-corfu-mode) @@ -2091,54 +2170,6 @@ Timers that expired while Emacs was closed fire immediately." "\\`\\*Native-compile-Log\\*\\'" "\\`\\*Async-native-compile-log\\*\\'"))) -(use-package markdown-mode - :ensure t - :hook (markdown-mode . nb/markdown-unhighlight) - :init - (setq-default abbrev-mode t) - :config - (defvar nb/current-line '(0 . 0) - "(start . end) of current line in current buffer") - (make-variable-buffer-local 'nb/current-line) - - (defun nb/unhide-current-line (limit) - "Font-lock function" - (let ((start (max (point) (car nb/current-line))) - (end (min limit (cdr nb/current-line)))) - (when (< start end) - (remove-text-properties start end - '(invisible t display "" composition "")) - (goto-char limit) - t))) - - (defun nb/refontify-on-linemove () - "Post-command-hook" - (let* ((start (line-beginning-position)) - (end (line-beginning-position 2)) - (needs-update (not (equal start (car nb/current-line))))) - (setq nb/current-line (cons start end)) - (when needs-update - ;; FIX: Verwende jit-lock-refontify statt font-lock-fontify-block - (jit-lock-refontify start end)))) - - (defun nb/markdown-unhighlight () - "Enable markdown concealling" - (interactive) - (markdown-toggle-markup-hiding 'toggle) - (font-lock-add-keywords nil '((nb/unhide-current-line)) t) - ;; FIX: Stelle sicher dass jit-lock aktiv ist - (jit-lock-register #'font-lock-fontify-region) - (add-hook 'post-command-hook #'nb/refontify-on-linemove nil t)) - - :custom-face - (markdown-header-delimiter-face ((t (:foreground "#616161" :height 0.9)))) - (markdown-header-face-1 ((t (:height 1.6 :foreground "#A3BE8C" :weight extra-bold :inherit markdown-header-face)))) - (markdown-header-face-2 ((t (:height 1.4 :foreground "#EBCB8B" :weight extra-bold :inherit markdown-header-face)))) - (markdown-header-face-3 ((t (:height 1.2 :foreground "#D08770" :weight extra-bold :inherit markdown-header-face)))) - (markdown-header-face-4 ((t (:height 1.15 :foreground "#BF616A" :weight bold :inherit markdown-header-face)))) - (markdown-header-face-5 ((t (:height 1.1 :foreground "#b48ead" :weight bold :inherit markdown-header-face)))) - (markdown-header-face-6 ((t (:height 1.05 :foreground "#5e81ac" :weight semi-bold :inherit markdown-header-face))))) - ;; (use-package treesit-auto ;; :ensure t ;; :defer t @@ -2171,7 +2202,9 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (use-package marginalia :ensure t :hook - (after-init . marginalia-mode)) + (after-init . marginalia-mode) + :config + (setq marginalia-align 'center)) (use-package eglot :ensure nil @@ -2236,7 +2269,7 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi :config (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs - '(python-mode . ("rass" "python"))))) + '(python-mode . ("rass" "--" "pyrefly" "lsp" "--" "ruff" "server"))))) (use-package pyvenv :ensure t @@ -2282,7 +2315,7 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (setq js-indent-level 2) (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs - '(js-mode . ("rass" "tslint"))))) + '(js-mode . ("rass" "--" "typescript-language-server" "--stdio" "--" "vscode-eslint-language-server" "--stdio"))))) (use-package typescript-ts-mode :ensure nil @@ -2293,7 +2326,7 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi :config (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs - '((typescript-ts-mode tsx-ts-mode) . ("rass" "tslint"))))) + '(js-mode . ("rass" "--" "typescript-language-server" "--stdio" "--" "vscode-eslint-language-server" "--stdio"))))) (use-package web-mode :ensure t @@ -2430,17 +2463,17 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (global-set-key (kbd "C-c o s") #'my-org-sidecar-left) -(use-package visual-fill-column - :ensure t - :hook ((text-mode . visual-line-mode) ;; Soft-Wrapping aktivieren - (text-mode . visual-fill-column-mode)) ;; Das Zentrieren aktivieren - :custom - (visual-fill-column-width 110) ;; Maximale Breite des Textes (statt 0.67 relativ) - (visual-fill-column-center-text nil) - (visual-fill-column-enable-sensible-window-split t) - :config - (when (display-graphic-p) - (setq-default visual-fill-column-center-text t))) +;; (use-package visual-fill-column +;; :ensure t +;; :hook ((text-mode . visual-line-mode) ;; Soft-Wrapping aktivieren +;; (text-mode . visual-fill-column-mode)) ;; Das Zentrieren aktivieren +;; :custom +;; (visual-fill-column-width 110) ;; Maximale Breite des Textes (statt 0.67 relativ) +;; (visual-fill-column-center-text nil) +;; (visual-fill-column-enable-sensible-window-split t) +;; :config +;; (when (display-graphic-p) +;; (setq-default visual-fill-column-center-text t))) ;; (use-package diff-hl ;; :defer t @@ -2958,6 +2991,29 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (desc (tmr-mode-line--format-description timer))) (concat remaining desc))) + (maple-modeline-define-segment mu4e-mail + :defines (mu4e-alert-mode-line) + :functions (mu4e-alert-view-unread-mails) + :if (and (bound-and-true-p mu4e-alert-mode-line) + (stringp mu4e-alert-mode-line) + (not (string-empty-p (string-trim mu4e-alert-mode-line)))) + :format + (let* ((raw mu4e-alert-mode-line) + ;; Extract the count number from the mode-line string (e.g. " [5] ") + (count-str (if (string-match "\\[\\([0-9]+\\)\\]" raw) + (match-string 1 raw) + (string-trim raw)))) + (concat + (maple-modeline--concat-or + (maple-modeline--icon 'mdicon "nf-md-email" face) + "Mail") + " " (propertize count-str + 'face face + 'mouse-face 'mode-line-highlight + 'help-echo "View unread emails" + 'local-map (make-mode-line-mouse-map + 'mouse-1 'mu4e-alert-view-unread-mails))))) + (maple-modeline-define my-custom-style :left ((evil :left (bar :left "")) macro @@ -2969,6 +3025,7 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi :right (narrow org-clock-task tmr-timer + mu4e-mail python my-modeline-time process @@ -2982,6 +3039,7 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi version-control) :right (org-clock-task tmr-timer + mu4e-mail position)) (setq maple-modeline-style @@ -3025,9 +3083,9 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (blink-cursor-mode 0) (setq-default cursor-type 'box) -(defvar cashmere/font-height 180) +(defvar cashmere/font-height 200) -(set-face-attribute 'default nil :family "Maple Mono NF" :weight 'regular :height cashmere/font-height) +(set-face-attribute 'default nil :family "Hack Nerd Font" :weight 'regular :height cashmere/font-height) (set-face-attribute 'fixed-pitch nil :family "RobotoMono Nerd Font" :weight 'regular) (set-face-attribute 'variable-pitch nil :family "Poppins" :weight 'regular :height 1.1) @@ -3943,6 +4001,8 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi :config (setq mu4e-mu-binary (executable-find "mu")) + (setq mu4e-split-view 'vertical) + (setq mu4e-thread-mode t) (setq mu4e-maildir "~/Mails") (setq mu4e-get-mail-command (concat (executable-find "mbsync") " -a")) (setq mu4e-update-interval 300) @@ -4003,6 +4063,38 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (add-hook 'message-send-mail-hook 'mu4e-set-msmtp-account)) +(use-package mu4e-alert + :ensure t + :after mu4e + :config + ;; Use libnotify for desktop notifications (notify-send / swaync) + (mu4e-alert-set-default-style 'libnotify) + + ;; Interesting mail query: unread, exclude trash and sent folders + (setq mu4e-alert-interesting-mail-query + (concat "flag:unread AND NOT flag:trashed" + " AND NOT maildir:\"/autistici/Sent\"" + " AND NOT maildir:\"/cashmere/cashmere/Sent\"")) + + ;; Show both count and per-sender subject notifications + (setq mu4e-alert-email-notification-types '(count subjects)) + + ;; Group desktop notifications by maildir (per-account grouping) + (setq mu4e-alert-group-by :maildir) + + ;; Disable X11 urgency hints (does not work on Wayland) + (setq mu4e-alert-set-window-urgency nil) + + ;; Enable desktop notifications + (mu4e-alert-enable-notifications) + + ;; Enable mode-line data updates (populates mu4e-alert-mode-line variable). + ;; We strip the default global-mode-string entry afterwards since we use + ;; a custom maple-modeline segment instead. + (mu4e-alert-enable-mode-line-display) + (setq global-mode-string + (delete '(:eval mu4e-alert-mode-line) global-mode-string))) + (use-package denote-project-notes :ensure t :after org @@ -4170,4 +4262,24 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi "e T h" '(tab-previous :wk "prev tab") "e T r" '(tab-recent :wk "recent tab"))) +(use-package arrow + :ensure t + :elpaca (arrow :host github :repo "vmargb/arrow.el") + :config + (setq arrow-mode 1)) + +(use-package colorful-mode + ;; :diminish + :ensure t ; Optional + :custom + (colorful-use-prefix t) + (colorful-only-strings 'only-prog) + (css-fontify-colors nil) + :config + (global-colorful-mode t) + (add-to-list 'global-colorful-modes 'helpful-mode)) + +(use-package plz + :ensure t) + (provide 'init) @@ -811,6 +811,67 @@ Not necessary but an eyecandy to look at! (setq gptel-backends (list my/openrouter-backend))) #+end_src +** markdown-mode + +#+begin_src emacs-lisp +(use-package markdown-mode + :ensure t + :hook (markdown-mode . nb/markdown-unhighlight) + :init + (setq-default abbrev-mode t) + :config + (defvar nb/current-line '(0 . 0) + "(start . end) of current line in current buffer") + (make-variable-buffer-local 'nb/current-line) + + (defun nb/unhide-current-line (limit) + "Font-lock function" + (let ((start (max (point) (car nb/current-line))) + (end (min limit (cdr nb/current-line)))) + (when (< start end) + (remove-text-properties start end + '(invisible t display "" composition "")) + (goto-char limit) + t))) + + (defun nb/refontify-on-linemove () + "Post-command-hook" + (let* ((start (line-beginning-position)) + (end (line-beginning-position 2)) + (needs-update (not (equal start (car nb/current-line))))) + (setq nb/current-line (cons start end)) + (when needs-update + ;; FIX: Verwende jit-lock-refontify statt font-lock-fontify-block + (jit-lock-refontify start end)))) + + (defun nb/markdown-unhighlight () + "Enable markdown concealling" + (interactive) + (markdown-toggle-markup-hiding 'toggle) + (font-lock-add-keywords nil '((nb/unhide-current-line)) t) + ;; FIX: Stelle sicher dass jit-lock aktiv ist + (jit-lock-register #'font-lock-fontify-region) + (add-hook 'post-command-hook #'nb/refontify-on-linemove nil t)) + + :custom-face + (markdown-header-delimiter-face ((t (:foreground "#616161" :height 0.9)))) + (markdown-header-face-1 ((t (:height 1.6 :foreground "#A3BE8C" :weight extra-bold :inherit markdown-header-face)))) + (markdown-header-face-2 ((t (:height 1.4 :foreground "#EBCB8B" :weight extra-bold :inherit markdown-header-face)))) + (markdown-header-face-3 ((t (:height 1.2 :foreground "#D08770" :weight extra-bold :inherit markdown-header-face)))) + (markdown-header-face-4 ((t (:height 1.15 :foreground "#BF616A" :weight bold :inherit markdown-header-face)))) + (markdown-header-face-5 ((t (:height 1.1 :foreground "#b48ead" :weight bold :inherit markdown-header-face)))) + (markdown-header-face-6 ((t (:height 1.05 :foreground "#5e81ac" :weight semi-bold :inherit markdown-header-face))))) +#+end_src + +** eca /(editor code assistant)/ + +#+begin_src emacs-lisp +(use-package eca + :ensure (:host github :repo "editor-code-assistant/eca-emacs" + :files ("*.el")) + :defer t) +#+end_src + * eldoc #+begin_src emacs-lisp @@ -866,6 +927,7 @@ Not necessary but an eyecandy to look at! :ensure t :config (setq flycheck-global-modes '(not org-mode)) + (setq flycheck-display-errors-function nil) (add-hook 'after-init-hook #'global-flycheck-mode)) #+end_src @@ -906,6 +968,23 @@ Not necessary but an eyecandy to look at! (global-flycheck-eglot-mode 1)) #+end_src +** sideline-flycheck + +#+begin_src emacs-lisp +(use-package sideline + :ensure t + :hook (flycheck-mode . sideline-mode) + :config + (setq sideline-delay 0.001) + :custom + (sideline-backends-right '(sideline-flycheck)) + (sideline-display-backend-name t)) + +(use-package sideline-flycheck + :ensure t + :hook (flycheck-mode . sideline-flycheck-setup)) +#+end_src + * xref #+begin_src emacs-lisp @@ -926,23 +1005,26 @@ Not necessary but an eyecandy to look at! (setq org-directory "~/org/") (use-package org :ensure nil + :custom + (org-list-demote-modify-bullet '(("+" . "-") ("-" . "+"))) :config (require 'org-tempo) (custom-set-faces - '(org-document-title ((t (:height 1.6)))) - '(outline-1 ((t (:height 1.25)))) - '(outline-2 ((t (:height 1.2)))) - '(outline-3 ((t (:height 1.2)))) - '(outline-4 ((t (:height 1.2)))) + '(org-document-title ((t (:height 1.5)))) + '(outline-1 ((t (:height 1.5)))) + '(outline-2 ((t (:height 1.4)))) + '(outline-3 ((t (:height 1.3)))) + '(outline-4 ((t (:height 1.25)))) '(outline-5 ((t (:height 1.2)))) - '(outline-6 ((t (:height 1.2)))) - '(outline-7 ((t (:height 1.2)))) - '(outline-8 ((t (:height 1.2)))) - '(outline-9 ((t (:height 1.2))))) + '(outline-6 ((t (:height 1.175)))) + '(outline-7 ((t (:height 1.0)))) + '(outline-8 ((t (:height 1.0)))) + '(outline-9 ((t (:height 1.0))))) (setq org-startup-folded 'overview) - (setq org-adapt-indentation t + (setq + ;; org-adapt-indentation t ;; org-time-stamp-rounding-minutes '(5 5) org-return-follows-link t org-hide-leading-stars t @@ -960,7 +1042,7 @@ Not necessary but an eyecandy to look at! org-insert-heading-respect-content t) (add-hook 'org-mode-hook 'variable-pitch-mode) - (add-hook 'org-mode-hook 'org-indent-mode) + ;; (add-hook 'org-mode-hook 'org-indent-mode) (add-hook 'org-mode-hook 'visual-line-mode) (add-hook 'org-mode-hook (lambda () (electric-indent-local-mode -1))) @@ -986,6 +1068,23 @@ Not necessary but an eyecandy to look at! (advice-add 'org-read-date :around #'my-org-read-date-always-with-time) #+end_src +** org-crypt + +Encrypt org headings tagged with =:crypt:= using GPG. Entries are +automatically encrypted before save and can be decrypted in-place with +=M-x org-decrypt-entry= (or =org-decrypt-entries= for all). + +#+begin_src emacs-lisp +(use-package org-crypt + :ensure nil + :after org + :config + (org-crypt-use-before-save-magic) + (setq org-crypt-key "1ED9D600A040D0AF193AAF30B877C0AC3B080FBB") + (setq org-tags-exclude-from-inheritance '("crypt")) + (add-hook 'org-mode-hook (lambda () (setq-local auto-save-default nil)))) +#+end_src + ** org-appear #+begin_src emacs-lisp @@ -2416,21 +2515,21 @@ Timers that expired while Emacs was closed fire immediately." ** vertico-posframe #+begin_src emacs-lisp -(use-package vertico-posframe - :ensure t - :init - (setq vertico-posframe-parameters '((left-fringe . 12) ;; Fringes - (right-fringe . 12) - (accept-focus . t))) - ;; (undecorated . nil) ;; Rounded frame +;; (use-package vertico-posframe +;; :ensure t +;; :init +;; (setq vertico-posframe-parameters '((left-fringe . 12) ;; Fringes +;; (right-fringe . 12) +;; (accept-focus . t))) +;; ;; (undecorated . nil) ;; Rounded frame - :config - (vertico-posframe-mode 1) - (setq vertico-posframe-width 96 ;; Narrow frame - vertico-posframe-height vertico-count ;; Default height - ;; Don't create posframe for these commands - vertico-multiform-commands '((consult-line (:not posframe)) - (consult-ripgrep (:not posframe))))) +;; :config +;; (vertico-posframe-mode 1) +;; (setq vertico-posframe-width 96 ;; Narrow frame +;; vertico-posframe-height vertico-count ;; Default height +;; ;; Don't create posframe for these commands +;; vertico-multiform-commands '((consult-line (:not posframe)) +;; (consult-ripgrep (:not posframe))))) #+end_src ** corfu @@ -2441,7 +2540,7 @@ Timers that expired while Emacs was closed fire immediately." :custom (corfu-cycle t) (corfu-auto t) - (corfu-auto-delay 0.2) + (corfu-auto-delay 0.001) (corfu-auto-prefix 2) :init (global-corfu-mode) @@ -2515,57 +2614,9 @@ Timers that expired while Emacs was closed fire immediately." "\\`\\*Async-native-compile-log\\*\\'"))) #+end_src -* markdown-mode - -#+begin_src emacs-lisp -(use-package markdown-mode - :ensure t - :hook (markdown-mode . nb/markdown-unhighlight) - :init - (setq-default abbrev-mode t) - :config - (defvar nb/current-line '(0 . 0) - "(start . end) of current line in current buffer") - (make-variable-buffer-local 'nb/current-line) - - (defun nb/unhide-current-line (limit) - "Font-lock function" - (let ((start (max (point) (car nb/current-line))) - (end (min limit (cdr nb/current-line)))) - (when (< start end) - (remove-text-properties start end - '(invisible t display "" composition "")) - (goto-char limit) - t))) - - (defun nb/refontify-on-linemove () - "Post-command-hook" - (let* ((start (line-beginning-position)) - (end (line-beginning-position 2)) - (needs-update (not (equal start (car nb/current-line))))) - (setq nb/current-line (cons start end)) - (when needs-update - ;; FIX: Verwende jit-lock-refontify statt font-lock-fontify-block - (jit-lock-refontify start end)))) - - (defun nb/markdown-unhighlight () - "Enable markdown concealling" - (interactive) - (markdown-toggle-markup-hiding 'toggle) - (font-lock-add-keywords nil '((nb/unhide-current-line)) t) - ;; FIX: Stelle sicher dass jit-lock aktiv ist - (jit-lock-register #'font-lock-fontify-region) - (add-hook 'post-command-hook #'nb/refontify-on-linemove nil t)) - - :custom-face - (markdown-header-delimiter-face ((t (:foreground "#616161" :height 0.9)))) - (markdown-header-face-1 ((t (:height 1.6 :foreground "#A3BE8C" :weight extra-bold :inherit markdown-header-face)))) - (markdown-header-face-2 ((t (:height 1.4 :foreground "#EBCB8B" :weight extra-bold :inherit markdown-header-face)))) - (markdown-header-face-3 ((t (:height 1.2 :foreground "#D08770" :weight extra-bold :inherit markdown-header-face)))) - (markdown-header-face-4 ((t (:height 1.15 :foreground "#BF616A" :weight bold :inherit markdown-header-face)))) - (markdown-header-face-5 ((t (:height 1.1 :foreground "#b48ead" :weight bold :inherit markdown-header-face)))) - (markdown-header-face-6 ((t (:height 1.05 :foreground "#5e81ac" :weight semi-bold :inherit markdown-header-face))))) -#+end_src +#+begin_comment +markdown-mode moved before eca — see section before eca block +#+end_comment * treesit-auto @@ -2620,7 +2671,9 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (use-package marginalia :ensure t :hook - (after-init . marginalia-mode)) + (after-init . marginalia-mode) + :config + (setq marginalia-align 'center)) #+end_src * programming @@ -2722,10 +2775,7 @@ Because I have to and not want to. :config (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs - '(python-mode . ("rass" "python"))))) - - - + '(python-mode . ("rass" "--" "pyrefly" "lsp" "--" "ruff" "server"))))) #+end_src *** pyvenv @@ -2799,7 +2849,7 @@ Vue files use =web-mode= with the =rass vuetail= preset (=vue-language-server= + (setq js-indent-level 2) (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs - '(js-mode . ("rass" "tslint"))))) + '(js-mode . ("rass" "--" "typescript-language-server" "--stdio" "--" "vscode-eslint-language-server" "--stdio"))))) #+end_src *** typescript-ts-mode @@ -2817,7 +2867,7 @@ Requires tree-sitter grammars: =M-x treesit-install-language-grammar RET typescr :config (with-eval-after-load 'eglot (add-to-list 'eglot-server-programs - '((typescript-ts-mode tsx-ts-mode) . ("rass" "tslint"))))) + '(js-mode . ("rass" "--" "typescript-language-server" "--stdio" "--" "vscode-eslint-language-server" "--stdio"))))) #+end_src *** web-mode (Vue) @@ -3018,17 +3068,17 @@ Requires tree-sitter grammars: =M-x treesit-install-language-grammar RET typescr * visual-fill-column #+begin_src emacs-lisp -(use-package visual-fill-column - :ensure t - :hook ((text-mode . visual-line-mode) ;; Soft-Wrapping aktivieren - (text-mode . visual-fill-column-mode)) ;; Das Zentrieren aktivieren - :custom - (visual-fill-column-width 110) ;; Maximale Breite des Textes (statt 0.67 relativ) - (visual-fill-column-center-text nil) - (visual-fill-column-enable-sensible-window-split t) - :config - (when (display-graphic-p) - (setq-default visual-fill-column-center-text t))) +;; (use-package visual-fill-column +;; :ensure t +;; :hook ((text-mode . visual-line-mode) ;; Soft-Wrapping aktivieren +;; (text-mode . visual-fill-column-mode)) ;; Das Zentrieren aktivieren +;; :custom +;; (visual-fill-column-width 110) ;; Maximale Breite des Textes (statt 0.67 relativ) +;; (visual-fill-column-center-text nil) +;; (visual-fill-column-enable-sensible-window-split t) +;; :config +;; (when (display-graphic-p) +;; (setq-default visual-fill-column-center-text t))) #+end_src * diff-hl @@ -3955,6 +4005,29 @@ every =emacsclient -c= frame gets its own set of perspectives. (desc (tmr-mode-line--format-description timer))) (concat remaining desc))) + (maple-modeline-define-segment mu4e-mail + :defines (mu4e-alert-mode-line) + :functions (mu4e-alert-view-unread-mails) + :if (and (bound-and-true-p mu4e-alert-mode-line) + (stringp mu4e-alert-mode-line) + (not (string-empty-p (string-trim mu4e-alert-mode-line)))) + :format + (let* ((raw mu4e-alert-mode-line) + ;; Extract the count number from the mode-line string (e.g. " [5] ") + (count-str (if (string-match "\\[\\([0-9]+\\)\\]" raw) + (match-string 1 raw) + (string-trim raw)))) + (concat + (maple-modeline--concat-or + (maple-modeline--icon 'mdicon "nf-md-email" face) + "Mail") + " " (propertize count-str + 'face face + 'mouse-face 'mode-line-highlight + 'help-echo "View unread emails" + 'local-map (make-mode-line-mouse-map + 'mouse-1 'mu4e-alert-view-unread-mails))))) + (maple-modeline-define my-custom-style :left ((evil :left (bar :left "")) macro @@ -3966,6 +4039,7 @@ every =emacsclient -c= frame gets its own set of perspectives. :right (narrow org-clock-task tmr-timer + mu4e-mail python my-modeline-time process @@ -3979,6 +4053,7 @@ every =emacsclient -c= frame gets its own set of perspectives. version-control) :right (org-clock-task tmr-timer + mu4e-mail position)) (setq maple-modeline-style @@ -4032,9 +4107,9 @@ every =emacsclient -c= frame gets its own set of perspectives. (blink-cursor-mode 0) (setq-default cursor-type 'box) -(defvar cashmere/font-height 180) +(defvar cashmere/font-height 200) -(set-face-attribute 'default nil :family "Maple Mono NF" :weight 'regular :height cashmere/font-height) +(set-face-attribute 'default nil :family "Hack Nerd Font" :weight 'regular :height cashmere/font-height) (set-face-attribute 'fixed-pitch nil :family "RobotoMono Nerd Font" :weight 'regular) (set-face-attribute 'variable-pitch nil :family "Poppins" :weight 'regular :height 1.1) @@ -5115,6 +5190,8 @@ every =emacsclient -c= frame gets its own set of perspectives. :config (setq mu4e-mu-binary (executable-find "mu")) + (setq mu4e-split-view 'vertical) + (setq mu4e-thread-mode t) (setq mu4e-maildir "~/Mails") (setq mu4e-get-mail-command (concat (executable-find "mbsync") " -a")) (setq mu4e-update-interval 300) @@ -5176,6 +5253,42 @@ every =emacsclient -c= frame gets its own set of perspectives. (add-hook 'message-send-mail-hook 'mu4e-set-msmtp-account)) #+end_src +** mu4e-alerts + +#+begin_src emacs-lisp +(use-package mu4e-alert + :ensure t + :after mu4e + :config + ;; Use libnotify for desktop notifications (notify-send / swaync) + (mu4e-alert-set-default-style 'libnotify) + + ;; Interesting mail query: unread, exclude trash and sent folders + (setq mu4e-alert-interesting-mail-query + (concat "flag:unread AND NOT flag:trashed" + " AND NOT maildir:\"/autistici/Sent\"" + " AND NOT maildir:\"/cashmere/cashmere/Sent\"")) + + ;; Show both count and per-sender subject notifications + (setq mu4e-alert-email-notification-types '(count subjects)) + + ;; Group desktop notifications by maildir (per-account grouping) + (setq mu4e-alert-group-by :maildir) + + ;; Disable X11 urgency hints (does not work on Wayland) + (setq mu4e-alert-set-window-urgency nil) + + ;; Enable desktop notifications + (mu4e-alert-enable-notifications) + + ;; Enable mode-line data updates (populates mu4e-alert-mode-line variable). + ;; We strip the default global-mode-string entry afterwards since we use + ;; a custom maple-modeline segment instead. + (mu4e-alert-enable-mode-line-display) + (setq global-mode-string + (delete '(:eval mu4e-alert-mode-line) global-mode-string))) +#+end_src + * color-tools this package provides the ability to display rgb and hex colors. @@ -5370,6 +5483,39 @@ this package provides the ability to display rgb and hex colors. "e T r" '(tab-recent :wk "recent tab"))) #+end_src +* arrow.el + +#+begin_src emacs-lisp +(use-package arrow + :ensure t + :elpaca (arrow :host github :repo "vmargb/arrow.el") + :config + (setq arrow-mode 1)) +#+end_src + +* colorful-mode + +#+begin_src emacs-lisp +(use-package colorful-mode + ;; :diminish + :ensure t ; Optional + :custom + (colorful-use-prefix t) + (colorful-only-strings 'only-prog) + (css-fontify-colors nil) + :config + (global-colorful-mode t) + (add-to-list 'global-colorful-modes 'helpful-mode)) +#+end_src + + +* plz + +#+begin_src emacs-lisp +(use-package plz + :ensure t) +#+end_src + * provide init #+begin_src emacs-lisp diff --git a/org-clock-save.el b/org-clock-save.el index 5954bd1..d8ea93b 100644 --- a/org-clock-save.el +++ b/org-clock-save.el @@ -1,2 +1,2 @@ -;; org-clock-save.el - md at <2026-02-26 Thu 18:08> -*- lexical-binding: t; -*- -(setq org-clock-stored-history '()) +;; org-clock-save.el - md at <2026-03-18 Wed 04:00> -*- lexical-binding: t; -*- +(setq org-clock-stored-history '(("/home/cashmere/org/journal/20260318T005111--wednesday-18-march-2026__agenda_journal.org" . 241) ("/home/cashmere/org/journal/20260317T014434--tuesday-17-march-2026__agenda_journal.org" . 911) ("/home/cashmere/org/journal/20260317T014434--tuesday-17-march-2026__agenda_journal.org" . 137))) diff --git a/themes/noctalia-theme.el b/themes/noctalia-theme.el index eacacac..c53dce6 100644 --- a/themes/noctalia-theme.el +++ b/themes/noctalia-theme.el @@ -19,55 +19,55 @@ (deftheme noctalia "Noctalia theme with proper color contrast.") (let* (;; Core surface colors - (bg "#0c1017") - (fg "#5c8ac4") - (surface "#0c1017") - (on-surface "#5c8ac4") - (on-surface-variant "#9b6bc1") - (surface-variant "#11151d") - (surface-container "#11151d") - (surface-container-low "#0e121a") - (surface-container-lowest "#0d1118") - (surface-container-high "#191e2a") - (surface-container-highest "#202837") + (bg "#222327") + (fg "#ffffff") + (surface "#222327") + (on-surface "#ffffff") + (on-surface-variant "#dedede") + (surface-variant "#393939") + (surface-container "#393939") + (surface-container-low "#2d2e30") + (surface-container-lowest "#26272a") + (surface-container-high "#434343") + (surface-container-highest "#4d4d4d") ;; Accent colors (always readable on surface) - (primary "#c4a82e") - (secondary "#d14358") - (tertiary "#00a66c") - (err "#b32d2d") + (primary "#4e9dff") + (secondary "#6adf73") + (tertiary "#cd7bf6") + (err "#ff6e65") ;; Container colors (for BACKGROUNDS only, never as foreground text) - (primary-container "#443909") - (secondary-container "#560c17") - (tertiary-container "#004c32") - (err-container "#430a0a") + (primary-container "#00459b") + (secondary-container "#0f8719") + (tertiary-container "#7f00be") + (err-container "#b20a00") ;; On-color text (for text ON accent backgrounds) - (on-primary "#0e1015") - (on-secondary "#0e1015") - (on-tertiary "#0e1015") - (on-err "#0e1015") + (on-primary "#222327") + (on-secondary "#222327") + (on-tertiary "#222327") + (on-err "#222327") ;; On-container text (for text on container backgrounds) - (on-primary-container "#f5efd6") - (on-secondary-container "#f5d6db") - (on-tertiary-container "#ccffed") - (on-err-container "#f5d6d6") + (on-primary-container "#cce3ff") + (on-secondary-container "#f5fdf5") + (on-tertiary-container "#edcffc") + (on-err-container "#ffcfcc") ;; Outline colors - (outline-color "#45a0d6") - (outline-variant "#2578a9") + (outline-color "#6d6d6d") + (outline-variant "#474747") ;; Shadow - (shadow "#090d13") + (shadow "#000000") ;; Auto-lightness variants: lighten in dark mode, darken in light mode ;; Used for heading levels 5-7, rainbow delimiters 5-7, terminal variants - (primary-variant "#dbc464") - (secondary-variant "#a02739") - (tertiary-variant "#00f29e") - (err-variant "#d55858")) + (primary-variant "#0173ff") + (secondary-variant "#2dd039") + (tertiary-variant "#b233f1") + (err-variant "#ff2618")) (custom-theme-set-faces 'noctalia @@ -319,6 +319,913 @@ `(fixed-pitch ((t (:family "monospace")))) `(fixed-pitch-serif ((t (:family "monospace serif")))) `(variable-pitch ((t (:family "sans serif")))) + + ;; === Basic builtins (missing) === + `(bold ((t (:weight bold)))) + `(bold-italic ((t (:weight bold :slant italic)))) + `(italic ((t (:slant italic)))) + `(bookmark-face ((t (:foreground ,primary :weight bold :underline t)))) + `(nobreak-space ((t (:background ,bg :foreground ,fg)))) + `(tooltip ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(trailing-whitespace ((t (:background ,err)))) + `(header-line ((t (:background ,surface-container-low :foreground ,on-surface)))) + `(window-divider ((t (:background ,outline-variant :foreground ,outline-variant)))) + `(window-divider-first-pixel ((t (:background ,outline-variant :foreground ,outline-variant)))) + `(window-divider-last-pixel ((t (:background ,outline-variant :foreground ,outline-variant)))) + + ;; === Font-lock (missing) === + `(font-lock-preprocessor-char-face ((t (:foreground ,on-surface-variant :weight bold)))) + `(font-lock-regexp-grouping-backslash ((t (:foreground ,tertiary :weight bold)))) + `(font-lock-regexp-grouping-construct ((t (:foreground ,secondary :weight bold)))) + + ;; === Isearch === + `(isearch ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) + `(isearch-fail ((t (:background ,err-container :foreground ,on-err-container :weight bold)))) + + ;; === HL-line === + `(hl-line ((t (:background ,surface-container-low :extend t)))) + + ;; === HL-todo === + `(hl-todo ((t (:foreground ,err :weight bold)))) + + ;; === Trailing whitespace & linum === + `(linum ((t (:foreground ,outline-variant)))) + `(linum-relative-current-face ((t (:background ,surface-container :foreground ,on-surface)))) + `(linum-highlight-face ((t (:foreground ,on-surface :weight normal)))) + + ;; === Outline (non-org) === + `(outline-1 ((t (:foreground ,primary :weight ultra-bold)))) + `(outline-2 ((t (:foreground ,secondary :weight bold)))) + `(outline-3 ((t (:foreground ,tertiary :weight bold)))) + `(outline-4 ((t (:foreground ,err)))) + `(outline-5 ((t (:foreground ,primary-variant)))) + `(outline-6 ((t (:foreground ,secondary-variant)))) + `(outline-7 ((t (:foreground ,tertiary-variant)))) + `(outline-8 ((t (:foreground ,on-surface-variant)))) + `(outline-minor-1 ((t (:foreground ,primary :weight ultra-bold)))) + `(outline-minor-2 ((t (:foreground ,secondary :weight bold)))) + `(outline-minor-3 ((t (:foreground ,tertiary :weight bold)))) + `(outline-minor-4 ((t (:foreground ,err)))) + `(outline-minor-5 ((t (:foreground ,primary-variant)))) + `(outline-minor-6 ((t (:foreground ,secondary-variant)))) + `(outline-minor-7 ((t (:foreground ,tertiary-variant)))) + `(outline-minor-8 ((t (:foreground ,on-surface-variant)))) + + ;; === Org (missing faces) === + `(org-archived ((t (:foreground ,outline-color)))) + `(org-block-background ((t (:background ,surface-container-low :extend t)))) + `(org-checkbox-statistics-done ((t (:foreground ,outline-color :weight bold)))) + `(org-checkbox-statistics-todo ((t (:foreground ,tertiary :weight bold)))) + `(org-default ((t (:background ,bg :foreground ,fg)))) + `(org-document-info-keyword ((t (:foreground ,outline-color)))) + `(org-footnote ((t (:foreground ,secondary :underline t)))) + `(org-latex-and-related ((t (:foreground ,on-surface-variant :weight bold)))) + `(org-link ((t (:foreground ,primary :underline t)))) + `(org-list-dt ((t (:foreground ,secondary :weight bold)))) + `(org-priority ((t (:foreground ,err)))) + `(org-property-value ((t (:foreground ,outline-color)))) + `(org-quote ((t (:background ,surface-container :slant italic :extend t)))) + `(org-warning ((t (:foreground ,secondary :weight bold)))) + + ;; === Org agenda === + `(org-agenda-clocking ((t (:background ,secondary-container :foreground ,on-secondary-container)))) + `(org-agenda-current-time ((t (:foreground ,tertiary :weight bold)))) + `(org-agenda-date ((t (:foreground ,primary :weight ultra-bold)))) + `(org-agenda-date-today ((t (:foreground ,primary :weight ultra-bold)))) + `(org-agenda-date-weekend ((t (:foreground ,primary :weight ultra-bold)))) + `(org-agenda-dimmed-todo-face ((t (:foreground ,outline-color)))) + `(org-agenda-done ((t (:foreground ,tertiary)))) + `(org-agenda-structure ((t (:foreground ,on-surface :weight ultra-bold)))) + `(org-imminent-deadline ((t (:foreground ,err)))) + `(org-scheduled ((t (:foreground ,on-surface)))) + `(org-scheduled-previously ((t (:foreground ,on-surface-variant)))) + `(org-scheduled-today ((t (:foreground ,on-surface)))) + `(org-sexp-date ((t (:foreground ,on-surface)))) + `(org-time-grid ((t (:foreground ,outline-variant)))) + `(org-upcoming-deadline ((t (:foreground ,on-surface)))) + `(org-upcoming-distant-deadline ((t (:foreground ,on-surface)))) + `(org-agenda-structure-filter ((t (:foreground ,primary :weight bold)))) + + ;; === Org habit === + `(org-habit-alert-face ((t (:weight bold :background ,secondary-container)))) + `(org-habit-alert-future-face ((t (:weight bold :background ,secondary-container)))) + `(org-habit-clear-face ((t (:weight bold :background ,surface-container-high)))) + `(org-habit-clear-future-face ((t (:weight bold :background ,surface-container)))) + `(org-habit-overdue-face ((t (:weight bold :background ,err-container)))) + `(org-habit-overdue-future-face ((t (:weight bold :background ,err-container)))) + `(org-habit-ready-face ((t (:weight bold :background ,tertiary-container)))) + `(org-habit-ready-future-face ((t (:weight bold :background ,tertiary-container)))) + + ;; === Org journal === + `(org-journal-calendar-entry-face ((t (:foreground ,secondary :slant italic)))) + `(org-journal-calendar-scheduled-face ((t (:foreground ,err :slant italic)))) + `(org-journal-highlight ((t (:foreground ,tertiary)))) + + ;; === Org pomodoro === + `(org-pomodoro-mode-line ((t (:foreground ,err)))) + `(org-pomodoro-mode-line-overtime ((t (:foreground ,secondary :weight bold)))) + + ;; === Org ref === + `(org-ref-acronym-face ((t (:foreground ,primary)))) + `(org-ref-cite-face ((t (:foreground ,secondary :weight light :underline t)))) + `(org-ref-glossary-face ((t (:foreground ,tertiary)))) + `(org-ref-label-face ((t (:foreground ,primary)))) + `(org-ref-ref-face ((t (:foreground ,err :underline t :weight bold)))) + + ;; === Ace-window === + `(aw-leading-char-face ((t (:foreground ,err :height 500 :weight bold)))) + `(aw-background-face ((t (:foreground ,outline-color)))) + + ;; === Alert === + `(alert-high-face ((t (:foreground ,secondary :weight bold)))) + `(alert-low-face ((t (:foreground ,outline-color)))) + `(alert-moderate-face ((t (:foreground ,on-surface-variant :weight bold)))) + `(alert-trivial-face ((t (:foreground ,outline-variant)))) + `(alert-urgent-face ((t (:foreground ,err :weight bold)))) + + ;; === ANSI colors === + `(ansi-color-black ((t (:foreground ,surface-container-lowest)))) + `(ansi-color-red ((t (:foreground ,err)))) + `(ansi-color-green ((t (:foreground ,tertiary)))) + `(ansi-color-yellow ((t (:foreground ,secondary)))) + `(ansi-color-blue ((t (:foreground ,primary)))) + `(ansi-color-magenta ((t (:foreground ,err-variant)))) + `(ansi-color-cyan ((t (:foreground ,primary-variant)))) + `(ansi-color-white ((t (:foreground ,on-surface)))) + `(ansi-color-bright-black ((t (:foreground ,surface-container-high)))) + `(ansi-color-bright-red ((t (:foreground ,err-variant)))) + `(ansi-color-bright-green ((t (:foreground ,tertiary-variant)))) + `(ansi-color-bright-yellow ((t (:foreground ,secondary-variant)))) + `(ansi-color-bright-blue ((t (:foreground ,primary-variant)))) + `(ansi-color-bright-magenta ((t (:foreground ,err)))) + `(ansi-color-bright-cyan ((t (:foreground ,tertiary)))) + `(ansi-color-bright-white ((t (:foreground ,fg)))) + + ;; === Anzu === + `(anzu-replace-highlight ((t (:background ,surface-container :foreground ,err :weight bold :strike-through t)))) + `(anzu-replace-to ((t (:background ,surface-container :foreground ,tertiary :weight bold)))) + + ;; === Avy === + `(avy-background-face ((t (:foreground ,outline-color)))) + `(avy-lead-face ((t (:background ,primary :foreground ,on-primary :weight bold)))) + `(avy-lead-face-0 ((t (:background ,primary :foreground ,on-primary :weight bold)))) + `(avy-lead-face-1 ((t (:background ,secondary :foreground ,on-secondary :weight bold)))) + `(avy-lead-face-2 ((t (:background ,tertiary :foreground ,on-tertiary :weight bold)))) + + ;; === Compilation === + `(compilation-column-number ((t (:foreground ,outline-color)))) + `(compilation-error ((t (:foreground ,err :weight bold)))) + `(compilation-info ((t (:foreground ,tertiary)))) + `(compilation-line-number ((t (:foreground ,err)))) + `(compilation-mode-line-exit ((t (:foreground ,tertiary)))) + `(compilation-mode-line-fail ((t (:foreground ,err :weight bold)))) + `(compilation-warning ((t (:foreground ,secondary :slant italic)))) + + ;; === Consult === + `(consult-file ((t (:foreground ,primary)))) + `(consult-separator ((t (:foreground ,outline-variant)))) + `(consult-notes-dir ((t (:foreground ,primary)))) + `(consult-notes-size ((t (:foreground ,secondary)))) + `(consult-notes-name ((t (:foreground ,primary)))) + `(consult-notes-time ((t (:foreground ,primary)))) + + ;; === Counsel === + `(counsel-variable-documentation ((t (:foreground ,primary)))) + + ;; === Custom widget === + `(custom-button ((t (:foreground ,on-surface :background ,surface-container :box (:line-width 3 :style released-button))))) + `(custom-button-mouse ((t (:foreground ,secondary :background ,surface-container :box (:line-width 3 :style released-button))))) + `(custom-button-pressed ((t (:foreground ,bg :background ,surface-container :box (:line-width 3 :style pressed-button))))) + `(custom-button-pressed-unraised ((t (:foreground ,primary :background ,bg :box (:line-width 3 :style pressed-button))))) + `(custom-button-unraised ((t (:foreground ,primary :background ,bg :box (:line-width 3 :style pressed-button))))) + `(custom-changed ((t (:foreground ,primary :background ,bg)))) + `(custom-comment ((t (:foreground ,on-surface :background ,surface-container)))) + `(custom-comment-tag ((t (:foreground ,outline-color)))) + `(custom-documentation ((t (:foreground ,on-surface)))) + `(custom-face-tag ((t (:foreground ,primary :weight bold)))) + `(custom-group-subtitle ((t (:foreground ,secondary :weight bold)))) + `(custom-group-tag ((t (:foreground ,primary :weight bold)))) + `(custom-group-tag-1 ((t (:foreground ,primary)))) + `(custom-invalid ((t (:foreground ,err)))) + `(custom-link ((t (:foreground ,primary :underline t)))) + `(custom-modified ((t (:foreground ,primary)))) + `(custom-rogue ((t (:foreground ,primary :box (:line-width 3))))) + `(custom-saved ((t (:foreground ,tertiary :weight bold)))) + `(custom-set ((t (:foreground ,secondary :background ,bg)))) + `(custom-state ((t (:foreground ,tertiary)))) + `(custom-themed ((t (:foreground ,secondary :background ,bg)))) + `(custom-variable-button ((t (:foreground ,tertiary :underline t)))) + `(custom-variable-obsolete ((t (:foreground ,outline-color :background ,bg)))) + `(custom-variable-tag ((t (:foreground ,primary :underline t :extend unspecified)))) + `(custom-visibility ((t (:foreground ,secondary :height 0.8 :underline t)))) + + ;; === Diff === + `(diff-added ((t (:foreground ,on-tertiary-container :background ,tertiary-container :extend t)))) + `(diff-indicator-added ((t (:foreground ,on-tertiary-container :weight bold :background ,tertiary-container :extend t)))) + `(diff-refine-added ((t (:foreground ,on-tertiary-container :weight bold :background ,tertiary-container :extend t)))) + `(diff-changed ((t (:foreground ,on-secondary-container :background ,secondary-container :extend t)))) + `(diff-indicator-changed ((t (:foreground ,on-secondary-container :weight bold :background ,secondary-container :extend t)))) + `(diff-refine-changed ((t (:foreground ,on-secondary-container :weight bold :background ,secondary-container :extend t)))) + `(diff-removed ((t (:foreground ,on-err-container :background ,err-container :extend t)))) + `(diff-indicator-removed ((t (:foreground ,on-err-container :weight bold :background ,err-container :extend t)))) + `(diff-refine-removed ((t (:foreground ,on-err-container :weight bold :background ,err-container :extend t)))) + `(diff-header ((t (:foreground ,on-surface-variant)))) + `(diff-file-header ((t (:foreground ,primary :weight bold)))) + `(diff-hunk-header ((t (:foreground ,on-primary-container :background ,primary-container :extend t)))) + `(diff-function ((t (:foreground ,on-primary-container :background ,primary-container :extend t)))) + + ;; === Diff-hl === + `(diff-hl-change ((t (:foreground ,secondary :background ,secondary-container)))) + `(diff-hl-delete ((t (:foreground ,err :background ,err-container)))) + `(diff-hl-insert ((t (:foreground ,tertiary :background ,tertiary-container)))) + + ;; === Dired (missing faces) === + `(dired-mark ((t (:foreground ,secondary :weight bold)))) + `(dired-perm-write ((t (:foreground ,err :underline t)))) + `(dired-warning ((t (:foreground ,secondary)))) + + ;; === Diredfl === + `(diredfl-autofile-name ((t (:foreground ,outline-variant)))) + `(diredfl-compressed-file-name ((t (:foreground ,primary)))) + `(diredfl-compressed-file-suffix ((t (:foreground ,secondary)))) + `(diredfl-date-time ((t (:foreground ,primary :weight light)))) + `(diredfl-deletion ((t (:foreground ,err :weight bold)))) + `(diredfl-deletion-file-name ((t (:foreground ,err)))) + `(diredfl-dir-heading ((t (:foreground ,primary :weight bold)))) + `(diredfl-dir-name ((t (:foreground ,primary)))) + `(diredfl-dir-priv ((t (:foreground ,primary)))) + `(diredfl-exec-priv ((t (:foreground ,err)))) + `(diredfl-executable-tag ((t (:foreground ,tertiary)))) + `(diredfl-file-name ((t (:foreground ,on-surface)))) + `(diredfl-file-suffix ((t (:foreground ,on-surface-variant)))) + `(diredfl-flag-mark ((t (:foreground ,on-secondary-container :background ,secondary-container :weight bold)))) + `(diredfl-flag-mark-line ((t (:background ,secondary-container)))) + `(diredfl-ignored-file-name ((t (:foreground ,outline-color)))) + `(diredfl-link-priv ((t (:foreground ,primary)))) + `(diredfl-no-priv ((t (:foreground ,on-surface)))) + `(diredfl-number ((t (:foreground ,primary)))) + `(diredfl-other-priv ((t (:foreground ,tertiary)))) + `(diredfl-rare-priv ((t (:foreground ,on-surface)))) + `(diredfl-read-priv ((t (:foreground ,secondary)))) + `(diredfl-symlink ((t (:foreground ,secondary)))) + `(diredfl-tagged-autofile-name ((t (:foreground ,outline-color)))) + `(diredfl-write-priv ((t (:foreground ,err)))) + + ;; === Dired-subtree === + `(dired-subtree-depth-1-face ((t (:background ,surface-container-low)))) + `(dired-subtree-depth-2-face ((t (:background ,surface-container-low)))) + `(dired-subtree-depth-3-face ((t (:background ,surface-container-low)))) + `(dired-subtree-depth-4-face ((t (:background ,surface-container-low)))) + `(dired-subtree-depth-5-face ((t (:background ,surface-container-low)))) + `(dired-subtree-depth-6-face ((t (:background ,surface-container-low)))) + + ;; === Dired-k === + `(dired-k-added ((t (:foreground ,tertiary :weight bold)))) + `(dired-k-commited ((t (:foreground ,tertiary :weight bold)))) + `(dired-k-directory ((t (:foreground ,primary :weight bold)))) + `(dired-k-ignored ((t (:foreground ,outline-color :weight bold)))) + `(dired-k-modified ((t (:foreground ,secondary :weight bold)))) + `(dired-k-untracked ((t (:foreground ,secondary :weight bold)))) + + ;; === Doom-modeline === + `(doom-modeline-bar ((t (:foreground ,primary)))) + `(doom-modeline-buffer-major-mode ((t (:foreground ,primary)))) + `(doom-modeline-buffer-path ((t (:foreground ,primary)))) + `(doom-modeline-eldoc-bar ((t (:background ,tertiary)))) + `(doom-modeline-evil-emacs-state ((t (:foreground ,secondary :weight bold)))) + `(doom-modeline-evil-insert-state ((t (:foreground ,err :weight bold)))) + `(doom-modeline-evil-motion-state ((t (:foreground ,primary :weight bold)))) + `(doom-modeline-evil-normal-state ((t (:foreground ,tertiary :weight bold)))) + `(doom-modeline-evil-operator-state ((t (:foreground ,primary :weight bold)))) + `(doom-modeline-evil-replace-state ((t (:foreground ,secondary :weight bold)))) + `(doom-modeline-evil-visual-state ((t (:foreground ,secondary :weight bold)))) + `(doom-modeline-highlight ((t (:foreground ,primary)))) + `(doom-modeline-input-method ((t (:foreground ,primary)))) + `(doom-modeline-panel ((t (:foreground ,primary)))) + `(doom-modeline-project-dir ((t (:foreground ,primary :weight bold)))) + `(doom-modeline-project-root-dir ((t (:foreground ,primary)))) + + ;; === Ediff === + `(ediff-current-diff-A ((t (:foreground ,on-err-container :background ,err-container :extend t)))) + `(ediff-current-diff-B ((t (:foreground ,on-tertiary-container :background ,tertiary-container :extend t)))) + `(ediff-current-diff-C ((t (:foreground ,on-secondary-container :background ,secondary-container :extend t)))) + `(ediff-even-diff-A ((t (:background ,surface-container-low :extend t)))) + `(ediff-even-diff-B ((t (:background ,surface-container-low :extend t)))) + `(ediff-even-diff-C ((t (:background ,surface-container-low :extend t)))) + `(ediff-fine-diff-A ((t (:background ,err-container :weight bold :underline t :extend t)))) + `(ediff-fine-diff-B ((t (:background ,tertiary-container :weight bold :underline t :extend t)))) + `(ediff-fine-diff-C ((t (:background ,secondary-container :weight bold :underline t :extend t)))) + `(ediff-odd-diff-A ((t (:background ,surface-container-low :extend t)))) + `(ediff-odd-diff-B ((t (:background ,surface-container-low :extend t)))) + `(ediff-odd-diff-C ((t (:background ,surface-container-low :extend t)))) + + ;; === Eldoc === + `(eldoc-highlight-function-argument ((t (:foreground ,primary :weight bold)))) + + ;; === Elfeed === + `(elfeed-log-debug-level-face ((t (:foreground ,outline-color)))) + `(elfeed-log-error-level-face ((t (:foreground ,err)))) + `(elfeed-log-info-level-face ((t (:foreground ,tertiary)))) + `(elfeed-log-warn-level-face ((t (:foreground ,secondary)))) + `(elfeed-search-date-face ((t (:foreground ,primary)))) + `(elfeed-search-feed-face ((t (:foreground ,primary)))) + `(elfeed-search-filter-face ((t (:foreground ,primary)))) + `(elfeed-search-tag-face ((t (:foreground ,outline-color)))) + `(elfeed-search-title-face ((t (:foreground ,outline-color)))) + `(elfeed-search-unread-count-face ((t (:foreground ,secondary)))) + `(elfeed-search-unread-title-face ((t (:foreground ,on-surface :weight bold)))) + + ;; === Evil === + `(evil-ex-info ((t (:foreground ,err :slant italic)))) + `(evil-ex-search ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) + `(evil-ex-substitute-matches ((t (:background ,surface-container :foreground ,err :weight bold :strike-through t)))) + `(evil-ex-substitute-replacement ((t (:background ,surface-container :foreground ,tertiary :weight bold)))) + `(evil-search-highlight-persist-highlight-face ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) + + ;; === Evil-goggles === + `(evil-goggles-default-face ((t (:background ,surface-container-high :distant-foreground ,bg :extend t)))) + + ;; === Evil-mc === + `(evil-mc-cursor-bar-face ((t (:height 1 :background ,secondary :foreground ,on-secondary)))) + `(evil-mc-cursor-default-face ((t (:background ,secondary :foreground ,on-secondary :inverse-video unspecified)))) + `(evil-mc-cursor-hbar-face ((t (:underline (:color ,primary))))) + `(evil-mc-region-face ((t (:background ,surface-container-high :distant-foreground ,bg :extend t)))) + + ;; === Evil-snipe === + `(evil-snipe-first-match-face ((t (:foreground ,err :background ,primary-container :weight bold)))) + `(evil-snipe-matches-face ((t (:foreground ,err :underline t :weight bold)))) + + ;; === Flycheck (missing) === + `(flycheck-error-list-filename ((t (:foreground ,primary)))) + `(flycheck-error-list-checker-name ((t (:foreground ,primary)))) + `(flycheck-error-list-warning ((t (:foreground ,secondary)))) + `(flycheck-posframe-background-face ((t (:background ,surface-container-low)))) + `(flycheck-posframe-error-face ((t (:background ,surface-container-low :foreground ,err)))) + `(flycheck-posframe-face ((t (:background ,surface-container-low :foreground ,on-surface)))) + `(flycheck-posframe-info-face ((t (:background ,surface-container-low :foreground ,tertiary)))) + `(flycheck-posframe-warning-face ((t (:background ,surface-container-low :foreground ,secondary)))) + + ;; === Flymake === + `(flymake-error ((t (:underline (:style wave :color ,err))))) + `(flymake-note ((t (:underline (:style wave :color ,tertiary))))) + `(flymake-warning ((t (:underline (:style wave :color ,secondary))))) + + ;; === Flyspell === + `(flyspell-duplicate ((t (:underline (:style wave :color ,secondary))))) + `(flyspell-incorrect ((t (:underline (:style wave :color ,err))))) + + ;; === Flx-ido === + `(flx-highlight-face ((t (:weight bold :foreground ,secondary :underline unspecified)))) + + ;; === Forge === + `(forge-topic-closed ((t (:foreground ,outline-color :strike-through t)))) + `(forge-topic-label ((t (:box unspecified)))) + `(forge-issue-completed ((t (:foreground ,outline-color :strike-through t)))) + `(forge-pullreq-merged ((t (:foreground ,primary)))) + `(forge-pullreq-open ((t (:foreground ,tertiary)))) + `(forge-pullreq-rejected ((t (:foreground ,err :strike-through t)))) + + ;; === Git-commit === + `(git-commit-comment-branch-local ((t (:foreground ,tertiary)))) + `(git-commit-comment-branch-remote ((t (:foreground ,tertiary)))) + `(git-commit-comment-detached ((t (:foreground ,primary)))) + `(git-commit-comment-file ((t (:foreground ,primary)))) + `(git-commit-comment-heading ((t (:foreground ,primary)))) + `(git-commit-keyword ((t (:foreground ,secondary :slant italic)))) + `(git-commit-known-pseudo-header ((t (:foreground ,outline-color :weight bold :slant italic)))) + `(git-commit-nonempty-second-line ((t (:foreground ,err)))) + `(git-commit-overlong-summary ((t (:foreground ,err :slant italic :weight bold)))) + `(git-commit-pseudo-header ((t (:foreground ,outline-color :slant italic)))) + `(git-commit-summary ((t (:foreground ,primary)))) + + ;; === Git-gutter === + `(git-gutter:added ((t (:foreground ,tertiary)))) + `(git-gutter:deleted ((t (:foreground ,err)))) + `(git-gutter:modified ((t (:foreground ,secondary)))) + `(git-gutter+-added ((t (:foreground ,tertiary)))) + `(git-gutter+-deleted ((t (:foreground ,err)))) + `(git-gutter+-modified ((t (:foreground ,secondary)))) + `(git-gutter-fr:added ((t (:foreground ,tertiary)))) + `(git-gutter-fr:deleted ((t (:foreground ,err)))) + `(git-gutter-fr:modified ((t (:foreground ,secondary)))) + + ;; === Goggles === + `(goggles-added ((t (:background ,tertiary-container)))) + `(goggles-changed ((t (:background ,secondary-container :distant-foreground ,bg :extend t)))) + `(goggles-removed ((t (:background ,err-container :extend t)))) + + ;; === Helpful === + `(helpful-heading ((t (:foreground ,primary :weight bold :height 1.2)))) + + ;; === Hi-lock === + `(hi-blue ((t (:background ,primary-container)))) + `(hi-blue-b ((t (:foreground ,primary :weight bold)))) + `(hi-green ((t (:background ,tertiary-container)))) + `(hi-green-b ((t (:foreground ,tertiary :weight bold)))) + `(hi-magenta ((t (:background ,secondary-container)))) + `(hi-red-b ((t (:foreground ,err :weight bold)))) + `(hi-yellow ((t (:background ,secondary-container)))) + + ;; === Highlight-indentation === + `(highlight-indentation-current-column-face ((t (:background ,surface-container)))) + `(highlight-indentation-face ((t (:background ,surface-container-low :extend t)))) + `(highlight-indentation-guides-even-face ((t (:background ,surface-container-low :extend t)))) + `(highlight-indentation-guides-odd-face ((t (:background ,surface-container-low :extend t)))) + + ;; === Highlight-numbers === + `(highlight-numbers-number ((t (:foreground ,primary :weight bold)))) + + ;; === Highlight-quoted === + `(highlight-quoted-quote ((t (:foreground ,on-surface)))) + `(highlight-quoted-symbol ((t (:foreground ,secondary)))) + + ;; === Hydra === + `(hydra-face-amaranth ((t (:foreground ,secondary :weight bold)))) + `(hydra-face-blue ((t (:foreground ,primary :weight bold)))) + `(hydra-face-magenta ((t (:foreground ,primary :weight bold)))) + `(hydra-face-red ((t (:foreground ,err :weight bold)))) + `(hydra-face-teal ((t (:foreground ,tertiary :weight bold)))) + + ;; === Iedit === + `(iedit-occurrence ((t (:foreground ,on-secondary-container :weight bold :background ,secondary-container)))) + `(iedit-read-only-occurrence ((t (:background ,surface-container-high :distant-foreground ,bg :extend t)))) + + ;; === Imenu-list === + `(imenu-list-entry-face-0 ((t (:foreground ,primary)))) + `(imenu-list-entry-face-1 ((t (:foreground ,secondary)))) + `(imenu-list-entry-face-2 ((t (:foreground ,tertiary)))) + `(imenu-list-entry-subalist-face-0 ((t (:foreground ,primary :weight bold)))) + `(imenu-list-entry-subalist-face-1 ((t (:foreground ,secondary :weight bold)))) + `(imenu-list-entry-subalist-face-2 ((t (:foreground ,tertiary :weight bold)))) + + ;; === Indent-guide === + `(indent-guide-face ((t (:background ,surface-container-low :extend t)))) + + ;; === Ivy (missing) === + `(ivy-confirm-face ((t (:foreground ,tertiary)))) + `(ivy-highlight-face ((t (:foreground ,primary)))) + `(ivy-match-required-face ((t (:foreground ,err)))) + `(ivy-minibuffer-match-face-1 ((t (:foreground ,primary :weight bold :underline t)))) + `(ivy-minibuffer-match-face-2 ((t (:foreground ,secondary :weight semi-bold)))) + `(ivy-minibuffer-match-face-3 ((t (:foreground ,tertiary :weight semi-bold)))) + `(ivy-minibuffer-match-face-4 ((t (:foreground ,secondary :weight semi-bold)))) + `(ivy-minibuffer-match-highlight ((t (:foreground ,primary)))) + `(ivy-modified-buffer ((t (:weight bold :foreground ,secondary)))) + `(ivy-virtual ((t (:slant italic :foreground ,on-surface)))) + `(ivy-posframe ((t (:background ,surface-container-low)))) + `(ivy-posframe-border ((t (:background ,err)))) + + ;; === Keycast === + `(keycast-command ((t (:foreground ,err)))) + `(keycast-key ((t (:foreground ,err :weight bold)))) + + ;; === LSP-UI === + `(lsp-headerline-breadcrumb-separator-face ((t (:foreground ,on-surface-variant)))) + `(lsp-ui-doc-background ((t (:background ,surface-container-low :foreground ,on-surface)))) + `(lsp-ui-peek-filename ((t (:weight bold)))) + `(lsp-ui-peek-header ((t (:foreground ,on-surface :background ,surface-container :weight bold)))) + `(lsp-ui-peek-highlight ((t (:background ,surface-container-high :foreground ,bg :box t)))) + `(lsp-ui-peek-line-number ((t (:foreground ,tertiary)))) + `(lsp-ui-peek-list ((t (:background ,surface-container-low)))) + `(lsp-ui-peek-peek ((t (:background ,surface-container-low)))) + `(lsp-ui-peek-selection ((t (:foreground ,on-primary-container :background ,primary-container :weight bold)))) + `(lsp-ui-sideline-code-action ((t (:foreground ,primary)))) + `(lsp-ui-sideline-current-symbol ((t (:foreground ,primary)))) + `(lsp-ui-sideline-symbol-info ((t (:foreground ,outline-color :background ,surface-container-low :extend t)))) + + ;; === Magit (missing faces) === + `(magit-bisect-bad ((t (:foreground ,err)))) + `(magit-bisect-good ((t (:foreground ,tertiary)))) + `(magit-bisect-skip ((t (:foreground ,err)))) + `(magit-blame-date ((t (:foreground ,err)))) + `(magit-blame-heading ((t (:foreground ,primary :background ,surface-container :extend t)))) + `(magit-branch-current ((t (:foreground ,err)))) + `(magit-branch-remote-head ((t (:foreground ,tertiary)))) + `(magit-cherry-equivalent ((t (:foreground ,primary)))) + `(magit-cherry-unmatched ((t (:foreground ,secondary)))) + `(magit-diff-base ((t (:foreground ,on-secondary-container :background ,secondary-container :extend t)))) + `(magit-diff-base-highlight ((t (:foreground ,on-secondary-container :background ,secondary-container :weight bold :extend t)))) + `(magit-diff-file-heading ((t (:foreground ,on-surface :weight bold :extend t)))) + `(magit-diff-file-heading-selection ((t (:foreground ,on-secondary-container :background ,secondary-container :weight bold :extend t)))) + `(magit-diff-lines-heading ((t (:foreground ,on-primary-container :background ,primary-container :extend t)))) + `(magit-diff-revision-summary ((t (:foreground ,on-primary-container :background ,primary-container :extend t :weight bold)))) + `(magit-diffstat-added ((t (:foreground ,tertiary)))) + `(magit-diffstat-removed ((t (:foreground ,err)))) + `(magit-dimmed ((t (:foreground ,outline-color)))) + `(magit-filename ((t (:foreground ,primary)))) + `(magit-header-line ((t (:background ,surface-container-low :foreground ,primary :weight bold)))) + `(magit-log-author ((t (:foreground ,primary)))) + `(magit-log-date ((t (:foreground ,primary)))) + `(magit-log-graph ((t (:foreground ,outline-color)))) + `(magit-process-ng ((t (:foreground ,err)))) + `(magit-process-ok ((t (:foreground ,tertiary)))) + `(magit-reflog-amend ((t (:foreground ,secondary)))) + `(magit-reflog-checkout ((t (:foreground ,primary)))) + `(magit-reflog-cherry-pick ((t (:foreground ,tertiary)))) + `(magit-reflog-commit ((t (:foreground ,tertiary)))) + `(magit-reflog-merge ((t (:foreground ,tertiary)))) + `(magit-reflog-other ((t (:foreground ,secondary)))) + `(magit-reflog-rebase ((t (:foreground ,secondary)))) + `(magit-reflog-remote ((t (:foreground ,secondary)))) + `(magit-reflog-reset ((t (:foreground ,err)))) + `(magit-refname ((t (:foreground ,outline-color)))) + `(magit-section-heading ((t (:foreground ,primary :weight bold :extend t)))) + `(magit-section-heading-selection ((t (:foreground ,primary :weight bold :extend t)))) + `(magit-section-secondary-heading ((t (:foreground ,primary :weight bold :extend t)))) + `(magit-sequence-drop ((t (:foreground ,err)))) + `(magit-sequence-head ((t (:foreground ,primary)))) + `(magit-sequence-part ((t (:foreground ,primary)))) + `(magit-sequence-stop ((t (:foreground ,tertiary)))) + `(magit-signature-bad ((t (:foreground ,err)))) + `(magit-signature-error ((t (:foreground ,err)))) + `(magit-signature-expired ((t (:foreground ,secondary)))) + `(magit-signature-good ((t (:foreground ,tertiary)))) + `(magit-signature-revoked ((t (:foreground ,secondary)))) + `(magit-signature-untrusted ((t (:foreground ,secondary)))) + `(magit-tag ((t (:foreground ,secondary)))) + + ;; === Make-mode === + `(makefile-targets ((t (:foreground ,primary)))) + + ;; === Marginalia (missing) === + `(marginalia-documentation ((t (:foreground ,primary)))) + `(marginalia-file-name ((t (:foreground ,primary)))) + `(marginalia-size ((t (:foreground ,secondary)))) + `(marginalia-mode ((t (:foreground ,primary)))) + `(marginalia-modified ((t (:foreground ,err)))) + `(marginalia-file-priv-read ((t (:foreground ,tertiary)))) + `(marginalia-file-priv-write ((t (:foreground ,secondary)))) + `(marginalia-file-priv-exec ((t (:foreground ,err)))) + + ;; === Markdown (missing faces) === + `(markdown-blockquote-face ((t (:foreground ,outline-color :slant italic)))) + `(markdown-bold-face ((t (:foreground ,on-surface :weight bold)))) + `(markdown-header-delimiter-face ((t (:foreground ,primary :weight bold)))) + `(markdown-header-face-5 ((t (:foreground ,primary-variant :weight bold)))) + `(markdown-header-face-6 ((t (:foreground ,secondary-variant :weight bold)))) + `(markdown-html-attr-name-face ((t (:foreground ,primary)))) + `(markdown-html-attr-value-face ((t (:foreground ,tertiary)))) + `(markdown-html-entity-face ((t (:foreground ,primary :slant italic)))) + `(markdown-html-tag-delimiter-face ((t (:foreground ,on-surface)))) + `(markdown-html-tag-name-face ((t (:foreground ,secondary)))) + `(markdown-italic-face ((t (:foreground ,primary :slant italic)))) + `(markdown-link-face ((t (:foreground ,primary :weight bold)))) + `(markdown-list-face ((t (:foreground ,primary)))) + `(markdown-markup-face ((t (:foreground ,on-surface)))) + `(markdown-metadata-key-face ((t (:foreground ,primary)))) + `(markdown-reference-face ((t (:foreground ,outline-color)))) + `(markdown-url-face ((t (:foreground ,tertiary)))) + + ;; === Message === + `(message-cited-text-1 ((t (:foreground ,secondary)))) + `(message-cited-text-2 ((t (:foreground ,primary)))) + `(message-cited-text-3 ((t (:foreground ,tertiary)))) + `(message-header-cc ((t (:foreground ,err :weight bold)))) + `(message-header-name ((t (:foreground ,err)))) + `(message-header-newsgroups ((t (:foreground ,secondary)))) + `(message-header-other ((t (:foreground ,primary)))) + `(message-header-subject ((t (:foreground ,primary :weight bold)))) + `(message-header-to ((t (:foreground ,primary :weight bold)))) + `(message-header-xheader ((t (:foreground ,outline-color)))) + `(message-mml ((t (:foreground ,outline-color :slant italic)))) + `(message-separator ((t (:foreground ,outline-color)))) + + ;; === Minimap === + `(minimap-active-region-background ((t (:background ,surface-container-low)))) + `(minimap-current-line-face ((t (:background ,surface-container-high)))) + + ;; === Multiple-cursors === + `(mc/cursor-face ((t (:background ,secondary)))) + + ;; === Neotree === + `(neo-dir-link-face ((t (:foreground ,primary)))) + `(neo-expand-btn-face ((t (:foreground ,primary)))) + `(neo-file-link-face ((t (:foreground ,on-surface)))) + `(neo-root-dir-face ((t (:foreground ,tertiary :background ,bg)))) + `(neo-vc-added-face ((t (:foreground ,tertiary)))) + `(neo-vc-conflict-face ((t (:foreground ,secondary :weight bold)))) + `(neo-vc-edited-face ((t (:foreground ,secondary)))) + `(neo-vc-ignored-face ((t (:foreground ,outline-color)))) + `(neo-vc-removed-face ((t (:foreground ,err :strike-through t)))) + + ;; === Notmuch === + `(notmuch-message-summary-face ((t (:foreground ,outline-color)))) + `(notmuch-search-count ((t (:foreground ,outline-color)))) + `(notmuch-search-date ((t (:foreground ,primary)))) + `(notmuch-search-flagged-face ((t (:foreground ,err)))) + `(notmuch-search-matching-authors ((t (:foreground ,primary)))) + `(notmuch-search-non-matching-authors ((t (:foreground ,on-surface)))) + `(notmuch-search-subject ((t (:foreground ,on-surface)))) + `(notmuch-search-unread-face ((t (:weight bold)))) + `(notmuch-tag-added ((t (:foreground ,tertiary :weight normal)))) + `(notmuch-tag-deleted ((t (:foreground ,err :weight normal)))) + `(notmuch-tag-face ((t (:foreground ,secondary :weight normal)))) + `(notmuch-tag-flagged ((t (:foreground ,secondary :weight normal)))) + `(notmuch-tag-unread ((t (:foreground ,secondary :weight normal)))) + `(notmuch-tree-match-author-face ((t (:foreground ,primary :weight bold)))) + `(notmuch-tree-match-date-face ((t (:foreground ,primary :weight bold)))) + `(notmuch-tree-match-face ((t (:foreground ,on-surface)))) + `(notmuch-tree-match-subject-face ((t (:foreground ,on-surface)))) + `(notmuch-tree-match-tag-face ((t (:foreground ,secondary)))) + `(notmuch-tree-match-tree-face ((t (:foreground ,outline-color)))) + `(notmuch-tree-no-match-author-face ((t (:foreground ,primary)))) + `(notmuch-tree-no-match-date-face ((t (:foreground ,primary)))) + `(notmuch-tree-no-match-face ((t (:foreground ,outline-color)))) + `(notmuch-tree-no-match-subject-face ((t (:foreground ,outline-color)))) + `(notmuch-tree-no-match-tag-face ((t (:foreground ,secondary)))) + `(notmuch-tree-no-match-tree-face ((t (:foreground ,secondary)))) + `(notmuch-wash-cited-text ((t (:foreground ,outline-variant)))) + `(notmuch-wash-toggle-button ((t (:foreground ,on-surface)))) + + ;; === Orderless === + `(orderless-match-face-0 ((t (:foreground ,primary :weight bold :underline t)))) + `(orderless-match-face-1 ((t (:foreground ,secondary :weight bold :underline t)))) + `(orderless-match-face-2 ((t (:foreground ,tertiary :weight bold :underline t)))) + `(orderless-match-face-3 ((t (:foreground ,primary-variant :weight bold :underline t)))) + + ;; === Objed === + `(objed-hl ((t (:background ,surface-container-high :distant-foreground ,bg :extend t)))) + `(objed-mode-line ((t (:foreground ,secondary :weight bold)))) + + ;; === Parenface === + `(paren-face ((t (:foreground ,outline-color)))) + + ;; === Popup === + `(popup-face ((t (:background ,surface-container-low :foreground ,on-surface)))) + `(popup-selection-face ((t (:background ,primary-container :foreground ,on-primary-container)))) + `(popup-tip-face ((t (:foreground ,primary :background ,surface-container)))) + + ;; === Re-builder === + `(reb-match-0 ((t (:foreground ,err :inverse-video t)))) + `(reb-match-1 ((t (:foreground ,tertiary :inverse-video t)))) + `(reb-match-2 ((t (:foreground ,secondary :inverse-video t)))) + `(reb-match-3 ((t (:foreground ,primary :inverse-video t)))) + + ;; === Selectrum === + `(selectrum-current-candidate ((t (:background ,surface-container-high :distant-foreground unspecified :extend t)))) + + ;; === Sh-script === + `(sh-heredoc ((t (:foreground ,primary)))) + `(sh-quoted-exec ((t (:foreground ,on-surface :weight bold)))) + + ;; === Smerge === + `(smerge-base ((t (:background ,primary-container :foreground ,on-primary-container)))) + `(smerge-lower ((t (:background ,tertiary-container)))) + `(smerge-markers ((t (:background ,surface-container-high :foreground ,bg :distant-foreground ,on-surface :weight bold)))) + `(smerge-mine ((t (:background ,err-container :foreground ,on-err-container)))) + `(smerge-other ((t (:background ,tertiary-container :foreground ,on-tertiary-container)))) + `(smerge-refined-added ((t (:background ,tertiary-container :foreground ,on-tertiary-container)))) + `(smerge-refined-removed ((t (:background ,err-container :foreground ,on-err-container)))) + `(smerge-upper ((t (:background ,err-container)))) + + ;; === Solaire-mode === + `(solaire-default-face ((t (:background ,surface-container-low)))) + `(solaire-hl-line-face ((t (:background ,surface-container-low :extend t)))) + `(solaire-mode-line-face ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(solaire-mode-line-inactive-face ((t (:background ,surface-container-low :foreground ,on-surface-variant)))) + `(solaire-org-hide-face ((t (:foreground ,bg)))) + + ;; === Swiper === + `(swiper-line-face ((t (:background ,primary-container :foreground ,on-primary-container)))) + `(swiper-match-face-1 ((t (:background ,surface-container :foreground ,outline-color)))) + `(swiper-match-face-2 ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) + `(swiper-match-face-3 ((t (:background ,secondary-container :foreground ,on-secondary-container :weight bold)))) + `(swiper-match-face-4 ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) + + ;; === Term (extended) === + `(term ((t (:foreground ,on-surface)))) + `(term-bold ((t (:weight bold)))) + `(term-color-bright-black ((t (:foreground ,surface-container-high)))) + `(term-color-bright-red ((t (:foreground ,err-variant)))) + `(term-color-bright-green ((t (:foreground ,tertiary-variant)))) + `(term-color-bright-yellow ((t (:foreground ,secondary-variant)))) + `(term-color-bright-blue ((t (:foreground ,primary-variant)))) + `(term-color-bright-magenta ((t (:foreground ,err)))) + `(term-color-bright-cyan ((t (:foreground ,tertiary)))) + `(term-color-bright-white ((t (:foreground ,fg)))) + + ;; === Transient === + `(transient-key ((t (:foreground ,primary :height 1.1)))) + `(transient-blue ((t (:foreground ,primary)))) + `(transient-pink ((t (:foreground ,primary)))) + `(transient-purple ((t (:foreground ,secondary)))) + `(transient-red ((t (:foreground ,err)))) + `(transient-teal ((t (:foreground ,tertiary)))) + + ;; === Treemacs === + `(treemacs-directory-face ((t (:foreground ,on-surface)))) + `(treemacs-file-face ((t (:foreground ,on-surface)))) + `(treemacs-git-added-face ((t (:foreground ,tertiary)))) + `(treemacs-git-conflict-face ((t (:foreground ,err)))) + `(treemacs-git-modified-face ((t (:foreground ,primary)))) + `(treemacs-git-untracked-face ((t (:foreground ,outline-color)))) + `(treemacs-root-face ((t (:foreground ,primary :weight bold :height 1.2)))) + `(treemacs-tags-face ((t (:foreground ,err)))) + + ;; === Tree-sitter-hl === + `(tree-sitter-hl-face:function ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:function.call ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:function.builtin ((t (:foreground ,err)))) + `(tree-sitter-hl-face:function.special ((t (:foreground ,on-surface :weight bold)))) + `(tree-sitter-hl-face:function.macro ((t (:foreground ,on-surface :weight bold)))) + `(tree-sitter-hl-face:method ((t (:foreground ,secondary)))) + `(tree-sitter-hl-face:method.call ((t (:foreground ,secondary)))) + `(tree-sitter-hl-face:type ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:type.parameter ((t (:foreground ,on-surface-variant)))) + `(tree-sitter-hl-face:type.argument ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:type.builtin ((t (:foreground ,err)))) + `(tree-sitter-hl-face:type.super ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:constructor ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:variable ((t (:foreground ,on-surface)))) + `(tree-sitter-hl-face:variable.parameter ((t (:foreground ,on-surface-variant)))) + `(tree-sitter-hl-face:variable.builtin ((t (:foreground ,err)))) + `(tree-sitter-hl-face:variable.special ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:property ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:property.definition ((t (:foreground ,on-surface-variant)))) + `(tree-sitter-hl-face:comment ((t (:foreground ,outline-color :slant italic)))) + `(tree-sitter-hl-face:doc ((t (:foreground ,on-surface-variant :slant italic)))) + `(tree-sitter-hl-face:string ((t (:foreground ,tertiary)))) + `(tree-sitter-hl-face:string.special ((t (:foreground ,tertiary)))) + `(tree-sitter-hl-face:escape ((t (:foreground ,err)))) + `(tree-sitter-hl-face:embedded ((t (:foreground ,on-surface)))) + `(tree-sitter-hl-face:keyword ((t (:foreground ,secondary :weight bold)))) + `(tree-sitter-hl-face:operator ((t (:foreground ,secondary)))) + `(tree-sitter-hl-face:label ((t (:foreground ,on-surface)))) + `(tree-sitter-hl-face:constant ((t (:foreground ,tertiary :weight bold)))) + `(tree-sitter-hl-face:constant.builtin ((t (:foreground ,err)))) + `(tree-sitter-hl-face:number ((t (:foreground ,primary)))) + `(tree-sitter-hl-face:punctuation ((t (:foreground ,on-surface)))) + `(tree-sitter-hl-face:punctuation.bracket ((t (:foreground ,on-surface)))) + `(tree-sitter-hl-face:punctuation.delimiter ((t (:foreground ,on-surface)))) + `(tree-sitter-hl-face:punctuation.special ((t (:foreground ,err)))) + `(tree-sitter-hl-face:tag ((t (:foreground ,err)))) + `(tree-sitter-hl-face:attribute ((t (:foreground ,on-surface)))) + + ;; === Typescript-mode === + `(typescript-jsdoc-tag ((t (:foreground ,outline-color)))) + `(typescript-jsdoc-type ((t (:foreground ,outline-color)))) + `(typescript-jsdoc-value ((t (:foreground ,outline-color)))) + + ;; === Undo-tree === + `(undo-tree-visualizer-active-branch-face ((t (:foreground ,primary)))) + `(undo-tree-visualizer-current-face ((t (:foreground ,tertiary :weight bold)))) + `(undo-tree-visualizer-default-face ((t (:foreground ,outline-color)))) + `(undo-tree-visualizer-register-face ((t (:foreground ,secondary)))) + `(undo-tree-visualizer-unmodified-face ((t (:foreground ,outline-color)))) + + ;; === Volatile-highlights === + `(vhl/default-face ((t (:background ,surface-container-high)))) + + ;; === Vterm === + `(vterm ((t (:foreground ,on-surface)))) + `(vterm-color-black ((t (:background ,surface-container-lowest :foreground ,surface-container-lowest)))) + `(vterm-color-blue ((t (:background ,primary :foreground ,primary)))) + `(vterm-color-cyan ((t (:background ,primary-variant :foreground ,primary-variant)))) + `(vterm-color-default ((t (:background ,on-surface :foreground ,on-surface)))) + `(vterm-color-green ((t (:background ,tertiary :foreground ,tertiary)))) + `(vterm-color-magenta ((t (:background ,err-variant :foreground ,err-variant)))) + `(vterm-color-purple ((t (:background ,primary :foreground ,primary)))) + `(vterm-color-red ((t (:background ,err :foreground ,err)))) + `(vterm-color-white ((t (:background ,on-surface :foreground ,on-surface)))) + `(vterm-color-yellow ((t (:background ,secondary :foreground ,secondary)))) + + ;; === Web-mode (missing faces) === + `(web-mode-block-control-face ((t (:foreground ,err)))) + `(web-mode-block-delimiter-face ((t (:foreground ,err)))) + `(web-mode-doctype-face ((t (:foreground ,outline-color)))) + `(web-mode-html-entity-face ((t (:foreground ,secondary :slant italic)))) + `(web-mode-json-context-face ((t (:foreground ,tertiary)))) + `(web-mode-json-key-face ((t (:foreground ,tertiary)))) + `(web-mode-keyword-face ((t (:foreground ,primary)))) + `(web-mode-string-face ((t (:foreground ,tertiary)))) + `(web-mode-type-face ((t (:foreground ,primary)))) + + ;; === Wgrep === + `(wgrep-delete-face ((t (:foreground ,on-err-container :background ,err-container)))) + `(wgrep-done-face ((t (:foreground ,tertiary)))) + `(wgrep-face ((t (:weight bold :foreground ,on-tertiary-container :background ,tertiary-container)))) + `(wgrep-file-face ((t (:foreground ,outline-color)))) + `(wgrep-reject-face ((t (:foreground ,err :weight bold)))) + + ;; === Which-func === + `(which-func ((t (:foreground ,primary)))) + + ;; === Which-key (missing) === + `(which-key-local-map-description-face ((t (:foreground ,secondary)))) + + ;; === Whitespace === + `(whitespace-empty ((t (:background ,surface-container)))) + `(whitespace-indentation ((t (:foreground ,outline-variant :background ,surface-container)))) + `(whitespace-line ((t (:background ,surface-container-low :foreground ,err :weight bold)))) + `(whitespace-newline ((t (:foreground ,outline-variant)))) + `(whitespace-space ((t (:foreground ,outline-variant)))) + `(whitespace-tab ((t (:foreground ,outline-variant :background ,surface-container)))) + `(whitespace-trailing ((t (:background ,err-container)))) + + ;; === Widget === + `(widget-button ((t (:foreground ,on-surface :weight bold)))) + `(widget-button-pressed ((t (:foreground ,err)))) + `(widget-documentation ((t (:foreground ,tertiary)))) + `(widget-field ((t (:foreground ,on-surface :background ,surface-container-lowest :extend unspecified)))) + `(widget-inactive ((t (:foreground ,outline-color :background ,surface-container-low)))) + `(widget-single-line-field ((t (:foreground ,on-surface :background ,surface-container-lowest)))) + + ;; === Woman === + `(woman-bold ((t (:foreground ,on-surface :weight bold)))) + `(woman-italic ((t (:foreground ,primary :underline ,primary)))) + + ;; === Yasnippet === + `(yas-field-highlight-face ((t (:foreground ,on-tertiary-container :background ,tertiary-container :weight bold)))) + + ;; === Mu4e === + `(mu4e-forwarded-face ((t (:foreground ,primary)))) + `(mu4e-header-key-face ((t (:foreground ,primary :weight bold)))) + `(mu4e-header-title-face ((t (:foreground ,primary)))) + `(mu4e-highlight-face ((t (:foreground ,primary :weight bold)))) + `(mu4e-link-face ((t (:foreground ,primary :underline t)))) + `(mu4e-replied-face ((t (:foreground ,tertiary)))) + `(mu4e-title-face ((t (:foreground ,primary :weight bold)))) + `(mu4e-unread-face ((t (:foreground ,primary :weight bold)))) + `(mu4e-column-faces-date ((t (:foreground ,primary)))) + `(mu4e-column-faces-flags ((t (:foreground ,secondary)))) + `(mu4e-column-faces-to-from ((t (:foreground ,primary)))) + + ;; === ERC === + `(erc-action-face ((t (:weight bold)))) + `(erc-button ((t (:weight bold :underline t)))) + `(erc-command-indicator-face ((t (:weight bold)))) + `(erc-current-nick-face ((t (:foreground ,tertiary :weight bold)))) + `(erc-default-face ((t (:background ,bg :foreground ,on-surface)))) + `(erc-direct-msg-face ((t (:foreground ,secondary)))) + `(erc-error-face ((t (:foreground ,err)))) + `(erc-header-line ((t (:background ,surface-container-low :foreground ,primary)))) + `(erc-input-face ((t (:foreground ,tertiary)))) + `(erc-my-nick-face ((t (:foreground ,tertiary :weight bold)))) + `(erc-my-nick-prefix-face ((t (:foreground ,tertiary :weight bold)))) + `(erc-nick-default-face ((t (:weight bold)))) + `(erc-nick-msg-face ((t (:foreground ,secondary)))) + `(erc-nick-prefix-face ((t (:background ,bg :foreground ,on-surface)))) + `(erc-notice-face ((t (:foreground ,outline-color)))) + `(erc-prompt-face ((t (:foreground ,primary :weight bold)))) + `(erc-timestamp-face ((t (:foreground ,primary :weight bold)))) + + ;; === Nano-modeline === + `(nano-modeline-active-name ((t (:foreground ,on-surface :weight bold)))) + `(nano-modeline-inactive-name ((t (:foreground ,on-surface-variant :weight bold)))) + `(nano-modeline-active-primary ((t (:foreground ,primary)))) + `(nano-modeline-inactive-primary ((t (:foreground ,on-surface-variant)))) + `(nano-modeline-active-secondary ((t (:foreground ,primary :weight bold)))) + `(nano-modeline-inactive-secondary ((t (:foreground ,on-surface-variant :weight bold)))) + `(nano-modeline-active-status-RO ((t (:background ,secondary-container :foreground ,on-secondary-container :weight bold)))) + `(nano-modeline-inactive-status-RO ((t (:background ,surface-container :foreground ,on-surface-variant :weight bold)))) + `(nano-modeline-active-status-RW ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) + `(nano-modeline-inactive-status-RW ((t (:background ,surface-container :foreground ,on-surface-variant :weight bold)))) + `(nano-modeline-active-status-** ((t (:background ,err-container :foreground ,on-err-container :weight bold)))) + `(nano-modeline-inactive-status-** ((t (:background ,surface-container :foreground ,on-surface-variant :weight bold)))) + + ;; === Tab-line (missing) === + `(tab-line-close-highlight ((t (:foreground ,err)))) + + ;; === Centaur-tabs (missing) === + `(centaur-tabs-close-mouse-face ((t (:foreground ,primary)))) + `(centaur-tabs-close-selected ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(centaur-tabs-close-unselected ((t (:background ,surface-container-low :foreground ,outline-color)))) + `(centaur-tabs-modified-marker-selected ((t (:background ,surface-container-high :foreground ,primary)))) + `(centaur-tabs-modified-marker-unselected ((t (:background ,surface-container-low :foreground ,primary)))) + `(centaur-tabs-name-mouse-face ((t (:foreground ,primary :weight bold :underline t)))) + `(centaur-tabs-unselected-modified ((t (:background ,surface-container-low :foreground ,primary)))) + + ;; === Powerline === + `(powerline-active0 ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(powerline-active1 ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(powerline-active2 ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(powerline-inactive0 ((t (:background ,surface-container-low :foreground ,on-surface-variant)))) + `(powerline-inactive1 ((t (:background ,surface-container-low :foreground ,on-surface-variant)))) + `(powerline-inactive2 ((t (:background ,surface-container-low :foreground ,on-surface-variant)))) + + ;; === Spaceline === + `(spaceline-evil-emacs ((t (:background ,secondary)))) + `(spaceline-evil-insert ((t (:background ,tertiary)))) + `(spaceline-evil-motion ((t (:background ,secondary)))) + `(spaceline-evil-normal ((t (:background ,primary)))) + `(spaceline-evil-replace ((t (:background ,err)))) + `(spaceline-evil-visual ((t (:background ,surface-container-high)))) + `(spaceline-flycheck-error ((t (:foreground ,err)))) + `(spaceline-flycheck-info ((t (:foreground ,tertiary)))) + `(spaceline-flycheck-warning ((t (:foreground ,secondary)))) + + ;; === Smart-mode-line === + `(sml/charging ((t (:foreground ,tertiary)))) + `(sml/discharging ((t (:foreground ,secondary :weight bold)))) + `(sml/filename ((t (:foreground ,primary :weight bold)))) + `(sml/git ((t (:foreground ,primary)))) + `(sml/modified ((t (:foreground ,secondary)))) + `(sml/outside-modified ((t (:foreground ,secondary)))) + `(sml/process ((t (:weight bold)))) + `(sml/read-only ((t (:foreground ,secondary)))) + `(sml/sudo ((t (:foreground ,err :weight bold)))) + `(sml/vc-edited ((t (:foreground ,tertiary)))) + )) ;; Org-mode settings |
