From cdac660a3074d4ff9deadfa0dd3c442132fb0769 Mon Sep 17 00:00:00 2001 From: cashmere Date: Fri, 19 Jun 2026 20:05:40 +0200 Subject: synchronise current configuration --- config.org | 60 ++- themes/noctalia-theme.el | 1242 ---------------------------------------------- themes/tinty-theme.el | 1242 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1285 insertions(+), 1259 deletions(-) delete mode 100644 themes/noctalia-theme.el create mode 100644 themes/tinty-theme.el diff --git a/config.org b/config.org index 7eba6c3..2ae460b 100644 --- a/config.org +++ b/config.org @@ -1157,7 +1157,6 @@ terminal backend. org-special-ctrl-a/e t 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 'visual-line-mode) (add-hook 'org-mode-hook (lambda () (electric-indent-local-mode -1))) @@ -2812,6 +2811,28 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customi (put 'eglot-workspace-configuration 'safe-local-variable #'listp) #+end_src +** c3-ts-mode + +Not on MELPA, so installed straight from GitHub. The tree-sitter grammar is built on first load via =treesit-install-language-grammar= (needs =cc= / =gcc= on PATH), and eglot drives the =c3-lsp= server. On NixOS install =c3c=, =c3-lsp= and =gcc=. + +#+begin_src emacs-lisp +(use-package c3-ts-mode + :ensure (:host github :repo "c3lang/c3-ts-mode") + :mode (("\\.c3\\'" . c3-ts-mode) + ("\\.c3i\\'" . c3-ts-mode) + ("\\.c3t\\'" . c3-ts-mode)) + :hook (c3-ts-mode . eglot-ensure) + :init + (add-to-list 'treesit-language-source-alist + '(c3 "https://github.com/c3lang/tree-sitter-c3")) + :config + (unless (treesit-language-available-p 'c3) + (treesit-install-language-grammar 'c3)) + (with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + '(c3-ts-mode . ("c3-lsp"))))) +#+end_src + ** python-ts-mode Because I have to and not want to. @@ -3146,7 +3167,7 @@ BODY is the xonsh script. PARAMS may include :dir and :cmdline." #+begin_src emacs-lisp (use-package olivetti :ensure t - :hook (org-mode . olivetti-mode) + ;; :hook (org-mode . olivetti-mode) ; no auto-center in org buffers :custom (olivetti-style nil) ; Use window margins (fringes disabled in early-init) (olivetti-margin-width 10) ; No side margins @@ -3168,6 +3189,11 @@ BODY is the xonsh script. PARAMS may include :dir and :cmdline." (dolist (win (get-buffer-window-list nil nil 'visible)) (when (buffer-local-value 'olivetti-mode (window-buffer win)) (olivetti-set-window win)))) + (defun my/olivetti-hide-continuation-glyph () + (let ((dt (or buffer-display-table (make-display-table)))) + (set-display-table-slot dt 'wrap (if olivetti-mode ?\s nil)) + (setq buffer-display-table dt))) + (add-hook 'olivetti-mode-hook #'my/olivetti-hide-continuation-glyph) (with-eval-after-load 'diff-hl-margin (advice-add 'diff-hl-margin-local-mode :after #'my/olivetti-rebalance) (advice-add 'diff-hl-margin-ensure-visible :after #'my/olivetti-rebalance))) @@ -3294,7 +3320,11 @@ so the working-tree diff stays visible until the user explicitly stages." :hook (prog-mode . indent-guide-mode) ;; Activate indent-guide in programming modes. :config - (setq indent-guide-char "│")) ;; Set the character used for the indent guide. + (setq indent-guide-char "│") ;; Set the character used for the indent guide. + (define-advice indent-guide-show (:around (orig) my/guard-stale-window) + (when (and (eq (window-buffer) (current-buffer)) + (<= (window-start) (point-max))) + (funcall orig)))) #+end_src * keybindings @@ -3698,22 +3728,17 @@ Runs per-frame so a TTY-only daemon never touches fonts while GUI frames created later still get them." (when (display-graphic-p frame) (set-face-attribute 'default frame - :family "MapleMono NF" - :height 180 + :family "IosevkaTerm NF" + :height 200 :font (font-spec - :family "MapleMono NF" - :features '(cv04 ss05 zero))) - (set-face-attribute 'fixed-pitch frame :family "MapleMono NF" :weight 'regular) - (set-face-attribute 'variable-pitch frame :family "MapleMono NF" :weight 'regular :height 1.1))) + :family "IosevkaTerm NF" + ;; :features '(cv04 ss05 zero) + )) + (set-face-attribute 'fixed-pitch frame :family "IosevkaTerm NF" :weight 'regular) + (set-face-attribute 'variable-pitch frame :family "IosevkaTerm NF" :weight 'regular :height 1.1))) (add-hook 'server-after-make-frame-hook #'cashmere/set-fonts) (cashmere/set-fonts) - -(use-package mixed-pitch - :ensure t - :defer t - :hook ((org-mode . mixed-pitch-mode) - (LaTeX-mode . mixed-pitch-mode))) #+end_src * essentials @@ -3733,7 +3758,7 @@ created later still get them." #+begin_src emacs-lisp (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") -(load-theme 'noctalia t) +(load-theme 'tinty t) #+end_src * dirvish @@ -4315,7 +4340,8 @@ activates automatically. Edit, then `C-c C-c' commits, `C-c C-k' aborts." :config ;; (setq golden-ratio-auto-scale t) ;; (golden-ratio-mode 1) -) + (setq golden-ratio-exclude-buffer-names '(" *which-key*")) + (setq golden-ratio-exclude-buffer-regexp '("\\`\\*eldoc"))) #+end_src * pdf-tools diff --git a/themes/noctalia-theme.el b/themes/noctalia-theme.el deleted file mode 100644 index 85b3523..0000000 --- a/themes/noctalia-theme.el +++ /dev/null @@ -1,1242 +0,0 @@ -;;; noctalia-theme.el --- Noctalia theme for Emacs -*- lexical-binding: t -*- - - -;; Copyright (C) 2025 - -;; Author: Noctalia User Template (Fixed) -;; Version: 2.0 -;; Package-Requires: ((emacs "24.1")) -;; Keywords: faces - -;;; Commentary: - -;; Noctalia Emacs theme generated via user template. -;; Fixes the built-in template's misuse of MD3 container colors as foreground -;; text. All heading and text faces use surface-readable colors only. - -;;; Code: - -(deftheme noctalia "Noctalia theme with proper color contrast.") - -(let* (;; Core surface colors - (bg "#eef1f5") - (fg "#192330") - (surface "#eef1f5") - (on-surface "#192330") - (on-surface-variant "#29394f") - (surface-variant "#d5dce4") - (surface-container "#d5dce4") - (surface-container-low "#e1e6ec") - (surface-container-lowest "#e9ecf1") - (surface-container-high "#c9d2dc") - (surface-container-highest "#bcc7d4") - - ;; Accent colors (always readable on surface) - (primary "#4a78b0") - (secondary "#5a8f70") - (tertiary "#7654b8") - (err "#b33a58") - - ;; Container colors (for BACKGROUNDS only, never as foreground text) - (primary-container "#cad5e2") - (secondary-container "#bfddcb") - (tertiary-container "#d5cde4") - (err-container "#dec1c8") - - ;; On-color text (for text ON accent backgrounds) - (on-primary "#eef1f5") - (on-secondary "#eef1f5") - (on-tertiary "#eef1f5") - (on-err "#eef1f5") - - ;; On-container text (for text on container backgrounds) - (on-primary-container "#172536") - (on-secondary-container "#1e2f25") - (on-tertiary-container "#211636") - (on-err-container "#3a131c") - - ;; Outline colors - (outline-color "#71839b") - (outline-variant "#9eaabb") - - ;; Shadow - (shadow "#d5dce4") - - ;; 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 "#7ea0c9") - (secondary-variant "#84b297") - (tertiary-variant "#533887") - (err-variant "#cf6b83")) - - (custom-theme-set-faces - 'noctalia - - ;; === Basic faces === - `(default ((t (:background ,bg :foreground ,fg)))) - `(cursor ((t (:background ,primary)))) - `(highlight ((t (:background ,surface-container-high)))) - `(region ((t (:background ,primary-container :foreground ,on-primary-container :extend t)))) - `(secondary-selection ((t (:background ,secondary-container :foreground ,on-secondary-container :extend t)))) - `(isearch ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) - `(lazy-highlight ((t (:background ,secondary-container :foreground ,on-secondary-container)))) - `(vertical-border ((t (:foreground ,surface-variant)))) - `(border ((t (:background ,surface-variant :foreground ,surface-variant)))) - `(fringe ((t (:background ,surface :foreground ,outline-variant)))) - `(shadow ((t (:foreground ,outline-variant)))) - `(link ((t (:foreground ,primary :underline t)))) - `(link-visited ((t (:foreground ,tertiary :underline t)))) - `(success ((t (:foreground ,tertiary)))) - `(warning ((t (:foreground ,secondary)))) - `(error ((t (:foreground ,err)))) - `(match ((t (:background ,secondary-container :foreground ,on-secondary-container)))) - - ;; === Font-lock === - `(font-lock-builtin-face ((t (:foreground ,primary)))) - `(font-lock-comment-face ((t (:foreground ,outline-color :slant italic)))) - `(font-lock-comment-delimiter-face ((t (:foreground ,outline-variant)))) - `(font-lock-constant-face ((t (:foreground ,tertiary :weight bold)))) - `(font-lock-doc-face ((t (:foreground ,on-surface-variant :slant italic)))) - `(font-lock-function-name-face ((t (:foreground ,primary :weight bold)))) - `(font-lock-keyword-face ((t (:foreground ,secondary :weight bold)))) - `(font-lock-string-face ((t (:foreground ,tertiary)))) - `(font-lock-type-face ((t (:foreground ,primary)))) - `(font-lock-variable-name-face ((t (:foreground ,on-surface)))) - `(font-lock-warning-face ((t (:foreground ,err :weight bold)))) - `(font-lock-preprocessor-face ((t (:foreground ,on-surface-variant)))) ;; FIX: was secondary_fixed_dim (invisible) - `(font-lock-negation-char-face ((t (:foreground ,tertiary)))) - - ;; === Show paren === - `(show-paren-match ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) - `(show-paren-mismatch ((t (:background ,err-container :foreground ,on-err-container :weight bold)))) - - ;; === Mode line === - `(mode-line ((t (:background ,surface-container-high :foreground ,on-surface :box nil)))) - `(mode-line-inactive ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) - `(mode-line-buffer-id ((t (:foreground ,primary :weight bold)))) - `(mode-line-emphasis ((t (:foreground ,primary :weight bold)))) - `(mode-line-highlight ((t (:foreground ,primary :box nil)))) - - ;; === Org source blocks === - `(org-block ((t (:background ,surface-container-low :extend t :inherit fixed-pitch)))) - `(org-block-begin-line ((t (:background ,surface-container-low :foreground ,outline-color :extend t :slant italic :inherit fixed-pitch)))) ;; FIX: was primary_fixed_dim - `(org-block-end-line ((t (:background ,surface-container-low :foreground ,outline-color :extend t :slant italic :inherit fixed-pitch)))) ;; FIX: was primary_fixed_dim - `(org-code ((t (:background ,surface-container-low :foreground ,tertiary :inherit fixed-pitch)))) - `(org-verbatim ((t (:background ,surface-container-low :foreground ,primary :inherit fixed-pitch)))) - `(org-meta-line ((t (:foreground ,outline-color :slant italic)))) - - ;; === Org headings - FIXED: 4 distinct hues + variants, all surface-readable === - `(org-level-1 ((t (:foreground ,primary :weight bold :height 1.2)))) - `(org-level-2 ((t (:foreground ,secondary :weight bold :height 1.1)))) ;; FIX: was primary_container - `(org-level-3 ((t (:foreground ,tertiary :weight bold)))) ;; FIX: was secondary - `(org-level-4 ((t (:foreground ,err :weight bold)))) ;; FIX: was secondary_container - `(org-level-5 ((t (:foreground ,primary-variant :weight bold)))) ;; FIX: was tertiary - `(org-level-6 ((t (:foreground ,secondary-variant :weight bold)))) ;; FIX: was tertiary_container - `(org-level-7 ((t (:foreground ,tertiary-variant :weight bold)))) ;; FIX: was primary_fixed (= primary duplicate) - `(org-level-8 ((t (:foreground ,on-surface-variant :weight bold)))) ;; FIX: was primary_fixed_dim - `(org-document-title ((t (:foreground ,primary :weight bold :height 1.3)))) - `(org-document-info ((t (:foreground ,on-surface-variant)))) ;; FIX: was primary_container - `(org-todo ((t (:foreground ,err :weight bold)))) - `(org-done ((t (:foreground ,tertiary :weight bold)))) - `(org-headline-done ((t (:foreground ,on-surface-variant)))) - `(org-hide ((t (:foreground ,bg)))) - `(org-ellipsis ((t (:foreground ,tertiary :underline nil)))) - `(org-table ((t (:foreground ,secondary :inherit fixed-pitch)))) - `(org-formula ((t (:foreground ,tertiary :inherit fixed-pitch)))) - `(org-checkbox ((t (:foreground ,primary :weight bold :inherit fixed-pitch)))) - `(org-date ((t (:foreground ,secondary :underline t)))) - `(org-special-keyword ((t (:foreground ,on-surface-variant :slant italic)))) - `(org-tag ((t (:foreground ,outline-color :weight normal)))) - - ;; === Magit === - `(magit-section-highlight ((t (:background ,surface-container-low)))) - `(magit-diff-hunk-heading ((t (:background ,surface-container :foreground ,on-surface-variant)))) - `(magit-diff-hunk-heading-highlight ((t (:background ,surface-container-high :foreground ,on-surface)))) - `(magit-diff-context ((t (:foreground ,on-surface-variant)))) - `(magit-diff-context-highlight ((t (:background ,surface-container-low :foreground ,on-surface)))) - `(magit-diff-added ((t (:background ,tertiary-container :foreground ,on-tertiary-container)))) - `(magit-diff-added-highlight ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) - `(magit-diff-removed ((t (:background ,err-container :foreground ,on-err-container)))) - `(magit-diff-removed-highlight ((t (:background ,err-container :foreground ,on-err-container :weight bold)))) - `(magit-hash ((t (:foreground ,outline-color)))) - `(magit-branch-local ((t (:foreground ,tertiary :weight bold)))) - `(magit-branch-remote ((t (:foreground ,primary :weight bold)))) - - ;; === Company === - `(company-tooltip ((t (:background ,surface-container :foreground ,on-surface)))) - `(company-tooltip-selection ((t (:background ,primary-container :foreground ,on-primary-container)))) - `(company-tooltip-common ((t (:foreground ,primary)))) - `(company-tooltip-common-selection ((t (:foreground ,on-primary-container :weight bold)))) - `(company-tooltip-annotation ((t (:foreground ,tertiary)))) - `(company-scrollbar-fg ((t (:background ,primary)))) - `(company-scrollbar-bg ((t (:background ,surface-variant)))) - `(company-preview ((t (:foreground ,on-surface-variant :slant italic)))) - `(company-preview-common ((t (:foreground ,primary :slant italic)))) - - ;; === Ido === - `(ido-first-match ((t (:foreground ,primary :weight bold)))) - `(ido-only-match ((t (:foreground ,tertiary :weight bold)))) - `(ido-subdir ((t (:foreground ,secondary)))) - `(ido-indicator ((t (:foreground ,err)))) - `(ido-virtual ((t (:foreground ,outline-color)))) - - ;; === Helm === - `(helm-selection ((t (:background ,primary-container :foreground ,on-primary-container)))) - `(helm-match ((t (:foreground ,primary :weight bold)))) - `(helm-source-header ((t (:background ,surface-container-high :foreground ,primary :weight bold :height 1.1)))) - `(helm-candidate-number ((t (:foreground ,tertiary :weight bold)))) - `(helm-ff-directory ((t (:foreground ,primary :weight bold)))) - `(helm-ff-file ((t (:foreground ,on-surface)))) - `(helm-ff-executable ((t (:foreground ,tertiary)))) - - ;; === Corfu === - `(corfu-default ((t (:background ,surface-container :foreground ,on-surface)))) - `(corfu-current ((t (:background ,primary-container :foreground ,on-primary-container)))) - - ;; === Which-key === - `(which-key-key-face ((t (:foreground ,primary :weight bold)))) - `(which-key-separator-face ((t (:foreground ,outline-variant)))) - `(which-key-command-description-face ((t (:foreground ,on-surface)))) - `(which-key-group-description-face ((t (:foreground ,secondary)))) - `(which-key-special-key-face ((t (:foreground ,tertiary :weight bold)))) - - ;; === Line numbers === - `(line-number ((t (:foreground ,outline-variant :inherit fixed-pitch)))) - `(line-number-current-line ((t (:foreground ,primary :weight bold :inherit fixed-pitch)))) - - ;; === Parenthesis matching === - `(sp-show-pair-match-face ((t (:background ,primary-container :foreground ,on-primary-container)))) - `(sp-show-pair-mismatch-face ((t (:background ,err-container :foreground ,on-err-container)))) - - ;; === Rainbow delimiters - FIXED: all levels use readable colors === - `(rainbow-delimiters-depth-1-face ((t (:foreground ,primary)))) - `(rainbow-delimiters-depth-2-face ((t (:foreground ,secondary)))) - `(rainbow-delimiters-depth-3-face ((t (:foreground ,tertiary)))) - `(rainbow-delimiters-depth-4-face ((t (:foreground ,err)))) - `(rainbow-delimiters-depth-5-face ((t (:foreground ,primary-variant)))) - `(rainbow-delimiters-depth-6-face ((t (:foreground ,secondary-variant)))) - `(rainbow-delimiters-depth-7-face ((t (:foreground ,tertiary-variant)))) ;; FIX: was primary_fixed_dim - `(rainbow-delimiters-depth-8-face ((t (:foreground ,on-surface-variant)))) ;; FIX: was secondary_fixed_dim - `(rainbow-delimiters-depth-9-face ((t (:foreground ,outline-color)))) ;; FIX: was tertiary_fixed_dim - `(rainbow-delimiters-mismatched-face ((t (:foreground ,err :weight bold)))) - `(rainbow-delimiters-unmatched-face ((t (:foreground ,err :weight bold)))) - - ;; === Dired === - `(dired-directory ((t (:foreground ,primary :weight bold)))) - `(dired-ignored ((t (:foreground ,outline-variant)))) - `(dired-flagged ((t (:foreground ,err)))) - `(dired-marked ((t (:foreground ,tertiary :weight bold)))) - `(dired-symlink ((t (:foreground ,secondary :slant italic)))) - `(dired-header ((t (:foreground ,primary :weight bold :height 1.1)))) - - ;; === Terminal colors - FIXED: no container colors as foreground === - `(term-color-black ((t (:foreground ,surface-container-lowest :background ,surface-container-lowest)))) - `(term-color-red ((t (:foreground ,err :background ,err)))) - `(term-color-green ((t (:foreground ,tertiary :background ,tertiary)))) - `(term-color-yellow ((t (:foreground ,secondary :background ,secondary)))) - `(term-color-blue ((t (:foreground ,primary :background ,primary)))) - `(term-color-magenta ((t (:foreground ,err-variant :background ,err-variant)))) ;; FIX: was tertiary_container - `(term-color-cyan ((t (:foreground ,primary-variant :background ,primary-variant)))) ;; FIX: was secondary_container - `(term-color-white ((t (:foreground ,on-surface :background ,on-surface)))) - - ;; === EShell === - `(eshell-prompt ((t (:foreground ,primary :weight bold)))) - `(eshell-ls-directory ((t (:foreground ,primary :weight bold)))) - `(eshell-ls-symlink ((t (:foreground ,secondary :slant italic)))) - `(eshell-ls-executable ((t (:foreground ,tertiary)))) - `(eshell-ls-archive ((t (:foreground ,on-tertiary-container)))) - `(eshell-ls-backup ((t (:foreground ,outline-variant)))) - `(eshell-ls-clutter ((t (:foreground ,err)))) - `(eshell-ls-missing ((t (:foreground ,err)))) - `(eshell-ls-product ((t (:foreground ,on-surface-variant)))) - `(eshell-ls-readonly ((t (:foreground ,on-surface-variant)))) - `(eshell-ls-special ((t (:foreground ,secondary)))) - `(eshell-ls-unreadable ((t (:foreground ,outline-variant)))) - - ;; === Markdown - FIXED: same heading fix as org === - `(markdown-header-face ((t (:foreground ,primary :weight bold)))) - `(markdown-header-face-1 ((t (:foreground ,primary :weight bold :height 1.2)))) - `(markdown-header-face-2 ((t (:foreground ,secondary :weight bold :height 1.1)))) ;; FIX: was primary_container - `(markdown-header-face-3 ((t (:foreground ,tertiary :weight bold)))) ;; FIX: was secondary - `(markdown-header-face-4 ((t (:foreground ,err :weight bold)))) ;; FIX: was secondary_container - `(markdown-inline-code-face ((t (:foreground ,tertiary :background ,surface-container-low :inherit fixed-pitch)))) - `(markdown-code-face ((t (:background ,surface-container-low :extend t :inherit fixed-pitch)))) - `(markdown-pre-face ((t (:background ,surface-container-low :inherit fixed-pitch)))) - `(markdown-table-face ((t (:foreground ,secondary :inherit fixed-pitch)))) - - ;; === Web mode === - `(web-mode-html-tag-face ((t (:foreground ,primary)))) - `(web-mode-html-tag-bracket-face ((t (:foreground ,on-surface-variant)))) - `(web-mode-html-attr-name-face ((t (:foreground ,secondary)))) - `(web-mode-html-attr-value-face ((t (:foreground ,tertiary)))) - `(web-mode-css-selector-face ((t (:foreground ,primary)))) - `(web-mode-css-property-name-face ((t (:foreground ,secondary)))) - `(web-mode-css-string-face ((t (:foreground ,tertiary)))) - - ;; === Flycheck === - `(flycheck-error ((t (:underline (:style wave :color ,err))))) - `(flycheck-warning ((t (:underline (:style wave :color ,secondary))))) - `(flycheck-info ((t (:underline (:style wave :color ,tertiary))))) - `(flycheck-fringe-error ((t (:foreground ,err)))) - `(flycheck-fringe-warning ((t (:foreground ,secondary)))) - `(flycheck-fringe-info ((t (:foreground ,tertiary)))) - - ;; === Minibuffer === - `(minibuffer-prompt ((t (:foreground ,primary :weight bold)))) - - ;; === LSP === - `(lsp-face-highlight-textual ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) - `(lsp-face-highlight-read ((t (:background ,secondary-container :foreground ,on-secondary-container :weight bold)))) - `(lsp-face-highlight-write ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) - - ;; === Info titles - FIXED: same heading fix === - `(info-title-1 ((t (:foreground ,primary :weight bold :height 1.3)))) - `(info-title-2 ((t (:foreground ,secondary :weight bold :height 1.2)))) ;; FIX: was primary_container - `(info-title-3 ((t (:foreground ,tertiary :weight bold :height 1.1)))) ;; FIX: was secondary - `(info-title-4 ((t (:foreground ,err :weight bold)))) ;; FIX: was secondary_container - `(Info-quoted ((t (:foreground ,tertiary)))) - `(info-menu-header ((t (:foreground ,primary :weight bold)))) - `(info-menu-star ((t (:foreground ,primary)))) - `(info-node ((t (:foreground ,tertiary :weight bold)))) - - ;; === Tabs === - `(tab-bar ((t (:background ,surface-container-high :foreground ,on-surface :box nil)))) - `(tab-bar-tab ((t (:background ,surface-container-high :foreground ,on-surface :weight bold :box nil)))) - `(tab-bar-tab-inactive ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) - `(tab-line ((t (:background ,surface-container-high :foreground ,on-surface :box nil)))) - `(tab-line-tab ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) - `(tab-line-tab-current ((t (:background ,surface-container-high :foreground ,on-surface :weight bold :box nil)))) - `(tab-line-tab-inactive ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) - `(tab-line-highlight ((t (:background ,surface-container-highest :foreground ,on-surface)))) - `(centaur-tabs-default ((t (:background ,surface-container-high :foreground ,on-surface)))) - `(centaur-tabs-selected ((t (:background ,surface-container-high :foreground ,on-surface :weight bold)))) - `(centaur-tabs-unselected ((t (:background ,surface :foreground ,on-surface-variant)))) - `(centaur-tabs-selected-modified ((t (:background ,surface-container-high :foreground ,tertiary :weight bold)))) - `(centaur-tabs-unselected-modified ((t (:background ,surface :foreground ,tertiary)))) - `(centaur-tabs-active-bar-face ((t (:background ,primary)))) - - ;; === Fixed/variable pitch === - `(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 -(with-eval-after-load 'org - (setq org-hide-leading-stars t) - (setq org-startup-indented t)) - -;;;###autoload -(when load-file-name - (add-to-list 'custom-theme-load-path - (file-name-as-directory (file-name-directory load-file-name)))) - -(provide-theme 'noctalia) -;;; noctalia-theme.el ends here diff --git a/themes/tinty-theme.el b/themes/tinty-theme.el new file mode 100644 index 0000000..8888e01 --- /dev/null +++ b/themes/tinty-theme.el @@ -0,0 +1,1242 @@ +;;; tinty-theme.el --- Noctalia theme for Emacs -*- lexical-binding: t -*- + + +;; Copyright (C) 2025 + +;; Author: Noctalia User Template (Fixed) +;; Version: 2.0 +;; Package-Requires: ((emacs "24.1")) +;; Keywords: faces + +;;; Commentary: + +;; Noctalia Emacs theme generated via user template. +;; Fixes the built-in template's misuse of MD3 container colors as foreground +;; text. All heading and text faces use surface-readable colors only. + +;;; Code: + +(deftheme tinty "Noctalia theme with proper color contrast.") + +(let* (;; Core surface colors + (bg "#161616") + (fg "#f2f4f8") + (surface "#161616") + (on-surface "#f2f4f8") + (on-surface-variant "#dde1e6") + (surface-variant "#262626") + (surface-container "#262626") + (surface-container-low "#262626") + (surface-container-lowest "#161616") + (surface-container-high "#78a9ff") + (surface-container-highest "#78a9ff") + + ;; Accent colors (always readable on surface) + (primary "#33b1ff") + (secondary "#42be65") + (tertiary "#be95ff") + (err "#ee5396") + + ;; Container colors (for BACKGROUNDS only, never as foreground text) + (primary-container "#78a9ff") + (secondary-container "#78a9ff") + (tertiary-container "#78a9ff") + (err-container "#78a9ff") + + ;; On-color text (for text ON accent backgrounds) + (on-primary "#161616") + (on-secondary "#161616") + (on-tertiary "#161616") + (on-err "#161616") + + ;; On-container text (for text on container backgrounds) + (on-primary-container "#f2f4f8") + (on-secondary-container "#f2f4f8") + (on-tertiary-container "#f2f4f8") + (on-err-container "#f2f4f8") + + ;; Outline colors + (outline-color "#525252") + (outline-variant "#525252") + + ;; Shadow + (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 "#33b1ff") + (secondary-variant "#42be65") + (tertiary-variant "#be95ff") + (err-variant "#ee5396")) + + (custom-theme-set-faces + 'tinty + + ;; === Basic faces === + `(default ((t (:background ,bg :foreground ,fg)))) + `(cursor ((t (:background ,primary)))) + `(highlight ((t (:background ,surface-container-high)))) + `(region ((t (:background ,primary-container :foreground ,on-primary-container :extend t)))) + `(secondary-selection ((t (:background ,secondary-container :foreground ,on-secondary-container :extend t)))) + `(isearch ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) + `(lazy-highlight ((t (:background ,secondary-container :foreground ,on-secondary-container)))) + `(vertical-border ((t (:foreground ,surface-variant)))) + `(border ((t (:background ,surface-variant :foreground ,surface-variant)))) + `(fringe ((t (:background ,surface :foreground ,outline-variant)))) + `(shadow ((t (:foreground ,outline-variant)))) + `(link ((t (:foreground ,primary :underline t)))) + `(link-visited ((t (:foreground ,tertiary :underline t)))) + `(success ((t (:foreground ,tertiary)))) + `(warning ((t (:foreground ,secondary)))) + `(error ((t (:foreground ,err)))) + `(match ((t (:background ,secondary-container :foreground ,on-secondary-container)))) + + ;; === Font-lock === + `(font-lock-builtin-face ((t (:foreground ,primary)))) + `(font-lock-comment-face ((t (:foreground ,outline-color :slant italic)))) + `(font-lock-comment-delimiter-face ((t (:foreground ,outline-variant)))) + `(font-lock-constant-face ((t (:foreground ,tertiary :weight bold)))) + `(font-lock-doc-face ((t (:foreground ,on-surface-variant :slant italic)))) + `(font-lock-function-name-face ((t (:foreground ,primary :weight bold)))) + `(font-lock-keyword-face ((t (:foreground ,secondary :weight bold)))) + `(font-lock-string-face ((t (:foreground ,tertiary)))) + `(font-lock-type-face ((t (:foreground ,primary)))) + `(font-lock-variable-name-face ((t (:foreground ,on-surface)))) + `(font-lock-warning-face ((t (:foreground ,err :weight bold)))) + `(font-lock-preprocessor-face ((t (:foreground ,on-surface-variant)))) ;; FIX: was secondary_fixed_dim (invisible) + `(font-lock-negation-char-face ((t (:foreground ,tertiary)))) + + ;; === Show paren === + `(show-paren-match ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) + `(show-paren-mismatch ((t (:background ,err-container :foreground ,on-err-container :weight bold)))) + + ;; === Mode line === + `(mode-line ((t (:background ,surface-container-high :foreground ,on-surface :box nil)))) + `(mode-line-inactive ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) + `(mode-line-buffer-id ((t (:foreground ,primary :weight bold)))) + `(mode-line-emphasis ((t (:foreground ,primary :weight bold)))) + `(mode-line-highlight ((t (:foreground ,primary :box nil)))) + + ;; === Org source blocks === + `(org-block ((t (:background ,surface-container-low :extend t :inherit fixed-pitch)))) + `(org-block-begin-line ((t (:background ,surface-container-low :foreground ,outline-color :extend t :slant italic :inherit fixed-pitch)))) ;; FIX: was primary_fixed_dim + `(org-block-end-line ((t (:background ,surface-container-low :foreground ,outline-color :extend t :slant italic :inherit fixed-pitch)))) ;; FIX: was primary_fixed_dim + `(org-code ((t (:background ,surface-container-low :foreground ,tertiary :inherit fixed-pitch)))) + `(org-verbatim ((t (:background ,surface-container-low :foreground ,primary :inherit fixed-pitch)))) + `(org-meta-line ((t (:foreground ,outline-color :slant italic)))) + + ;; === Org headings - FIXED: 4 distinct hues + variants, all surface-readable === + `(org-level-1 ((t (:foreground ,primary :weight bold :height 1.2)))) + `(org-level-2 ((t (:foreground ,secondary :weight bold :height 1.1)))) ;; FIX: was primary_container + `(org-level-3 ((t (:foreground ,tertiary :weight bold)))) ;; FIX: was secondary + `(org-level-4 ((t (:foreground ,err :weight bold)))) ;; FIX: was secondary_container + `(org-level-5 ((t (:foreground ,primary-variant :weight bold)))) ;; FIX: was tertiary + `(org-level-6 ((t (:foreground ,secondary-variant :weight bold)))) ;; FIX: was tertiary_container + `(org-level-7 ((t (:foreground ,tertiary-variant :weight bold)))) ;; FIX: was primary_fixed (= primary duplicate) + `(org-level-8 ((t (:foreground ,on-surface-variant :weight bold)))) ;; FIX: was primary_fixed_dim + `(org-document-title ((t (:foreground ,primary :weight bold :height 1.3)))) + `(org-document-info ((t (:foreground ,on-surface-variant)))) ;; FIX: was primary_container + `(org-todo ((t (:foreground ,err :weight bold)))) + `(org-done ((t (:foreground ,tertiary :weight bold)))) + `(org-headline-done ((t (:foreground ,on-surface-variant)))) + `(org-hide ((t (:foreground ,bg)))) + `(org-ellipsis ((t (:foreground ,tertiary :underline nil)))) + `(org-table ((t (:foreground ,secondary :inherit fixed-pitch)))) + `(org-formula ((t (:foreground ,tertiary :inherit fixed-pitch)))) + `(org-checkbox ((t (:foreground ,primary :weight bold :inherit fixed-pitch)))) + `(org-date ((t (:foreground ,secondary :underline t)))) + `(org-special-keyword ((t (:foreground ,on-surface-variant :slant italic)))) + `(org-tag ((t (:foreground ,outline-color :weight normal)))) + + ;; === Magit === + `(magit-section-highlight ((t (:background ,surface-container-low)))) + `(magit-diff-hunk-heading ((t (:background ,surface-container :foreground ,on-surface-variant)))) + `(magit-diff-hunk-heading-highlight ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(magit-diff-context ((t (:foreground ,on-surface-variant)))) + `(magit-diff-context-highlight ((t (:background ,surface-container-low :foreground ,on-surface)))) + `(magit-diff-added ((t (:background ,tertiary-container :foreground ,on-tertiary-container)))) + `(magit-diff-added-highlight ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) + `(magit-diff-removed ((t (:background ,err-container :foreground ,on-err-container)))) + `(magit-diff-removed-highlight ((t (:background ,err-container :foreground ,on-err-container :weight bold)))) + `(magit-hash ((t (:foreground ,outline-color)))) + `(magit-branch-local ((t (:foreground ,tertiary :weight bold)))) + `(magit-branch-remote ((t (:foreground ,primary :weight bold)))) + + ;; === Company === + `(company-tooltip ((t (:background ,surface-container :foreground ,on-surface)))) + `(company-tooltip-selection ((t (:background ,primary-container :foreground ,on-primary-container)))) + `(company-tooltip-common ((t (:foreground ,primary)))) + `(company-tooltip-common-selection ((t (:foreground ,on-primary-container :weight bold)))) + `(company-tooltip-annotation ((t (:foreground ,tertiary)))) + `(company-scrollbar-fg ((t (:background ,primary)))) + `(company-scrollbar-bg ((t (:background ,surface-variant)))) + `(company-preview ((t (:foreground ,on-surface-variant :slant italic)))) + `(company-preview-common ((t (:foreground ,primary :slant italic)))) + + ;; === Ido === + `(ido-first-match ((t (:foreground ,primary :weight bold)))) + `(ido-only-match ((t (:foreground ,tertiary :weight bold)))) + `(ido-subdir ((t (:foreground ,secondary)))) + `(ido-indicator ((t (:foreground ,err)))) + `(ido-virtual ((t (:foreground ,outline-color)))) + + ;; === Helm === + `(helm-selection ((t (:background ,primary-container :foreground ,on-primary-container)))) + `(helm-match ((t (:foreground ,primary :weight bold)))) + `(helm-source-header ((t (:background ,surface-container-high :foreground ,primary :weight bold :height 1.1)))) + `(helm-candidate-number ((t (:foreground ,tertiary :weight bold)))) + `(helm-ff-directory ((t (:foreground ,primary :weight bold)))) + `(helm-ff-file ((t (:foreground ,on-surface)))) + `(helm-ff-executable ((t (:foreground ,tertiary)))) + + ;; === Corfu === + `(corfu-default ((t (:background ,surface-container :foreground ,on-surface)))) + `(corfu-current ((t (:background ,primary-container :foreground ,on-primary-container)))) + + ;; === Which-key === + `(which-key-key-face ((t (:foreground ,primary :weight bold)))) + `(which-key-separator-face ((t (:foreground ,outline-variant)))) + `(which-key-command-description-face ((t (:foreground ,on-surface)))) + `(which-key-group-description-face ((t (:foreground ,secondary)))) + `(which-key-special-key-face ((t (:foreground ,tertiary :weight bold)))) + + ;; === Line numbers === + `(line-number ((t (:foreground ,outline-variant :inherit fixed-pitch)))) + `(line-number-current-line ((t (:foreground ,primary :weight bold :inherit fixed-pitch)))) + + ;; === Parenthesis matching === + `(sp-show-pair-match-face ((t (:background ,primary-container :foreground ,on-primary-container)))) + `(sp-show-pair-mismatch-face ((t (:background ,err-container :foreground ,on-err-container)))) + + ;; === Rainbow delimiters - FIXED: all levels use readable colors === + `(rainbow-delimiters-depth-1-face ((t (:foreground ,primary)))) + `(rainbow-delimiters-depth-2-face ((t (:foreground ,secondary)))) + `(rainbow-delimiters-depth-3-face ((t (:foreground ,tertiary)))) + `(rainbow-delimiters-depth-4-face ((t (:foreground ,err)))) + `(rainbow-delimiters-depth-5-face ((t (:foreground ,primary-variant)))) + `(rainbow-delimiters-depth-6-face ((t (:foreground ,secondary-variant)))) + `(rainbow-delimiters-depth-7-face ((t (:foreground ,tertiary-variant)))) ;; FIX: was primary_fixed_dim + `(rainbow-delimiters-depth-8-face ((t (:foreground ,on-surface-variant)))) ;; FIX: was secondary_fixed_dim + `(rainbow-delimiters-depth-9-face ((t (:foreground ,outline-color)))) ;; FIX: was tertiary_fixed_dim + `(rainbow-delimiters-mismatched-face ((t (:foreground ,err :weight bold)))) + `(rainbow-delimiters-unmatched-face ((t (:foreground ,err :weight bold)))) + + ;; === Dired === + `(dired-directory ((t (:foreground ,primary :weight bold)))) + `(dired-ignored ((t (:foreground ,outline-variant)))) + `(dired-flagged ((t (:foreground ,err)))) + `(dired-marked ((t (:foreground ,tertiary :weight bold)))) + `(dired-symlink ((t (:foreground ,secondary :slant italic)))) + `(dired-header ((t (:foreground ,primary :weight bold :height 1.1)))) + + ;; === Terminal colors - FIXED: no container colors as foreground === + `(term-color-black ((t (:foreground ,surface-container-lowest :background ,surface-container-lowest)))) + `(term-color-red ((t (:foreground ,err :background ,err)))) + `(term-color-green ((t (:foreground ,tertiary :background ,tertiary)))) + `(term-color-yellow ((t (:foreground ,secondary :background ,secondary)))) + `(term-color-blue ((t (:foreground ,primary :background ,primary)))) + `(term-color-magenta ((t (:foreground ,err-variant :background ,err-variant)))) ;; FIX: was tertiary_container + `(term-color-cyan ((t (:foreground ,primary-variant :background ,primary-variant)))) ;; FIX: was secondary_container + `(term-color-white ((t (:foreground ,on-surface :background ,on-surface)))) + + ;; === EShell === + `(eshell-prompt ((t (:foreground ,primary :weight bold)))) + `(eshell-ls-directory ((t (:foreground ,primary :weight bold)))) + `(eshell-ls-symlink ((t (:foreground ,secondary :slant italic)))) + `(eshell-ls-executable ((t (:foreground ,tertiary)))) + `(eshell-ls-archive ((t (:foreground ,on-tertiary-container)))) + `(eshell-ls-backup ((t (:foreground ,outline-variant)))) + `(eshell-ls-clutter ((t (:foreground ,err)))) + `(eshell-ls-missing ((t (:foreground ,err)))) + `(eshell-ls-product ((t (:foreground ,on-surface-variant)))) + `(eshell-ls-readonly ((t (:foreground ,on-surface-variant)))) + `(eshell-ls-special ((t (:foreground ,secondary)))) + `(eshell-ls-unreadable ((t (:foreground ,outline-variant)))) + + ;; === Markdown - FIXED: same heading fix as org === + `(markdown-header-face ((t (:foreground ,primary :weight bold)))) + `(markdown-header-face-1 ((t (:foreground ,primary :weight bold :height 1.2)))) + `(markdown-header-face-2 ((t (:foreground ,secondary :weight bold :height 1.1)))) ;; FIX: was primary_container + `(markdown-header-face-3 ((t (:foreground ,tertiary :weight bold)))) ;; FIX: was secondary + `(markdown-header-face-4 ((t (:foreground ,err :weight bold)))) ;; FIX: was secondary_container + `(markdown-inline-code-face ((t (:foreground ,tertiary :background ,surface-container-low :inherit fixed-pitch)))) + `(markdown-code-face ((t (:background ,surface-container-low :extend t :inherit fixed-pitch)))) + `(markdown-pre-face ((t (:background ,surface-container-low :inherit fixed-pitch)))) + `(markdown-table-face ((t (:foreground ,secondary :inherit fixed-pitch)))) + + ;; === Web mode === + `(web-mode-html-tag-face ((t (:foreground ,primary)))) + `(web-mode-html-tag-bracket-face ((t (:foreground ,on-surface-variant)))) + `(web-mode-html-attr-name-face ((t (:foreground ,secondary)))) + `(web-mode-html-attr-value-face ((t (:foreground ,tertiary)))) + `(web-mode-css-selector-face ((t (:foreground ,primary)))) + `(web-mode-css-property-name-face ((t (:foreground ,secondary)))) + `(web-mode-css-string-face ((t (:foreground ,tertiary)))) + + ;; === Flycheck === + `(flycheck-error ((t (:underline (:style wave :color ,err))))) + `(flycheck-warning ((t (:underline (:style wave :color ,secondary))))) + `(flycheck-info ((t (:underline (:style wave :color ,tertiary))))) + `(flycheck-fringe-error ((t (:foreground ,err)))) + `(flycheck-fringe-warning ((t (:foreground ,secondary)))) + `(flycheck-fringe-info ((t (:foreground ,tertiary)))) + + ;; === Minibuffer === + `(minibuffer-prompt ((t (:foreground ,primary :weight bold)))) + + ;; === LSP === + `(lsp-face-highlight-textual ((t (:background ,primary-container :foreground ,on-primary-container :weight bold)))) + `(lsp-face-highlight-read ((t (:background ,secondary-container :foreground ,on-secondary-container :weight bold)))) + `(lsp-face-highlight-write ((t (:background ,tertiary-container :foreground ,on-tertiary-container :weight bold)))) + + ;; === Info titles - FIXED: same heading fix === + `(info-title-1 ((t (:foreground ,primary :weight bold :height 1.3)))) + `(info-title-2 ((t (:foreground ,secondary :weight bold :height 1.2)))) ;; FIX: was primary_container + `(info-title-3 ((t (:foreground ,tertiary :weight bold :height 1.1)))) ;; FIX: was secondary + `(info-title-4 ((t (:foreground ,err :weight bold)))) ;; FIX: was secondary_container + `(Info-quoted ((t (:foreground ,tertiary)))) + `(info-menu-header ((t (:foreground ,primary :weight bold)))) + `(info-menu-star ((t (:foreground ,primary)))) + `(info-node ((t (:foreground ,tertiary :weight bold)))) + + ;; === Tabs === + `(tab-bar ((t (:background ,surface-container-high :foreground ,on-surface :box nil)))) + `(tab-bar-tab ((t (:background ,surface-container-high :foreground ,on-surface :weight bold :box nil)))) + `(tab-bar-tab-inactive ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) + `(tab-line ((t (:background ,surface-container-high :foreground ,on-surface :box nil)))) + `(tab-line-tab ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) + `(tab-line-tab-current ((t (:background ,surface-container-high :foreground ,on-surface :weight bold :box nil)))) + `(tab-line-tab-inactive ((t (:background ,surface :foreground ,on-surface-variant :box nil)))) + `(tab-line-highlight ((t (:background ,surface-container-highest :foreground ,on-surface)))) + `(centaur-tabs-default ((t (:background ,surface-container-high :foreground ,on-surface)))) + `(centaur-tabs-selected ((t (:background ,surface-container-high :foreground ,on-surface :weight bold)))) + `(centaur-tabs-unselected ((t (:background ,surface :foreground ,on-surface-variant)))) + `(centaur-tabs-selected-modified ((t (:background ,surface-container-high :foreground ,tertiary :weight bold)))) + `(centaur-tabs-unselected-modified ((t (:background ,surface :foreground ,tertiary)))) + `(centaur-tabs-active-bar-face ((t (:background ,primary)))) + + ;; === Fixed/variable pitch === + `(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 +(with-eval-after-load 'org + (setq org-hide-leading-stars t) + (setq org-startup-indented t)) + +;;;###autoload +(when load-file-name + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide-theme 'tinty) +;;; tinty-theme.el ends here -- cgit v1.3.1