thirdparty/color-theme-solarized/solarized-definitions.el
changeset 49 942fe8d1a653
parent 48 f17ebf233431
equal deleted inserted replaced
48:f17ebf233431 49:942fe8d1a653
     7 
     7 
     8 (defcustom solarized-degrade nil
     8 (defcustom solarized-degrade nil
     9   "For test purposes only; when in GUI mode, forces Solarized to use the 256
     9   "For test purposes only; when in GUI mode, forces Solarized to use the 256
    10 degraded color mode to test the approximate color values for accuracy."
    10 degraded color mode to test the approximate color values for accuracy."
    11   :type 'boolean
    11   :type 'boolean
       
    12   :group 'solarized)
       
    13 
       
    14 (defcustom solarized-diff-mode 'normal
       
    15   "Sets the level of highlighting to use in diff-like modes."
       
    16   :type 'symbol
       
    17   :options '(high normal low)
    12   :group 'solarized)
    18   :group 'solarized)
    13 
    19 
    14 (defcustom solarized-bold t
    20 (defcustom solarized-bold t
    15   "Stops Solarized from displaying bold when nil."
    21   "Stops Solarized from displaying bold when nil."
    16   :type 'boolean
    22   :type 'boolean
    85 			      (if solarized-broken-srgb 2 1))
    91 			      (if solarized-broken-srgb 2 1))
    86 			  (if (= solarized-termcolors 256)
    92 			  (if (= solarized-termcolors 256)
    87 			      3
    93 			      3
    88 			    4))))
    94 			    4))))
    89              (nth index (assoc name solarized-colors)))))
    95              (nth index (assoc name solarized-colors)))))
    90     (let ((base03    (find-color 'base03))
    96     (let ((base03      (find-color 'base03))
    91           (base02    (find-color 'base02))
    97           (base02      (find-color 'base02))
    92           (base01    (find-color 'base01))
    98           (base01      (find-color 'base01))
    93           (base00    (find-color 'base00))
    99           (base00      (find-color 'base00))
    94           (base0     (find-color 'base0))
   100           (base0       (find-color 'base0))
    95           (base1     (find-color 'base1))
   101           (base1       (find-color 'base1))
    96           (base2     (find-color 'base2))
   102           (base2       (find-color 'base2))
    97           (base3     (find-color 'base3))
   103           (base3       (find-color 'base3))
    98           (yellow    (find-color 'yellow))
   104           (yellow      (find-color 'yellow))
    99           (orange    (find-color 'orange))
   105           (orange      (find-color 'orange))
   100           (red       (find-color 'red))
   106           (red         (find-color 'red))
   101           (magenta   (find-color 'magenta))
   107           (magenta     (find-color 'magenta))
   102           (violet    (find-color 'violet))
   108           (violet      (find-color 'violet))
   103           (blue      (find-color 'blue))
   109           (blue        (find-color 'blue))
   104           (cyan      (find-color 'cyan))
   110           (cyan        (find-color 'cyan))
   105           (green     (find-color 'green))
   111           (green       (find-color 'green))
   106           (bold      (if solarized-bold 'bold 'normal))
   112           (bold        (if solarized-bold 'bold 'normal))
   107           (underline (if solarized-underline t nil))
   113           (bright-bold (if solarized-bold 'normal 'bold))
   108           (opt-under nil)
   114           (underline   (if solarized-underline t nil))
   109           (italic    (if solarized-italic 'italic 'normal)))
   115           (opt-under   nil)
       
   116           (italic      (if solarized-italic 'italic 'normal)))
   110       (when (eq 'light mode)
   117       (when (eq 'light mode)
   111         (rotatef base03 base3)
   118         (rotatef base03 base3)
   112         (rotatef base02 base2)
   119         (rotatef base02 base2)
   113         (rotatef base01 base1)
   120         (rotatef base01 base1)
   114         (rotatef base00 base0))
   121         (rotatef base00 base0))
   118                  (rotatef base01 base00 base0 base1 base2 base3)
   125                  (rotatef base01 base00 base0 base1 base2 base3)
   119                  (setf base3 orig-base3)))
   126                  (setf base3 orig-base3)))
   120               ((eq 'low solarized-contrast)
   127               ((eq 'low solarized-contrast)
   121                (setf back      base02
   128                (setf back      base02
   122                      opt-under t)))
   129                      opt-under t)))
   123         `((;; basic
   130         (let ((bg-back `(:background ,back))
   124            (default ((t (:foreground ,base0 ,:background ,back))))
   131               (bg-base03 `(:background ,base03))
   125            (cursor
   132               (bg-base02 `(:background ,base02))
   126             ((t (:foreground ,base0 :background ,base03 :inverse-video t))))
   133               (bg-base01 `(:background ,base01))
   127            (escape-glyph-face ((t (:foreground ,red))))
   134               (bg-base00 `(:background ,base00))
   128            (fringe ((t (:foreground ,base01 :background ,base02))))
   135               (bg-base0 `(:background ,base0))
   129            (linum ((t (:foreground ,base01 :background ,base02))))
   136               (bg-base1 `(:background ,base1))
   130            (header-line ((t (:foreground ,base0 :background ,base2))))
   137               (bg-base2 `(:background ,base2))
   131            (highlight ((t (:background ,base02))))
   138               (bg-base3 `(:background ,base3))
   132            (hl-line ((t (:background ,base02))))
   139               (bg-green `(:background ,green))
   133            (isearch ((t (:foreground ,yellow :inverse-video t))))
   140               (bg-yellow `(:background ,yellow))
   134            (lazy-highlight ((t (:background ,base2 :foreground ,base00))))
   141               (bg-orange `(:background ,orange))
   135            (link ((t (:foreground ,violet :underline ,underline))))
   142               (bg-red `(:background ,red))
   136            (link-visited ((t (:foreground ,magenta :underline ,underline))))
   143               (bg-magenta `(:background ,magenta))
   137            (menu ((t (:foreground ,base0 :background ,base02))))
   144               (bg-violet `(:background ,violet))
   138            (minibuffer-prompt ((t (:foreground ,blue))))
   145               (bg-blue `(:background ,blue))
   139            (mode-line
   146               (bg-cyan `(:background ,cyan))
   140             ((t (:foreground ,base1 :background ,base02
   147               
   141                              :box (:line-width 1 :color ,base1)))))
   148               (fg-base03 `(:foreground ,base03))
   142            (mode-line-buffer-id ((t (:foreground ,base1))))
   149               (fg-base02 `(:foreground ,base02))
   143            (mode-line-inactive
   150               (fg-base01 `(:foreground ,base01))
   144             ((t (:foreground ,base0  :background ,base02
   151               (fg-base00 `(:foreground ,base00))
   145                              :box (:line-width 1 :color ,base02)))))
   152               (fg-base0 `(:foreground ,base0))
   146            (region ((t (:background ,base02))))
   153               (fg-base1 `(:foreground ,base1))
   147            (secondary-selection ((t (:background ,base02))))
   154               (fg-base2 `(:foreground ,base2))
   148            (trailing-whitespace ((t (:foreground ,red :inverse-video t))))
   155               (fg-base3 `(:foreground ,base3))
   149            (vertical-border ((t (:foreground ,base0))))
   156               (fg-green `(:foreground ,green))
   150            ;; comint
   157               (fg-yellow `(:foreground ,yellow))
   151            (comint-highlight-prompt ((t (:foreground ,blue))))
   158               (fg-orange `(:foreground ,orange))
   152            ;; compilation
   159               (fg-red `(:foreground ,red))
   153            (compilation-info ((t (:foreground ,green :weight ,bold))))
   160               (fg-magenta `(:foreground ,magenta))
   154            (compilation-warning ((t (:foreground ,orange :weight ,bold))))
   161               (fg-violet `(:foreground ,violet))
   155            ;; custom
   162               (fg-blue `(:foreground ,blue))
   156            (custom-button
   163               (fg-cyan `(:foreground ,cyan))
   157             ((t (:foreground ,base1 :background ,base02
   164 
   158                  :box (:line-width 2 :style released-button)))))
   165               (fmt-bold `(:weight ,bold))
   159            (custom-button-mouse
   166               (fmt-bldi `(:weight ,bold))
   160             ((t (:foreground ,base1 :background ,base02 :inverse-video t
   167               (fmt-undr `(:underline ,underline))
   161                  :inherit custom-button))))
   168               (fmt-undb `(:underline ,underline :weight ,bold))
   162            (custom-button-pressed
   169               (fmt-undi `(:underline ,underline))
   163             ((t (:foreground ,base1 :background ,base02 :inverse-video t
   170               (fmt-uopt `(:underline ,opt-under))
   164                  :box (:line-width 2 :style pressed-button)
   171               (fmt-curl `(:underline t)) ; FIXME: not quite the same
   165                  :inherit custom-button-mouse))))
   172               (fmt-ital `(:slant ,italic))
   166            (custom-changed ((t (:foreground ,blue :background ,base3
   173               (fmt-stnd `(:inverse-video t)) ; FIXME: not quite the same
   167                                 :inverse-video t))))
   174               (fmt-revr `(:inverse-video t))
   168            (custom-comment ((t (:foreground ,base1 :background ,base02))))
   175               (fmt-revb `(:inverse-video t :weight ,bold))
   169            (custom-comment-tag ((t (:foreground ,base1 :background ,base02))))
   176               (fmt-revbb `(:inverse-video t :weight ,bright-bold))
   170            (custom-documentation ((t (:inherit default))))
   177               (fmt-revbbu `(:inverse-video t
   171            (custom-group-tag ((t (:foreground ,base1))))
   178                             :weight ,bright-bold
   172            (custom-group-tag-1 ((t (:foreground ,base1 :weight ,bold))))
   179                             :underline ,underline)))
   173            (custom-invalid
   180           `((;; basic
   174             ((t (:foreground ,red :background ,back :inverse-video t))))
   181              (default ((t (,@fg-base0 ,@bg-back)))) ; Normal
   175            (custom-link ((t (:foreground ,violet))))
   182              (cursor ((t (,@fg-base03 ,@bg-base0)))) ; Cursor
   176            (custom-state ((t (:foreground ,green))))
   183              (escape-glyph-face ((t (,@fg-red))))
   177            (custom-variable-tag ((t (:foreground ,base1))))
   184              (fringe ((t (,@fg-base01 ,@bg-base02))))
   178            ;; diff
   185              (linum ((t (,@fg-base01 ,@bg-base02))))
   179            (diff-added ((t (:foreground ,green :inverse-video t))))
   186              (header-line ((t (,@fg-base0 ,@bg-base2))))
   180            (diff-changed ((t (:foreground ,yellow :inverse-video t))))
   187              (highlight ((t (,@bg-base02))))
   181            (diff-removed ((t (:foreground ,red :inverse-video t))))
   188 
   182            (diff-header ((t (:background ,base01))))
   189              (hl-line ((t (,@fmt-uopt ,@bg-base02)))) ; CursorLine
   183            (diff-file-header
   190              (isearch ((t (,@fmt-stnd ,@fg-orange)))) ; IncSearch
   184             ((t (:background ,base1 :foreground ,base01 :weight ,bold))))
   191              (lazy-highlight ((t (,@bg-base2 ,@fg-base00))))
   185            (diff-refine-change ((t (:background ,base1))))
   192              (link ((t (,@fmt-undr ,@fg-violet))))
   186            ;; IDO
   193              (link-visited ((t (,@fmt-undr ,@fg-magenta))))
   187            (ido-only-match ((t (:foreground ,green))))
   194              (menu ((t (,@fg-base0 ,@bg-base02))))
   188            (ido-subdir ((t (:foreground ,blue))))
   195              (minibuffer-prompt ((t (,@fg-blue))))
   189            (ido-first-match ((t (:foreground ,green :weight ,bold))))
   196              (mode-line
   190            ;; emacs-wiki
   197               ((t (,@fg-base1 ,@bg-base02 :box (:line-width 1 :color ,base1)))))
   191            (emacs-wiki-bad-link-face
   198              (mode-line-buffer-id ((t (,@fg-base1))))
   192             ((t (:foreground ,red :underline ,underline))))
   199              (mode-line-inactive
   193            (emacs-wiki-link-face
   200               ((t (,@fg-base0  ,@bg-base02
   194             ((t (:foreground ,blue :underline ,underline))))
   201                                :box (:line-width 1 :color ,base02)))))
   195            (emacs-wiki-verbatim-face
   202              (region ((t (,@fg-base01 ,@bg-base03 ,@fmt-revbb)))) ; Visual
   196             ((t (:foreground ,base00 :underline ,underline))))
   203              (secondary-selection ((t (,@bg-base02))))
   197            ;; eshell
   204              (shadow ((t (,@fg-base01))))
   198            (eshell-ls-archive ((t (:foreground ,magenta))))
   205              (trailing-whitespace ((t (,@fmt-revr ,@fg-red))))
   199            (eshell-ls-backup ((t (:foreground ,yellow))))
   206              (vertical-border ((t (,@fg-base0))))
   200            (eshell-ls-clutter ((t (:foreground ,orange))))
   207              ;; comint
   201            (eshell-ls-directory ((t (:foreground ,blue))))
   208              (comint-highlight-prompt ((t (,@fg-blue))))
   202            (eshell-ls-executable ((t (:foreground ,green))))
   209              ;; compilation
   203            (eshell-ls-missing ((t (:foreground ,red))))
   210              (compilation-info ((t (,@fmt-bold ,@fg-green))))
   204            (eshell-ls-product ((t (:foreground ,yellow))))
   211              (compilation-warning ((t (,@fmt-bold ,@fg-orange))))
   205            (eshell-ls-readonly ((t (:foreground ,base1))))
   212              ;; custom
   206            (eshell-ls-special ((t (:foreground ,violet))))
   213              (custom-button
   207            (eshell-ls-symlink ((t (:foreground ,cyan))))
   214               ((t (,@fg-base1 ,@bg-base02
   208            (eshell-ls-unreadable ((t (:foreground ,base00))))
   215                               :box (:line-width 2 :style released-button)))))
   209            (eshell-prompt ((t (:foreground ,green :weight ,bold))))
   216              (custom-button-mouse
   210            ;; font-lock
   217               ((t (,@fmt-revr ,@fg-base1 ,@bg-base02 :inherit custom-button))))
   211            (font-lock-builtin-face ((t (:foreground ,green))))
   218              (custom-button-pressed
   212            (font-lock-comment-face ((t (:foreground ,base01 :slant ,italic))))
   219               ((t (,@fmt-revr ,@fg-base1 ,@bg-base02
   213            (font-lock-constant-face ((t (:foreground ,cyan))))
   220                               :box (:line-width 2 :style pressed-button)
   214            (font-lock-function-name-face ((t (:foreground ,blue))))
   221                               :inherit custom-button-mouse))))
   215            (font-lock-keyword-face ((t (:foreground ,green))))
   222              (custom-changed ((t (,@fmt-revr ,@fg-blue ,@bg-base3))))
   216            (font-lock-string-face ((t (:foreground ,cyan))))
   223              (custom-comment ((t (,@fg-base1 ,@bg-base02))))
   217            (font-lock-type-face ((t (:foreground ,yellow))))
   224              (custom-comment-tag ((t (,@fg-base1 ,@bg-base02))))
   218            (font-lock-variable-name-face ((t (:foreground ,blue))))
   225              (custom-documentation ((t (:inherit default))))
   219            (font-lock-warning-face ((t (:foreground ,red :weight ,bold))))
   226              (custom-group-tag ((t (,@fg-base1))))
   220            (font-lock-doc-face ((t (:foreground ,cyan :slant ,italic))))
   227              (custom-group-tag-1 ((t (,fmt-bold ,@fg-base1))))
   221            (font-lock-color-constant-face ((t (:foreground ,green))))
   228              (custom-invalid ((t (,@fmt-revr ,@fg-red ,@bg-back))))
   222            (font-lock-comment-delimiter-face
   229              (custom-link ((t (,@fg-violet))))
   223             ((t (:foreground ,base01 :weight ,bold))))
   230              (custom-state ((t (,@fg-green))))
   224            (font-lock-doc-string-face ((t (:foreground ,green))))
   231              (custom-variable-tag ((t (,@fg-base1))))
   225            (font-lock-preprocessor-face ((t (:foreground ,orange))))
   232              ;; diff - DiffAdd, DiffChange, DiffDelete, and DiffText
   226            (font-lock-reference-face ((t (:foreground ,cyan))))
   233              ,@(case solarized-diff-mode
   227            (font-lock-negation-char-face ((t (:foreground ,red))))
   234                  (high
   228            (font-lock-other-type-face ((t (:foreground ,blue :slant ,italic))))
   235                   `((diff-added ((t (,@fmt-revr ,@fg-green))))
   229            (font-lock-regexp-grouping-construct    ((t (:foreground ,orange))))
   236                     (diff-changed ((t (,@fmt-revr ,@fg-yellow))))
   230            (font-lock-special-keyword-face ((t (:foreground ,magenta))))
   237                     (diff-removed ((t (,@fmt-revr ,@fg-red))))
   231            (font-lock-exit-face ((t (:foreground ,red))))
   238                     (diff-header ((t (,@fmt-revr ,@fg-blue ,@bg-back))))))
   232            (font-lock-other-emphasized-face
   239                  (low
   233             ((t (:foreground ,violet :weight ,bold :slant ,italic))))
   240                   `((diff-added ((t (,@fmt-undr ,@fg-green))))
   234            (font-lock-regexp-grouping-backslash ((t (:foreground ,yellow))))
   241                     (diff-changed ((t (,@fmt-undr ,@fg-yellow))))
   235            ;; info
   242                     (diff-removed ((t (,@fmt-bold ,@fg-red))))
   236            (info-xref ((t (:foreground ,blue :underline ,underline))))
   243                     (diff-header ((t (,@fmt-undr ,@fg-blue ,@bg-back))))))
   237            (info-xref-visited ((t (:inherit info-xref :foreground ,magenta))))
   244                  (normal
   238            ;; org
   245                   (if window-system
   239            (org-hide ((t (:foreground ,base03))))
   246                       `((diff-added ((t (,@fmt-bold ,@fg-green))))
   240            (org-todo ((t (:foreground ,base03 :background ,red :weight ,bold))))
   247                         (diff-changed ((t (,@fmt-bold ,@fg-yellow))))
   241            (org-done ((t (:foreground ,green :weight ,bold))))
   248                         (diff-removed ((t (,@fmt-bold ,@fg-red))))
   242            (org-todo-kwd-face ((t (:foreground ,red :background ,base03))))
   249                         (diff-header ((t (,@fmt-bold ,@fg-blue ,@bg-back)))))
   243            (org-done-kwd-face ((t (:foreground ,green :background ,base03))))
   250                     `((diff-added ((t (,@fg-green))))
   244            (org-project-kwd-face
   251                       (diff-changed ((t (,@fg-yellow))))
   245             ((t (:foreground ,violet :background ,base03))))
   252                       (diff-removed ((t (,@fg-red))))
   246            (org-waiting-kwd-face
   253                       (diff-header ((t (,@fg-blue ,@bg-back))))))))
   247             ((t (:foreground ,orange :background ,base03))))
   254              (diff-file-header ((t (,@bg-back))))
   248            (org-someday-kwd-face ((t (:foreground ,blue :background ,base03))))
   255              (diff-refine-change ((t (,@bg-base3))))
   249            (org-started-kwd-face
   256              ;; IDO
   250             ((t (:foreground ,yellow :background ,base03))))
   257              (ido-only-match ((t (,@fg-green))))
   251            (org-cancelled-kwd-face
   258              (ido-subdir ((t (,@fg-blue))))
   252             ((t (:foreground ,green :background ,base03))))
   259              (ido-first-match ((t (,@fmt-bold ,@fg-green))))
   253            (org-delegated-kwd-face
   260              ;; emacs-wiki
   254             ((t (:foreground ,cyan :background ,base03))))
   261              (emacs-wiki-bad-link-face ((t (,@fmt-undr ,@fg-red))))
   255            ;; show-paren
   262              (emacs-wiki-link-face ((t (,@fmt-undr ,@fg-blue))))
   256            (show-paren-match-face ((t (:background ,cyan :foreground ,base3))))
   263              (emacs-wiki-verbatim-face ((t (,@fmt-undr ,@fg-base00))))
   257            (show-paren-mismatch-face
   264              ;; eshell
   258             ((t (:background ,red :foreground ,base3))))
   265              (eshell-ls-archive ((t (,@fg-magenta))))
   259            ;; widgets
   266              (eshell-ls-backup ((t (,@fg-yellow))))
   260            (widget-field
   267              (eshell-ls-clutter ((t (,@fg-orange))))
   261             ((t (:box (:line-width 1 :color ,base2) :foreground ,base1 :background ,base02 :inherit default))))
   268              (eshell-ls-directory ((t (,@fg-blue))))
   262            (widget-single-line-field ((t (:inherit widget-field))))
   269              (eshell-ls-executable ((t (,@fg-green))))
   263            ;; extra modules
   270              (eshell-ls-missing ((t (,@fg-red))))
   264            ;; -------------
   271              (eshell-ls-product ((t (,@fg-yellow))))
   265            ;; gnus
   272              (eshell-ls-readonly ((t (,@fg-base1))))
   266            (gnus-cite-1 ((t (:foreground ,magenta))))
   273              (eshell-ls-special ((t (,@fg-violet))))
   267            (gnus-cite-2 ((t (:foreground ,base2))))
   274              (eshell-ls-symlink ((t (,@fg-cyan))))
   268            (gnus-cite-3 ((t (:foreground ,base3))))
   275              (eshell-ls-unreadable ((t (,@fg-base00))))
   269            (gnus-cite-4 ((t (:foreground ,base1))))
   276              (eshell-prompt ((t (,@fmt-bold ,@fg-green))))
   270            (gnus-cite-5 ((t (:foreground ,magenta))))
   277              ;; font-lock
   271            (gnus-cite-6 ((t (:foreground ,base2))))
   278              (font-lock-builtin-face ((t (,@fg-green)))) ; Statement
   272            (gnus-cite-7 ((t (:foreground ,base3))))
   279              (font-lock-comment-face ((t (,@fmt-ital ,@fg-base01)))) ; Comment
   273            (gnus-cite-8 ((t (:foreground ,base1))))
   280              (font-lock-constant-face ((t (,@fg-cyan)))) ; Constant
   274            (gnus-cite-9 ((t (:foreground ,base2))))
   281              (font-lock-function-name-face ((t (,@fg-blue)))) ; Identifier
   275            (gnus-cite-10 ((t (:foreground ,base3))))
   282              (font-lock-keyword-face ((t (,@fg-green)))) ; Statement
   276            (gnus-cite-11 ((t (:foreground ,blue))))
   283              (font-lock-string-face ((t (,@fg-cyan)))) ; Constant
   277            (gnus-group-mail-1 ((t (:foreground ,base3 :weight ,bold))))
   284              (font-lock-type-face ((t (,@fg-yellow)))) ; Type
   278            (gnus-group-mail-1-empty ((t (:foreground ,base3))))
   285              (font-lock-variable-name-face ((t (,@fg-blue)))) ; Identifier
   279            (gnus-group-mail-2 ((t (:foreground ,base2 :weight ,bold))))
   286              (font-lock-warning-face ((t (,@fmt-bold ,@fg-red)))) ; Error
   280            (gnus-group-mail-2-empty ((t (:foreground ,base2))))
   287              (font-lock-doc-face ((t (,@fmt-ital ,@fg-cyan))))
   281            (gnus-group-mail-3 ((t (:foreground ,magenta :weight ,bold))))
   288              (font-lock-color-constant-face ((t (,@fg-green))))
   282            (gnus-group-mail-3-empty ((t (:foreground ,magenta))))
   289              (font-lock-comment-delimiter-face  ; Comment
   283            (gnus-group-mail-low ((t (:foreground ,base00 :weight ,bold))))
   290               ((t (,@fmt-ital ,@fg-base01))))
   284            (gnus-group-mail-low-empty ((t (:foreground ,base00))))
   291              (font-lock-doc-string-face ((t (,@fg-green))))
   285            (gnus-group-news-1 ((t (:foreground ,base1 :weight ,bold))))
   292              (font-lock-preprocessor-face ((t (,@fg-orange)))) ; PreProc
   286            (gnus-group-news-1-empty ((t (:foreground ,base1))))
   293              (font-lock-reference-face ((t (,@fg-cyan))))
   287            (gnus-group-news-2 ((t (:foreground ,blue :weight ,bold))))
   294              (font-lock-negation-char-face ((t (,@fg-red))))
   288            (gnus-group-news-2-empty ((t (:foreground ,blue))))
   295              (font-lock-other-type-face ((t (,@fmt-ital ,@fg-blue))))
   289            (gnus-group-news-low ((t (:foreground ,violet :weight ,bold))))
   296              (font-lock-regexp-grouping-construct ((t (,@fg-orange))))
   290            (gnus-group-news-low-empty ((t (:foreground ,violet))))
   297              (font-lock-special-keyword-face ((t (,@fg-magenta))))
   291            (gnus-header-content ((t (:foreground ,cyan :slant ,italic))))
   298              (font-lock-exit-face ((t (,@fg-red))))
   292            (gnus-header-from ((t (:foreground ,base2))))
   299              (font-lock-other-emphasized-face ((t (,@fmt-bldi ,@fg-violet))))
   293            (gnus-header-name ((t (:foreground ,blue))))
   300              (font-lock-regexp-grouping-backslash ((t (,@fg-yellow))))
   294            (gnus-header-newsgroups ((t (:foreground ,green :slant ,italic))))
   301              ;; info
   295            (gnus-header-subject ((t (:foreground ,base1))))
   302              (info-xref ((t (,@fmt-undr ,@fg-blue))))
   296            (gnus-server-agent ((t (:foreground ,base3 :weight ,bold))))
   303              (info-xref-visited ((t (,@fg-magenta :inherit info-xref))))
   297            (gnus-server-closed ((t (:foreground ,base1 :slant ,italic))))
   304              ;; org
   298            (gnus-server-denied ((t (:foreground ,base2 :weight ,bold))))
   305              (org-hide ((t (,@fg-base03))))
   299            (gnus-server-offline ((t (:foreground ,green :weight ,bold))))
   306              (org-todo ((t (,@fmt-bold ,@fg-base03 ,@bg-red))))
   300            (gnus-server-opened ((t (:foreground ,cyan :weight ,bold))))
   307              (org-done ((t (,@fmt-bold ,@fg-green))))
   301            (gnus-splash ((t (:foreground ,base2))))
   308              (org-todo-kwd-face ((t (,@fg-red ,@bg-base03))))
   302            (gnus-summary-high-ancient
   309              (org-done-kwd-face ((t (,@fg-green ,@bg-base03))))
   303             ((t (:foreground ,magenta :weight ,bold))))
   310              (org-project-kwd-face ((t (,@fg-violet ,@bg-base03))))
   304            (gnus-summary-high-read ((t (:foreground ,base1 :weight ,bold))))
   311              (org-waiting-kwd-face ((t (,@fg-orange ,@bg-base03))))
   305            (gnus-summary-high-ticked ((t (:foreground ,base3 :weight ,bold))))
   312              (org-someday-kwd-face ((t (,@fg-blue ,@bg-base03))))
   306            (gnus-summary-high-undownloaded
   313              (org-started-kwd-face ((t (,@fg-yellow ,@bg-base03))))
   307             ((t (:foreground ,base2 :weight ,bold))))
   314              (org-cancelled-kwd-face ((t (,@fg-green ,@bg-base03))))
   308            (gnus-summary-low-ancient
   315              (org-delegated-kwd-face ((t (,@fg-cyan ,@bg-base03))))
   309             ((t (:foreground ,magenta :slant ,italic))))
   316              ;; show-paren - MatchParen
   310            (gnus-summary-low-read ((t (:foreground ,base1 :slant ,italic))))
   317              (show-paren-match-face ((t (,@fg-cyan ,@fg-base01))))
   311            (gnus-summary-low-ticked ((t (:foreground ,base3 :slant ,italic))))
   318              (show-paren-mismatch-face ((t (,@fg-red ,@fg-base01))))
   312            (gnus-summary-low-undownloaded
   319              ;; widgets
   313             ((t (:foreground ,base2 :slant ,italic))))
   320              (widget-field
   314            (gnus-summary-normal-ancient ((t (:foreground ,magenta))))
   321               ((t (,@fg-base1 ,@bg-base02 :box (:line-width 1 :color ,base2)
   315            (gnus-summary-normal-read ((t (:foreground ,base1))))
   322                               :inherit default))))
   316            (gnus-summary-normal-ticked ((t (:foreground ,base3))))
   323              (widget-single-line-field ((t (:inherit widget-field))))
   317            (gnus-summary-normal-undownloaded ((t (:foreground ,base2))))
   324              ;; extra modules
   318            ;; Flymake
   325              ;; -------------
   319            (flymake-errline ((t (:background ,orange))))
   326              ;; gnus
   320            (flymake-warnline ((t (:background ,violet))))
   327              (gnus-cite-1 ((t (,@fg-magenta))))
   321            ;; whitespace
   328              (gnus-cite-2 ((t (,@fg-base2))))
   322            (whitespace-empty ((t (:foreground ,red))))
   329              (gnus-cite-3 ((t (,@fg-base3))))
   323            (whitespace-hspace ((t (:foreground ,orange))))
   330              (gnus-cite-4 ((t (,@fg-base1))))
   324            (whitespace-indentation ((t (:foreground ,base02))))
   331              (gnus-cite-5 ((t (,@fg-magenta))))
   325            (whitespace-space ((t (:foreground ,base02))))
   332              (gnus-cite-6 ((t (,@fg-base2))))
   326            (whitespace-space-after-tab ((t (:foreground ,cyan))))
   333              (gnus-cite-7 ((t (,@fg-base3))))
   327            (whitespace-space-before-tab ((t (:foreground ,red :weight ,bold))))
   334              (gnus-cite-8 ((t (,@fg-base1))))
   328            (whitespace-tab ((t (:foreground ,base02))))
   335              (gnus-cite-9 ((t (,@fg-base2))))
   329            (whitespace-trailing
   336              (gnus-cite-10 ((t (,@fg-base3))))
   330             ((t (:background ,base02 :foreground ,red :weight ,bold))))
   337              (gnus-cite-11 ((t (,@fg-blue))))
   331            (whitespace-highlight-face
   338              (gnus-group-mail-1 ((t (,@fmt-bold ,@fg-base3))))
   332             ((t (:background ,blue :foreground ,red))))
   339              (gnus-group-mail-1-empty ((t (,@fg-base3))))
   333            ;; Message
   340              (gnus-group-mail-2 ((t (,@fmt-bold ,@fg-base2))))
   334            (message-mml ((t (:foreground ,blue))))
   341              (gnus-group-mail-2-empty ((t (,@fg-base2))))
   335            (message-cited-text ((t (:foreground ,base2))))
   342              (gnus-group-mail-3 ((t (,@fmt-bold ,@fg-magenta))))
   336            (message-separator ((t (:foreground ,base3))))
   343              (gnus-group-mail-3-empty ((t (,@fg-magenta))))
   337            (message-header-xheader ((t (:foreground ,violet))))
   344              (gnus-group-mail-low ((t (,@fmt-bold ,@fg-base00))))
   338            (message-header-name ((t (:foreground ,cyan))))
   345              (gnus-group-mail-low-empty ((t (,@fg-base00))))
   339            (message-header-other ((t (:foreground ,red))))
   346              (gnus-group-news-1 ((t (,@fmt-bold ,@fg-base1))))
   340            (message-header-newsgroups
   347              (gnus-group-news-1-empty ((t (,@fg-base1))))
   341             ((t (:foreground ,yellow :weight ,bold :slant ,italic))))
   348              (gnus-group-news-2 ((t (,@fmt-bold ,@fg-blue))))
   342            (message-header-subject ((t (:foreground ,base00))))
   349              (gnus-group-news-2-empty ((t (,@fg-blue))))
   343            (message-header-cc ((t (:foreground ,green :weight ,bold))))
   350              (gnus-group-news-low ((t (,@fmt-bold ,@fg-violet))))
   344            (message-header-to ((t (:foreground ,base1 :weight ,bold)))))
   351              (gnus-group-news-low-empty ((t (,@fg-violet))))
   345           ((foreground-color . ,base0)
   352              (gnus-header-content ((t (,@fmt-ital ,@fg-cyan))))
   346            (background-color . ,base03)
   353              (gnus-header-from ((t (,@fg-base2))))
   347            (background-mode . ,mode)
   354              (gnus-header-name ((t (,@fg-blue))))
   348            (cursor-color . ,base0)))))))
   355              (gnus-header-newsgroups ((t (,@fmt-ital ,@fg-green))))
       
   356              (gnus-header-subject ((t (,@fg-base1))))
       
   357              (gnus-server-agent ((t (,@fmt-bold ,@fg-base3))))
       
   358              (gnus-server-closed ((t (,@fmt-ital ,@fg-base1))))
       
   359              (gnus-server-denied ((t (,@fmt-bold ,@fg-base2))))
       
   360              (gnus-server-offline ((t (,@fmt-bold ,@fg-green))))
       
   361              (gnus-server-opened ((t (,@fmt-bold ,@fg-cyan))))
       
   362              (gnus-splash ((t (,@fg-base2))))
       
   363              (gnus-summary-high-ancient ((t (,@fmt-bold ,@fg-magenta))))
       
   364              (gnus-summary-high-read ((t (,@fmt-bold ,@fg-base1))))
       
   365              (gnus-summary-high-ticked ((t (,@fmt-bold ,@fg-base3))))
       
   366              (gnus-summary-high-undownloaded ((t (,@fmt-bold ,@fg-base2))))
       
   367              (gnus-summary-low-ancient ((t (,@fmt-ital ,@fg-magenta))))
       
   368              (gnus-summary-low-read ((t (,@fmt-ital ,@fg-base1))))
       
   369              (gnus-summary-low-ticked ((t (,@fmt-ital ,@fg-base3))))
       
   370              (gnus-summary-low-undownloaded ((t (,@fmt-ital ,@fg-base2))))
       
   371              (gnus-summary-normal-ancient ((t (,@fg-magenta))))
       
   372              (gnus-summary-normal-read ((t (,@fg-base1))))
       
   373              (gnus-summary-normal-ticked ((t (,@fg-base3))))
       
   374              (gnus-summary-normal-undownloaded ((t (,@fg-base2))))
       
   375              ;; Flymake
       
   376              (flymake-errline ((t (,@bg-base3))))
       
   377              (flymake-warnline ((t (,@bg-base02))))
       
   378              ;; whitespace
       
   379              (whitespace-empty ((t (,@fg-red))))
       
   380              (whitespace-hspace ((t (,@fg-orange))))
       
   381              (whitespace-indentation ((t (,@fg-base02))))
       
   382              (whitespace-space ((t (,@fg-base02))))
       
   383              (whitespace-space-after-tab ((t (,@fg-cyan))))
       
   384              (whitespace-space-before-tab ((t (,@fmt-bold ,@fg-red))))
       
   385              (whitespace-tab ((t (,@fg-base02))))
       
   386              (whitespace-trailing ((t (,@fmt-bold ,@fg-red ,@bg-base02))))
       
   387              (whitespace-highlight-face ((t (,@fg-red ,@bg-blue))))
       
   388              ;; Message
       
   389              (message-mml ((t (,@fg-blue))))
       
   390              (message-cited-text ((t (,@fg-base2))))
       
   391              (message-separator ((t (,@fg-base3))))
       
   392              (message-header-xheader ((t (,@fg-violet))))
       
   393              (message-header-name ((t (,@fg-cyan))))
       
   394              (message-header-other ((t (,@fg-red))))
       
   395              (message-header-newsgroups ((t (,@fmt-bldi ,@fg-yellow))))
       
   396              (message-header-subject ((t (,@fg-base00))))
       
   397              (message-header-cc ((t (,@fmt-bold ,@fg-green))))
       
   398              (message-header-to ((t (,@fmt-bold ,@fg-base1))))
       
   399              ;; rainbow-delimiters
       
   400              (rainbow-delimiters-depth-1-face ((t (,@fg-cyan))))
       
   401              (rainbow-delimiters-depth-2-face ((t (,@fg-yellow))))
       
   402              (rainbow-delimiters-depth-3-face ((t (,@fg-blue))))
       
   403              (rainbow-delimiters-depth-4-face ((t (,@fg-red))))
       
   404              (rainbow-delimiters-depth-5-face ((t (,@fg-green))))
       
   405              (rainbow-delimiters-depth-6-face ((t (,@fg-blue))))
       
   406              (rainbow-delimiters-depth-7-face ((t (,@fg-orange))))
       
   407              (rainbow-delimiters-depth-8-face ((t (,@fg-magenta))))
       
   408              (rainbow-delimiters-depth-9-face ((t (,@fg-base0)))))
       
   409             ((foreground-color . ,base0)
       
   410              (background-color . ,base03)
       
   411              (background-mode . ,mode)
       
   412              (cursor-color . ,base0))))))))
   349 
   413 
   350 (defmacro create-solarized-theme (mode)
   414 (defmacro create-solarized-theme (mode)
   351   (let* ((theme-name (intern (concat "solarized-" (symbol-name mode))))
   415   (let* ((theme-name (intern (concat "solarized-" (symbol-name mode))))
   352          (defs (solarized-color-definitions mode))
   416          (defs (solarized-color-definitions mode))
   353          (theme-vars (mapcar (lambda (def) (list (car def) (cdr def)))
   417          (theme-vars (mapcar (lambda (def) (list (car def) (cdr def)))