diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-24 05:50:46 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-24 05:51:12 -0400 |
| commit | 99cb7324bbd29342f57fa07dec74c366b9195382 (patch) | |
| tree | 697a72c4a80c2f6e94adecc039688fa14a21f79d /modules | |
| parent | 5e72000497732e7d20c179d2562e4bfacc1e3fbe (diff) | |
| download | dotemacs-99cb7324bbd29342f57fa07dec74c366b9195382.tar.gz dotemacs-99cb7324bbd29342f57fa07dec74c366b9195382.zip | |
feat(nerd-icons): drop the runtime tint so the theme drives icon color (phase 3)
Remove cj/nerd-icons-tint-color, cj/--nerd-icons-color-faces, cj/nerd-icons-apply-tint and its two call sites, so the 34 nerd-icons color faces are no longer force-set to one darkgoldenrod foreground at load time. The WIP theme already owns those faces (theme-studio auto-discovered them), so with the tint gone their per-filetype colors come from the theme and are editable in theme-studio's new nerd-icons pane. The dir-icon advice (cj/--nerd-icons-color-dir) stays — it points at a theme-owned face now. Delete the apply-tint test, which covered removed code.
Claude-Session: https://claude.ai/code/session_01BqrdWUo9GcznYX2pZr76gZ
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/nerd-icons-config.el | 46 |
1 files changed, 7 insertions, 39 deletions
diff --git a/modules/nerd-icons-config.el b/modules/nerd-icons-config.el index d3d55b864..e2edb0717 100644 --- a/modules/nerd-icons-config.el +++ b/modules/nerd-icons-config.el @@ -1,4 +1,4 @@ -;;; nerd-icons-config.el --- Nerd-icons setup, integrations, and tinting -*- lexical-binding: t; -*- +;;; nerd-icons-config.el --- Nerd-icons setup and integrations -*- lexical-binding: t; -*- ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: @@ -16,51 +16,21 @@ ;; - the package itself ;; - completion integration (`nerd-icons-completion') ;; - ibuffer integration (`nerd-icons-ibuffer') -;; - bulk color tinting of every `nerd-icons-*' color face ;; - dir-icon color advice (so directory glyphs carry a color face like ;; file glyphs do, instead of falling through to the buffer default ;; face) ;; +;; Icon colors are theme-driven: nerd-icons' 34 `nerd-icons-*' color faces are +;; owned by the theme (themeable in theme-studio), not overwritten at load time. +;; ;; Per-feature USE of nerd-icons stays in the feature module that consumes ;; it: `dashboard-icon-type', `dirvish-attributes', and the keyboard-compat ;; terminal-frame icon-blanking advice are not centralized here. ;;; Code: -;; ----------------------------- Customization --------------------------------- - -(defcustom cj/nerd-icons-tint-color "darkgoldenrod" - "Single foreground color applied to every `nerd-icons-*' color face. -Set via Customize or by `setq' before this module loads, then call -`cj/nerd-icons-apply-tint' to re-apply on demand." - :type 'string - :group 'cj) - -(defconst cj/--nerd-icons-color-faces - '(nerd-icons-red nerd-icons-lred nerd-icons-dred nerd-icons-red-alt - nerd-icons-green nerd-icons-lgreen nerd-icons-dgreen - nerd-icons-yellow nerd-icons-lyellow nerd-icons-dyellow - nerd-icons-orange nerd-icons-lorange nerd-icons-dorange - nerd-icons-blue nerd-icons-blue-alt nerd-icons-lblue nerd-icons-dblue - nerd-icons-cyan nerd-icons-cyan-alt nerd-icons-lcyan nerd-icons-dcyan - nerd-icons-purple nerd-icons-purple-alt nerd-icons-lpurple nerd-icons-dpurple - nerd-icons-pink nerd-icons-lpink nerd-icons-dpink - nerd-icons-maroon nerd-icons-lmaroon nerd-icons-dmaroon - nerd-icons-silver nerd-icons-lsilver nerd-icons-dsilver) - "Every color face nerd-icons attaches to glyphs via `:inherit'.") - ;; ------------------------------- Helpers ------------------------------------- -(defun cj/nerd-icons-apply-tint (&optional color) - "Set every face in `cj/--nerd-icons-color-faces' to foreground COLOR. -COLOR defaults to `cj/nerd-icons-tint-color'. Faces that are not yet -defined (nerd-icons not loaded) are silently skipped." - (interactive) - (let ((c (or color cj/nerd-icons-tint-color))) - (dolist (f cj/--nerd-icons-color-faces) - (when (facep f) - (set-face-foreground f c))))) - (defun cj/--nerd-icons-color-dir (icon) "Layer `nerd-icons-yellow' onto ICON's face stack and return ICON. ICON is the propertized string returned by `nerd-icons-icon-for-dir'. @@ -87,17 +57,15 @@ every call. The `memq' check skips when the face is already present." (use-package nerd-icons :demand t :config - (advice-add 'nerd-icons-icon-for-dir :filter-return #'cj/--nerd-icons-color-dir) - (cj/nerd-icons-apply-tint)) + (advice-add 'nerd-icons-icon-for-dir :filter-return #'cj/--nerd-icons-color-dir)) ;; Safety net: if this module is re-evaluated in a running Emacs where ;; nerd-icons is already loaded, `:config' above won't fire again -- -;; ensure the advice and tint still apply. +;; ensure the dir advice still applies. (with-eval-after-load 'nerd-icons (unless (advice-member-p #'cj/--nerd-icons-color-dir 'nerd-icons-icon-for-dir) (advice-add 'nerd-icons-icon-for-dir - :filter-return #'cj/--nerd-icons-color-dir)) - (cj/nerd-icons-apply-tint)) + :filter-return #'cj/--nerd-icons-color-dir))) (use-package nerd-icons-completion :demand t |
