Merge emacsclient face improvements from 'ahyatt/master', add some of my own

* Remove solarized-degrade (from ahyatt)
* New function solarized-face-for-index (from ahyatt)
* New function solariezd-flip (from ahyatt)
* New function solarized-faces (from ahyatt)
  * Vary color for different terms in face specs only (from ahyatt)
  * Reverse light/dark logic to match upstream
  * Add support for 8-color terms
  * Support solarized-broken-srgb
* solarized-color-definitions: Start with faces from upstream and apply ahyatt's changes:
  * Replace light case with generic URL in documentation
  * Consolidate let-bound lists with let* to reduce indentation
  * Don't let-bind yellow and other colors
  * Use default and cursor faces instead of having separate list of attributes to set them
  * Add bright-bold, opt-under, back
  * Base faces are symbols, not let-bound variables
  * Change ((t (spec))) to just (spec) throughout
* No attempt has been made to support the solarized-contrast high case due to lack of time.  Perhaps a 6th column in
  solarized-colors would be a better approach than rotatef on existing colors.
* Reimplement the effect of the low-color terminal background fix
  * New option 'solarized-terminal-themed' controls whether the terminal has been themed with Solarized.  In this
    scenario, we do not set the background color.
  * Pass fg and bg colors to solarized-face-for-index and let it use nil if the new option is enabled and we see one of
    those colors in a foreground/background of face spec.
  * If fg and bg are not passed, assume we are making a face for use by a GUI frame.
  * On terminals that are solarized-themed, use unspecified-bg for backgrounds and unspecified-fg for foregrounds.
    This fixes an issue where the background could stay at a color of a previous theme, instead of going back to the
    terminal's background color.
* Pass background-mode in variables list.
* Use unspecified-fg for highlight foreground, fixing look on terminals.
This commit is contained in:
Michael Olson 2013-02-20 23:42:30 -08:00
commit 2f4e76d4af
1 changed files with 462 additions and 448 deletions

View File

