1 (eval-when-compile |
|
2 (require 'cl)) |
|
3 |
|
4 (defconst solarized-description |
|
5 "Color theme by Ethan Schoonover, created 2011-03-24. |
|
6 Ported to Emacs by Greg Pfeil, http://ethanschoonover.com/solarized.") |
|
7 |
|
8 (defcustom solarized-degrade nil |
|
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." |
|
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) |
|
18 :group 'solarized) |
|
19 |
|
20 (defcustom solarized-bold t |
|
21 "Stops Solarized from displaying bold when nil." |
|
22 :type 'boolean |
|
23 :group 'solarized) |
|
24 |
|
25 (defcustom solarized-underline t |
|
26 "Stops Solarized from displaying underlines when nil." |
|
27 :type 'boolean |
|
28 :group 'solarized) |
|
29 |
|
30 (defcustom solarized-italic t |
|
31 "Stops Solarized from displaying italics when nil." |
|
32 :type 'boolean |
|
33 :group 'solarized) |
|
34 |
|
35 (defcustom solarized-termcolors 16 |
|
36 "This setting applies to emacs in terminal (non-GUI) mode. |
|
37 If set to 16, emacs will use the terminal emulator's colorscheme (best option |
|
38 as long as you've set your emulator's colors to the Solarized palette). If |
|
39 set to 256 and your terminal is capable of displaying 256 colors, emacs will |
|
40 use the 256 degraded color mode." |
|
41 :type 'integer |
|
42 :options '(16 256) |
|
43 :group 'solarized) |
|
44 |
|
45 (defcustom solarized-contrast 'normal |
|
46 "Stick with normal! It's been carefully tested. Setting this option to high or |
|
47 low does use the same Solarized palette but simply shifts some values up or |
|
48 down in order to expand or compress the tonal range displayed." |
|
49 :type 'symbol |
|
50 :options '(high normal low) |
|
51 :group 'solarized) |
|
52 |
|
53 (defcustom solarized-broken-srgb (if (eq system-type 'darwin) t nil) |
|
54 "Emacs bug #8402 results in incorrect color handling on Macs. If this is t |
|
55 (the default on Macs), Solarized works around it with alternative colors. |
|
56 However, these colors are not totally portable, so you may be able to edit |
|
57 the \"Gen RGB\" column in solarized-definitions.el to improve them further." |
|
58 :type 'boolean |
|
59 :group 'solarized) |
|
60 |
|
61 ;; FIXME: The Generic RGB colors will actually vary from device to device, but |
|
62 ;; hopefully these are closer to the intended colors than the sRGB values |
|
63 ;; that Emacs seems to dislike |
|
64 (defvar solarized-colors |
|
65 ;; name sRGB Gen RGB degraded ANSI(Solarized terminal) |
|
66 '((base03 "#002b36" "#042028" "#1c1c1c" "#7f7f7f") |
|
67 (base02 "#073642" "#0a2832" "#262626" "#000000") |
|
68 (base01 "#586e75" "#465a61" "#585858" "#00ff00") |
|
69 (base00 "#657b83" "#52676f" "#626262" "#ffff00") |
|
70 (base0 "#839496" "#708183" "#808080" "#5c5cff") |
|
71 (base1 "#93a1a1" "#81908f" "#8a8a8a" "#00ffff") |
|
72 (base2 "#eee8d5" "#e9e2cb" "#e4e4e4" "#e5e5e5") |
|
73 (base3 "#fdf6e3" "#fcf4dc" "#ffffd7" "#ffffff") |
|
74 (yellow "#b58900" "#a57705" "#af8700" "#cdcd00") |
|
75 (orange "#cb4b16" "#bd3612" "#d75f00" "#ff0000") |
|
76 (red "#dc322f" "#c60007" "#d70000" "#cd0000") |
|
77 (magenta "#d33682" "#c61b6e" "#af005f" "#cd00cd") |
|
78 (violet "#6c71c4" "#5859b7" "#5f5faf" "#ff00ff") |
|
79 (blue "#268bd2" "#2075c7" "#0087ff" "#0000ee") |
|
80 (cyan "#2aa198" "#259185" "#00afaf" "#00cdcd") |
|
81 (green "#859900" "#728a05" "#5f8700" "#00cd00")) |
|
82 "This is a table of all the colors used by the Solarized color theme. Each |
|
83 column is a different set, one of which will be chosen based on term |
|
84 capabilities, etc.") |
|
85 |
|
86 (defun solarized-color-definitions (mode) |
|
87 (flet ((find-color (name) |
|
88 (let ((index (if window-system |
|
89 (if solarized-degrade |
|
90 3 |
|
91 (if solarized-broken-srgb 2 1)) |
|
92 (if (= solarized-termcolors 256) |
|
93 3 |
|
94 4)))) |
|
95 (nth index (assoc name solarized-colors))))) |
|
96 (let ((base03 (find-color 'base03)) |
|
97 (base02 (find-color 'base02)) |
|
98 (base01 (find-color 'base01)) |
|
99 (base00 (find-color 'base00)) |
|
100 (base0 (find-color 'base0)) |
|
101 (base1 (find-color 'base1)) |
|
102 (base2 (find-color 'base2)) |
|
103 (base3 (find-color 'base3)) |
|
104 (yellow (find-color 'yellow)) |
|
105 (orange (find-color 'orange)) |
|
106 (red (find-color 'red)) |
|
107 (magenta (find-color 'magenta)) |
|
108 (violet (find-color 'violet)) |
|
109 (blue (find-color 'blue)) |
|
110 (cyan (find-color 'cyan)) |
|
111 (green (find-color 'green)) |
|
112 (bold (if solarized-bold 'bold 'normal)) |
|
113 (bright-bold (if solarized-bold 'normal 'bold)) |
|
114 (underline (if solarized-underline t nil)) |
|
115 (opt-under nil) |
|
116 (italic (if solarized-italic 'italic 'normal))) |
|
117 (when (eq 'light mode) |
|
118 (rotatef base03 base3) |
|
119 (rotatef base02 base2) |
|
120 (rotatef base01 base1) |
|
121 (rotatef base00 base0)) |
|
122 (let ((back base03)) |
|
123 (cond ((eq 'high solarized-contrast) |
|
124 (let ((orig-base3 base3)) |
|
125 (rotatef base01 base00 base0 base1 base2 base3) |
|
126 (setf base3 orig-base3))) |
|
127 ((eq 'low solarized-contrast) |
|
128 (setf back base02 |
|
129 opt-under t))) |
|
130 (let ((bg-back `(:background ,back)) |
|
131 (bg-base03 `(:background ,base03)) |
|
132 (bg-base02 `(:background ,base02)) |
|
133 (bg-base01 `(:background ,base01)) |
|
134 (bg-base00 `(:background ,base00)) |
|
135 (bg-base0 `(:background ,base0)) |
|
136 (bg-base1 `(:background ,base1)) |
|
137 (bg-base2 `(:background ,base2)) |
|
138 (bg-base3 `(:background ,base3)) |
|
139 (bg-green `(:background ,green)) |
|
140 (bg-yellow `(:background ,yellow)) |
|
141 (bg-orange `(:background ,orange)) |
|
142 (bg-red `(:background ,red)) |
|
143 (bg-magenta `(:background ,magenta)) |
|
144 (bg-violet `(:background ,violet)) |
|
145 (bg-blue `(:background ,blue)) |
|
146 (bg-cyan `(:background ,cyan)) |
|
147 |
|
148 (fg-base03 `(:foreground ,base03)) |
|
149 (fg-base02 `(:foreground ,base02)) |
|
150 (fg-base01 `(:foreground ,base01)) |
|
151 (fg-base00 `(:foreground ,base00)) |
|
152 (fg-base0 `(:foreground ,base0)) |
|
153 (fg-base1 `(:foreground ,base1)) |
|
154 (fg-base2 `(:foreground ,base2)) |
|
155 (fg-base3 `(:foreground ,base3)) |
|
156 (fg-green `(:foreground ,green)) |
|
157 (fg-yellow `(:foreground ,yellow)) |
|
158 (fg-orange `(:foreground ,orange)) |
|
159 (fg-red `(:foreground ,red)) |
|
160 (fg-magenta `(:foreground ,magenta)) |
|
161 (fg-violet `(:foreground ,violet)) |
|
162 (fg-blue `(:foreground ,blue)) |
|
163 (fg-cyan `(:foreground ,cyan)) |
|
164 |
|
165 (fmt-bold `(:weight ,bold)) |
|
166 (fmt-bldi `(:weight ,bold)) |
|
167 (fmt-undr `(:underline ,underline)) |
|
168 (fmt-undb `(:underline ,underline :weight ,bold)) |
|
169 (fmt-undi `(:underline ,underline)) |
|
170 (fmt-uopt `(:underline ,opt-under)) |
|
171 (fmt-curl `(:underline t)) ; FIXME: not quite the same |
|
172 (fmt-ital `(:slant ,italic)) |
|
173 (fmt-stnd `(:inverse-video t)) ; FIXME: not quite the same |
|
174 (fmt-revr `(:inverse-video t)) |
|
175 (fmt-revb `(:inverse-video t :weight ,bold)) |
|
176 (fmt-revbb `(:inverse-video t :weight ,bright-bold)) |
|
177 (fmt-revbbu `(:inverse-video t |
|
178 :weight ,bright-bold |
|
179 :underline ,underline))) |
|
180 `((;; basic |
|
181 (default ((t (,@fg-base0 ,@bg-back)))) ; Normal |
|
182 (cursor ((t (,@fg-base03 ,@bg-base0)))) ; Cursor |
|
183 (escape-glyph-face ((t (,@fg-red)))) |
|
184 (fringe ((t (,@fg-base01 ,@bg-base02)))) |
|
185 (linum ((t (,@fg-base01 ,@bg-base02)))) |
|
186 (header-line ((t (,@fg-base0 ,@bg-base2)))) |
|
187 (highlight ((t (,@bg-base02)))) |
|
188 |
|
189 (hl-line ((t (,@fmt-uopt ,@bg-base02)))) ; CursorLine |
|
190 (isearch ((t (,@fmt-stnd ,@fg-orange)))) ; IncSearch |
|
191 (lazy-highlight ((t (,@bg-base2 ,@fg-base00)))) |
|
192 (link ((t (,@fmt-undr ,@fg-violet)))) |
|
193 (link-visited ((t (,@fmt-undr ,@fg-magenta)))) |
|
194 (menu ((t (,@fg-base0 ,@bg-base02)))) |
|
195 (minibuffer-prompt ((t (,@fg-blue)))) |
|
196 (mode-line |
|
197 ((t (,@fg-base1 ,@bg-base02 :box (:line-width 1 :color ,base1))))) |
|
198 (mode-line-buffer-id ((t (,@fg-base1)))) |
|
199 (mode-line-inactive |
|
200 ((t (,@fg-base0 ,@bg-base02 |
|
201 :box (:line-width 1 :color ,base02))))) |
|
202 (region ((t (,@fg-base01 ,@bg-base03 ,@fmt-revbb)))) ; Visual |
|
203 (secondary-selection ((t (,@bg-base02)))) |
|
204 (shadow ((t (,@fg-base01)))) |
|
205 (trailing-whitespace ((t (,@fmt-revr ,@fg-red)))) |
|
206 (vertical-border ((t (,@fg-base0)))) |
|
207 ;; comint |
|
208 (comint-highlight-prompt ((t (,@fg-blue)))) |
|
209 ;; compilation |
|
210 (compilation-info ((t (,@fmt-bold ,@fg-green)))) |
|
211 (compilation-warning ((t (,@fmt-bold ,@fg-orange)))) |
|
212 ;; custom |
|
213 (custom-button |
|
214 ((t (,@fg-base1 ,@bg-base02 |
|
215 :box (:line-width 2 :style released-button))))) |
|
216 (custom-button-mouse |
|
217 ((t (,@fmt-revr ,@fg-base1 ,@bg-base02 :inherit custom-button)))) |
|
218 (custom-button-pressed |
|
219 ((t (,@fmt-revr ,@fg-base1 ,@bg-base02 |
|
220 :box (:line-width 2 :style pressed-button) |
|
221 :inherit custom-button-mouse)))) |
|
222 (custom-changed ((t (,@fmt-revr ,@fg-blue ,@bg-base3)))) |
|
223 (custom-comment ((t (,@fg-base1 ,@bg-base02)))) |
|
224 (custom-comment-tag ((t (,@fg-base1 ,@bg-base02)))) |
|
225 (custom-documentation ((t (:inherit default)))) |
|
226 (custom-group-tag ((t (,@fg-base1)))) |
|
227 (custom-group-tag-1 ((t (,fmt-bold ,@fg-base1)))) |
|
228 (custom-invalid ((t (,@fmt-revr ,@fg-red ,@bg-back)))) |
|
229 (custom-link ((t (,@fg-violet)))) |
|
230 (custom-state ((t (,@fg-green)))) |
|
231 (custom-variable-tag ((t (,@fg-base1)))) |
|
232 ;; diff - DiffAdd, DiffChange, DiffDelete, and DiffText |
|
233 ,@(case solarized-diff-mode |
|
234 (high |
|
235 `((diff-added ((t (,@fmt-revr ,@fg-green)))) |
|
236 (diff-changed ((t (,@fmt-revr ,@fg-yellow)))) |
|
237 (diff-removed ((t (,@fmt-revr ,@fg-red)))) |
|
238 (diff-header ((t (,@fmt-revr ,@fg-blue ,@bg-back)))))) |
|
239 (low |
|
240 `((diff-added ((t (,@fmt-undr ,@fg-green)))) |
|
241 (diff-changed ((t (,@fmt-undr ,@fg-yellow)))) |
|
242 (diff-removed ((t (,@fmt-bold ,@fg-red)))) |
|
243 (diff-header ((t (,@fmt-undr ,@fg-blue ,@bg-back)))))) |
|
244 (normal |
|
245 (if window-system |
|
246 `((diff-added ((t (,@fmt-bold ,@fg-green)))) |
|
247 (diff-changed ((t (,@fmt-bold ,@fg-yellow)))) |
|
248 (diff-removed ((t (,@fmt-bold ,@fg-red)))) |
|
249 (diff-header ((t (,@fmt-bold ,@fg-blue ,@bg-back))))) |
|
250 `((diff-added ((t (,@fg-green)))) |
|
251 (diff-changed ((t (,@fg-yellow)))) |
|
252 (diff-removed ((t (,@fg-red)))) |
|
253 (diff-header ((t (,@fg-blue ,@bg-back)))))))) |
|
254 (diff-file-header ((t (,@bg-back)))) |
|
255 (diff-refine-change ((t (,@bg-base3)))) |
|
256 ;; IDO |
|
257 (ido-only-match ((t (,@fg-green)))) |
|
258 (ido-subdir ((t (,@fg-blue)))) |
|
259 (ido-first-match ((t (,@fmt-bold ,@fg-green)))) |
|
260 ;; emacs-wiki |
|
261 (emacs-wiki-bad-link-face ((t (,@fmt-undr ,@fg-red)))) |
|
262 (emacs-wiki-link-face ((t (,@fmt-undr ,@fg-blue)))) |
|
263 (emacs-wiki-verbatim-face ((t (,@fmt-undr ,@fg-base00)))) |
|
264 ;; eshell |
|
265 (eshell-ls-archive ((t (,@fg-magenta)))) |
|
266 (eshell-ls-backup ((t (,@fg-yellow)))) |
|
267 (eshell-ls-clutter ((t (,@fg-orange)))) |
|
268 (eshell-ls-directory ((t (,@fg-blue)))) |
|
269 (eshell-ls-executable ((t (,@fg-green)))) |
|
270 (eshell-ls-missing ((t (,@fg-red)))) |
|
271 (eshell-ls-product ((t (,@fg-yellow)))) |
|
272 (eshell-ls-readonly ((t (,@fg-base1)))) |
|
273 (eshell-ls-special ((t (,@fg-violet)))) |
|
274 (eshell-ls-symlink ((t (,@fg-cyan)))) |
|
275 (eshell-ls-unreadable ((t (,@fg-base00)))) |
|
276 (eshell-prompt ((t (,@fmt-bold ,@fg-green)))) |
|
277 ;; font-lock |
|
278 (font-lock-builtin-face ((t (,@fg-green)))) ; Statement |
|
279 (font-lock-comment-face ((t (,@fmt-ital ,@fg-base01)))) ; Comment |
|
280 (font-lock-constant-face ((t (,@fg-cyan)))) ; Constant |
|
281 (font-lock-function-name-face ((t (,@fg-blue)))) ; Identifier |
|
282 (font-lock-keyword-face ((t (,@fg-green)))) ; Statement |
|
283 (font-lock-string-face ((t (,@fg-cyan)))) ; Constant |
|
284 (font-lock-type-face ((t (,@fg-yellow)))) ; Type |
|
285 (font-lock-variable-name-face ((t (,@fg-blue)))) ; Identifier |
|
286 (font-lock-warning-face ((t (,@fmt-bold ,@fg-red)))) ; Error |
|
287 (font-lock-doc-face ((t (,@fmt-ital ,@fg-cyan)))) |
|
288 (font-lock-color-constant-face ((t (,@fg-green)))) |
|
289 (font-lock-comment-delimiter-face ; Comment |
|
290 ((t (,@fmt-ital ,@fg-base01)))) |
|
291 (font-lock-doc-string-face ((t (,@fg-green)))) |
|
292 (font-lock-preprocessor-face ((t (,@fg-orange)))) ; PreProc |
|
293 (font-lock-reference-face ((t (,@fg-cyan)))) |
|
294 (font-lock-negation-char-face ((t (,@fg-red)))) |
|
295 (font-lock-other-type-face ((t (,@fmt-ital ,@fg-blue)))) |
|
296 (font-lock-regexp-grouping-construct ((t (,@fg-orange)))) |
|
297 (font-lock-special-keyword-face ((t (,@fg-magenta)))) |
|
298 (font-lock-exit-face ((t (,@fg-red)))) |
|
299 (font-lock-other-emphasized-face ((t (,@fmt-bldi ,@fg-violet)))) |
|
300 (font-lock-regexp-grouping-backslash ((t (,@fg-yellow)))) |
|
301 ;; info |
|
302 (info-xref ((t (,@fmt-undr ,@fg-blue)))) |
|
303 (info-xref-visited ((t (,@fg-magenta :inherit info-xref)))) |
|
304 ;; org |
|
305 (org-hide ((t (,@fg-base03)))) |
|
306 (org-todo ((t (,@fmt-bold ,@fg-base03 ,@bg-red)))) |
|
307 (org-done ((t (,@fmt-bold ,@fg-green)))) |
|
308 (org-todo-kwd-face ((t (,@fg-red ,@bg-base03)))) |
|
309 (org-done-kwd-face ((t (,@fg-green ,@bg-base03)))) |
|
310 (org-project-kwd-face ((t (,@fg-violet ,@bg-base03)))) |
|
311 (org-waiting-kwd-face ((t (,@fg-orange ,@bg-base03)))) |
|
312 (org-someday-kwd-face ((t (,@fg-blue ,@bg-base03)))) |
|
313 (org-started-kwd-face ((t (,@fg-yellow ,@bg-base03)))) |
|
314 (org-cancelled-kwd-face ((t (,@fg-green ,@bg-base03)))) |
|
315 (org-delegated-kwd-face ((t (,@fg-cyan ,@bg-base03)))) |
|
316 ;; show-paren - MatchParen |
|
317 (show-paren-match-face ((t (,@fg-cyan ,@fg-base01)))) |
|
318 (show-paren-mismatch-face ((t (,@fg-red ,@fg-base01)))) |
|
319 ;; widgets |
|
320 (widget-field |
|
321 ((t (,@fg-base1 ,@bg-base02 :box (:line-width 1 :color ,base2) |
|
322 :inherit default)))) |
|
323 (widget-single-line-field ((t (:inherit widget-field)))) |
|
324 ;; extra modules |
|
325 ;; ------------- |
|
326 ;; gnus |
|
327 (gnus-cite-1 ((t (,@fg-magenta)))) |
|
328 (gnus-cite-2 ((t (,@fg-base2)))) |
|
329 (gnus-cite-3 ((t (,@fg-base3)))) |
|
330 (gnus-cite-4 ((t (,@fg-base1)))) |
|
331 (gnus-cite-5 ((t (,@fg-magenta)))) |
|
332 (gnus-cite-6 ((t (,@fg-base2)))) |
|
333 (gnus-cite-7 ((t (,@fg-base3)))) |
|
334 (gnus-cite-8 ((t (,@fg-base1)))) |
|
335 (gnus-cite-9 ((t (,@fg-base2)))) |
|
336 (gnus-cite-10 ((t (,@fg-base3)))) |
|
337 (gnus-cite-11 ((t (,@fg-blue)))) |
|
338 (gnus-group-mail-1 ((t (,@fmt-bold ,@fg-base3)))) |
|
339 (gnus-group-mail-1-empty ((t (,@fg-base3)))) |
|
340 (gnus-group-mail-2 ((t (,@fmt-bold ,@fg-base2)))) |
|
341 (gnus-group-mail-2-empty ((t (,@fg-base2)))) |
|
342 (gnus-group-mail-3 ((t (,@fmt-bold ,@fg-magenta)))) |
|
343 (gnus-group-mail-3-empty ((t (,@fg-magenta)))) |
|
344 (gnus-group-mail-low ((t (,@fmt-bold ,@fg-base00)))) |
|
345 (gnus-group-mail-low-empty ((t (,@fg-base00)))) |
|
346 (gnus-group-news-1 ((t (,@fmt-bold ,@fg-base1)))) |
|
347 (gnus-group-news-1-empty ((t (,@fg-base1)))) |
|
348 (gnus-group-news-2 ((t (,@fmt-bold ,@fg-blue)))) |
|
349 (gnus-group-news-2-empty ((t (,@fg-blue)))) |
|
350 (gnus-group-news-low ((t (,@fmt-bold ,@fg-violet)))) |
|
351 (gnus-group-news-low-empty ((t (,@fg-violet)))) |
|
352 (gnus-header-content ((t (,@fmt-ital ,@fg-cyan)))) |
|
353 (gnus-header-from ((t (,@fg-base2)))) |
|
354 (gnus-header-name ((t (,@fg-blue)))) |
|
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)))))))) |
|
413 |
|
414 (defmacro create-solarized-theme (mode) |
|
415 (let* ((theme-name (intern (concat "solarized-" (symbol-name mode)))) |
|
416 (defs (solarized-color-definitions mode)) |
|
417 (theme-vars (mapcar (lambda (def) (list (car def) (cdr def))) |
|
418 (second defs))) |
|
419 (theme-faces (first defs))) |
|
420 `(progn |
|
421 (deftheme ,theme-name ,solarized-description) |
|
422 (apply 'custom-theme-set-variables ',theme-name ',theme-vars) |
|
423 (apply 'custom-theme-set-faces ',theme-name ',theme-faces) |
|
424 (provide-theme ',theme-name)))) |
|
425 |
|
426 (provide 'solarized-definitions) |
|