branch: elpa/spacemacs-theme commit 3531706209e410af5ff7fffcde4e41a56729a6c8 Author: nashamri <designernas...@gmail.com> Commit: nashamri <designernas...@gmail.com>
Fix (#209) regression in custom colors after enabling lexical-binding --- spacemacs-theme.el | 152 +++++++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 74 deletions(-) diff --git a/spacemacs-theme.el b/spacemacs-theme.el index 0e444b1f69..a74f86a0e3 100644 --- a/spacemacs-theme.el +++ b/spacemacs-theme.el @@ -92,79 +92,83 @@ to `auto', tags may not be properly aligned. " :type 'boolean :group 'spacemacs-theme) -(defun true-color-p () - (or - (display-graphic-p) - (= (tty-display-color-cells) 16777216))) - (defun create-spacemacs-theme (variant theme-name) - (let ((class '((class color) (min-colors 89))) ;; ~~ Dark ~~ ~~ Light ~~ - ;; GUI TER GUI TER - ;; generic - (act1 (if (eq variant 'dark) (if (true-color-p) "#222226" "#121212") (if (true-color-p) "#e7e5eb" "#d7dfff"))) - (act2 (if (eq variant 'dark) (if (true-color-p) "#5d4d7a" "#444444") (if (true-color-p) "#d3d3e7" "#afafd7"))) - (base (if (eq variant 'dark) (if (true-color-p) "#b2b2b2" "#b2b2b2") (if (true-color-p) "#655370" "#5f5f87"))) - (base-dim (if (eq variant 'dark) (if (true-color-p) "#686868" "#585858") (if (true-color-p) "#a094a2" "#afafd7"))) - (bg1 (if (eq variant 'dark) (if (true-color-p) "#292b2e" "#262626") (if (true-color-p) "#fbf8ef" "#ffffff"))) - (bg2 (if (eq variant 'dark) (if (true-color-p) "#212026" "#1c1c1c") (if (true-color-p) "#efeae9" "#e4e4e4"))) - (bg3 (if (eq variant 'dark) (if (true-color-p) "#100a14" "#121212") (if (true-color-p) "#e3dedd" "#d0d0d0"))) - (bg4 (if (eq variant 'dark) (if (true-color-p) "#0a0814" "#080808") (if (true-color-p) "#d2ceda" "#bcbcbc"))) - (bg-alt (if (eq variant 'dark) (if (true-color-p) "#42444a" "#353535") (if (true-color-p) "#efeae9" "#e4e4e4"))) - (border (if (eq variant 'dark) (if (true-color-p) "#5d4d7a" "#111111") (if (true-color-p) "#b3b9be" "#b3b9be"))) - (cblk (if (eq variant 'dark) (if (true-color-p) "#cbc1d5" "#b2b2b2") (if (true-color-p) "#655370" "#5f5f87"))) - (cblk-bg (if (eq variant 'dark) (if (true-color-p) "#2f2b33" "#262626") (if (true-color-p) "#e8e3f0" "#ffffff"))) - (cblk-ln (if (eq variant 'dark) (if (true-color-p) "#827591" "#af5faf") (if (true-color-p) "#9380b2" "#af5fdf"))) - (cblk-ln-bg (if (eq variant 'dark) (if (true-color-p) "#373040" "#333333") (if (true-color-p) "#ddd8eb" "#dfdfff"))) - (cursor (if (eq variant 'dark) (if (true-color-p) "#e3dedd" "#d0d0d0") (if (true-color-p) "#100a14" "#121212"))) - (const (if (eq variant 'dark) (if (true-color-p) "#a45bad" "#d75fd7") (if (true-color-p) "#4e3163" "#8700af"))) - (comment (if (eq variant 'dark) (if (true-color-p) "#2aa1ae" "#008787") (if (true-color-p) "#2aa1ae" "#008787"))) - (comment-light (if (eq variant 'dark) (if (true-color-p) "#2aa1ae" "#008787") (if (true-color-p) "#a49da5" "#008787"))) - (comment-bg (if (eq variant 'dark) (if (true-color-p) "#292e34" "#262626") (if (true-color-p) "#ecf3ec" "#ffffff"))) - (comp (if (eq variant 'dark) (if (true-color-p) "#c56ec3" "#d75fd7") (if (true-color-p) "#6c4173" "#8700af"))) - (err (if (eq variant 'dark) (if (true-color-p) "#e0211d" "#e0211d") (if (true-color-p) "#e0211d" "#e0211d"))) - (func (if (eq variant 'dark) (if (true-color-p) "#bc6ec5" "#d75fd7") (if (true-color-p) "#6c3163" "#8700af"))) - (head1 (if (eq variant 'dark) (if (true-color-p) "#4f97d7" "#268bd2") (if (true-color-p) "#3a81c3" "#268bd2"))) - (head1-bg (if (eq variant 'dark) (if (true-color-p) "#293239" "#262626") (if (true-color-p) "#edf1ed" "#ffffff"))) - (head2 (if (eq variant 'dark) (if (true-color-p) "#2d9574" "#2aa198") (if (true-color-p) "#2d9574" "#2aa198"))) - (head2-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff"))) - (head3 (if (eq variant 'dark) (if (true-color-p) "#67b11d" "#67b11d") (if (true-color-p) "#67b11d" "#5faf00"))) - (head3-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff"))) - (head4 (if (eq variant 'dark) (if (true-color-p) "#b1951d" "#875f00") (if (true-color-p) "#b1951d" "#875f00"))) - (head4-bg (if (eq variant 'dark) (if (true-color-p) "#32322c" "#262626") (if (true-color-p) "#f6f1e1" "#ffffff"))) - (highlight (if (eq variant 'dark) (if (true-color-p) "#444155" "#444444") (if (true-color-p) "#d3d3e7" "#d7d7ff"))) - (highlight-dim (if (eq variant 'dark) (if (true-color-p) "#3b314d" "#444444") (if (true-color-p) "#e7e7fc" "#d7d7ff"))) - (keyword (if (eq variant 'dark) (if (true-color-p) "#4f97d7" "#268bd2") (if (true-color-p) "#3a81c3" "#268bd2"))) - (lnum (if (eq variant 'dark) (if (true-color-p) "#44505c" "#444444") (if (true-color-p) "#a8a8bf" "#af87af"))) - (mat (if (eq variant 'dark) (if (true-color-p) "#86dc2f" "#86dc2f") (if (true-color-p) "#ba2f59" "#af005f"))) - (meta (if (eq variant 'dark) (if (true-color-p) "#9f8766" "#af875f") (if (true-color-p) "#da8b55" "#df5f5f"))) - (str (if (eq variant 'dark) (if (true-color-p) "#2d9574" "#2aa198") (if (true-color-p) "#2d9574" "#2aa198"))) - (suc (if (eq variant 'dark) (if (true-color-p) "#86dc2f" "#86dc2f") (if (true-color-p) "#42ae2c" "#00af00"))) - (ttip (if (eq variant 'dark) (if (true-color-p) "#9a9aba" "#888888") (if (true-color-p) "#8c799f" "#5f5f87"))) - (ttip-sl (if (eq variant 'dark) (if (true-color-p) "#5e5079" "#333333") (if (true-color-p) "#c8c6dd" "#afafff"))) - (ttip-bg (if (eq variant 'dark) (if (true-color-p) "#34323e" "#444444") (if (true-color-p) "#e2e0ea" "#dfdfff"))) - (type (if (eq variant 'dark) (if (true-color-p) "#ce537a" "#df005f") (if (true-color-p) "#ba2f59" "#af005f"))) - (var (if (eq variant 'dark) (if (true-color-p) "#7590db" "#8787d7") (if (true-color-p) "#715ab1" "#af5fd7"))) - (war (if (eq variant 'dark) (if (true-color-p) "#dc752f" "#dc752f") (if (true-color-p) "#dc752f" "#dc752f"))) - - ;; colors - (aqua (if (eq variant 'dark) (if (true-color-p) "#2d9574" "#2aa198") (if (true-color-p) "#2d9574" "#2aa198"))) - (aqua-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff"))) - (green (if (eq variant 'dark) (if (true-color-p) "#67b11d" "#67b11d") (if (true-color-p) "#67b11d" "#5faf00"))) - (green-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff"))) - (green-bg-s (if (eq variant 'dark) (if (true-color-p) "#29422d" "#262626") (if (true-color-p) "#dae6d0" "#ffffff"))) - (cyan (if (eq variant 'dark) (if (true-color-p) "#28def0" "#00ffff") (if (true-color-p) "#21b8c7" "#008080"))) - (red (if (eq variant 'dark) (if (true-color-p) "#f2241f" "#d70000") (if (true-color-p) "#f2241f" "#d70008"))) - (red-bg (if (eq variant 'dark) (if (true-color-p) "#3c2a2c" "#262626") (if (true-color-p) "#faede4" "#ffffff"))) - (red-bg-s (if (eq variant 'dark) (if (true-color-p) "#512e31" "#262626") (if (true-color-p) "#eed9d2" "#ffffff"))) - (blue (if (eq variant 'dark) (if (true-color-p) "#4f97d7" "#268bd2") (if (true-color-p) "#3a81c3" "#268bd2"))) - (blue-bg (if (eq variant 'dark) (if (true-color-p) "#293239" "#262626") (if (true-color-p) "#edf1ed" "#d7d7ff"))) - (blue-bg-s (if (eq variant 'dark) (if (true-color-p) "#2d4252" "#262626") (if (true-color-p) "#d1dcdf" "#d7d7ff"))) - (magenta (if (eq variant 'dark) (if (true-color-p) "#a31db1" "#af00df") (if (true-color-p) "#a31db1" "#800080"))) - (yellow (if (eq variant 'dark) (if (true-color-p) "#b1951d" "#875f00") (if (true-color-p) "#b1951d" "#875f00"))) - (yellow-bg (if (eq variant 'dark) (if (true-color-p) "#32322c" "#262626") (if (true-color-p) "#f6f1e1" "#ffffff")))) - - (dolist (pair spacemacs-theme-custom-colors) - (set (car pair) (cdr pair))) + (let* ((true-color-p (lambda () + (or (display-graphic-p) + (= (tty-display-color-cells) 16777216)))) + ;; Helper function to get custom color or default value + (get-color (lambda (color-name default-value) + (or (alist-get color-name spacemacs-theme-custom-colors) + default-value))) + ;; Helper function to pick color based on variant and display capability + (pick-color (lambda (dark-gui dark-ter light-gui light-ter) + (if (eq variant 'dark) + (if (funcall true-color-p) dark-gui dark-ter) + (if (funcall true-color-p) light-gui light-ter)))) + (class '((class color) (min-colors 89))) + ;; --- Dark --- --- Light --- + ;; GUI TER GUI TER + (act1 (funcall get-color 'act1 (funcall pick-color "#222226" "#121212" "#e7e5eb" "#d7dfff"))) + (act2 (funcall get-color 'act2 (funcall pick-color "#5d4d7a" "#444444" "#d3d3e7" "#afafd7"))) + (base (funcall get-color 'base (funcall pick-color "#b2b2b2" "#b2b2b2" "#655370" "#5f5f87"))) + (base-dim (funcall get-color 'base-dim (funcall pick-color "#686868" "#585858" "#a094a2" "#afafd7"))) + (bg1 (funcall get-color 'bg1 (funcall pick-color "#292b2e" "#262626" "#fbf8ef" "#ffffff"))) + (bg2 (funcall get-color 'bg2 (funcall pick-color "#212026" "#1c1c1c" "#efeae9" "#e4e4e4"))) + (bg3 (funcall get-color 'bg3 (funcall pick-color "#100a14" "#121212" "#e3dedd" "#d0d0d0"))) + (bg4 (funcall get-color 'bg4 (funcall pick-color "#0a0814" "#080808" "#d2ceda" "#bcbcbc"))) + (bg-alt (funcall get-color 'bg-alt (funcall pick-color "#42444a" "#353535" "#efeae9" "#e4e4e4"))) + (border (funcall get-color 'border (funcall pick-color "#5d4d7a" "#111111" "#b3b9be" "#b3b9be"))) + (cblk (funcall get-color 'cblk (funcall pick-color "#cbc1d5" "#b2b2b2" "#655370" "#5f5f87"))) + (cblk-bg (funcall get-color 'cblk-bg (funcall pick-color "#2f2b33" "#262626" "#e8e3f0" "#ffffff"))) + (cblk-ln (funcall get-color 'cblk-ln (funcall pick-color "#827591" "#af5faf" "#9380b2" "#af5fdf"))) + (cblk-ln-bg (funcall get-color 'cblk-ln-bg (funcall pick-color "#373040" "#333333" "#ddd8eb" "#dfdfff"))) + (cursor (funcall get-color 'cursor (funcall pick-color "#e3dedd" "#d0d0d0" "#100a14" "#121212"))) + (const (funcall get-color 'const (funcall pick-color "#a45bad" "#d75fd7" "#4e3163" "#8700af"))) + (comment (funcall get-color 'comment (funcall pick-color "#2aa1ae" "#008787" "#2aa1ae" "#008787"))) + (comment-light (funcall get-color 'comment-light (funcall pick-color "#2aa1ae" "#008787" "#a49da5" "#008787"))) + (comment-bg (funcall get-color 'comment-bg (funcall pick-color "#292e34" "#262626" "#ecf3ec" "#ffffff"))) + (comp (funcall get-color 'comp (funcall pick-color "#c56ec3" "#d75fd7" "#6c4173" "#8700af"))) + (err (funcall get-color 'err (funcall pick-color "#e0211d" "#e0211d" "#e0211d" "#e0211d"))) + (func (funcall get-color 'func (funcall pick-color "#bc6ec5" "#d75fd7" "#6c3163" "#8700af"))) + (head1 (funcall get-color 'head1 (funcall pick-color "#4f97d7" "#268bd2" "#3a81c3" "#268bd2"))) + (head1-bg (funcall get-color 'head1-bg (funcall pick-color "#293239" "#262626" "#edf1ed" "#ffffff"))) + (head2 (funcall get-color 'head2 (funcall pick-color "#2d9574" "#2aa198" "#2d9574" "#2aa198"))) + (head2-bg (funcall get-color 'head2-bg (funcall pick-color "#293235" "#262626" "#edf2e9" "#ffffff"))) + (head3 (funcall get-color 'head3 (funcall pick-color "#67b11d" "#67b11d" "#67b11d" "#5faf00"))) + (head3-bg (funcall get-color 'head3-bg (funcall pick-color "#293235" "#262626" "#edf2e9" "#ffffff"))) + (head4 (funcall get-color 'head4 (funcall pick-color "#b1951d" "#875f00" "#b1951d" "#875f00"))) + (head4-bg (funcall get-color 'head4-bg (funcall pick-color "#32322c" "#262626" "#f6f1e1" "#ffffff"))) + (highlight (funcall get-color 'highlight (funcall pick-color "#444155" "#444444" "#d3d3e7" "#d7d7ff"))) + (highlight-dim (funcall get-color 'highlight-dim (funcall pick-color "#3b314d" "#444444" "#e7e7fc" "#d7d7ff"))) + (keyword (funcall get-color 'keyword (funcall pick-color "#4f97d7" "#268bd2" "#3a81c3" "#268bd2"))) + (lnum (funcall get-color 'lnum (funcall pick-color "#44505c" "#444444" "#a8a8bf" "#af87af"))) + (mat (funcall get-color 'mat (funcall pick-color "#86dc2f" "#86dc2f" "#ba2f59" "#af005f"))) + (meta (funcall get-color 'meta (funcall pick-color "#9f8766" "#af875f" "#da8b55" "#df5f5f"))) + (str (funcall get-color 'str (funcall pick-color "#2d9574" "#2aa198" "#2d9574" "#2aa198"))) + (suc (funcall get-color 'suc (funcall pick-color "#86dc2f" "#86dc2f" "#42ae2c" "#00af00"))) + (ttip (funcall get-color 'ttip (funcall pick-color "#9a9aba" "#888888" "#8c799f" "#5f5f87"))) + (ttip-sl (funcall get-color 'ttip-sl (funcall pick-color "#5e5079" "#333333" "#c8c6dd" "#afafff"))) + (ttip-bg (funcall get-color 'ttip-bg (funcall pick-color "#34323e" "#444444" "#e2e0ea" "#dfdfff"))) + (type (funcall get-color 'type (funcall pick-color "#ce537a" "#df005f" "#ba2f59" "#af005f"))) + (var (funcall get-color 'var (funcall pick-color "#7590db" "#8787d7" "#715ab1" "#af5fd7"))) + (war (funcall get-color 'war (funcall pick-color "#dc752f" "#dc752f" "#dc752f" "#dc752f"))) + (aqua (funcall get-color 'aqua (funcall pick-color "#2d9574" "#2aa198" "#2d9574" "#2aa198"))) + (aqua-bg (funcall get-color 'aqua-bg (funcall pick-color "#293235" "#262626" "#edf2e9" "#ffffff"))) + (green (funcall get-color 'green (funcall pick-color "#67b11d" "#67b11d" "#67b11d" "#5faf00"))) + (green-bg (funcall get-color 'green-bg (funcall pick-color "#293235" "#262626" "#edf2e9" "#ffffff"))) + (green-bg-s (funcall get-color 'green-bg-s (funcall pick-color "#29422d" "#262626" "#dae6d0" "#ffffff"))) + (cyan (funcall get-color 'cyan (funcall pick-color "#28def0" "#00ffff" "#21b8c7" "#008080"))) + (red (funcall get-color 'red (funcall pick-color "#f2241f" "#d70000" "#f2241f" "#d70008"))) + (red-bg (funcall get-color 'red-bg (funcall pick-color "#3c2a2c" "#262626" "#faede4" "#ffffff"))) + (red-bg-s (funcall get-color 'red-bg-s (funcall pick-color "#512e31" "#262626" "#eed9d2" "#ffffff"))) + (blue (funcall get-color 'blue (funcall pick-color "#4f97d7" "#268bd2" "#3a81c3" "#268bd2"))) + (blue-bg (funcall get-color 'blue-bg (funcall pick-color "#293239" "#262626" "#edf1ed" "#d7d7ff"))) + (blue-bg-s (funcall get-color 'blue-bg-s (funcall pick-color "#2d4252" "#262626" "#d1dcdf" "#d7d7ff"))) + (magenta (funcall get-color 'magenta (funcall pick-color "#a31db1" "#af00df" "#a31db1" "#800080"))) + (yellow (funcall get-color 'yellow (funcall pick-color "#b1951d" "#875f00" "#b1951d" "#875f00"))) + (yellow-bg (funcall get-color 'yellow-bg (funcall pick-color "#32322c" "#262626" "#f6f1e1" "#ffffff")))) + + (custom-theme-set-faces theme-name @@ -1101,8 +1105,8 @@ to `auto', tags may not be properly aligned. " `(org-fontify-todo-headline nil) ;;;;; pdf-tools - `(pdf-view-midnight-colors '(,base . ,bg1))) - )) + `(pdf-view-midnight-colors '(,base . ,bg1)) + ))) ;;;###autoload