@ -5,12 +5,6 @@
"Color theme by Ethan Schoonover, created 2011-03-24.
Ported to Emacs by Greg Pfeil, http://ethanschoonover.com/solarized.")
(defcustom solarized-degrade nil
"For test purposes only; when in GUI mode, forces Solarized to use the 256
degraded color mode to test the approximate color values for accuracy."
:type 'boolean
:group 'solarized)
(defcustom solarized-diff-mode 'normal
"Sets the level of highlighting to use in diff-like modes."
:type 'symbol
@ -32,6 +26,13 @@ degraded color mode to test the approximate color values for accuracy."
:type 'boolean
:group 'solarized)
(defcustom solarized-terminal-themed t
"Non-nil when the terminal emulator has been themed with Solarized.
In this scenario, we do not set the background color, in favor of the more
accurate version of the color in the default terminal background."
:type 'boolean
:group 'solarized)
(defcustom solarized-contrast 'normal
"Stick with normal! It's been carefully tested. Setting this option to high or
low does use the same Solarized palette but simply shifts some values up or
@ -76,451 +77,464 @@ the \"Gen RGB\" column in solarized-definitions.el to improve them further."
column is a different set, one of which will be chosen based on term
capabilities, etc.")
(defun solarized-face-for-index (facespec index &optional back fg)
"Creates a face from facespec where the colors use the names of
the `solarized-colors'."
(let ((new-fontspec (copy-list facespec)))
(dolist (property '(:foreground :background :color))
(let ((color (plist-get new-fontspec property)))
(when color
(cond ((and solarized-terminal-themed
(eq property :background) (memq color back))
(plist-put new-fontspec property "unspecified-bg"))
((and solarized-terminal-themed
(eq property :foreground) (memq color fg))
(plist-put new-fontspec property "unspecified-fg"))
(t (plist-put new-fontspec property
(nth index (assoc color solarized-colors))))))))
(when (plist-get new-fontspec :box)
(plist-put new-fontspec :box (solarized-face-for-index
(plist-get new-fontspec :box) index)))
new-fontspec))
(defun solarized-flip (facespec)
"Convert a facespec to its lightened or darkened counterpart"
(let* ((reversing-alist '((base03 . base3) (base02 . base2) (base01 . base1)
(base00 . base0) (base0 . base00) (base1 . base01)
(base2 . base02) (base3 . base03))))
(mapcar (lambda (term) (cond ((listp term) (solarized-flip term))
((assoc term reversing-alist)
(cdr (assoc term reversing-alist)))
(t term))) facespec)))
(defun solarized-faces (back fg facespecs mode)
(mapcar (lambda (facespec-with-name)
(let* ((name (car facespec-with-name))
(facespec (funcall
(if (eq mode 'light) 'solarized-flip 'identity)
(second facespec-with-name)))
(facespec-tty-256 (solarized-face-for-index facespec 3 back fg))
(facespec-tty-term (solarized-face-for-index facespec 4 back fg))
(facespec-tty-8 (solarized-face-for-index facespec 5 back fg))
(facespec-default (if solarized-broken-srgb
(solarized-face-for-index facespec 2)
(solarized-face-for-index facespec 1))))
`(,name
((((min-colors 257)) ,facespec-default)
(((min-colors 256)) ,facespec-tty-256)
(((min-colors 16)) ,facespec-tty-term)
(((min-colors 8)) ,facespec-tty-8)
;; We should rarely if ever fall to the default. If so, let's
;; set it to the default spec and hope for the best.
(t ,facespec-default))))) facespecs))
(defun solarized-color-definitions (mode)
(flet ((find-color (name)
(let* ((index (if window-system
(if solarized-degrade
3
(if solarized-broken-srgb 2 1))
(case (display-color-cells)
(16 4)
(8 5)
(otherwise 3)))))
(nth index (assoc name solarized-colors)))))
(let ((base03 (find-color 'base03))
(base02 (find-color 'base02))
(base01 (find-color 'base01))
(base00 (find-color 'base00))
(base0 (find-color 'base0))
(base1 (find-color 'base1))
(base2 (find-color 'base2))
(base3 (find-color 'base3))
(yellow (find-color 'yellow))
(orange (find-color 'orange))
(red (find-color 'red))
(magenta (find-color 'magenta))
(violet (find-color 'violet))
(blue (find-color 'blue))
(cyan (find-color 'cyan))
(green (find-color 'green))
(bold (if solarized-bold 'bold 'normal))
(bright-bold (if solarized-bold 'normal 'bold))
(underline (if solarized-underline t nil))
(opt-under nil)
(italic (if solarized-italic 'italic 'normal)))
(when (eq 'light mode)
(rotatef base03 base3)
(rotatef base02 base2)
(rotatef base01 base1)
(rotatef base00 base0))
(let ((back base03))
(cond ((< (display-color-cells) 16)
(setf back nil))
((eq 'high solarized-contrast)
(let ((orig-base3 base3))
(rotatef base01 base00 base0 base1 base2 base3)
(setf base3 orig-base3)))
((eq 'low solarized-contrast)
(setf back base02
opt-under t)))
;; NOTE: We try to turn an 8-color term into a 10-color term by not
;; using default background and foreground colors, expecting the
;; user to have the right colors set for them.
(let ((bg-back `(:background ,back))
(bg-base03 `(:background ,base03))
(bg-base02 `(:background ,base02))
(bg-base01 `(:background ,base01))
(bg-base00 `(:background ,base00))
(bg-base0 `(:background ,base0))
(bg-base1 `(:background ,base1))
(bg-base2 `(:background ,base2))
(bg-base3 `(:background ,base3))
(bg-green `(:background ,green))
(bg-yellow `(:background ,yellow))
(bg-orange `(:background ,orange))
(bg-red `(:background ,red))
(bg-magenta `(:background ,magenta))
(bg-violet `(:background ,violet))
(bg-blue `(:background ,blue))
(bg-cyan `(:background ,cyan))
(fg-base03 `(:foreground ,base03))
(fg-base02 `(:foreground ,base02))
(fg-base01 `(:foreground ,base01))
(fg-base00 `(:foreground ,base00))
(fg-base0 `(:foreground ,(when (<= 16 (display-color-cells))
base0)))
(fg-base1 `(:foreground ,(when (<= 16 (display-color-cells))
base1)))
(fg-base2 `(:foreground ,base2))
(fg-base3 `(:foreground ,base3))
(fg-green `(:foreground ,green))
(fg-yellow `(:foreground ,yellow))
(fg-orange `(:foreground ,orange))
(fg-red `(:foreground ,red))
(fg-magenta `(:foreground ,magenta))
(fg-violet `(:foreground ,violet))
(fg-blue `(:foreground ,blue))
(fg-cyan `(:foreground ,cyan))
"Define colors that make up Solarized."
;; We define everything for dark mode, but we generate light mode
;; automatically in `solarized-faces.'
;;
;; See http://ethanschoonover.com/solarized#features for an explanation
;; of what the base00/base0 names stand for
(let* ((bold (if solarized-bold 'bold 'normal))
(bright-bold (if solarized-bold 'normal 'bold))
(underline (if solarized-underline t nil))
(opt-under (eq 'low solarized-contrast))
(italic (if solarized-italic 'italic 'normal))
(back (if (eq 'low solarized-contrast) 'base02 'base03))
(fmt-none `(:weight normal :slant normal :underline nil :inverse-video nil))
(fmt-bold `(:weight ,bold :slant normal :underline nil :inverse-video nil))
(fmt-bldi `(:weight ,bold :underline nil :inverse-video nil))
(fmt-undr `(:weight normal :slant normal :underline ,underline :inverse-video nil))
(fmt-undb `(:weight ,bold :slant normal :underline ,underline :inverse-video nil))
(fmt-undi `(:weight normal :underline ,underline :inverse-video nil))
(fmt-uopt `(:weight normal :slant normal :underline ,opt-under :inverse-video nil))
;; FIXME: not quite the same
(fmt-curl `(:weight normal :slant normal :underline t :inverse-video nil))
(fmt-ital `(:weight normal :slant ,italic :underline nil :inverse-video nil))
;; FIXME: not quite the same
(fmt-stnd `(:weight normal :slant normal :underline nil :inverse-video t))
(fmt-revr `(:weight normal :slant normal :underline nil :inverse-video t))
(fmt-revb `(:weight ,bold :slant normal :underline nil :inverse-video t))
(fmt-revbb `(:weight ,bright-bold :slant normal :underline nil :inverse-video t))
(fmt-revbbu `(:weight ,bright-bold :slant normal :underline ,underline :inverse-video t)))
`((;; basic
(default ((t (,@fg-base0 ,@bg-back)))) ; Normal
(cursor ((t (,@fg-base03 ,@bg-base0)))) ; Cursor
(error ((t (,@fmt-bold ,@fg-red)))) ; Error
(escape-glyph-face ((t (,@fg-red))))
(fringe ((t (,@fg-base01 ,@bg-base02))))
(linum ((t (,@fg-base01 ,@bg-base02))))
(header-line ((t (,@fg-base0 ,@bg-base02 ,@fmt-revbb)))) ; Pmenu
(highlight ((t (,@bg-base02))))
(hl-line ((t (:underline ,opt-under ,@bg-base02)))) ; CursorLine
(isearch ((t (,@fmt-stnd ,@fg-orange ,@bg-back)))) ; IncSearch
(isearch-fail ((t (,@fmt-stnd ,@fg-orange ,@bg-back)))) ; IncSearch
(lazy-highlight ((t (,@fmt-revr ,@fg-yellow ,@bg-back)))) ; Search
(link ((t (,@fmt-undr ,@fg-violet))))
(link-visited ((t (,@fmt-undr ,@fg-magenta))))
(menu ((t (,@fg-base0 ,@bg-base02))))
(minibuffer-prompt ((t (,@fmt-bold ,@fg-cyan)))) ; Question
(mode-line ; StatusLine
((t (,@fg-base1 ,@bg-base02 ,@fmt-revbb :box nil))))
(mode-line-inactive ; StatusLineNC
((t (,@fg-base00 ,@bg-base02 ,@fmt-revbb :box nil))))
(region ((t (,@fg-base01 ,@bg-base03 ,@fmt-revbb)))) ; Visual
(secondary-selection ((t (,@bg-base02))))
(shadow ((t (,@fg-base01))))
(trailing-whitespace ((t (,@fmt-revr ,@fg-red))))
(vertical-border ((t (,@fg-base0))))
;; comint
(comint-highlight-prompt ((t (,@fg-blue))))
;; compilation
(compilation-info ((t (,@fmt-bold ,@fg-green))))
(compilation-warning ((t (,@fmt-bold ,@fg-orange))))
;; custom
(custom-button
((t (,@fg-base1 ,@bg-base02
:box (:line-width 2 :style released-button)))))
(custom-button-mouse
((t (,@fmt-revr ,@fg-base1 ,@bg-base02 :inherit custom-button))))
(custom-button-pressed
((t (,@fmt-revr ,@fg-base1 ,@bg-base02
:box (:line-width 2 :style pressed-button)
:inherit custom-button-mouse))))
(custom-changed ((t (,@fmt-revr ,@fg-blue ,@bg-base3))))
(custom-comment ((t (,@fg-base1 ,@bg-base02))))
(custom-comment-tag ((t (,@fg-base1 ,@bg-base02))))
(custom-documentation ((t (:inherit default))))
(custom-group-tag ((t (,@fg-base1))))
(custom-group-tag-1 ((t (,fmt-bold ,@fg-base1))))
(custom-invalid ((t (,@fmt-revr ,@fg-red ,@bg-back))))
(custom-link ((t (,@fg-violet))))
(custom-state ((t (,@fg-green))))
(custom-variable-tag ((t (,@fg-base1))))
;; diff - DiffAdd, DiffChange, DiffDelete, and DiffText
,@(case solarized-diff-mode
(high
`((diff-added ((t (,@fmt-revr ,@fg-green))))
(diff-changed ((t (,@fmt-revr ,@fg-yellow))))
(diff-removed ((t (,@fmt-revr ,@fg-red))))
(diff-refine-change
((t (,@fmt-revr ,@fg-blue ,@bg-back))))))
(low
`((diff-added ((t (,@fmt-undr ,@fg-green))))
(diff-changed ((t (,@fmt-undr ,@fg-yellow))))
(diff-removed ((t (,@fmt-bold ,@fg-red))))
(diff-refine-change
((t (,@fmt-undr ,@fg-blue ,@bg-back))))))
(normal
(if window-system
`((diff-added ((t (,@fmt-bold ,@fg-green))))
(diff-changed ((t (,@fmt-bold ,@fg-yellow))))
(diff-removed ((t (,@fmt-bold ,@fg-red))))
(diff-refine-change
((t (,@fmt-bold ,@fg-blue ,@bg-back)))))
`((diff-added ((t (,@fg-green))))
(diff-changed ((t (,@fg-yellow))))
(diff-removed ((t (,@fg-red))))
(diff-refine-change ((t (,@fg-blue ,@bg-back))))))))
(diff-file-header ((t (,@bg-back))))
(diff-header ((t (,@fg-base1 ,@bg-back))))
;; IDO
(ido-only-match ((t (,@fg-green))))
(ido-subdir ((t (,@fg-blue))))
(ido-first-match ((t (,@fmt-bold ,@fg-green))))
;; emacs-wiki
(emacs-wiki-bad-link-face ((t (,@fmt-undr ,@fg-red))))
(emacs-wiki-link-face ((t (,@fmt-undr ,@fg-blue))))
(emacs-wiki-verbatim-face ((t (,@fmt-undr ,@fg-base00))))
;; eshell
(eshell-ls-archive ((t (,@fg-magenta))))
(eshell-ls-backup ((t (,@fg-yellow))))
(eshell-ls-clutter ((t (,@fg-orange))))
(eshell-ls-directory ((t (,@fg-blue)))) ; Directory
(eshell-ls-executable ((t (,@fg-green))))
(eshell-ls-missing ((t (,@fg-red))))
(eshell-ls-product ((t (,@fg-yellow))))
(eshell-ls-readonly ((t (,@fg-base1))))
(eshell-ls-special ((t (,@fg-violet))))
(eshell-ls-symlink ((t (,@fg-cyan))))
(eshell-ls-unreadable ((t (,@fg-base00))))
(eshell-prompt ((t (,@fmt-bold ,@fg-green))))
;; font-lock
(font-lock-builtin-face ((t (,@fmt-none ,@fg-green)))) ; Statement
(font-lock-comment-face ((t (,@fmt-ital ,@fg-base01)))) ; Comment
(font-lock-constant-face ((t (,@fmt-none ,@fg-cyan)))) ; Constant
(font-lock-function-name-face ; Identifier
((t (,@fmt-none ,@fg-blue))))
(font-lock-keyword-face ((t (,@fmt-none ,@fg-green)))) ; Statement
(font-lock-string-face ((t (,@fmt-none ,@fg-cyan)))) ; Constant
(font-lock-type-face ((t (,@fmt-none ,@fg-yellow)))) ; Type
(font-lock-variable-name-face ; Identifier
((t (,@fmt-none ,@fg-blue))))
(font-lock-warning-face ((t (,@fmt-bold ,@fg-red)))) ; Error
(font-lock-doc-face ((t (,@fmt-ital ,@fg-base01)))) ; Comment
(font-lock-doc-string-face ; Comment (XEmacs-only)
((t (,@fmt-ital ,@fg-base01))))
(font-lock-color-constant-face ((t (,@fmt-none ,@fg-green))))
(font-lock-comment-delimiter-face ; Comment
((t (,@fmt-ital ,@fg-base01))))
(font-lock-preprocessor-face ; PreProc
((t (,@fmt-none ,@fg-orange))))
(font-lock-reference-face ((t (,@fmt-none ,@fg-cyan))))
(font-lock-negation-char-face ((t (,@fmt-none ,@fg-red))))
(font-lock-other-type-face ((t (,@fmt-ital ,@fg-blue))))
(font-lock-regexp-grouping-construct
((t (,@fmt-none ,@fg-orange))))
(font-lock-special-keyword-face ; Special
((t (,@fmt-none ,@fg-red))))
(font-lock-exit-face ((t (,@fmt-none ,@fg-red))))
(font-lock-other-emphasized-face ((t (,@fmt-bldi ,@fg-violet))))
(font-lock-regexp-grouping-backslash
((t (,@fmt-none ,@fg-yellow))))
;; info
(info-xref ((t (,@fmt-undr ,@fg-blue))))
(info-xref-visited ((t (,@fg-magenta :inherit info-xref))))
;; org
(org-hide ((t (,@fg-base03))))
(org-todo ((t (,@fmt-bold ,@fg-base03 ,@bg-red))))
(org-done ((t (,@fmt-bold ,@fg-green))))
(org-todo-kwd-face ((t (,@fg-red ,@bg-base03))))
(org-done-kwd-face ((t (,@fg-green ,@bg-base03))))
(org-project-kwd-face ((t (,@fg-violet ,@bg-base03))))
(org-waiting-kwd-face ((t (,@fg-orange ,@bg-base03))))
(org-someday-kwd-face ((t (,@fg-blue ,@bg-base03))))
(org-started-kwd-face ((t (,@fg-yellow ,@bg-base03))))
(org-cancelled-kwd-face ((t (,@fg-green ,@bg-base03))))
(org-delegated-kwd-face ((t (,@fg-cyan ,@bg-base03))))
;; table
(table-cell ((t (,@fmt-none ,@fg-base0 ,@bg-back))))
;; outline - pandocBlockQuoteLeader*
(outline-1 ((t (,@fmt-none ,@fg-blue))))
(outline-2 ((t (,@fmt-none ,@fg-cyan))))
(outline-3 ((t (,@fmt-none ,@fg-yellow))))
(outline-4 ((t (,@fmt-none ,@fg-red))))
(outline-5 ((t (,@fmt-none ,@fg-base0))))
(outline-6 ((t (,@fmt-none ,@fg-base01))))
(outline-7 ((t (,@fmt-none ,@fg-orange))))
(outline-8 ((t (,@fmt-none ,@fg-violet))))
;; speedbar
(speedbar-button-face ((t (,@fmt-none ,@fg-base1))))
(speedbar-directory-face ((t (,@fmt-none ,@fg-orange))))
(speedbar-file-face ((t (,@fmt-none ,@fg-green))))
(speedbar-highlight-face ((t (,@bg-base02))))
(speedbar-selected-face ((t (,@fmt-undr ,@fg-yellow))))
(speedbar-separator-face ((t (,@fmt-stnd))))
(speedbar-tag-face ((t (,@fmt-none ,@fg-blue))))
;; show-paren - MatchParen
(show-paren-match ((t (,@fmt-bold ,@fg-cyan ,@bg-base02))))
(show-paren-mismatch ((t (,@fmt-bold ,@fg-red ,@bg-base01))))
;; widgets
(widget-field
((t (,@fg-base1 ,@bg-base02 :box (:line-width 1)
:inherit default))))
(widget-single-line-field ((t (:inherit widget-field))))
;; extra modules
;; -------------
;; Flymake
(flymake-errline ((t (,@fmt-revr ,@fg-red ,@bg-back)))) ; ErrorMsg
(flymake-warnline ; WarningMsg
((t (,@fmt-bold ,@fg-red ,@bg-back))))
;; column-marker
(column-marker-1 ((t (,@bg-base01))))
(column-marker-2 ((t (,@bg-cyan))))
(column-marker-3 ((t (,@bg-violet))))
;; jabber
(jabber-activity-face ((t (,@fmt-bold ,@fg-red))))
(jabber-activity-personal-face ((t (,@fmt-bold ,@fg-blue))))
(jabber-chat-error ((t (,@fmt-bold ,@fg-red))))
(jabber-chat-prompt-foreign ((t (,@fmt-bold ,@fg-red))))
(jabber-chat-prompt-local ((t (,@fmt-bold ,@fg-blue))))
(jabber-chat-prompt-system ((t (,@fmt-bold ,@fg-green))))
(jabber-chat-text-foreign ((t (,@fg-base1))))
(jabber-chat-text-local ((t (,@fg-base0))))
(jabber-chat-rare-time-face ((t (,@fmt-undr ,@fg-green))))
(jabber-roster-user-away ((t (,@fmt-ital ,@fg-green))))
(jabber-roster-user-chatty ((t (,@fmt-bold ,@fg-orange))))
(jabber-roster-user-dnd ((t (,@fmt-ital ,@fg-red))))
(jabber-roster-user-error ((t (:weight light :slant italic ,@fg-red))))
(jabber-roster-user-offline ((t (,@fg-base01))))
(jabber-roster-user-online ((t (,@fmt-bold ,@fg-blue))))
(jabber-roster-user-xa ((t (,@fmt-ital ,@fg-magenta))))
;; gnus - these are taken from mutt, not VIM
(gnus-cite-1 ((t (,@fmt-none ,@fg-blue)))) ; quoted
(gnus-cite-2 ((t (,@fmt-none ,@fg-cyan)))) ; quoted1
(gnus-cite-3 ((t (,@fmt-none ,@fg-yellow)))) ; quoted2
(gnus-cite-4 ((t (,@fmt-none ,@fg-red)))) ; quoted3
(gnus-cite-5 ((t (,@fmt-none ,@fg-orange)))) ; quoted4
(gnus-cite-6 ((t (,@fmt-none ,@fg-violet))))
(gnus-cite-7 ((t (,@fmt-none ,@fg-green))))
(gnus-cite-8 ((t (,@fmt-none ,@fg-magenta))))
(gnus-cite-9 ((t (,@fmt-none ,@fg-base00))))
(gnus-cite-10 ((t (,@fmt-none ,@fg-base01))))
(gnus-cite-11 ((t (,@fmt-none ,@fg-base02))))
(gnus-group-mail-1 ((t (,@fmt-bold ,@fg-base3))))
(gnus-group-mail-1-empty ((t (,@fg-base3))))
(gnus-group-mail-2 ((t (,@fmt-bold ,@fg-base2))))
(gnus-group-mail-2-empty ((t (,@fg-base2))))
(gnus-group-mail-3 ((t (,@fmt-bold ,@fg-magenta))))
(gnus-group-mail-3-empty ((t (,@fg-magenta))))
(gnus-group-mail-low ((t (,@fmt-bold ,@fg-base00))))
(gnus-group-mail-low-empty ((t (,@fg-base00))))
(gnus-group-news-1 ((t (,@fmt-bold ,@fg-base1))))
(gnus-group-news-1-empty ((t (,@fg-base1))))
(gnus-group-news-2 ((t (,@fmt-bold ,@fg-blue))))
(gnus-group-news-2-empty ((t (,@fg-blue))))
(gnus-group-news-low ((t (,@fmt-bold ,@fg-violet))))
(gnus-group-news-low-empty ((t (,@fg-violet))))
(gnus-emphasis-highlight-words ; highlight
((t (,@fmt-none ,fg-yellow))))
(gnus-header-content ((t (,@fmt-none ,@fg-base01)))) ; hdrdefault
(gnus-header-from ((t (,@fmt-none ,@fg-base00)))) ; header ^From
(gnus-header-name ((t (,@fmt-none ,@fg-base01)))) ; hdrdefault
(gnus-header-newsgroups ; hdrdefault
((t (,@fmt-none ,@fg-base02))))
(gnus-header-subject ; header ^Subject
((t (,@fmt-none ,@fg-blue))))
(gnus-server-agent ((t (,@fmt-bold ,@fg-base3))))
(gnus-server-closed ((t (,@fmt-ital ,@fg-base1))))
(gnus-server-denied ((t (,@fmt-bold ,@fg-base2))))
(gnus-server-offline ((t (,@fmt-bold ,@fg-green))))
(gnus-server-opened ((t (,@fmt-bold ,@fg-cyan))))
(gnus-signature ((t (,@fmt-none ,@fg-base01)))) ; signature
(gnus-splash ((t (,@fg-base2))))
(gnus-summary-cancelled ; deleted messages
((t (,@fmt-none ,@fg-red))))
(gnus-summary-high-ancient
((t (,@fmt-bold :inherit gnus-summary-normal-ancient))))
(gnus-summary-high-read
((t (,@fmt-bold :inherit gnus-summary-normal-read))))
(gnus-summary-high-ticked
((t (,@fmt-bold :inherit gnus-summary-normal-ticked))))
(gnus-summary-high-undownloaded
((t (,@fmt-bold :inherit gnus-summary-normal-undownloaded))))
(gnus-summary-high-unread
((t (,@fmt-bold :inherit gnus-summary-normal-unread))))
(gnus-summary-low-ancient
((t (,@fmt-ital :inherit gnus-summary-normal-ancient))))
(gnus-summary-low-read
((t (,@fmt-ital :inherit gnus-summary-normal-ancient))))
(gnus-summary-low-unread
((t (,@fmt-ital :inherit gnus-summary-normal-unread))))
(gnus-summary-low-ticked
((t (,@fmt-ital :inherit gnus-summary-normal-ancient))))
(gnus-summary-low-undownloaded
((t (,@fmt-ital :inherit gnus-summary-normal-ancient))))
(gnus-summary-normal-ancient ; old messages
((t (,@fmt-none ,@fg-blue))))
(gnus-summary-normal-read ; read messages
((t (,@fmt-none ,@fg-base01))))
(gnus-summary-normal-ticked ; flagged
((t (,@fmt-none ,@fg-red))))
(gnus-summary-normal-undownloaded ((t (,@fmt-none ,@fg-base2))))
(gnus-summary-normal-unread ; unread messages
((t (,@fmt-none ,@fg-blue))))
(gnus-summary-selected ; indicator
((t (,@fmt-none ,@fg-base03 ,@bg-yellow))))
;; Message
(message-mml ((t (,@fg-blue))))
(message-cited-text ((t (,@fg-base2))))
(message-separator ((t (,@fg-base3))))
(message-header-xheader ((t (,@fg-violet))))
(message-header-name ((t (,@fg-cyan))))
(message-header-other ((t (,@fg-red))))
(message-header-newsgroups ((t (,@fmt-bldi ,@fg-yellow))))
(message-header-subject ((t (,@fg-base00))))
(message-header-cc ((t (,@fmt-bold ,@fg-green))))
(message-header-to ((t (,@fmt-bold ,@fg-base1))))
;; parenface
(paren-face ((t (,@fg-base01))))
;; rainbow-delimiters
(rainbow-delimiters-depth-1-face ((t (,@fg-cyan))))
(rainbow-delimiters-depth-2-face ((t (,@fg-yellow))))
(rainbow-delimiters-depth-3-face ((t (,@fg-blue))))
(rainbow-delimiters-depth-4-face ((t (,@fg-red))))
(rainbow-delimiters-depth-5-face ((t (,@fg-green))))
(rainbow-delimiters-depth-6-face ((t (,@fg-blue))))
(rainbow-delimiters-depth-7-face ((t (,@fg-orange))))
(rainbow-delimiters-depth-8-face ((t (,@fg-magenta))))
(rainbow-delimiters-depth-9-face ((t (,@fg-base0))))
;; slime
(slime-error-face ((t (,@fmt-revr ,@fg-red)))) ; ErrorMsg
(slime-note-face ((t (,@fg-yellow))))
(slime-repl-inputted-output-face ((t (,@fg-red))))
(slime-repl-output-mouseover-face ((t (:box (:color ,base3)))))
(slime-style-warning-face ((t (,@fmt-bold ,@fg-orange))))
(slime-warning-face ((t (,@fmt-bold ,@fg-red)))) ; WarningMsg
;; whitespace
(whitespace-empty ((t (,@fg-red))))
(whitespace-hspace ((t (,@fg-orange))))
(whitespace-indentation ((t (,@fg-base02))))
(whitespace-space ((t (,@fg-base02))))
(whitespace-space-after-tab ((t (,@fg-cyan))))
(whitespace-space-before-tab ((t (,@fmt-bold ,@fg-red))))
(whitespace-tab ((t (,@fg-base02))))
(whitespace-trailing ((t (,@fmt-bold ,@fg-red ,@bg-base02))))
(whitespace-highlight-face ((t (,@fg-red ,@bg-blue))))
(whitespace-line ((t (,@fg-magenta ,@bg-base03))))
;; rcirc
(rcirc-my-nick ((t (:foreground ,blue))))
(rcirc-nick-in-message ((t (:foreground ,orange))))
(rcirc-other-nick ((t (:foreground ,green))))
(rcirc-prompt ((t (:foreground ,yellow))))
(rcirc-bright-nick ((t (:foreground ,magenta))))
(rcirc-server ((t (:foreground ,base1))))
(rcirc-timestamp ((t (:foreground ,base01))))
;; ERC
(erc-input-face ((t (:foreground ,base01))))
(erc-keyword-face ((t (,@fmt-bldi ,@fg-yellow))))
(erc-my-nick-face ((t (:foreground ,blue))))
(erc-nick-default-face ((t (,@fmt-none ,@fg-cyan))))
(erc-notice-face ((t (,@fmt-none ,@fg-blue))))
(erc-timestamp-face ((t (:foreground ,base01))))
;;font-latex
(font-latex-warning-face ((t (,@fg-red))))
(font-latex-sectioning-5-face ((t (,@fg-violet))))
;;flyspell
(flyspell-incorrect ((t (,@fg-red))))
(flyspell-duplicate ((t (,@fg-yellow)))))
(bg-back `(:background ,back))
(bg-base03 `(:background base03))
(bg-base02 `(:background base02))
(bg-base01 `(:background base01))
(bg-base00 `(:background base00))
(bg-base0 `(:background base0))
(bg-base1 `(:background base1))
(bg-base2 `(:background base2))
(bg-base3 `(:background base3))
(bg-green `(:background green))
(bg-yellow `(:background yellow))
(bg-orange `(:background orange))
(bg-red `(:background red))
(bg-magenta `(:background magenta))
(bg-violet `(:background violet))
(bg-blue `(:background blue))
(bg-cyan `(:background cyan))
((foreground-color . ,(when (<= 16 (display-color-cells)) base0))
(background-color . ,back)
(background-mode . ,mode)
(cursor-color . ,(when (<= 16 (display-color-cells))
base0)))))))))
(fg-base03 `(:foreground base03))
(fg-base02 `(:foreground base02))
(fg-base01 `(:foreground base01))
(fg-base00 `(:foreground base00))
(fg-base0 `(:foreground base0))
(fg-base1 `(:foreground base1))
(fg-base2 `(:foreground base2))
(fg-base3 `(:foreground base3))
(fg-green `(:foreground green))
(fg-yellow `(:foreground yellow))
(fg-orange `(:foreground orange))
(fg-red `(:foreground red))
(fg-magenta `(:foreground magenta))
(fg-violet `(:foreground violet))
(fg-blue `(:foreground blue))
(fg-cyan `(:foreground cyan))
(fg-none `(:foreground "unspecified-fg"))
(fmt-none `(:weight normal :slant normal :underline nil :inverse-video nil))
(fmt-bold `(:weight ,bold :slant normal :underline nil :inverse-video nil))
(fmt-bldi `(:weight ,bold :underline nil :inverse-video nil))
(fmt-undr `(:weight normal :slant normal :underline ,underline :inverse-video nil))
(fmt-undb `(:weight ,bold :slant normal :underline ,underline :inverse-video nil))
(fmt-undi `(:weight normal :underline ,underline :inverse-video nil))
(fmt-uopt `(:weight normal :slant normal :underline ,opt-under :inverse-video nil))
;; FIXME: not quite the same
(fmt-curl `(:weight normal :slant normal :underline t :inverse-video nil))
(fmt-ital `(:weight normal :slant ,italic :underline nil :inverse-video nil))
;; FIXME: not quite the same
(fmt-stnd `(:weight normal :slant normal :underline nil :inverse-video t))
(fmt-revr `(:weight normal :slant normal :underline nil :inverse-video t))
(fmt-revb `(:weight ,bold :slant normal :underline nil :inverse-video t))
(fmt-revbb `(:weight ,bright-bold :slant normal :underline nil :inverse-video t))
(fmt-revbbu `(:weight ,bright-bold :slant normal :underline ,underline :inverse-video t)))
(list
;; First list is for faces
(solarized-faces `(,back) '(base0 base1)
`(;; basic
(default (,@fg-base0 ,@bg-back)) ; Normal
(cursor (,@fg-base03 ,@bg-base0)) ; Cursor
(error (,@fmt-bold ,@fg-red)) ; Error
(escape-glyph-face (,@fg-red))
(fringe (,@fg-base01 ,@bg-base02))
(linum (,@fg-base01 ,@bg-base02))
(header-line (,@fg-base0 ,@bg-base02 ,@fmt-revbb)) ; Pmenu
(highlight (,@fg-none ,@bg-base02))
(hl-line (:underline ,opt-under ,@bg-base02)) ; CursorLine
(isearch (,@fmt-stnd ,@fg-orange ,@bg-back)) ; IncSearch
(isearch-fail (,@fmt-stnd ,@fg-orange ,@bg-back)) ; IncSearch
(lazy-highlight (,@fmt-revr ,@fg-yellow ,@bg-back)) ; Search
(link (,@fmt-undr ,@fg-violet))
(link-visited (,@fmt-undr ,@fg-magenta))
(menu (,@fg-base0 ,@bg-base02))
(minibuffer-prompt (,@fmt-bold ,@fg-cyan)) ; Question
(mode-line ; StatusLine
(,@fg-base1 ,@bg-base02 ,@fmt-revbb :box nil))
(mode-line-inactive ; StatusLineNC
(,@fg-base00 ,@bg-base02 ,@fmt-revbb :box nil))
(region (,@fg-base01 ,@bg-base03 ,@fmt-revbb)) ; Visual
(secondary-selection (,@bg-base02))
(shadow (,@fg-base01))
(trailing-whitespace (,@fmt-revr ,@fg-red))
(vertical-border (,@fg-base0))
;; comint
(comint-highlight-prompt (,@fg-blue))
;; compilation
(compilation-info (,@fmt-bold ,@fg-green))
(compilation-warning (,@fmt-bold ,@fg-orange))
;; custom
(custom-button
(,@fg-base1 ,@bg-base02
:box (:line-width 2 :style released-button)))
(custom-button-mouse
(,@fmt-revr ,@fg-base1 ,@bg-base02 :inherit custom-button))
(custom-button-pressed
(,@fmt-revr ,@fg-base1 ,@bg-base02
:box (:line-width 2 :style pressed-button)
:inherit custom-button-mouse))
(custom-changed (,@fmt-revr ,@fg-blue ,@bg-base3))
(custom-comment (,@fg-base1 ,@bg-base02))
(custom-comment-tag (,@fg-base1 ,@bg-base02))
(custom-documentation (:inherit default))
(custom-group-tag (,@fg-base1))
(custom-group-tag-1 (,fmt-bold ,@fg-base1))
(custom-invalid (,@fmt-revr ,@fg-red ,@bg-back))
(custom-link (,@fg-violet))
(custom-state (,@fg-green))
(custom-variable-tag (,@fg-base1))
;; diff - DiffAdd, DiffChange, DiffDelete, and DiffText
,@(case solarized-diff-mode
(high
`((diff-added (,@fmt-revr ,@fg-green))
(diff-changed (,@fmt-revr ,@fg-yellow))
(diff-removed (,@fmt-revr ,@fg-red))
(diff-refine-change
(,@fmt-revr ,@fg-blue ,@bg-back))))
(low
`((diff-added (,@fmt-undr ,@fg-green))
(diff-changed (,@fmt-undr ,@fg-yellow))
(diff-removed (,@fmt-bold ,@fg-red))
(diff-refine-change
(,@fmt-undr ,@fg-blue ,@bg-back))))
(normal
(if window-system
`((diff-added (,@fmt-bold ,@fg-green))
(diff-changed (,@fmt-bold ,@fg-yellow))
(diff-removed (,@fmt-bold ,@fg-red))
(diff-refine-change
(,@fmt-bold ,@fg-blue ,@bg-back)))
`((diff-added (,@fg-green))
(diff-changed (,@fg-yellow))
(diff-removed (,@fg-red))
(diff-refine-change (,@fg-blue ,@bg-back))))))
(diff-file-header (,@bg-back))
(diff-header (,@fg-base1 ,@bg-back))
;; IDO
(ido-only-match (,@fg-green))
(ido-subdir (,@fg-blue))
(ido-first-match (,@fmt-bold ,@fg-green))
;; emacs-wiki
(emacs-wiki-bad-link-face (,@fmt-undr ,@fg-red))
(emacs-wiki-link-face (,@fmt-undr ,@fg-blue))
(emacs-wiki-verbatim-face (,@fmt-undr ,@fg-base00))
;; eshell
(eshell-ls-archive (,@fg-magenta))
(eshell-ls-backup (,@fg-yellow))
(eshell-ls-clutter (,@fg-orange))
(eshell-ls-directory (,@fg-blue)) ; Directory
(eshell-ls-executable (,@fg-green))
(eshell-ls-missing (,@fg-red))
(eshell-ls-product (,@fg-yellow))
(eshell-ls-readonly (,@fg-base1))
(eshell-ls-special (,@fg-violet))
(eshell-ls-symlink (,@fg-cyan))
(eshell-ls-unreadable (,@fg-base00))
(eshell-prompt (,@fmt-bold ,@fg-green))
;; font-lock
(font-lock-builtin-face (,@fmt-none ,@fg-green)) ; Statement
(font-lock-comment-face (,@fmt-ital ,@fg-base01)) ; Comment
(font-lock-constant-face (,@fmt-none ,@fg-cyan)) ; Constant
(font-lock-function-name-face ; Identifier
(,@fmt-none ,@fg-blue))
(font-lock-keyword-face (,@fmt-none ,@fg-green)) ; Statement
(font-lock-string-face (,@fmt-none ,@fg-cyan)) ; Constant
(font-lock-type-face (,@fmt-none ,@fg-yellow)) ; Type
(font-lock-variable-name-face ; Identifier
(,@fmt-none ,@fg-blue))
(font-lock-warning-face (,@fmt-bold ,@fg-red)) ; Error
(font-lock-doc-face (,@fmt-ital ,@fg-base01)) ; Comment
(font-lock-doc-string-face ; Comment (XEmacs-only)
(,@fmt-ital ,@fg-base01))
(font-lock-color-constant-face (,@fmt-none ,@fg-green))
(font-lock-comment-delimiter-face ; Comment
(,@fmt-ital ,@fg-base01))
(font-lock-preprocessor-face ; PreProc
(,@fmt-none ,@fg-orange))
(font-lock-reference-face (,@fmt-none ,@fg-cyan))
(font-lock-negation-char-face (,@fmt-none ,@fg-red))
(font-lock-other-type-face (,@fmt-ital ,@fg-blue))
(font-lock-regexp-grouping-construct
(,@fmt-none ,@fg-orange))
(font-lock-special-keyword-face ; Special
(,@fmt-none ,@fg-red))
(font-lock-exit-face (,@fmt-none ,@fg-red))
(font-lock-other-emphasized-face (,@fmt-bldi ,@fg-violet))
(font-lock-regexp-grouping-backslash
(,@fmt-none ,@fg-yellow))
;; info
(info-xref (,@fmt-undr ,@fg-blue))
(info-xref-visited (,@fg-magenta :inherit info-xref))
;; org
(org-hide (,@fg-base03))
(org-todo (,@fmt-bold ,@fg-base03 ,@bg-red))
(org-done (,@fmt-bold ,@fg-green))
(org-todo-kwd-face (,@fg-red ,@bg-base03))
(org-done-kwd-face (,@fg-green ,@bg-base03))
(org-project-kwd-face (,@fg-violet ,@bg-base03))
(org-waiting-kwd-face (,@fg-orange ,@bg-base03))
(org-someday-kwd-face (,@fg-blue ,@bg-base03))
(org-started-kwd-face (,@fg-yellow ,@bg-base03))
(org-cancelled-kwd-face (,@fg-green ,@bg-base03))
(org-delegated-kwd-face (,@fg-cyan ,@bg-base03))
;; table
(table-cell (,@fmt-none ,@fg-base0 ,@bg-back))
;; outline - pandocBlockQuoteLeader*
(outline-1 (,@fmt-none ,@fg-blue))
(outline-2 (,@fmt-none ,@fg-cyan))
(outline-3 (,@fmt-none ,@fg-yellow))
(outline-4 (,@fmt-none ,@fg-red))
(outline-5 (,@fmt-none ,@fg-base0))
(outline-6 (,@fmt-none ,@fg-base01))
(outline-7 (,@fmt-none ,@fg-orange))
(outline-8 (,@fmt-none ,@fg-violet))
;; speedbar
(speedbar-button-face (,@fmt-none ,@fg-base1))
(speedbar-directory-face (,@fmt-none ,@fg-orange))
(speedbar-file-face (,@fmt-none ,@fg-green))
(speedbar-highlight-face (,@fg-none ,@bg-base02))
(speedbar-selected-face (,@fmt-undr ,@fg-yellow))
(speedbar-separator-face (,@fmt-stnd))
(speedbar-tag-face (,@fmt-none ,@fg-blue))
;; show-paren - MatchParen
(show-paren-match (,@fmt-bold ,@fg-cyan ,@bg-base02))
(show-paren-mismatch (,@fmt-bold ,@fg-red ,@bg-base01))
;; widgets
(widget-field
(,@fg-base1 ,@bg-base02 :box (:line-width 1)
:inherit default))
(widget-single-line-field (:inherit widget-field))
;; extra modules
;; -------------
;; Flymake
(flymake-errline (,@fmt-revr ,@fg-red ,@bg-back)) ; ErrorMsg
(flymake-warnline ; WarningMsg
(,@fmt-bold ,@fg-red ,@bg-back))
;; column-marker
(column-marker-1 (,@bg-base01))
(column-marker-2 (,@bg-cyan))
(column-marker-3 (,@bg-violet))
;; jabber
(jabber-activity-face (,@fmt-bold ,@fg-red))
(jabber-activity-personal-face (,@fmt-bold ,@fg-blue))
(jabber-chat-error (,@fmt-bold ,@fg-red))
(jabber-chat-prompt-foreign (,@fmt-bold ,@fg-red))
(jabber-chat-prompt-local (,@fmt-bold ,@fg-blue))
(jabber-chat-prompt-system (,@fmt-bold ,@fg-green))
(jabber-chat-text-foreign (,@fg-base1))
(jabber-chat-text-local (,@fg-base0))
(jabber-chat-rare-time-face (,@fmt-undr ,@fg-green))
(jabber-roster-user-away (,@fmt-ital ,@fg-green))
(jabber-roster-user-chatty (,@fmt-bold ,@fg-orange))
(jabber-roster-user-dnd (,@fmt-ital ,@fg-red))
(jabber-roster-user-error (:weight light :slant italic ,@fg-red))
(jabber-roster-user-offline (,@fg-base01))
(jabber-roster-user-online (,@fmt-bold ,@fg-blue))
(jabber-roster-user-xa (,@fmt-ital ,@fg-magenta))
;; gnus - these are taken from mutt, not VIM
(gnus-cite-1 (,@fmt-none ,@fg-blue)) ; quoted
(gnus-cite-2 (,@fmt-none ,@fg-cyan)) ; quoted1
(gnus-cite-3 (,@fmt-none ,@fg-yellow)) ; quoted2
(gnus-cite-4 (,@fmt-none ,@fg-red)) ; quoted3
(gnus-cite-5 (,@fmt-none ,@fg-orange)) ; quoted4
(gnus-cite-6 (,@fmt-none ,@fg-violet))
(gnus-cite-7 (,@fmt-none ,@fg-green))
(gnus-cite-8 (,@fmt-none ,@fg-magenta))
(gnus-cite-9 (,@fmt-none ,@fg-base00))
(gnus-cite-10 (,@fmt-none ,@fg-base01))
(gnus-cite-11 (,@fmt-none ,@fg-base02))
(gnus-group-mail-1 (,@fmt-bold ,@fg-base3))
(gnus-group-mail-1-empty (,@fg-base3))
(gnus-group-mail-2 (,@fmt-bold ,@fg-base2))
(gnus-group-mail-2-empty (,@fg-base2))
(gnus-group-mail-3 (,@fmt-bold ,@fg-magenta))
(gnus-group-mail-3-empty (,@fg-magenta))
(gnus-group-mail-low (,@fmt-bold ,@fg-base00))
(gnus-group-mail-low-empty (,@fg-base00))
(gnus-group-news-1 (,@fmt-bold ,@fg-base1))
(gnus-group-news-1-empty (,@fg-base1))
(gnus-group-news-2 (,@fmt-bold ,@fg-blue))
(gnus-group-news-2-empty (,@fg-blue))
(gnus-group-news-low (,@fmt-bold ,@fg-violet))
(gnus-group-news-low-empty (,@fg-violet))
(gnus-emphasis-highlight-words ; highlight
(,@fmt-none ,fg-yellow))
(gnus-header-content (,@fmt-none ,@fg-base01)) ; hdrdefault
(gnus-header-from (,@fmt-none ,@fg-base00)) ; header ^From
(gnus-header-name (,@fmt-none ,@fg-base01)) ; hdrdefault
(gnus-header-newsgroups ; hdrdefault
(,@fmt-none ,@fg-base02))
(gnus-header-subject ; header ^Subject
(,@fmt-none ,@fg-blue))
(gnus-server-agent (,@fmt-bold ,@fg-base3))
(gnus-server-closed (,@fmt-ital ,@fg-base1))
(gnus-server-denied (,@fmt-bold ,@fg-base2))
(gnus-server-offline (,@fmt-bold ,@fg-green))
(gnus-server-opened (,@fmt-bold ,@fg-cyan))
(gnus-signature (,@fmt-none ,@fg-base01)) ; signature
(gnus-splash (,@fg-base2))
(gnus-summary-cancelled ; deleted messages
(,@fmt-none ,@fg-red))
(gnus-summary-high-ancient
(,@fmt-bold :inherit gnus-summary-normal-ancient))
(gnus-summary-high-read
(,@fmt-bold :inherit gnus-summary-normal-read))
(gnus-summary-high-ticked
(,@fmt-bold :inherit gnus-summary-normal-ticked))
(gnus-summary-high-undownloaded
(,@fmt-bold :inherit gnus-summary-normal-undownloaded))
(gnus-summary-high-unread
(,@fmt-bold :inherit gnus-summary-normal-unread))
(gnus-summary-low-ancient
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-read
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-unread
(,@fmt-ital :inherit gnus-summary-normal-unread))
(gnus-summary-low-ticked
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-undownloaded
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-normal-ancient ; old messages
(,@fmt-none ,@fg-blue))
(gnus-summary-normal-read ; read messages
(,@fmt-none ,@fg-base01))
(gnus-summary-normal-ticked ; flagged
(,@fmt-none ,@fg-red))
(gnus-summary-normal-undownloaded (,@fmt-none ,@fg-base2))
(gnus-summary-normal-unread ; unread messages
(,@fmt-none ,@fg-blue))
(gnus-summary-selected ; indicator
(,@fmt-none ,@fg-base03 ,@bg-yellow))
;; Message
(message-mml (,@fg-blue))
(message-cited-text (,@fg-base2))
(message-separator (,@fg-base3))
(message-header-xheader (,@fg-violet))
(message-header-name (,@fg-cyan))
(message-header-other (,@fg-red))
(message-header-newsgroups (,@fmt-bldi ,@fg-yellow))
(message-header-subject (,@fg-base00))
(message-header-cc (,@fmt-bold ,@fg-green))
(message-header-to (,@fmt-bold ,@fg-base1))
;; parenface
(paren-face (,@fg-base01))
;; rainbow-delimiters
(rainbow-delimiters-depth-1-face (,@fg-cyan))
(rainbow-delimiters-depth-2-face (,@fg-yellow))
(rainbow-delimiters-depth-3-face (,@fg-blue))
(rainbow-delimiters-depth-4-face (,@fg-red))
(rainbow-delimiters-depth-5-face (,@fg-green))
(rainbow-delimiters-depth-6-face (,@fg-blue))
(rainbow-delimiters-depth-7-face (,@fg-orange))
(rainbow-delimiters-depth-8-face (,@fg-magenta))
(rainbow-delimiters-depth-9-face (,@fg-base0))
;; slime
(slime-error-face (,@fmt-revr ,@fg-red)) ; ErrorMsg
(slime-note-face (,@fg-yellow))
(slime-repl-inputted-output-face (,@fg-red))
(slime-repl-output-mouseover-face (:box (:color base3)))
(slime-style-warning-face (,@fmt-bold ,@fg-orange))
(slime-warning-face (,@fmt-bold ,@fg-red)) ; WarningMsg
;; whitespace
(whitespace-empty (,@fg-red))
(whitespace-hspace (,@fg-orange))
(whitespace-indentation (,@fg-base02))
(whitespace-space (,@fg-base02))
(whitespace-space-after-tab (,@fg-cyan))
(whitespace-space-before-tab (,@fmt-bold ,@fg-red))
(whitespace-tab (,@fg-base02))
(whitespace-trailing (,@fmt-bold ,@fg-red ,@bg-base02))
(whitespace-highlight-face (,@fg-red ,@bg-blue))
(whitespace-line (,@fg-magenta ,@bg-base03))
;; rcirc
(rcirc-my-nick (:foreground blue))
(rcirc-nick-in-message (:foreground orange))
(rcirc-other-nick (:foreground green))
(rcirc-prompt (:foreground yellow))
(rcirc-bright-nick (:foreground magenta))
(rcirc-server (:foreground base1))
(rcirc-timestamp (:foreground base01))
;; ERC
(erc-input-face (:foreground base01))
(erc-keyword-face (,@fmt-bldi ,@fg-yellow))
(erc-my-nick-face (:foreground blue))
(erc-nick-default-face (,@fmt-none ,@fg-cyan))
(erc-notice-face (,@fmt-none ,@fg-blue))
(erc-timestamp-face (:foreground base01))
;;font-latex
(font-latex-warning-face (,@fg-red))
(font-latex-sectioning-5-face (,@fg-violet))
;;flyspell
(flyspell-incorrect (,@fg-red))
(flyspell-duplicate (,@fg-yellow)))
mode)
;; Second list is for vars
`((background-mode . ,mode)))))
(defmacro create-solarized-theme (mode)
(let* ((theme-name (intern (concat "solarized-" (symbol-name mode))))