]> git.rkrishnan.org Git - .emacs.d.git/blob - emacs/solarized.el
527213e4ed605deff4ea18d898a8c5a2374e6721
[.emacs.d.git] / emacs / solarized.el
1 ;;; solarized.el --- Solarized for Emacs.
2
3 ;; Copyright (C) 2011-2013 Bozhidar Batsov
4
5 ;; Author: Bozhidar Batsov <bozhidar@batsov.com>
6 ;; Author: Thomas Frössman <thomasf@jossystem.se>
7 ;; URL: http://github.com/bbatsov/solarized-emacs
8 ;; Version: 1.0.0
9
10 ;; This program is free software; you can redistribute it and/or modify
11 ;; it under the terms of the GNU General Public License as published by
12 ;; the Free Software Foundation, either version 3 of the License, or
13 ;; (at your option) any later version.
14
15 ;; This program is distributed in the hope that it will be useful,
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 ;; GNU General Public License for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
23 ;;; Commentary:
24 ;;
25 ;; A port of Solarized to Emacs.
26 ;;
27 ;;; Installation:
28 ;;
29 ;;   Drop the `solarized-theme.el` somewhere in your `load-path` and
30 ;; the two themes in a folder that is on `custom-theme-load-path'
31 ;; and enjoy!
32 ;;
33 ;; Don't forget that the theme requires Emacs 24.
34 ;;
35 ;;; Bugs
36 ;;
37 ;; None that I'm aware of.
38 ;;
39 ;;; Credits
40 ;;
41 ;; Ethan Schoonover created the original theme for vim on such this port
42 ;; is based.
43 ;;
44 ;;; Code:
45
46 (defun create-solarized-theme (variant theme-name &optional childtheme)
47   (let* ((class '((class color) (min-colors 89)))
48          ;; Solarized palette
49          (base03    "#002b36")
50          (base02    "#073642")
51          ;; emphasized content
52          (base01    "#586e75")
53          ;; primary content
54          (base00    "#657b83")
55          (base0     "#839496")
56          ;; comments
57          (base1     "#93a1a1")
58          ;; background highlight light
59          (base2     "#eee8d5")
60          ;; background light
61          (base3     "#fdf6e3")
62
63          ;; Solarized accented colors
64          (yellow    "#b58900")
65          (orange    "#cb4b16")
66          (red       "#dc322f")
67          (magenta   "#d33682")
68          (violet    "#6c71c4")
69          (blue      "#268bd2")
70          (cyan      "#2aa198")
71          (green     "#859900")
72
73          ;; Darker and lighter accented colors
74          ;; Only use these in exceptional circumstances!
75          (yellow-d  "#7B6000")
76          (yellow-l  "#DEB542")
77          (orange-d  "#8B2C02")
78          (orange-l  "#F2804F")
79          (red-d     "#990A1B")
80          (red-l     "#FF6E64")
81          (magenta-d "#93115C")
82          (magenta-l "#F771AC")
83          (violet-d  "#3F4D91")
84          (violet-l  "#9EA0E5")
85          (blue-d    "#00629D")
86          (blue-l    "#69B7F0")
87          (cyan-d    "#00736F")
88          (cyan-l    "#69CABF")
89          (green-d   "#546E00")
90          (green-l   "#B4C342")
91
92          ;; Light/Dark adaptive solarized colors
93          (solarized-fg (if (eq variant 'light) base00 base0))
94          (solarized-bg (if (eq variant 'light) base3 base03))
95          (solarized-hl (if (eq variant 'light) base2 base02))
96          (solarized-emph (if (eq variant 'light) base01 base1))
97          (solarized-comments (if (eq variant 'light) base1 base01))
98
99          ;; Light/Dark adaptive higher/lower contrast accented colors
100          ;; Only use these in exceptional cirmumstances!
101          (solarized-fg-hc (if (eq variant 'light) base3 base03))
102          (solarized-fg-lc (if (eq variant 'light) base03 base3))
103
104          (yellow-hc (if (eq variant 'light) yellow-d yellow-l))
105          (yellow-lc (if (eq variant 'light) yellow-l yellow-d))
106          (orange-hc (if (eq variant 'light) orange-d orange-l))
107          (orange-lc (if (eq variant 'light) orange-l orange-d))
108          (red-hc (if (eq variant 'light) red-d red-l))
109          (red-lc (if (eq variant 'light) red-l red-d))
110          (magenta-hc (if (eq variant 'light) magenta-d magenta-l))
111          (magenta-lc (if (eq variant 'light) magenta-l magenta-d))
112          (violet-hc (if (eq variant 'light) violet-d violet-l))
113          (violet-lc (if (eq variant 'light) violet-l violet-d))
114          (blue-hc (if (eq variant 'light) blue-d blue-l))
115          (blue-lc (if (eq variant 'light) blue-l blue-d))
116          (cyan-hc (if (eq variant 'light) cyan-d cyan-l))
117          (cyan-lc (if (eq variant 'light) cyan-l cyan-d))
118          (green-hc (if (eq variant 'light) green-d green-l))
119          (green-lc (if (eq variant 'light) green-l green-d)))
120     (custom-theme-set-faces
121      theme-name
122      '(button ((t (:underline t))))
123
124      ;; basic coloring
125      `(default ((,class (:foreground ,solarized-fg :background ,solarized-bg))))
126      `(shadow ((,class (:foreground ,solarized-comments))))
127      `(match ((,class (:background ,solarized-hl :foreground ,solarized-emph :weight bold))))
128      `(cursor ((,class (:foreground ,solarized-bg :background ,solarized-fg :inverse-video t))))
129      `(escape-glyph-face ((,class (:foreground ,red))))
130      `(fringe ((,class (:foreground ,solarized-fg :background ,solarized-hl))))
131      `(header-line ((,class (:foreground ,yellow
132                                          :background ,solarized-hl
133                                          :box (:line-width -1 :style released-button)))))
134      `(highlight ((,class (:background ,solarized-hl))))
135      `(link ((,class (:foreground ,yellow :underline t :weight bold))))
136      `(link-visited ((,class (:foreground ,yellow :underline t :weight normal))))
137      `(success ((,class (:foreground ,green ))))
138      `(warning ((,class (:foreground ,yellow ))))
139      `(error ((,class (:foreground ,orange))))
140      `(lazy-highlight ((,class (:foreground ,solarized-emph :background ,solarized-hl :bold t))))
141      `(escape-glyph ((,class (:foreground ,violet))))
142
143      ;; compilation
144      `(compilation-column-face ((,class (:foreground ,yellow))))
145      `(compilation-enter-directory-face ((,class (:foreground ,green))))
146      `(compilation-error-face ((,class (:foreground ,red :weight bold :underline t))))
147      `(compilation-face ((,class (:foreground ,solarized-fg))))
148      `(compilation-info-face ((,class (:foreground ,blue))))
149      `(compilation-info ((,class (:foreground ,green :underline t))))
150      `(compilation-leave-directory-face ((,class (:foreground ,green))))
151      `(compilation-line-face ((,class (:foreground ,yellow))))
152      `(compilation-line-number ((,class (:foreground ,yellow))))
153      `(compilation-message-face ((,class (:foreground ,blue))))
154      `(compilation-warning-face ((,class (:foreground ,yellow :weight bold :underline t))))
155
156      `(compilation-mode-line-exit
157        ((,class (:inherit compilation-info :foreground ,green :weight bold))))
158      `(compilation-mode-line-fail
159        ((,class (:inherit compilation-error :foreground ,red :weight bold))))
160      `(compilation-mode-line-run ((,class (:foreground ,orange :weight bold))))
161
162      ;; cua
163      `(cua-global-mark ((,class (:background ,yellow :foreground ,solarized-bg))))
164      `(cua-rectangle ((,class (:inherit region :background ,magenta :foreground ,solarized-bg))))
165      `(cua-rectangle-noselect ((,class (:inherit region :background ,solarized-hl
166                                                  :foreground ,solarized-comments))))
167
168      ;; diary
169      `(diary ((,class (:foreground ,yellow))))
170
171      ;; dired
172      `(dired-directory ((,class (:foreground ,blue :weight normal))))
173      `(dired-flagged ((,class (:foreground ,red))))
174      `(dired-header ((,class (:foreground ,solarized-bg :background ,blue))))
175      `(dired-ignored ((,class (:inherit shadow))))
176      `(dired-mark ((,class (:foreground ,yellow :weight bold))))
177      `(dired-marked ((,class (:foreground ,magenta :weight bold))))
178      `(dired-perm-write ((,class (:foreground ,solarized-fg :underline t))))
179      `(dired-symlink ((,class (:foreground ,cyan :weight normal :slant italic))))
180      `(dired-warning ((,class (:foreground ,orange :underline t))))
181
182      ;; dropdown
183      `(dropdown-list-face ((,class (:background ,solarized-hl :foreground ,cyan))))
184      `(dropdown-list-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc))))
185
186      ;; grep
187      `(grep-context-face ((,class (:foreground ,solarized-fg))))
188      `(grep-error-face ((,class (:foreground ,red :weight bold :underline t))))
189      `(grep-hit-face ((,class (:foreground ,blue))))
190      `(grep-match-face ((,class (:foreground ,orange :weight bold))))
191
192      ;; faces used by isearch
193      `(isearch ((,class (:foreground ,yellow :background ,solarized-hl :bold t))))
194      `(isearch-fail ((,class (:foreground ,red :background ,solarized-bg :bold t))))
195
196      ;; man
197      `(Man-overstrike ((,class (:foreground ,blue :weight bold))))
198      `(Man-reverse ((,class (:foreground ,orange))))
199      `(Man-underline ((,class (:foreground ,green :underline t))))
200
201      ;; misc faces
202      `(menu ((,class (:foreground ,solarized-fg :background ,solarized-bg))))
203      `(minibuffer-prompt ((,class (:foreground ,solarized-emph))))
204      `(mode-line
205        ((,class (:foreground ,solarized-fg
206                              :background ,solarized-hl
207                              :box (:line-width -1 :style released-button)))))
208      `(mode-line-buffer-id ((,class (:foreground ,solarized-emph :weight bold))))
209      `(mode-line-inactive
210        ((,class (:foreground ,solarized-fg
211                              :background ,solarized-bg
212                              :box (:line-width -1 :style released-button)))))
213      `(region ((,class (:foreground ,solarized-bg :background ,solarized-emph))))
214      `(secondary-selection ((,class (:background ,solarized-hl))))
215
216      `(trailing-whitespace ((,class (:background ,red))))
217      `(vertical-border ((,class (:foreground ,solarized-fg))))
218
219      ;; font lock
220      `(font-lock-builtin-face ((,class (:foreground ,blue :slant italic))))
221      `(font-lock-comment-delimiter-face ((,class (:foreground ,solarized-comments))))
222      `(font-lock-comment-face ((,class (:foreground ,solarized-comments))))
223      `(font-lock-constant-face ((,class (:foreground ,blue :weight bold))))
224      `(font-lock-doc-face ((,class (:foreground ,cyan :slant italic))))
225      `(font-lock-doc-string-face ((,class (:foreground ,blue))))
226      `(font-lock-function-name-face ((,class (:foreground ,blue))))
227      `(font-lock-keyword-face ((,class (:foreground ,green :weight bold))))
228      `(font-lock-negation-char-face ((,class (:foreground ,solarized-fg))))
229      `(font-lock-preprocessor-face ((,class (:foreground ,blue))))
230      `(font-lock-string-face ((,class (:foreground ,cyan))))
231      `(font-lock-type-face ((,class (:foreground ,yellow))))
232      `(font-lock-variable-name-face ((,class (:foreground ,blue))))
233      `(font-lock-warning-face ((,class (:foreground ,orange :weight bold :underline t))))
234
235      `(c-annotation-face ((,class (:inherit font-lock-constant-face))))
236
237      ;;; external
238
239      ;; ace-jump-mode
240      `(ace-jump-face-background
241        ((,class (:foreground ,solarized-comments :background ,solarized-bg :inverse-video nil))))
242      `(ace-jump-face-foreground
243        ((,class (:foreground ,red :background ,solarized-bg :inverse-video nil))))
244
245      ;; auto-complete
246      `(ac-candidate-face ((,class (:background ,solarized-hl :foreground ,cyan))))
247      `(ac-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc))))
248      `(ac-candidate-mouse-face ((,class (:background ,cyan-hc :foreground ,cyan-lc))))
249      `(ac-completion-face ((,class (:foreground ,solarized-emph :underline t))))
250      `(ac-gtags-candidate-face ((,class (:background ,solarized-hl :foreground ,blue))))
251      `(ac-gtags-selection-face ((,class (:background ,blue-lc :foreground ,blue-hc))))
252      `(ac-yasnippet-candidate-face ((,class (:background ,solarized-hl :foreground ,yellow))))
253      `(ac-yasnippet-selection-face ((,class (:background ,yellow-lc :foreground ,yellow-hc))))
254
255      ;; auto highlight symbol
256      `(ahs-definition-face ((,class (:foreground ,solarized-bg :background ,blue :underline t))))
257      `(ahs-edit-mode-face ((,class (:foreground ,solarized-bg :background ,yellow))))
258      `(ahs-face ((,class (:foreground ,solarized-bg :background ,blue))))
259      `(ahs-plugin-bod-face ((,class (:foreground ,solarized-bg :background ,blue))))
260      `(ahs-plugin-defalt-face ((,class (:foreground ,solarized-bg :background ,cyan))))
261      `(ahs-plugin-whole-buffer-face ((,class (:foreground ,solarized-bg :background ,green))))
262      `(ahs-warning-face ((,class (:foreground ,red :weight bold))))
263
264      ;; android mode
265      `(android-mode-debug-face ((,class (:foreground ,green))))
266      `(android-mode-error-face ((,class (:foreground ,orange :weight bold))))
267      `(android-mode-info-face ((,class (:foreground ,solarized-fg))))
268      `(android-mode-verbose-face ((,class (:foreground ,solarized-comments))))
269      `(android-mode-warning-face ((,class (:foreground ,yellow))))
270
271      ;; bm
272      `(bm-face ((,class (:background ,yellow-lc :foreground ,solarized-bg))))
273      `(bm-fringe-face ((,class (:background ,yellow-lc :foreground ,solarized-bg))))
274      `(bm-fringe-persistent-face ((,class (:background ,green-lc :foreground ,solarized-bg))))
275      `(bm-persistent-face ((,class (:background ,green-lc :foreground ,solarized-bg))))
276
277      ;; calfw
278      `(cfw:face-day-title ((,class (:background ,solarized-hl))))
279      `(cfw:face-annotation ((,class (:inherit cfw:face-day-title :foreground ,yellow))))
280      `(cfw:face-default-content ((,class (:foreground ,green))))
281      `(cfw:face-default-day ((,class (:inherit cfw:face-day-title :weight bold))))
282      `(cfw:face-disable ((,class (:inherit cfw:face-day-title :foreground ,solarized-comments))))
283      `(cfw:face-grid ((,class (:foreground ,solarized-comments))))
284      `(cfw:face-header ((,class (:foreground ,blue-hc :background ,blue-lc :weight bold))))
285      `(cfw:face-holiday ((,class (:background nil :foreground ,red :weight bold))))
286      `(cfw:face-periods ((,class (:foreground ,magenta))))
287      `(cfw:face-select ((,class (:background ,magenta-lc :foreground ,magenta-hc))))
288      `(cfw:face-saturday ((,class (:foreground ,cyan-hc :background ,cyan-lc))))
289      `(cfw:face-sunday ((,class (:foreground ,red-hc :background ,red-lc :weight bold))))
290      `(cfw:face-title ((,class (:inherit variable-pitch :foreground ,yellow :weight bold :height 2.0))))
291      `(cfw:face-today ((,class (:weight bold :background ,solarized-hl :foreground nil))))
292      `(cfw:face-today-title ((,class (:background ,yellow-lc :foreground ,yellow-hc :weight bold))))
293      `(cfw:face-toolbar ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
294      `(cfw:face-toolbar-button-off ((,class (:background ,yellow-lc :foreground ,yellow-hc :weight bold))))
295      `(cfw:face-toolbar-button-on ((,class (:background ,yellow-hc :foreground ,yellow-lc :weight bold))))
296
297      ;; clojure-test-mode
298      `(clojure-test-failure-face ((t (:foreground ,orange :weight bold :underline t))))
299      `(clojure-test-error-face ((t (:foreground ,red :weight bold :underline t))))
300      `(clojure-test-success-face ((t (:foreground ,green :weight bold :underline t))))
301
302      ;; ctable
303      `(ctbl:face-cell-select ((,class (:background ,blue :foreground ,solarized-bg))))
304      `(ctbl:face-continue-bar ((,class (:background ,solarized-hl :foreground ,solarized-bg))))
305      `(ctbl:face-row-select ((,class (:background ,cyan :foreground ,solarized-bg))))
306
307      ;; coffee
308      `(coffee-mode-class-name ((,class (:foreground ,yellow :weight bold))))
309      `(coffee-mode-function-param ((,class (:foreground ,violet :slant italic))))
310
311      ;; custom
312      `(custom-variable-tag ((,class (:foreground ,cyan))))
313      `(custom-comment-tag ((,class (:foreground ,solarized-comments))))
314      `(custom-group-tag ((,class (:foreground ,blue))))
315      `(custom-state ((,class (:foreground ,green))))
316
317      ;; diff
318      `(diff-added ((,class (:foreground ,green :background ,solarized-bg))))
319      `(diff-changed ((,class (:foreground ,yellow :background ,solarized-bg))))
320      `(diff-removed ((,class (:foreground ,red :background ,solarized-bg))))
321      `(diff-header ((,class (:background ,solarized-bg))))
322      `(diff-file-header
323        ((,class (:background ,solarized-bg :foreground ,solarized-fg :weight bold))))
324
325      ;; ediff
326      `(ediff-fine-diff-A ((,class (:background ,orange-lc))))
327      `(ediff-fine-diff-B ((,class (:background ,green-lc))))
328      `(ediff-even-diff-A ((,class (:background ,solarized-comments :foreground ,solarized-fg-lc ))))
329      `(ediff-odd-diff-A ((,class (:background ,solarized-comments :foreground ,solarized-fg-hc ))))
330      `(ediff-even-diff-B ((,class (:background ,solarized-comments :foreground ,solarized-fg-hc ))))
331      `(ediff-odd-diff-B ((,class (:background ,solarized-comments :foreground ,solarized-fg-lc ))))
332
333      ;; epc
334      `(epc:face-title ((,class (:foreground ,magenta :weight bold))))
335
336      ;; eshell
337      `(eshell-prompt ((,class (:foreground ,yellow :weight bold))))
338      `(eshell-ls-archive ((,class (:foreground ,red :weight bold))))
339      `(eshell-ls-backup ((,class (:inherit font-lock-comment))))
340      `(eshell-ls-clutter ((,class (:inherit font-lock-comment))))
341      `(eshell-ls-directory ((,class (:foreground ,blue :weight bold))))
342      `(eshell-ls-executable ((,class (:foreground ,red :weight bold))))
343      `(eshell-ls-unreadable ((,class (:foreground ,solarized-fg))))
344      `(eshell-ls-missing ((,class (:inherit font-lock-warning))))
345      `(eshell-ls-product ((,class (:inherit font-lock-doc))))
346      `(eshell-ls-special ((,class (:foreground ,yellow :weight bold))))
347      `(eshell-ls-symlink ((,class (:foreground ,cyan :weight bold))))
348
349      ;; fic
350      `(fic-author-face ((,class (:background ,solarized-bg :foreground ,orange :underline t :slant italic))))
351      `(fic-face ((,class (:background ,solarized-bg :foreground ,orange :weight normal :slant italic))))
352
353      ;; flymake
354      `(flymake-errline
355        ((,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
356      `(flymake-infoline ((,class (:foreground ,green-hc :background ,green-lc))))
357      `(flymake-warnline
358        ((,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
359
360      ;; flycheck
361      `(flycheck-error-face
362        ((,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
363      `(flycheck-warning-face
364        ((,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
365
366      ;; flyspell
367      `(flyspell-duplicate ((,class (:foreground ,yellow :weight bold :underline t))))
368      `(flyspell-incorrect ((,class (:foreground ,red :weight bold :underline t))))
369
370      ;; erc
371      `(erc-action-face ((,class (:inherit erc-default-face))))
372      `(erc-bold-face ((,class (:weight bold))))
373      `(erc-current-nick-face ((,class (:foreground ,blue :weight bold))))
374      `(erc-dangerous-host-face ((,class (:inherit font-lock-warning))))
375      `(erc-default-face ((,class (:foreground ,solarized-fg))))
376      `(erc-direct-msg-face ((,class (:inherit erc-default))))
377      `(erc-error-face ((,class (:inherit font-lock-warning))))
378      `(erc-fool-face ((,class (:inherit erc-default))))
379      `(erc-highlight-face ((,class (:inherit hover-highlight))))
380      `(erc-input-face ((,class (:foreground ,yellow))))
381      `(erc-keyword-face ((,class (:foreground ,blue :weight bold))))
382      `(erc-nick-default-face ((,class (:foreground ,yellow :weight bold))))
383      `(erc-my-nick-face ((,class (:foreground ,red :weight bold))))
384      `(erc-nick-msg-face ((,class (:inherit erc-default))))
385      `(erc-notice-face ((,class (:foreground ,green))))
386      `(erc-pal-face ((,class (:foreground ,orange :weight bold))))
387      `(erc-prompt-face ((,class (:foreground ,orange :background ,solarized-bg :weight bold))))
388      `(erc-timestamp-face ((,class (:foreground ,green))))
389      `(erc-underline-face ((t (:underline t))))
390
391      ;; git-gutter
392      `(git-gutter:added ((,class (:background ,green :foreground ,solarized-bg  :weight bold))))
393      `(git-gutter:deleted ((,class (:background ,red :foreground ,solarized-bg  :weight bold))))
394      `(git-gutter:modified ((,class (:background ,blue :foreground ,solarized-bg :weight bold))))
395      `(git-gutter:unchanged ((,class (:background ,solarized-hl :foreground ,solarized-bg  :weight bold))))
396      ;; I use the following git-gutter settings along with those faces
397      ;; (when window-system
398      ;;  (let ((symbol "."))
399      ;;    (setq git-gutter:added-sign symbol
400      ;;          git-gutter:deleted-sign symbol
401      ;;          git-gutter:modified-sign symbol
402      ;;          git-gutter:unchanged-sign " ")))
403
404      ;; git-gutter-fr
405      `(git-gutter-fr:added ((,class (:foreground ,green  :weight bold))))
406      `(git-gutter-fr:deleted ((,class (:foreground ,red :weight bold))))
407      `(git-gutter-fr:modified ((,class (:foreground ,blue :weight bold))))
408
409      ;; guide-key
410      `(guide-key/highlight-command-face ((,class (:foreground ,blue))))
411      `(guide-key/key-face ((,class (:foreground ,solarized-comments))))
412      `(guide-key/prefix-command-face ((,class (:foreground ,green))))
413
414      ;; gnus
415      `(gnus-group-mail-1-face ((,class (:weight bold :inherit gnus-group-mail-1-empty))))
416      `(gnus-group-mail-1-empty-face ((,class (:inherit gnus-group-news-1-empty))))
417      `(gnus-group-mail-2-face ((,class (:weight bold :inherit gnus-group-mail-2-empty))))
418      `(gnus-group-mail-2-empty-face ((,class (:inherit gnus-group-news-2-empty))))
419      `(gnus-group-mail-3-face ((,class (:weight bold :inherit gnus-group-mail-3-empty))))
420      `(gnus-group-mail-3-empty-face ((,class (:inherit gnus-group-news-3-empty))))
421      `(gnus-group-mail-4-face ((,class (:weight bold :inherit gnus-group-mail-4-empty))))
422      `(gnus-group-mail-4-empty-face ((,class (:inherit gnus-group-news-4-empty))))
423      `(gnus-group-mail-5-face ((,class (:weight bold :inherit gnus-group-mail-5-empty))))
424      `(gnus-group-mail-5-empty-face ((,class (:inherit gnus-group-news-5-empty))))
425      `(gnus-group-mail-6-face ((,class (:weight bold :inherit gnus-group-mail-6-empty))))
426      `(gnus-group-mail-6-empty-face ((,class (:inherit gnus-group-news-6-empty))))
427      `(gnus-group-mail-low-face ((,class (:weight bold :inherit gnus-group-mail-low-empty))))
428      `(gnus-group-mail-low-empty-face ((,class (:inherit gnus-group-news-low-empty))))
429      `(gnus-group-news-1-face ((,class (:weight bold :inherit gnus-group-news-1-empty))))
430      `(gnus-group-news-2-face ((,class (:weight bold :inherit gnus-group-news-2-empty))))
431      `(gnus-group-news-3-face ((,class (:weight bold :inherit gnus-group-news-3-empty))))
432      `(gnus-group-news-4-face ((,class (:weight bold :inherit gnus-group-news-4-empty))))
433      `(gnus-group-news-5-face ((,class (:weight bold :inherit gnus-group-news-5-empty))))
434      `(gnus-group-news-6-face ((,class (:weight bold :inherit gnus-group-news-6-empty))))
435      `(gnus-group-news-low-face ((,class (:weight bold :inherit gnus-group-news-low-empty))))
436      `(gnus-header-content-face ((,class (:inherit message-header-other))))
437      `(gnus-header-from-face ((,class (:inherit message-header-from))))
438      `(gnus-header-name-face ((,class (:inherit message-header-name))))
439      `(gnus-header-newsgroups-face ((,class (:inherit message-header-other))))
440      `(gnus-header-subject-face ((,class (:inherit message-header-subject))))
441      `(gnus-summary-cancelled-face ((,class (:foreground ,orange))))
442      `(gnus-summary-high-ancient-face ((,class (:foreground ,blue))))
443      `(gnus-summary-high-read-face ((,class (:foreground ,green :weight bold))))
444      `(gnus-summary-high-ticked-face ((,class (:foreground ,orange :weight bold))))
445      `(gnus-summary-high-unread-face ((,class (:foreground ,solarized-fg :weight bold))))
446      `(gnus-summary-low-ancient-face ((,class (:foreground ,blue))))
447      `(gnus-summary-low-read-face ((t (:foreground ,green))))
448      `(gnus-summary-low-ticked-face ((,class (:foreground ,orange :weight bold))))
449      `(gnus-summary-low-unread-face ((,class (:foreground ,solarized-fg))))
450      `(gnus-summary-normal-ancient-face ((,class (:foreground ,blue))))
451      `(gnus-summary-normal-read-face ((,class (:foreground ,green))))
452      `(gnus-summary-normal-ticked-face ((,class (:foreground ,orange :weight bold))))
453      `(gnus-summary-normal-unread-face ((,class (:foreground ,solarized-fg))))
454      `(gnus-summary-selected-face ((,class (:foreground ,yellow :weight bold))))
455      `(gnus-cite-1-face ((,class (:foreground ,blue))))
456      `(gnus-cite-10-face ((,class (:foreground ,yellow))))
457      `(gnus-cite-11-face ((,class (:foreground ,yellow))))
458      `(gnus-cite-2-face ((,class (:foreground ,blue))))
459      `(gnus-cite-3-face ((,class (:foreground ,blue))))
460      `(gnus-cite-4-face ((,class (:foreground ,green))))
461      `(gnus-cite-5-face ((,class (:foreground ,green))))
462      `(gnus-cite-6-face ((,class (:foreground ,green))))
463      `(gnus-cite-7-face ((,class (:foreground ,red))))
464      `(gnus-cite-8-face ((,class (:foreground ,red))))
465      `(gnus-cite-9-face ((,class (:foreground ,red))))
466      `(gnus-group-news-1-empty-face ((,class (:foreground ,yellow))))
467      `(gnus-group-news-2-empty-face ((,class (:foreground ,green))))
468      `(gnus-group-news-3-empty-face ((,class (:foreground ,green))))
469      `(gnus-group-news-4-empty-face ((,class (:foreground ,blue))))
470      `(gnus-group-news-5-empty-face ((,class (:foreground ,blue))))
471      `(gnus-group-news-6-empty-face ((,class (:foreground ,solarized-bg))))
472      `(gnus-group-news-low-empty-face ((,class (:foreground ,solarized-bg))))
473      `(gnus-signature-face ((,class (:foreground ,yellow))))
474      `(gnus-x-face ((,class (:background ,solarized-fg :foreground ,solarized-bg))))
475
476      ;; helm (these probably needs tweaking)
477      `(helm-apt-deinstalled ((,class (:foreground ,solarized-comments))))
478      `(helm-apt-installed ((,class (:foreground ,green))))
479      `(helm-bookmark-directory ((,class (:inherit helm-ff-directory))))
480      `(helm-bookmark-file ((,class (:foreground ,solarized-fg))))
481      `(helm-bookmark-gnus ((,class (:foreground ,cyan))))
482      `(helm-bookmark-info ((,class (:foreground ,green))))
483      `(helm-bookmark-man ((,class (:foreground ,violet))))
484      `(helm-bookmark-w3m ((,class (:foreground ,yellow))))
485      `(helm-bookmarks-su ((,class (:foreground ,orange))))
486      `(helm-buffer-not-saved ((,class (:foreground ,orange))))
487      `(helm-buffer-saved-out ((,class (:foreground ,red :background ,solarized-bg
488                                                    :inverse-video t))))
489      `(helm-buffer-size ((,class (:foreground ,solarized-comments))))
490      `(helm-candidate-number ((,class (:background ,solarized-hl :foreground ,solarized-emph
491                                                    :bold t))))
492      `(helm-ff-directory ((,class (:background ,solarized-bg  :foreground ,blue))))
493      `(helm-ff-executable ((,class (:foreground ,green))))
494      `(helm-ff-file ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
495      `(helm-ff-invalid-symlink ((,class (:background ,solarized-bg :foreground ,orange
496                                                      :slant italic))))
497      `(helm-ff-prefix ((,class (:background ,yellow :foreground ,solarized-bg))))
498      `(helm-ff-symlink ((,class (:foreground ,cyan))))
499      `(helm-grep-file ((,class (:foreground ,cyan :underline t))))
500      `(helm-grep-finish ((,class (:foreground ,green))))
501      `(helm-grep-lineno ((,class (:foreground ,orange))))
502      `(helm-grep-match ((,class (:inherit match))))
503      `(helm-grep-running ((,class (:foreground ,red))))
504      `(helm-header ((,class (:inherit header-line))))
505      `(helm-lisp-completion-info ((,class (:foreground ,solarized-fg))))
506      `(helm-lisp-show-completion ((,class (:foreground ,yellow  :background ,solarized-hl
507                                                        :bold t))))
508      `(helm-M-x-key ((,class (:foreground ,orange :underline t))))
509      `(helm-moccur-buffer ((,class (:foreground ,cyan :underline t))))
510      `(helm-match ((,class (:inherit match))))
511      `(helm-selection ((,class (:background ,solarized-hl :underline t))))
512      `(helm-selection-line ((,class (:background ,solarized-hl :foreground ,solarized-emph
513                                                  :underline nil))))
514      `(helm-separator ((,class (:foreground ,red))))
515      `(helm-source-header ((,class (:background ,blue-lc :foreground ,solarized-bg
516                                                 :underline nil))))
517      `(helm-time-zone-current ((,class (:foreground ,green))))
518      `(helm-time-zone-home ((,class (:foreground ,red))))
519      `(helm-visible-mark ((,class (:background ,solarized-bg :foreground ,magenta :bold t))))
520
521      ;; hi-lock-mode
522      `(hi-yellow ((,class (:foreground ,yellow-lc :background ,yellow-hc))))
523      `(hi-pink ((,class (:foreground ,magenta-lc :background ,magenta-hc))))
524      `(hi-green ((,class (:foreground ,green-lc :background ,green-hc))))
525      `(hi-blue ((,class (:foreground ,blue-lc :background ,blue-hc))))
526      `(hi-black-b ((,class (:foreground ,solarized-emph :background ,solarized-bg :weight bold))))
527      `(hi-blue-b ((,class (:foreground ,blue-lc :weight bold))))
528      `(hi-green-b ((,class (:foreground ,green-lc :weight bold))))
529      `(hi-red-b ((,class (:foreground ,red :weight bold))))
530      `(hi-black-hb ((,class (:foreground ,solarized-emph :background ,solarized-bg :weight bold))))
531
532      ;; highlight-changes
533      `(highlight-changes ((,class (:foreground ,orange))))
534      `(highlight-changes-delete ((,class (:foreground ,red :underline t))))
535
536      ;; hl-line-mode
537      `(hl-line ((,class (:background ,solarized-hl))))
538      `(hl-line-face ((,class (:background ,solarized-hl))))
539
540      ;; ido-mode
541      `(ido-first-match ((,class (:foreground ,green :weight bold))))
542      `(ido-only-match ((,class (:foreground ,solarized-bg :background ,green :weight bold))))
543      `(ido-subdir ((,class (:foreground ,blue))))
544      `(ido-incomplete-regexp ((,class (:foreground ,red :weight bold ))))
545      `(ido-indicator ((,class (:background ,red :foreground ,solarized-bg :width condensed))))
546      `(ido-virtual ((,class (:foreground ,cyan))))
547
548      `(jabber-activity-face ((,class (:weight bold :foreground ,red))))
549      `(jabber-activity-personal-face ((,class (:weight bold :foreground ,blue))))
550      `(jabber-chat-error ((,class (:weight bold :foreground ,red))))
551      `(jabber-chat-prompt-foreign ((,class (:weight bold :foreground ,red))))
552      `(jabber-chat-prompt-local ((,class (:weight bold :foreground ,blue))))
553      `(jabber-chat-prompt-system ((,class (:weight bold :foreground ,green))))
554      `(jabber-chat-text-foreign ((,class (:foreground ,base1))))
555      `(jabber-chat-text-local ((,class (:foreground ,base0))))
556      `(jabber-chat-rare-time-face ((,class (:underline t :foreground ,green))))
557      `(jabber-roster-user-away ((,class (:slant italic :foreground ,green))))
558      `(jabber-roster-user-chatty ((,class (:weight bold :foreground ,orange))))
559      `(jabber-roster-user-dnd ((,class (:slant italic :foreground ,red))))
560      `(jabber-roster-user-error ((,class (:weight light :slant italic :foreground ,red))))
561      `(jabber-roster-user-offline ((,class (:foreground ,base01))))
562      `(jabber-roster-user-online ((,class (:weight bold :foreground ,blue))))
563      `(jabber-roster-user-xa ((,class (:slant italic :foreground ,magenta))))
564
565      ;; js2-mode colors
566      `(js2-error ((,class (:foreground ,red))))
567      `(js2-external-variable ((,class (:foreground ,orange))))
568      `(js2-function-param ((,class (:foreground ,green))))
569      `(js2-instance-member ((,class (:foreground ,magenta))))
570      `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,cyan))))
571      `(js2-jsdoc-html-tag-name ((,class (:foreground ,orange))))
572      `(js2-jsdoc-tag ((,class (:foreground ,cyan))))
573      `(js2-jsdoc-type ((,class (:foreground ,blue))))
574      `(js2-jsdoc-value ((,class (:foreground ,violet))))
575      `(js2-magic-paren ((,class (:underline t))))
576      `(js2-private-function-call ((,class (:foreground ,yellow))))
577      `(js2-private-member ((,class (:foreground ,blue))))
578      `(js2-warning ((,class (:underline ,orange))))
579
580      ;; jedi
581      `(jedi:highlight-function-argument ((,class (:inherit bold))))
582
583      ;; linum-mode
584      `(linum ((,class (:foreground ,solarized-fg :background ,solarized-bg))))
585
586      ;; magit
587      `(magit-section-title ((,class (:foreground ,yellow :weight bold))))
588      `(magit-branch ((,class (:foreground ,orange :weight bold))))
589      `(magit-item-highlight ((,class (:background ,solarized-hl))))
590      `(magit-log-author ((,class (:foreground ,cyan))))
591      `(magit-log-graph ((,class (:foreground ,solarized-comments))))
592      `(magit-log-head-label-bisect-bad ((,class (:background ,red-hc :foreground ,red-lc :box 1))))
593      `(magit-log-head-label-bisect-good ((,class (:background ,green-hc :foreground ,green-lc
594                                                               :box 1))))
595      `(magit-log-head-label-default ((,class (:background ,solarized-hl :box 1))))
596      `(magit-log-head-label-local ((,class (:background ,blue-lc :foreground ,blue-hc :box 1))))
597      `(magit-log-head-label-patches ((,class (:background ,red-lc :foreground ,red-hc :box 1))))
598      `(magit-log-head-label-remote ((,class (:background ,green-lc :foreground ,green-hc :box 1))))
599      `(magit-log-head-label-tags ((,class (:background ,yellow-lc :foreground ,yellow-hc :box 1))))
600      `(magit-log-sha1 ((,class (:foreground ,yellow))))
601
602      ;; message-mode
603      `(message-cited-text ((,class (:foreground ,solarized-comments))))
604      `(message-header-name ((,class (:foreground ,green))))
605      `(message-header-other ((,class (:foreground ,green))))
606      `(message-header-to ((,class (:foreground ,yellow :weight bold))))
607      `(message-header-cc ((,class (:foreground ,orange :weight bold))))
608      `(message-header-newsgroups ((,class (:foreground ,yellow :weight bold))))
609      `(message-header-subject ((,class (:foreground ,orange))))
610      `(message-header-xheader ((,class (:foreground ,cyan))))
611      `(message-mml ((,class (:foreground ,yellow :weight bold))))
612      `(message-separator ((,class (:foreground ,solarized-comments :slant italic))))
613
614      ;; mew
615      `(mew-face-header-subject ((,class (:foreground ,orange))))
616      `(mew-face-header-from ((,class (:foreground ,yellow))))
617      `(mew-face-header-date ((,class (:foreground ,green))))
618      `(mew-face-header-to ((,class (:foreground ,red))))
619      `(mew-face-header-key ((,class (:foreground ,green))))
620      `(mew-face-header-private ((,class (:foreground ,green))))
621      `(mew-face-header-important ((,class (:foreground ,blue))))
622      `(mew-face-header-marginal ((,class (:foreground ,solarized-fg :weight bold))))
623      `(mew-face-header-warning ((,class (:foreground ,red))))
624      `(mew-face-header-xmew ((,class (:foreground ,green))))
625      `(mew-face-header-xmew-bad ((,class (:foreground ,red))))
626      `(mew-face-body-url ((,class (:foreground ,orange))))
627      `(mew-face-body-comment ((,class (:foreground ,solarized-fg :slant italic))))
628      `(mew-face-body-cite1 ((,class (:foreground ,green))))
629      `(mew-face-body-cite2 ((,class (:foreground ,blue))))
630      `(mew-face-body-cite3 ((,class (:foreground ,orange))))
631      `(mew-face-body-cite4 ((,class (:foreground ,yellow))))
632      `(mew-face-body-cite5 ((,class (:foreground ,red))))
633      `(mew-face-mark-review ((,class (:foreground ,blue))))
634      `(mew-face-mark-escape ((,class (:foreground ,green))))
635      `(mew-face-mark-delete ((,class (:foreground ,red))))
636      `(mew-face-mark-unlink ((,class (:foreground ,yellow))))
637      `(mew-face-mark-refile ((,class (:foreground ,green))))
638      `(mew-face-mark-unread ((,class (:foreground ,red))))
639      `(mew-face-eof-message ((,class (:foreground ,green))))
640      `(mew-face-eof-part ((,class (:foreground ,yellow))))
641
642      ;; mingus
643      `(mingus-directory-face ((,class (:foreground ,blue))))
644      `(mingus-pausing-face ((,class (:foreground ,magenta))))
645      `(mingus-playing-face ((,class (:foreground ,cyan))))
646      `(mingus-playlist-face ((,class (:foreground ,cyan ))))
647      `(mingus-song-file-face ((,class (:foreground ,yellow))))
648      `(mingus-stopped-face ((,class (:foreground ,red))))
649
650      ;; moccur
651      `(moccur-current-line-face ((,class (:underline t))))
652      `(moccur-edit-done-face ((,class
653                                (:foreground ,solarized-comments
654                                             :background ,solarized-bg
655                                             :slant italic))))
656      `(moccur-edit-face
657        ((,class (:background ,yellow :foreground ,solarized-bg))))
658      `(moccur-edit-file-face ((,class (:background ,solarized-hl))))
659      `(moccur-edit-reject-face ((,class (:foreground ,red))))
660      `(moccur-face ((,class (:background ,solarized-hl :foreground ,solarized-emph
661                                          :weight bold))))
662      `(search-buffers-face ((,class (:background ,solarized-hl :foreground ,solarized-emph
663                                                  :weight bold))))
664      `(search-buffers-header-face ((,class (:background ,solarized-hl :foreground ,yellow
665                                                         :weight bold))))
666
667      ;; mu4e
668      `(mu4e-cited-1-face ((,class (:foreground ,green :slant italic :weight normal))))
669      `(mu4e-cited-2-face ((,class (:foreground ,blue :slant italic :weight normal))))
670      `(mu4e-cited-3-face ((,class (:foreground ,orange :slant italic :weight normal))))
671      `(mu4e-cited-4-face ((,class (:foreground ,yellow :slant italic :weight normal))))
672      `(mu4e-cited-5-face ((,class (:foreground ,cyan :slant italic :weight normal))))
673      `(mu4e-cited-6-face ((,class (:foreground ,green :slant italic :weight normal))))
674      `(mu4e-cited-7-face ((,class (:foreground ,blue :slant italic :weight normal))))
675      `(mu4e-flagged-face ((,class (:foreground ,magenta :weight bold))))
676      `(mu4e-view-url-number-face ((,class (:foreground ,orange :weight bold))))
677      `(mu4e-warning-face ((,class (:foreground ,red :slant normal :weight bold))))
678
679      ;; mumamo
680      `(mumamo-background-chunk-submode1 ((,class (:background ,solarized-hl))))
681
682      ;; nav
683      `(nav-face-heading ((,class (:foreground ,yellow))))
684      `(nav-face-button-num ((,class (:foreground ,cyan))))
685      `(nav-face-dir ((,class (:foreground ,green))))
686      `(nav-face-hdir ((,class (:foreground ,red))))
687      `(nav-face-file ((,class (:foreground ,solarized-fg))))
688      `(nav-face-hfile ((,class (:foreground ,red))))
689
690      ;; nav-flash
691      `(nav-flash-face ((,class (:background ,solarized-hl))))
692
693      ;; org-mode
694      `(org-agenda-structure
695        ((,class (:inherit font-lock-comment-face :foreground ,magenta :inverse-video t))))
696      `(org-agenda-date
697        ((,class (:foreground ,solarized-fg :background ,solarized-hl :weight bold
698                              :box (:line-width 4 :color ,solarized-hl) ))) t)
699      `(org-agenda-date-weekend ((,class (:inherit org-agenda-date :slant italic))) t)
700      `(org-agenda-date-today
701        ((,class (:inherit org-agenda-date :slant italic underline: t))) t)
702      `(org-agenda-done ((,class (:foreground ,green))) t)
703      `(org-archived ((,class (:foreground ,solarized-comments :weight normal))))
704      `(org-block ((,class (:foreground ,solarized-comments))))
705      `(org-block-begin-line ((,class (:foreground ,solarized-comments :slant italic))))
706      `(org-checkbox ((,class (:background ,solarized-bg :foreground ,solarized-fg
707                                           :box (:line-width 1 :style released-button)))))
708      `(org-code ((,class (:foreground ,solarized-comments))))
709      `(org-date ((,class (:foreground ,blue :underline t))))
710      `(org-done ((,class (:weight bold :foreground ,green))))
711      `(org-ellipsis ((,class (:foreground ,solarized-comments))))
712      `(org-formula ((,class (:foreground ,yellow))))
713      `(org-headline-done ((,class (:foreground ,green))))
714      `(org-hide ((,class (:foreground ,solarized-bg))))
715      `(org-level-1 ((,class (:foreground ,orange))))
716      `(org-level-2 ((,class (:foreground ,green))))
717      `(org-level-3 ((,class (:foreground ,blue))))
718      `(org-level-4 ((,class (:foreground ,yellow))))
719      `(org-level-5 ((,class (:foreground ,cyan))))
720      `(org-level-6 ((,class (:foreground ,green))))
721      `(org-level-7 ((,class (:foreground ,red))))
722      `(org-level-8 ((,class (:foreground ,blue))))
723      `(org-link ((,class (:foreground ,yellow :underline t))))
724      `(org-sexp-date ((,class (:foreground ,violet))))
725      `(org-scheduled ((,class (:foreground ,green))))
726      `(org-scheduled-previously ((,class (:foreground ,yellow))))
727      `(org-scheduled-today ((,class (:foreground ,blue :weight normal))))
728      `(org-special-keyword ((,class (:foreground ,solarized-comments :weight bold))))
729      `(org-table ((,class (:foreground ,green))))
730      `(org-tag ((,class (:weight bold))))
731      `(org-time-grid ((,class (:foreground ,cyan))))
732      `(org-todo ((,class (:foreground ,red :weight bold))))
733      `(org-upcoming-deadline ((,class (:foreground ,yellow  :weight normal :underline nil))))
734      `(org-warning ((,class (:foreground ,orange :weight normal :underline nil))))
735      ;; org-habit (clear=blue, ready=green, alert=yellow, overdue=red. future=lower contrast)
736      `(org-habit-clear-face ((,class (:background ,blue-lc :foreground ,blue-hc))))
737      `(org-habit-clear-future-face ((,class (:background ,blue-lc))))
738      `(org-habit-ready-face ((,class (:background ,green-lc :foreground ,green))))
739      `(org-habit-ready-future-face ((,class (:background ,green-lc))))
740      `(org-habit-alert-face ((,class (:background ,yellow :foreground ,yellow-lc))))
741      `(org-habit-alert-future-face ((,class (:background ,yellow-lc))))
742      `(org-habit-overdue-face ((,class (:background ,red :foreground ,red-lc))))
743      `(org-habit-overdue-future-face ((,class (:background ,red-lc))))
744      ;; latest additions
745      `(org-agenda-dimmed-todo-face ((,class (:foreground ,solarized-comments))))
746      `(org-agenda-restriction-lock ((,class (:background ,yellow))))
747      `(org-clock-overlay ((,class (:background ,yellow))))
748      `(org-column ((,class (:background ,solarized-hl :strike-through nil
749                                         :underline nil :slant normal :weight normal))))
750      `(org-column-title ((,class (:background ,solarized-hl :underline t :weight bold))))
751      `(org-date-selected ((,class (:foreground ,red :inverse-video t))))
752      `(org-document-info ((,class (:foreground ,solarized-fg))))
753      `(org-document-title ((,class (:foreground ,solarized-emph  :weight bold :height 1.44))))
754      `(org-drawer ((,class (:foreground ,cyan))))
755      `(org-footnote ((,class (:foreground ,magenta :underline t))))
756      `(org-latex-and-export-specials ((,class (:foreground ,orange))))
757      `(org-mode-line-clock-overrun ((,class (:inherit modeline :background ,red))))
758
759      ;; outline
760      `(outline-8 ((,class (:inherit default))))
761      `(outline-7 ((,class (:inherit outline-8 :height 1.0))))
762      `(outline-6 ((,class (:inherit outline-7 :height 1.0))))
763      `(outline-5 ((,class (:inherit outline-6 :height 1.0))))
764      `(outline-4 ((,class (:inherit outline-5 :height 1.0))))
765      `(outline-3 ((,class (:inherit outline-4 :height 1.0))))
766      `(outline-2 ((,class (:inherit outline-3 :height 1.0))))
767      `(outline-1 ((,class (:inherit outline-2 :height 1.0))))
768
769      ;; pretty-mode
770      `(pretty-mode-symbol-face  ((,class (:foreground ,green))))
771
772      ;; popup
773      `(popup-face ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
774      `(popup-isearch-match ((,class (:background ,yellow :foreground ,solarized-bg))))
775      `(popup-menu-face ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
776      `(popup-menu-mouse-face ((,class (:background ,blue :foreground ,solarized-fg))))
777      `(popup-menu-selection-face ((,class (:background ,magenta :foreground ,solarized-bg))))
778      `(popup-scroll-bar-background-face ((,class (:background ,solarized-comments))))
779      `(popup-scroll-bar-foreground-face ((,class (:background ,solarized-emph))))
780      `(popup-tip-face ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
781
782      ;; rainbow-delimiters
783      `(rainbow-delimiters-depth-1-face ((,class (:foreground ,cyan))))
784      `(rainbow-delimiters-depth-2-face ((,class (:foreground ,yellow))))
785      `(rainbow-delimiters-depth-3-face ((,class (:foreground ,blue))))
786      `(rainbow-delimiters-depth-4-face ((,class (:foreground ,orange))))
787      `(rainbow-delimiters-depth-5-face ((,class (:foreground ,green))))
788      `(rainbow-delimiters-depth-6-face ((,class (:foreground ,yellow))))
789      `(rainbow-delimiters-depth-7-face ((,class (:foreground ,blue))))
790      `(rainbow-delimiters-depth-8-face ((,class (:foreground ,orange))))
791      `(rainbow-delimiters-depth-9-face ((,class (:foreground ,green))))
792      `(rainbow-delimiters-depth-10-face ((,class (:foreground ,yellow))))
793      `(rainbow-delimiters-depth-11-face ((,class (:foreground ,blue))))
794      `(rainbow-delimiters-depth-12-face ((,class (:foreground ,orange))))
795      `(rainbow-delimiters-unmatched-face
796        ((,class (:foreground ,solarized-fg :background ,solarized-bg :inverse-video t))))
797
798      ;; rst-mode
799      `(rst-level-1-face ((,class (:background ,yellow   :foreground ,solarized-bg))))
800      `(rst-level-2-face ((,class (:background ,cyan    :foreground ,solarized-bg))))
801      `(rst-level-3-face ((,class (:background ,blue    :foreground ,solarized-bg))))
802      `(rst-level-4-face ((,class (:background ,violet  :foreground ,solarized-bg))))
803      `(rst-level-5-face ((,class (:background ,magenta :foreground ,solarized-bg))))
804      `(rst-level-6-face ((,class (:background ,red     :foreground ,solarized-bg))))
805
806      ;; rpm-mode
807      `(rpm-spec-dir-face ((,class (:foreground ,green))))
808      `(rpm-spec-doc-face ((,class (:foreground ,green))))
809      `(rpm-spec-ghost-face ((,class (:foreground ,red))))
810      `(rpm-spec-macro-face ((,class (:foreground ,yellow))))
811      `(rpm-spec-obsolete-tag-face ((,class (:foreground ,red))))
812      `(rpm-spec-package-face ((,class (:foreground ,red))))
813      `(rpm-spec-section-face ((,class (:foreground ,yellow))))
814      `(rpm-spec-tag-face ((,class (:foreground ,blue))))
815      `(rpm-spec-var-face ((,class (:foreground ,red))))
816
817      ;; sh-mode
818      `(sh-quoted-exec ((,class (:foreground ,violet :weight bold))))
819      `(sh-escaped-newline ((,class (:foreground ,yellow :weight bold))))
820      `(sh-heredoc ((,class (:foreground ,yellow :weight bold))))
821
822      ;; smartparens
823      `(sp-pair-overlay-face ((,class (:background ,solarized-hl))))
824      `(sp-wrap-overlay-face ((,class (:background ,solarized-hl))))
825      `(sp-wrap-tag-overlay-face ((,class (:background ,solarized-hl))))
826
827      ;; show-paren
828      `(show-paren-match
829        ((,class (:foreground ,cyan :background ,solarized-bg :weight normal :inverse-video t))))
830      `(show-paren-mismatch
831        ((,class (:foreground ,red :background ,solarized-bg :weight normal :inverse-video t))))
832
833      ;; mic-paren
834      `(paren-face-match
835        ((,class (:foreground ,cyan :background ,solarized-bg :weight normal :inverse-video t))))
836      `(paren-face-mismatch
837        ((,class (:foreground ,red :background ,solarized-bg :weight normal :inverse-video t))))
838      `(paren-face-no-match
839        ((,class (:foreground ,red :background ,solarized-bg :weight normal :inverse-video t))))
840
841      ;; SLIME
842      `(slime-repl-inputed-output-face ((,class (:foreground ,red))))
843
844      ;; speedbar
845      `(speedbar-button-face ((,class (:inherit variable-pitch :foreground ,solarized-comments))))
846      `(speedbar-directory-face ((,class (:inherit variable-pitch :foreground ,blue))))
847      `(speedbar-file-face ((,class (:inherit variable-pitch :foreground ,solarized-fg))))
848      `(speedbar-highlight-face ((,class (:inherit variable-pitch :background ,solarized-hl))))
849      `(speedbar-selected-face ((,class (:inherit variable-pitch :foreground ,yellow :underline t))))
850      `(speedbar-separator-face ((,class (:inherit variable-pitch
851                                                   :background ,blue :foreground ,solarized-bg
852                                                   :overline ,cyan-lc))))
853      `(speedbar-tag-face ((,class (:inherit variable-pitch :foreground ,green))))
854
855      ;; sunrise commander headings
856      `(sr-active-path-face ((,class (:background ,blue :foreground ,solarized-bg
857                                                  :height 100  :weight bold))))
858      `(sr-editing-path-face ((,class (:background ,yellow :foreground ,solarized-bg
859                                                   :weight bold :height 100))))
860      `(sr-highlight-path-face ((,class (:background ,green :foreground ,solarized-bg
861                                                     :weight bold :height 100))))
862      `(sr-passive-path-face ((,class (:background ,solarized-comments :foreground ,solarized-bg
863                                                   :weight bold :height 100))))
864      ;; sunrise commander marked
865      `(sr-marked-dir-face ((,class (:inherit dired-marked))))
866      `(sr-marked-file-face ((,class (:inherit dired-marked))))
867      `(sr-alt-marked-dir-face ((,class (:background ,magenta :foreground ,solarized-bg
868                                                     :weight bold))))
869      `(sr-alt-marked-file-face ((,class (:background ,magenta :foreground ,solarized-bg
870                                                      :weight bold))))
871      ;; sunrise commander fstat
872      `(sr-directory-face ((,class (:inherit dired-directory :weight normal))))
873      `(sr-symlink-directory-face ((,class (:inherit dired-directory :slant italic :weight normal))))
874      `(sr-symlink-face ((,class (:inherit dired-symlink :slant italic :weight normal))))
875      `(sr-broken-link-face ((,class (:inherit dired-warning :slant italic :weight normal))))
876      ;; sunrise commander file types
877      `(sr-compressed-face ((,class (:foreground ,solarized-fg))))
878      `(sr-encrypted-face ((,class (:foreground ,solarized-fg))))
879      `(sr-log-face ((,class (:foreground ,solarized-fg))))
880      `(sr-packaged-face ((,class (:foreground ,solarized-fg))))
881      `(sr-html-face ((,class (:foreground ,solarized-fg))))
882      `(sr-xml-face ((,class (:foreground ,solarized-fg))))
883      ;; sunrise commander misc
884      `(sr-clex-hotchar-face ((,class (:background ,red  :foreground ,solarized-bg :weight bold))))
885
886      ;; table
887      `(table-cell ((,class (:foreground ,solarized-fg :background ,solarized-hl))))
888
889      ;; term
890      `(term-color-black ((t (:foreground ,base03
891                                          :background ,base02))))
892      `(term-color-red ((t (:foreground ,red
893                                        :background ,red-d))))
894      `(term-color-green ((t (:foreground ,green
895                                          :background ,green-d))))
896      `(term-color-yellow ((t (:foreground ,yellow
897                                           :background ,yellow-d))))
898      `(term-color-blue ((t (:foreground ,blue
899                                         :background ,blue-d))))
900      `(term-color-magenta ((t (:foreground ,magenta
901                                            :background ,magenta-d))))
902      `(term-color-cyan ((t (:foreground ,cyan
903                                         :background ,cyan-d))))
904      `(term-color-white ((t (:foreground ,base00
905                                          :background ,base0))))
906      '(term-default-fg-color ((t (:inherit term-color-white))))
907      '(term-default-bg-color ((t (:inherit term-color-black))))
908
909
910      ;; tooltip. (NOTE: This setting has no effect on the os widgets for me
911      ;; zencoding uses this)
912      `(tooltip ((,class (:background ,yellow-lc :foreground ,yellow-hc
913                                      :inherit variable-pitch))))
914
915      ;; tuareg
916      `(tuareg-font-lock-governing-face ((,class (:foreground ,magenta :weight bold))))
917      `(tuareg-font-lock-multistage-face ((,class (:foreground ,blue :background ,solarized-hl :weight bold))))
918      `(tuareg-font-lock-operator-face ((,class (:foreground ,solarized-emph))))
919      `(tuareg-font-lock-error-face ((,class (:foreground ,yellow :background ,red :weight bold))))
920      `(tuareg-font-lock-interactive-output-face ((,class (:foreground ,cyan))))
921      `(tuareg-font-lock-interactive-error-face ((,class (:foreground ,red))))
922
923      ;; undo-tree
924      `(undo-tree-visualizer-default-face
925        ((,class (:foreground ,solarized-comments :background ,solarized-bg))))
926      `(undo-tree-visualizer-unmodified-face ((,class (:foreground ,green))))
927      `(undo-tree-visualizer-current-face ((,class (:foreground ,blue :inverse-video t))))
928      `(undo-tree-visualizer-active-branch-face
929        ((,class (:foreground ,solarized-emph :background ,solarized-bg :weight bold))))
930      `(undo-tree-visualizer-register-face ((,class (:foreground ,yellow))))
931
932      ;; volatile highlights
933      `(vhl/default-face ((,class (:background ,green-lc :foreground ,green-hc))))
934
935      ;; w3m
936      `(w3m-anchor ((,class (:inherit link))))
937      `(w3m-arrived-anchor ((,class (:inherit link-visited))))
938      `(w3m-form ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
939      `(w3m-header-line-location-title ((,class (:background ,solarized-hl :foreground ,yellow))))
940      `(w3m-header-line-location-content ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
941      `(w3m-bold ((,class (:foreground ,solarized-emph :weight bold))))
942      `(w3m-image-anchor ((,class (:background ,solarized-bg :foreground ,cyan :inherit link))))
943      `(w3m-image ((,class (:background ,solarized-bg :foreground ,cyan))))
944      `(w3m-lnum-minibuffer-prompt ((,class (:foreground ,solarized-emph))))
945      `(w3m-lnum-match ((,class (:background ,solarized-hl))))
946      `(w3m-lnum ((,class (:underline nil :bold nil :foreground ,red))))
947      `(w3m-session-select ((,class (:foreground ,solarized-fg))))
948      `(w3m-session-selected ((,class (:foreground ,solarized-emph :bold t :underline t))))
949      `(w3m-tab-background ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
950      `(w3m-tab-selected-background ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
951      `(w3m-tab-mouse ((,class (:background ,solarized-hl :foreground ,yellow))))
952      `(w3m-tab-selected ((,class (:background ,solarized-hl :foreground ,solarized-emph :bold t))))
953      `(w3m-tab-unselected ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
954      `(w3m-tab-selected-retrieving ((,class (:background ,solarized-hl :foreground ,red))))
955      `(w3m-tab-unselected-retrieving ((,class (:background ,solarized-hl :foreground ,orange))))
956      `(w3m-tab-unselected-unseen ((,class (:background ,solarized-hl :foreground ,violet))))
957
958      ;; web-mode
959      `(web-mode-builtin-face ((,class (:foreground ,red))))
960      `(web-mode-comment-face ((,class (:foreground ,solarized-comments))))
961      `(web-mode-constant-face ((,class (:foreground ,blue :weight bold))))
962      `(web-mode-css-at-rule-face ((,class (:foreground ,violet :slant italic))))
963      `(web-mode-css-prop-face ((,class (:foreground ,violet))))
964      `(web-mode-css-pseudo-class-face ((,class (:foreground ,green :slant italic))))
965      `(web-mode-css-rule-face ((,class (:foreground ,blue))))
966      `(web-mode-doctype-face ((,class (:foreground ,solarized-comments
967                                                    :slant italic :weight bold))))
968      `(web-mode-folded-face ((,class (:underline t))))
969      `(web-mode-function-name-face ((,class (:foreground ,blue))))
970      `(web-mode-html-attr-name-face ((,class (:foreground ,blue :slant normal))))
971      `(web-mode-html-attr-value-face ((,class (:foreground ,cyan :slant italic))))
972      `(web-mode-html-tag-face ((,class (:foreground ,green))))
973      `(web-mode-keyword-face ((,class (:foreground ,yellow :weight bold))))
974      `(web-mode-preprocessor-face ((,class (:foreground ,yellow  :slant italic :weight bold))))
975      `(web-mode-string-face ((,class (:foreground ,cyan))))
976      `(web-mode-type-face ((,class (:foreground ,yellow))))
977      `(web-mode-variable-name-face ((,class (:foreground ,blue))))
978
979      ;; whitespace-mode
980      `(whitespace-space ((,class (:background ,solarized-bg :foreground ,yellow-lc
981                                               :inverse-video t))))
982      `(whitespace-hspace ((,class (:background ,solarized-bg :foreground ,red-lc
983                                                :inverse-video t))))
984      `(whitespace-tab ((,class (:background ,solarized-bg :foreground ,orange-lc
985                                             :inverse-video t))))
986      `(whitespace-newline ((,class (:foreground ,solarized-comments))))
987      `(whitespace-trailing ((,class (:foreground ,blue-lc :background ,solarized-bg
988                                                  :inverse-video t))))
989                                         ; removing inverse video on this
990      `(whitespace-line ((,class (:background ,solarized-bg :foreground ,magenta
991                                              :inverse-video nil))))
992      `(whitespace-space-before-tab ((,class (:background ,solarized-bg :foreground ,green-lc
993                                                          :inverse-video t))))
994      `(whitespace-indentation ((,class (:background ,solarized-bg :foreground ,magenta-lc
995                                                     :inverse-video t))))
996      `(whitespace-empty ((,class (:background ,solarized-fg :foreground ,red-lc :inverse-video t))))
997      `(whitespace-space-after-tab ((,class (:background ,solarized-bg  :foreground ,violet-lc
998                                                         :inverse-video t))))
999
1000      ;; wanderlust
1001      `(wl-highlight-folder-few-face ((,class (:foreground ,red))))
1002      `(wl-highlight-folder-many-face ((,class (:foreground ,red))))
1003      `(wl-highlight-folder-path-face ((,class (:foreground ,orange))))
1004      `(wl-highlight-folder-unread-face ((,class (:foreground ,blue))))
1005      `(wl-highlight-folder-zero-face ((,class (:foreground ,solarized-fg))))
1006      `(wl-highlight-folder-unknown-face ((,class (:foreground ,blue))))
1007      `(wl-highlight-message-citation-header ((,class (:foreground ,red))))
1008      `(wl-highlight-message-cited-text-1 ((,class (:foreground ,red))))
1009      `(wl-highlight-message-cited-text-2 ((,class (:foreground ,green))))
1010      `(wl-highlight-message-cited-text-3 ((,class (:foreground ,blue))))
1011      `(wl-highlight-message-cited-text-4 ((,class (:foreground ,blue))))
1012      `(wl-highlight-message-header-contents-face ((,class (:foreground ,green))))
1013      `(wl-highlight-message-headers-face ((,class (:foreground ,red))))
1014      `(wl-highlight-message-important-header-contents ((,class (:foreground ,green))))
1015      `(wl-highlight-message-header-contents ((,class (:foreground ,green))))
1016      `(wl-highlight-message-important-header-contents2 ((,class (:foreground ,green))))
1017      `(wl-highlight-message-signature ((,class (:foreground ,green))))
1018      `(wl-highlight-message-unimportant-header-contents ((,class (:foreground ,solarized-fg))))
1019      `(wl-highlight-summary-answered-face ((,class (:foreground ,blue))))
1020      `(wl-highlight-summary-disposed-face ((,class (:foreground ,solarized-fg
1021                                                                 :slant italic))))
1022      `(wl-highlight-summary-new-face ((,class (:foreground ,blue))))
1023      `(wl-highlight-summary-normal-face ((,class (:foreground ,solarized-fg))))
1024      `(wl-highlight-summary-thread-top-face ((,class (:foreground ,yellow))))
1025      `(wl-highlight-thread-indent-face ((,class (:foreground ,magenta))))
1026      `(wl-highlight-summary-refiled-face ((,class (:foreground ,solarized-fg))))
1027      `(wl-highlight-summary-displaying-face ((,class (:underline t :weight bold))))
1028
1029      ;; which-func-mode
1030      `(which-func ((,class (:foreground ,green))))
1031
1032      ;; window-number-mode
1033      `(window-number-face ((,class (:foreground ,green))))
1034
1035      ;; yascroll
1036      `(yascroll:thumb-text-area
1037        ((,class (:foreground ,solarized-comments :background ,solarized-comments))))
1038      `(yascroll:thumb-fringe
1039        ((,class (:foreground ,solarized-comments :background ,solarized-comments))))
1040
1041      ;; zencoding
1042      `(zencoding-preview-input ((,class (:background ,solarized-hl :box ,solarized-emph)))))
1043
1044
1045     (custom-theme-set-variables
1046      theme-name
1047      `(ansi-color-names-vector [,solarized-bg ,red ,green ,yellow
1048                                              ,blue ,magenta ,cyan ,solarized-fg])
1049      ;; fill-column-indicator
1050      `(fci-rule-color ,solarized-hl)
1051
1052      ;; highlight-changes
1053      `(highlight-changes-colors '(,magenta ,violet))
1054
1055      ;; highlight-tail
1056      `(highlight-tail-colors
1057        '((,solarized-hl . 0)(,green-lc . 20)(,cyan-lc . 30)(,blue-lc . 50)
1058          (,yellow-lc . 60)(,orange-lc . 70)(,magenta-lc . 85)(,solarized-hl . 100)))
1059
1060      `(vc-annotate-color-map
1061       '((20 . ,red)
1062         (40 . "#CF4F1F")
1063         (60 . "#C26C0F")
1064         (80 . ,yellow)
1065         (100 . "#AB8C00")
1066         (120 . "#A18F00")
1067         (140 . "#989200")
1068         (160 . "#8E9500")
1069         (180 . ,green)
1070         (200 . "#729A1E")
1071         (220 . "#609C3C")
1072         (240 . "#4E9D5B")
1073         (260 . "#3C9F79")
1074         (280 . ,cyan)
1075         (300 . "#299BA6")
1076         (320 . "#2896B5")
1077         (340 . "#2790C3")
1078         (360 . ,blue)))
1079      `(vc-annotate-very-old-color nil)
1080      `(vc-annotate-background nil))
1081
1082     ;; call chained theme function
1083     (when childtheme (funcall childtheme))))
1084
1085 ;;;###autoload
1086 (when (and (boundp 'custom-theme-load-path) load-file-name)
1087   (add-to-list 'custom-theme-load-path
1088                (file-name-as-directory (file-name-directory load-file-name))))
1089
1090 ;; Local Variables:
1091 ;; no-byte-compile: t
1092 ;; End:
1093
1094 (provide 'solarized)
1095
1096 ;;; solarized.el ends here