solaryzed-emacs/solarized-theme.el
2012-06-09 23:00:10 +02:00

692 lines
37 KiB
EmacsLisp

;;; solarized-theme.el --- Solarized for Emacs.
;; Copyright (C) 2011,2012 Bozhidar Batsov
;; Author: Bozhidar Batsov <bozhidar.batsov@gmail.com>
;; Author: Thomas Frössman <thomasf@jossystem.se>
;; URL: http://github.com/bbatsov/solarized-emacs
;; Version: 0.5.0
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; A port of Solarized to Emacs.
;;
;;; Installation:
;;
;; Drop the `solarized-theme.el` somewhere in your `load-path` and
;; the two themes in a folder that is on `custom-theme-load-path'
;; and enjoy!
;;
;; Don't forget that the theme requires Emacs 24.
;;
;;; Bugs
;;
;; None that I'm aware of.
;;
;;; Credits
;;
;; Ethan Schoonover created the original theme for vim on such this port
;; is based.
;;
;;; Code
(defun create-solarized-theme (variant theme-name &optional childtheme)
(let* ((class '((class color) (min-colors 89)))
;; Solarized palette
(base03 "#002b36")
(base02 "#073642")
;; emphasized content
(base01 "#586e75")
;; primary content
(base00 "#657b83")
(base0 "#839496")
;; comments
(base1 "#93a1a1")
;; background highlight light
(base2 "#eee8d5")
;; background light
(base3 "#fdf6e3")
;; Solarized accented colors
(yellow "#b58900")
(orange "#cb4b16")
(red "#dc322f")
(magenta "#d33682")
(violet "#6c71c4")
(blue "#268bd2")
(cyan "#2aa198")
(green "#859900")
;; Darker and lighter accented colors
;; Only use these in exceptional circumstances!
(yellow-d "#7B6000")
(yellow-l "#DEB542")
(orange-d "#8B2C02")
(orange-l "#F2804F")
(red-d "#990A1B")
(red-l "#FF6E64")
(magenta-d "#93115C")
(magenta-l "#F771AC")
(violet-d "#3F4D91")
(violet-l "#9EA0E5")
(blue-d "#00629D")
(blue-l "#69B7F0")
(cyan-d "#00736F")
(cyan-l "#69CABF")
(green-d "#546E00")
(green-l "#B4C342")
;; Light/Dark adaptive solarized colors
(solarized-fg (if (eq variant 'light) base00 base0))
(solarized-bg (if (eq variant 'light) base3 base03))
(solarized-hl (if (eq variant 'light) base2 base02))
(solarized-emph (if (eq variant 'light) base01 base1))
(solarized-comments (if (eq variant 'light) base1 base01))
;; Light/Dark adaptive higher/lower contrast accented colors
;; Only use these in exceptional cirmumstances!
(yellow-hc (if (eq variant 'light) yellow-d yellow-l))
(yellow-lc (if (eq variant 'light) yellow-l yellow-d))
(orange-hc (if (eq variant 'light) orange-d orange-l))
(orange-lc (if (eq variant 'light) orange-l orange-d))
(red-hc (if (eq variant 'light) red-d red-l))
(red-lc (if (eq variant 'light) red-l red-d))
(magenta-hc (if (eq variant 'light) magenta-d magenta-l))
(magenta-lc (if (eq variant 'light) magenta-l magenta-d))
(violet-hc (if (eq variant 'light) violet-d violet-l))
(violet-lc (if (eq variant 'light) violet-l violet-d))
(blue-hc (if (eq variant 'light) blue-d blue-l))
(blue-lc (if (eq variant 'light) blue-l blue-d))
(cyan-hc (if (eq variant 'light) cyan-d cyan-l))
(cyan-lc (if (eq variant 'light) cyan-l cyan-d))
(green-hc (if (eq variant 'light) green-d green-l))
(green-lc (if (eq variant 'light) green-l green-d)))
(custom-theme-set-faces
theme-name
'(button ((t (:underline t))))
;; basic coloring
`(default ((,class (:foreground ,solarized-fg :background ,solarized-bg))))
`(shadow ((,class (:foreground ,solarized-comments))))
`(match ((,class (:background ,solarized-hl :foreground ,solarized-emph :weight bold))))
`(cursor ((,class (:foreground ,solarized-bg :background ,solarized-fg :inverse-video t))))
`(escape-glyph-face ((,class (:foreground ,red))))
`(fringe ((,class (:foreground ,solarized-fg :background ,solarized-hl))))
`(header-line ((,class (:foreground ,yellow
:background ,solarized-hl
:box (:line-width -1 :style released-button)))))
`(highlight ((,class (:background ,solarized-hl))))
`(link ((,class (:foreground ,yellow :underline t :weight bold))))
`(link-visited ((,class (:foreground ,yellow :underline t :weight normal))))
`(success ((,class (:foreground ,green ))))
`(warning ((,class (:foreground ,yellow ))))
`(error ((,class (:foreground ,orange))))
;; compilation
`(compilation-column-face ((,class (:foreground ,yellow))))
`(compilation-enter-directory-face ((,class (:foreground ,green))))
`(compilation-error-face ((,class (:foreground ,red :weight bold :underline t))))
`(compilation-face ((,class (:foreground ,solarized-fg))))
`(compilation-info-face ((,class (:foreground ,blue))))
`(compilation-info ((,class (:foreground ,green :underline t))))
`(compilation-leave-directory-face ((,class (:foreground ,green))))
`(compilation-line-face ((,class (:foreground ,yellow))))
`(compilation-line-number ((,class (:foreground ,yellow))))
`(compilation-message-face ((,class (:foreground ,blue))))
`(compilation-warning-face ((,class (:foreground ,yellow :weight bold :underline t))))
;; dired
`(dired-directory ((,class (:foreground ,blue :weight normal))))
`(dired-flagged ((,class (:foreground ,red))))
`(dired-header ((,class (:foreground ,solarized-bg :background ,blue))))
`(dired-ignored ((,class (:inherit shadow))))
`(dired-mark ((,class (:foreground ,yellow :weigth bold))))
`(dired-marked ((,class (:foreground ,magenta :weigth bold))))
`(dired-perm-write ((,class (:foreground ,solarized-fg :underline t))))
`(dired-symlink ((,class (:foreground ,cyan :weigth normal :slant italic))))
`(dired-warning ((,class (:foreground ,orange :underline t))))
;; grep
`(grep-context-face ((,class (:foreground ,solarized-fg))))
`(grep-error-face ((,class (:foreground ,red :weight bold :underline t))))
`(grep-hit-face ((,class (:foreground ,blue))))
`(grep-match-face ((,class (:foreground ,orange :weight bold))))
;; faces used by isearch
`(isearch ((,class (:foreground ,yellow :background ,solarized-hl))))
`(isearch-fail ((,class (:foreground ,solarized-fg :background ,red))))
`(lazy-highlight ((,class (:foreground ,yellow :background ,solarized-hl))))
`(menu ((,class (:foreground ,solarized-fg :background ,solarized-bg))))
`(minibuffer-prompt ((,class (:foreground ,solarized-emph))))
`(mode-line
((,class (:foreground ,solarized-fg
:background ,solarized-hl
:box (:line-width -1 :style released-button)))))
`(mode-line-buffer-id ((,class (:foreground ,solarized-emph :weight bold))))
`(mode-line-inactive
((,class (:foreground ,solarized-fg
:background ,solarized-bg
:box (:line-width -1 :style released-button)))))
`(region ((,class (:foreground ,solarized-bg :background ,solarized-emph))))
`(secondary-selection ((,class (:background ,solarized-bg))))
`(trailing-whitespace ((,class (:background ,red))))
`(vertical-border ((,class (:foreground ,solarized-fg))))
;; font lock
`(font-lock-builtin-face ((,class (:foreground ,blue :slant italic))))
`(font-lock-comment-delimiter-face ((,class (:foreground ,solarized-comments))))
`(font-lock-comment-face ((,class (:foreground ,solarized-comments))))
`(font-lock-constant-face ((,class (:foreground ,blue :weight bold))))
`(font-lock-doc-face ((,class (:foreground ,cyan :slant italic))))
`(font-lock-doc-string-face ((,class (:foreground ,blue))))
`(font-lock-function-name-face ((,class (:foreground ,blue))))
`(font-lock-keyword-face ((,class (:foreground ,green :weight bold))))
`(font-lock-negation-char-face ((,class (:foreground ,solarized-fg))))
`(font-lock-preprocessor-face ((,class (:foreground ,blue))))
`(font-lock-string-face ((,class (:foreground ,cyan))))
`(font-lock-type-face ((,class (:foreground ,yellow))))
`(font-lock-variable-name-face ((,class (:foreground ,blue))))
`(font-lock-warning-face ((,class (:foreground ,orange :weight bold :underline t))))
`(c-annotation-face ((,class (:inherit font-lock-constant-face))))
;;; external
;; ace-jump-mode
`(ace-jump-face-background
((,class (:foreground ,solarized-comments :background ,solarized-bg :inverse-video nil))))
`(ace-jump-face-foreground
((,class (:foreground ,red :background ,solarized-bg :inverse-video nil))))
;; auto highlight symbol
`(ahs-definition-face ((,class (:foreground ,solarized-bg :background ,blue :underline t))))
`(ahs-edit-mode-face ((,class (:foreground ,solarized-bg :background ,yellow))))
`(ahs-face ((,class (:foreground ,solarized-bg :background ,blue))))
`(ahs-plugin-bod-face ((,class (:foreground ,solarized-bg :background ,blue))))
`(ahs-plugin-defalt-face ((,class (:foreground ,solarized-bg :background ,cyan))))
`(ahs-plugin-whole-buffer-face ((,class (:foreground ,solarized-bg :background ,green))))
`(ahs-warning-face ((,class (:foreground ,red :bold t))))
;; custom
`(custom-variable-tag ((,class (:foreground ,cyan))))
`(custom-comment-tag ((,class (:foreground ,solarized-comments))))
`(custom-group-tag ((,class (:foreground ,blue))))
`(custom-state ((,class (:foreground ,green))))
;; diff
`(diff-added ((,class (:foreground ,green))))
`(diff-changed ((,class (:foreground ,yellow))))
`(diff-removed ((,class (:foreground ,red))))
`(diff-header ((,class (:background ,solarized-bg))))
`(diff-file-header
((,class (:background ,solarized-bg :foreground ,solarized-fg :bold t))))
;; eshell
`(eshell-prompt ((,class (:foreground ,yellow :weight bold))))
`(eshell-ls-archive ((,class (:foreground ,red :weight bold))))
`(eshell-ls-backup ((,class (:inherit font-lock-comment))))
`(eshell-ls-clutter ((,class (:inherit font-lock-comment))))
`(eshell-ls-directory ((,class (:foreground ,blue :weight bold))))
`(eshell-ls-executable ((,class (:foreground ,red :weight bold))))
`(eshell-ls-unreadable ((,class (:foreground ,solarized-fg))))
`(eshell-ls-missing ((,class (:inherit font-lock-warning))))
`(eshell-ls-product ((,class (:inherit font-lock-doc))))
`(eshell-ls-special ((,class (:foreground ,yellow :weight bold))))
`(eshell-ls-symlink ((,class (:foreground ,cyan :weight bold))))
;; flymake
`(flymake-errline
((,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
`(flymake-infoline ((,class (:foreground ,green-hc :background ,green-lc))))
`(flymake-warnline
((,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
;; flyspell
`(flyspell-duplicate ((,class (:foreground ,yellow :weight bold :underline t))))
`(flyspell-incorrect ((,class (:foreground ,red :weight bold :underline t))))
;; erc
`(erc-action-face ((,class (:inherit erc-default-face))))
`(erc-bold-face ((,class (:weight bold))))
`(erc-current-nick-face ((,class (:foreground ,blue :weight bold))))
`(erc-dangerous-host-face ((,class (:inherit font-lock-warning))))
`(erc-default-face ((,class (:foreground ,solarized-fg))))
`(erc-direct-msg-face ((,class (:inherit erc-default))))
`(erc-error-face ((,class (:inherit font-lock-warning))))
`(erc-fool-face ((,class (:inherit erc-default))))
`(erc-highlight-face ((,class (:inherit hover-highlight))))
`(erc-input-face ((,class (:foreground ,yellow))))
`(erc-keyword-face ((,class (:foreground ,blue :weight bold))))
`(erc-nick-default-face ((,class (:foreground ,yellow :weight bold))))
`(erc-my-nick-face ((,class (:foreground ,red :weigth bold))))
`(erc-nick-msg-face ((,class (:inherit erc-default))))
`(erc-notice-face ((,class (:foreground ,green))))
`(erc-pal-face ((,class (:foreground ,orange :weight bold))))
`(erc-prompt-face ((,class (:foreground ,orange :background ,solarized-bg :weight bold))))
`(erc-timestamp-face ((,class (:foreground ,green))))
`(erc-underline-face ((t (:underline t))))
;; gnus
`(gnus-group-mail-1-face ((,class (:bold t :inherit gnus-group-mail-1-empty))))
`(gnus-group-mail-1-empty-face ((,class (:inherit gnus-group-news-1-empty))))
`(gnus-group-mail-2-face ((,class (:bold t :inherit gnus-group-mail-2-empty))))
`(gnus-group-mail-2-empty-face ((,class (:inherit gnus-group-news-2-empty))))
`(gnus-group-mail-3-face ((,class (:bold t :inherit gnus-group-mail-3-empty))))
`(gnus-group-mail-3-empty-face ((,class (:inherit gnus-group-news-3-empty))))
`(gnus-group-mail-4-face ((,class (:bold t :inherit gnus-group-mail-4-empty))))
`(gnus-group-mail-4-empty-face ((,class (:inherit gnus-group-news-4-empty))))
`(gnus-group-mail-5-face ((,class (:bold t :inherit gnus-group-mail-5-empty))))
`(gnus-group-mail-5-empty-face ((,class (:inherit gnus-group-news-5-empty))))
`(gnus-group-mail-6-face ((,class (:bold t :inherit gnus-group-mail-6-empty))))
`(gnus-group-mail-6-empty-face ((,class (:inherit gnus-group-news-6-empty))))
`(gnus-group-mail-low-face ((,class (:bold t :inherit gnus-group-mail-low-empty))))
`(gnus-group-mail-low-empty-face ((,class (:inherit gnus-group-news-low-empty))))
`(gnus-group-news-1-face ((,class (:bold t :inherit gnus-group-news-1-empty))))
`(gnus-group-news-2-face ((,class (:bold t :inherit gnus-group-news-2-empty))))
`(gnus-group-news-3-face ((,class (:bold t :inherit gnus-group-news-3-empty))))
`(gnus-group-news-4-face ((,class (:bold t :inherit gnus-group-news-4-empty))))
`(gnus-group-news-5-face ((,class (:bold t :inherit gnus-group-news-5-empty))))
`(gnus-group-news-6-face ((,class (:bold t :inherit gnus-group-news-6-empty))))
`(gnus-group-news-low-face ((,class (:bold t :inherit gnus-group-news-low-empty))))
`(gnus-header-content-face ((,class (:inherit message-header-other))))
`(gnus-header-from-face ((,class (:inherit message-header-from))))
`(gnus-header-name-face ((,class (:inherit message-header-name))))
`(gnus-header-newsgroups-face ((,class (:inherit message-header-other))))
`(gnus-header-subject-face ((,class (:inherit message-header-subject))))
`(gnus-summary-cancelled-face ((,class (:foreground ,orange))))
`(gnus-summary-high-ancient-face ((,class (:foreground ,blue))))
`(gnus-summary-high-read-face ((,class (:foreground ,green :weight bold))))
`(gnus-summary-high-ticked-face ((,class (:foreground ,orange :weight bold))))
`(gnus-summary-high-unread-face ((,class (:foreground ,solarized-fg :weight bold))))
`(gnus-summary-low-ancient-face ((,class (:foreground ,blue))))
`(gnus-summary-low-read-face ((t (:foreground ,green))))
`(gnus-summary-low-ticked-face ((,class (:foreground ,orange :weight bold))))
`(gnus-summary-low-unread-face ((,class (:foreground ,solarized-fg))))
`(gnus-summary-normal-ancient-face ((,class (:foreground ,blue))))
`(gnus-summary-normal-read-face ((,class (:foreground ,green))))
`(gnus-summary-normal-ticked-face ((,class (:foreground ,orange :weight bold))))
`(gnus-summary-normal-unread-face ((,class (:foreground ,solarized-fg))))
`(gnus-summary-selected-face ((,class (:foreground ,yellow :weight bold))))
`(gnus-cite-1-face ((,class (:foreground ,blue))))
`(gnus-cite-10-face ((,class (:foreground ,yellow))))
`(gnus-cite-11-face ((,class (:foreground ,yellow))))
`(gnus-cite-2-face ((,class (:foreground ,blue))))
`(gnus-cite-3-face ((,class (:foreground ,blue))))
`(gnus-cite-4-face ((,class (:foreground ,green))))
`(gnus-cite-5-face ((,class (:foreground ,green))))
`(gnus-cite-6-face ((,class (:foreground ,green))))
`(gnus-cite-7-face ((,class (:foreground ,red))))
`(gnus-cite-8-face ((,class (:foreground ,red))))
`(gnus-cite-9-face ((,class (:foreground ,red))))
`(gnus-group-news-1-empty-face ((,class (:foreground ,yellow))))
`(gnus-group-news-2-empty-face ((,class (:foreground ,green))))
`(gnus-group-news-3-empty-face ((,class (:foreground ,green))))
`(gnus-group-news-4-empty-face ((,class (:foreground ,blue))))
`(gnus-group-news-5-empty-face ((,class (:foreground ,blue))))
`(gnus-group-news-6-empty-face ((,class (:foreground ,solarized-bg))))
`(gnus-group-news-low-empty-face ((,class (:foreground ,solarized-bg))))
`(gnus-signature-face ((,class (:foreground ,yellow))))
`(gnus-x-face ((,class (:background ,solarized-fg :foreground ,solarized-bg))))
;; helm (these probably needs tweaking)
`(helm-bookmark-directory ((,class (:inherit helm-ff-directory))))
`(helm-bookmark-file ((,class (:foreground ,cyan))))
`(helm-bookmark-gnus ((,class (:foreground ,magenta))))
`(helm-bookmark-info ((,class (:foreground ,green))))
`(helm-bookmark-man ((,class (:foreground ,orange))))
`(helm-bookmark-w3m ((,class (:foreground ,yellow))))
`(helm-bookmarks-su ((,class (:foreground ,red))))
`(helm-buffer-not-saved ((,class (:foreground ,orange))))
`(helm-buffer-saved-out ((,class (:foreground ,solarized-bg :background ,red))))
`(helm-candidate-number ((,class (:background ,solarized-bg :foreground ,yellow))))
`(helm-ff-directory ((,class (:background ,solarized-bg :foreground ,red))))
`(helm-ff-executable ((,class (:foreground ,green))))
`(helm-ff-file ((,class (:inherit font-lock-builtin-face))))
`(helm-ff-invalid-symlink ((,class (:background ,red :foreground ,solarized-bg))))
`(helm-ff-prefix ((,class (:background ,yellow :foreground ,solarized-bg))))
`(helm-ff-symlink ((,class (:foreground ,orange))))
`(helm-grep-file ((,class (:foreground ,cyan :underline t))))
`(helm-grep-finish ((,class (:foreground ,green))))
`(helm-grep-lineno ((,class (:foreground ,orange))))
`(helm-grep-match ((,class (:inherit match))))
`(helm-grep-running ((,class (:foreground ,red))))
`(helm-header ((,class (:inherit header-line))))
`(helm-match ((,class (:inherit match))))
`(helm-selection ((,class (:background ,solarized-hl :underline t))))
`(helm-selection-line ((,class (:background ,red :underline t))))
`(helm-separator ((,class (:foreground ,red))))
`(helm-source-header ((,class (:background ,blue-lc :foreground ,solarized-bg
:underline nil))))
`(helm-time-zone-current ((,class (:foreground ,green))))
`(helm-time-zone-home ((,class (:foreground ,red))))
`(helm-visible-mark ((,class (:background ,green))))
`(helm-apt-deinstalled ((,class (:foreground ,solarized-comments))))
`(helm-apt-installed ((,class (:foreground ,green))))
;; hi-lock-mode
`(hi-yellow ((,class (:foreground ,yellow-lc :background ,yellow-hc))))
`(hi-pink ((,class (:foreground ,magenta-lc :background ,magenta-hc))))
`(hi-green ((,class (:foreground ,green-lc :background ,green-hc))))
`(hi-blue ((,class (:foreground ,blue-lc :background ,blue-hc))))
`(hi-black-b ((,class (:foreground ,solarized-emph :background ,solarized-bg :weight bold))))
`(hi-blue-b ((,class (:foreground ,blue-lc :weight bold))))
`(hi-green-b ((,class (:foreground ,green-lc :weight bold))))
`(hi-red-b ((,class (:foreground ,red :weight bold))))
`(hi-black-hb ((,class (:foreground ,solarized-emph :background ,solarized-bg :weight bold))))
;; hl-line-mode
`(hl-line-face ((,class (:background ,solarized-bg))))
;; ido-mode
`(ido-first-match ((,class (:foreground ,yellow :weight bold))))
`(ido-only-match ((,class (:foreground ,orange :weight bold))))
`(ido-subdir ((,class (:foreground ,yellow))))
;; linum-mode
`(linum ((,class (:foreground ,solarized-fg :background ,solarized-bg))))
;; magit
`(magit-section-title ((,class (:foreground ,yellow :weight bold))))
`(magit-branch ((,class (:foreground ,orange :weight bold))))
;; message-mode
`(message-cited-text-face ((,class (:inherit font-lock-comment))))
`(message-header-name-face ((,class (:foreground ,green))))
`(message-header-other-face ((,class (:foreground ,green))))
`(message-header-to-face ((,class (:foreground ,yellow :weight bold))))
`(message-header-from-face ((,class (:foreground ,yellow :weight bold))))
`(message-header-cc-face ((,class (:foreground ,yellow :weight bold))))
`(message-header-newsgroups-face ((,class (:foreground ,yellow :weight bold))))
`(message-header-subject-face ((,class (:foreground ,orange :weight bold))))
`(message-header-xheader-face ((,class (:foreground ,green))))
`(message-mml-face ((,class (:foreground ,yellow :weight bold))))
`(message-separator-face ((,class (:inherit font-lock-comment))))
;; mew
`(mew-face-header-subject ((,class (:foreground ,orange))))
`(mew-face-header-from ((,class (:foreground ,yellow))))
`(mew-face-header-date ((,class (:foreground ,green))))
`(mew-face-header-to ((,class (:foreground ,red))))
`(mew-face-header-key ((,class (:foreground ,green))))
`(mew-face-header-private ((,class (:foreground ,green))))
`(mew-face-header-important ((,class (:foreground ,blue))))
`(mew-face-header-marginal ((,class (:foreground ,solarized-fg :weight bold))))
`(mew-face-header-warning ((,class (:foreground ,red))))
`(mew-face-header-xmew ((,class (:foreground ,green))))
`(mew-face-header-xmew-bad ((,class (:foreground ,red))))
`(mew-face-body-url ((,class (:foreground ,orange))))
`(mew-face-body-comment ((,class (:foreground ,solarized-fg :slant italic))))
`(mew-face-body-cite1 ((,class (:foreground ,green))))
`(mew-face-body-cite2 ((,class (:foreground ,blue))))
`(mew-face-body-cite3 ((,class (:foreground ,orange))))
`(mew-face-body-cite4 ((,class (:foreground ,yellow))))
`(mew-face-body-cite5 ((,class (:foreground ,red))))
`(mew-face-mark-review ((,class (:foreground ,blue))))
`(mew-face-mark-escape ((,class (:foreground ,green))))
`(mew-face-mark-delete ((,class (:foreground ,red))))
`(mew-face-mark-unlink ((,class (:foreground ,yellow))))
`(mew-face-mark-refile ((,class (:foreground ,green))))
`(mew-face-mark-unread ((,class (:foreground ,red))))
`(mew-face-eof-message ((,class (:foreground ,green))))
`(mew-face-eof-part ((,class (:foreground ,yellow))))
;; nav
`(nav-face-heading ((,class (:foreground ,yellow))))
`(nav-face-button-num ((,class (:foreground ,cyan))))
`(nav-face-dir ((,class (:foreground ,green))))
`(nav-face-hdir ((,class (:foreground ,red))))
`(nav-face-file ((,class (:foreground ,solarized-fg))))
`(nav-face-hfile ((,class (:foreground ,red))))
;; org-mode
`(org-agenda-structure
((,class (:inherit font-lock-comment-face :foreground ,magenta :inverse-video t))))
`(org-agenda-date
((,class (:foreground ,solarized-fg :background ,solarized-hl :weight bold
:box (:line-width 4 :color ,solarized-hl) ))) t)
`(org-agenda-date-weekend ((,class (:inherit org-agenda-date :slant italic))) t)
`(org-agenda-date-today
((,class (:inherit org-agenda-date :slant italic underline: t))) t)
`(org-agenda-done ((,class (:foreground ,green))) t)
`(org-archived ((,class (:foreground ,solarized-comments :weight normal))))
`(org-block ((,class (:foreground ,solarized-comments))))
`(org-block-begin-line ((,class (:foreground ,solarized-comments :slant italic))))
`(org-checkbox ((,class (:background ,solarized-bg :foreground ,solarized-fg
:box (:line-width 1 :style released-button)))))
`(org-code ((,class (:foreground ,solarized-comments))))
`(org-date ((,class (:foreground ,blue :underline t))))
`(org-done ((,class (:bold t :weight bold :foreground ,green))))
`(org-ellipsis ((,class (:foreground ,solarized-comments))))
`(org-formula ((,class (:foreground ,yellow))))
`(org-headline-done ((,class (:foreground ,green))))
`(org-hide ((,class (:foreground ,solarized-bg))))
`(org-level-1 ((,class (:foreground ,orange))))
`(org-level-2 ((,class (:foreground ,green))))
`(org-level-3 ((,class (:foreground ,blue))))
`(org-level-4 ((,class (:foreground ,yellow))))
`(org-level-5 ((,class (:foreground ,cyan))))
`(org-level-6 ((,class (:foreground ,green))))
`(org-level-7 ((,class (:foreground ,red))))
`(org-level-8 ((,class (:foreground ,blue))))
`(org-link ((,class (:foreground ,yellow :underline t))))
`(org-sexp-date ((,class (:foreground ,violet))))
`(org-scheduled ((,class (:foreground ,green))))
`(org-scheduled-previously ((,class (:foreground ,orange))))
`(org-scheduled-today ((,class (:bold t :foreground ,blue :weight bold))))
`(org-special-keyword ((,class (:foreground ,solarized-comments :weigth bold :bold t))))
`(org-table ((,class (:foreground ,green))))
`(org-tag ((,class (:bold t :weight bold))))
`(org-time-grid ((,class (:foreground ,cyan))))
`(org-todo ((,class (:bold t :foreground ,red :weight bold))))
`(org-upcoming-deadline ((,class (:bold t :foreground ,yellow ))))
`(org-warning ((,class (:bold t :foreground ,orange :weight bold :underline t))))
;; org-habit (clear=blue, ready=green, alert=yellow, overdue=red. future=lower contrast)
`(org-habit-clear-face ((,class (:background ,blue-lc :foreground ,blue-hc))))
`(org-habit-clear-future-face ((,class (:background ,blue-lc))))
`(org-habit-ready-face ((,class (:background ,green-lc :foreground ,green))))
`(org-habit-ready-future-face ((,class (:background ,green-lc))))
`(org-habit-alert-face ((,class (:background ,yellow :foreground ,yellow-lc))))
`(org-habit-alert-future-face ((,class (:background ,yellow-lc))))
`(org-habit-overdue-face ((,class (:background ,red :foreground ,red-lc))))
`(org-habit-overdue-future-face ((,class (:background ,red-lc))))
;; outline
`(outline-8 ((,class (:inherit default))))
`(outline-7 ((,class (:inherit outline-8 :height 1.0))))
`(outline-6 ((,class (:inherit outline-7 :height 1.0))))
`(outline-5 ((,class (:inherit outline-6 :height 1.0))))
`(outline-4 ((,class (:inherit outline-5 :height 1.0))))
`(outline-3 ((,class (:inherit outline-4 :height 1.0))))
`(outline-2 ((,class (:inherit outline-3 :height 1.0))))
`(outline-1 ((,class (:inherit outline-2 :height 1.0))))
;; rainbow-delimiters
`(rainbow-delimiters-depth-1-face ((,class (:foreground ,cyan))))
`(rainbow-delimiters-depth-2-face ((,class (:foreground ,yellow))))
`(rainbow-delimiters-depth-3-face ((,class (:foreground ,blue))))
`(rainbow-delimiters-depth-4-face ((,class (:foreground ,red))))
`(rainbow-delimiters-depth-5-face ((,class (:foreground ,orange))))
`(rainbow-delimiters-depth-6-face ((,class (:foreground ,blue))))
`(rainbow-delimiters-depth-7-face ((,class (:foreground ,green))))
`(rainbow-delimiters-depth-8-face ((,class (:foreground ,red))))
`(rainbow-delimiters-depth-9-face ((,class (:foreground ,yellow))))
`(rainbow-delimiters-depth-10-face ((,class (:foreground ,green))))
`(rainbow-delimiters-depth-11-face ((,class (:foreground ,blue))))
`(rainbow-delimiters-depth-12-face ((,class (:foreground ,red))))
`(rainbow-delimiters-unmatched-face
((,class (:foreground ,solarized-fg :background ,solarized-bg :inverse-video t))))
;; rpm-mode
`(rpm-spec-dir-face ((,class (:foreground ,green))))
`(rpm-spec-doc-face ((,class (:foreground ,green))))
`(rpm-spec-ghost-face ((,class (:foreground ,red))))
`(rpm-spec-macro-face ((,class (:foreground ,yellow))))
`(rpm-spec-obsolete-tag-face ((,class (:foreground ,red))))
`(rpm-spec-package-face ((,class (:foreground ,red))))
`(rpm-spec-section-face ((,class (:foreground ,yellow))))
`(rpm-spec-tag-face ((,class (:foreground ,blue))))
`(rpm-spec-var-face ((,class (:foreground ,red))))
;; sh-mode
`(sh-quoted-exec ((,class (:foreground ,violet :weigth bold :bold t))))
`(sh-escaped-newline ((,class (:foreground ,yellow :weigth bold :bold t))))
`(sh-heredoc ((,class (:foreground ,yellow :weigth bold :bold t))))
;; show-paren
`(show-paren-match
((,class (:foreground ,cyan :background ,solarized-bg :weight normal :inverse-video t))))
`(show-paren-mismatch
((,class (:foreground ,red :background ,solarized-bg :weight normal :inverse-video t))))
;; SLIME
`(slime-repl-inputed-output-face ((,class (:foreground ,red))))
;; sunrise commander headings
`(sr-active-path-face ((,class (:background ,blue :foreground ,solarized-bg
:height 100 :weight bold))))
`(sr-editing-path-face ((,class (:background ,yellow :foreground ,solarized-bg
:weight bold :height 100))))
`(sr-highlight-path-face ((,class (:background ,green :foreground ,solarized-bg
:weight bold :height 100))))
`(sr-passive-path-face ((,class (:background ,solarized-comments :foreground ,solarized-bg
:weight bold :height 100))))
;; sunrise commander marked
`(sr-marked-dir-face ((,class (:inherit dired-marked))))
`(sr-marked-file-face ((,class (:inherit dired-marked))))
`(sr-alt-marked-dir-face ((,class (:background ,magenta :foreground ,solarized-bg
:weight bold))))
`(sr-alt-marked-file-face ((,class (:background ,magenta :foreground ,solarized-bg
:weight bold))))
;; sunrise commander fstat
`(sr-directory-face ((,class (:inherit dired-directory :weigth normal))))
`(sr-symlink-directory-face ((,class (:inherit dired-directory :slant italic :weight normal))))
`(sr-symlink-face ((,class (:inherit dired-symlink :slant italic :weight normal))))
`(sr-broken-link-face ((,class (:inherit dired-warning :slant italic :weight normal))))
;; sunrise commander file types
`(sr-compressed-face ((,class (:foreground ,solarized-fg))))
`(sr-encrypted-face ((,class (:foreground ,solarized-fg))))
`(sr-log-face ((,class (:foreground ,solarized-fg))))
`(sr-packaged-face ((,class (:foreground ,solarized-fg))))
`(sr-html-face ((,class (:foreground ,solarized-fg))))
`(sr-xml-face ((,class (:foreground ,solarized-fg))))
;; sunrise commander misc
`(sr-clex-hotchar-face ((,class (:background ,red :foreground ,solarized-bg :weight bold))))
;; undo-tree
`(undo-tree-visualizer-default-face
((,class (:foreground ,solarized-comments :background ,solarized-bg))))
`(undo-tree-visualizer-current-face ((,class (:foreground ,cyan :inverse-video t))))
`(undo-tree-visualizer-active-branch-face
((,class (:foreground ,solarized-emph :background ,solarized-bg :weigth bold))))
`(undo-tree-visualizer-register-face ((,class (:foreground ,yellow))))
;; table
`(table-cell ((,class (:foreground ,solarized-fg :background ,solarized-hl))))
;; tooltip. (NOTE: This setting has no effect on the os widgets for me
;; zencoding uses this)
`(tooltip ((,class (:background ,yellow-lc :foreground ,yellow-hc
:inherit variable-pitch))))
;; volatile highlights
`(vhl/default-face ((,class (:background ,green-lc :foreground ,green-hc))))
;; whitespace-mode
`(whitespace-space ((,class (:background ,solarized-bg :foreground ,yellow-lc
:inverse-video t))))
`(whitespace-hspace ((,class (:background ,solarized-bg :foreground ,red-lc
:inverse-video t))))
`(whitespace-tab ((,class (:background ,solarized-bg :foreground ,orange-lc
:inverse-video t))))
`(whitespace-newline ((,class (:foreground ,solarized-comments))))
`(whitespace-trailing ((,class (:foreground ,blue-lc :background ,solarized-bg
:inverse-video t))))
; removing inverse video on this
`(whitespace-line ((,class (:background ,solarized-bg :foreground ,magenta
:inverse-video nil))))
`(whitespace-space-before-tab ((,class (:background ,solarized-bg :foreground ,green-lc
:inverse-video t))))
`(whitespace-indentation ((,class (:background ,solarized-bg :foreground ,magenta-lc
:inverse-video t))))
`(whitespace-empty ((,class (:background ,solarized-fg :foreground ,red-lc :inverse-video t))))
`(whitespace-space-after-tab ((,class (:background ,solarized-bg :foreground ,violet-lc
:inverse-video t))))
;; wanderlust
`(wl-highlight-folder-few-face ((,class (:foreground ,red))))
`(wl-highlight-folder-many-face ((,class (:foreground ,red))))
`(wl-highlight-folder-path-face ((,class (:foreground ,orange))))
`(wl-highlight-folder-unread-face ((,class (:foreground ,blue))))
`(wl-highlight-folder-zero-face ((,class (:foreground ,solarized-fg))))
`(wl-highlight-folder-unknown-face ((,class (:foreground ,blue))))
`(wl-highlight-message-citation-header ((,class (:foreground ,red))))
`(wl-highlight-message-cited-text-1 ((,class (:foreground ,red))))
`(wl-highlight-message-cited-text-2 ((,class (:foreground ,green))))
`(wl-highlight-message-cited-text-3 ((,class (:foreground ,blue))))
`(wl-highlight-message-cited-text-4 ((,class (:foreground ,blue))))
`(wl-highlight-message-header-contents-face ((,class (:foreground ,green))))
`(wl-highlight-message-headers-face ((,class (:foreground ,red))))
`(wl-highlight-message-important-header-contents ((,class (:foreground ,green))))
`(wl-highlight-message-header-contents ((,class (:foreground ,green))))
`(wl-highlight-message-important-header-contents2 ((,class (:foreground ,green))))
`(wl-highlight-message-signature ((,class (:foreground ,green))))
`(wl-highlight-message-unimportant-header-contents ((,class (:foreground ,solarized-fg))))
`(wl-highlight-summary-answered-face ((,class (:foreground ,blue))))
`(wl-highlight-summary-disposed-face ((,class (:foreground ,solarized-fg
:slant italic))))
`(wl-highlight-summary-new-face ((,class (:foreground ,blue))))
`(wl-highlight-summary-normal-face ((,class (:foreground ,solarized-fg))))
`(wl-highlight-summary-thread-top-face ((,class (:foreground ,yellow))))
`(wl-highlight-thread-indent-face ((,class (:foreground ,magenta))))
`(wl-highlight-summary-refiled-face ((,class (:foreground ,solarized-fg))))
`(wl-highlight-summary-displaying-face ((,class (:underline t :weight bold))))
;; which-func-mode
`(which-func ((,class (:foreground ,green))))
;; yascroll
`(yascroll:thumb-text-area
((,class (:foreground ,solarized-comments :background ,solarized-comments))))
`(yascroll:thumb-fringe
((,class (:foreground ,solarized-comments :background ,solarized-comments)))))
;; zencoding
`(zencoding-preview-input ((,class (:background ,solarized-hl :box ,solarized-emph ))))
(custom-theme-set-variables
theme-name
'(ansi-color-names-vector [solarized-bg red green yellow
blue magenta cyan solarized-fg])
;; fill-column-indicator
`(fci-rule-color ,solarized-hl))
;; call chained theme function
(when childtheme (funcall childtheme))))
;;;###autoload
(when (and (boundp 'custom-theme-load-path) load-file-name)
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
;; Local Variables:
;; no-byte-compile: t
;; End:
(provide 'solarized-theme)
;;; solarized-theme.el ends here.