summaryrefslogtreecommitdiff
path: root/.emacs.d/color-theme-solarized.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/color-theme-solarized.el')
-rw-r--r--.emacs.d/color-theme-solarized.el139
1 files changed, 139 insertions, 0 deletions
diff --git a/.emacs.d/color-theme-solarized.el b/.emacs.d/color-theme-solarized.el
new file mode 100644
index 0000000..02b8ad8
--- /dev/null
+++ b/.emacs.d/color-theme-solarized.el
@@ -0,0 +1,139 @@
+;;; Author: Ethan Schoonover, Solarized; Greg Pfeil, Emacs adaptation
+;;; URL: http://ethanschoonover.com/solarized
+
+;;; This file is not (YET) part of GNU Emacs.
+
+;;; # Usage
+
+;;; 1. Install the color-theme package
+;;; (http://www.emacswiki.org/cgi-bin/wiki/ColorTheme)
+;;; 2. Load this file
+;;; 3. M-x color-theme-solarized-[dark|light]
+
+(eval-when-compile
+ (require 'color-theme))
+
+;; `((normal (:foreground ,base0 :background ,base03))
+;; (comment (:foreground ,base01 :italic t))
+;; ((constant string character number boolean float) (:foreground ,cyan))
+;; ((identifier function directory) (:foreground ,blue))
+;; ((statement conditional repeat label operator keyword exception)
+;; (:foreground ,green))
+;; ((pre-proc include define macro pre-condit) (:foreground orange))
+;; ((type storage-class structure typedef (:foreground yellow)))
+;; ((special special-char tag delimiter special-comment debug)
+;; (:foreground ,red))
+;; (underlined (:foreground ,violet))
+;; (error (:foreground ,red :bold t))
+;; (todo (:foreground ,magenta :bold t))
+;; (special-key (:foreground ,base02))
+;; (non-text (:foreground ,base02 :bold t))
+;; ())
+
+(defun color-theme-solarized (mode)
+ "Color theme by Ethan Schoonover, created 2011-03-24.
+Ported to Emacs by Greg Pfeil, http://ethanschoonover.com/solarized."
+ (interactive "Slight or dark? ")
+ (let ((base03 "#002b36")
+ (base02 "#073642")
+ (base01 "#586e75")
+ (base00 "#657b83")
+ (base0 "#839496")
+ (base1 "#93a1a1")
+ (base2 "#eee8d5")
+ (base3 "#fdf6e3")
+ (yellow "#b58900")
+ (orange "#cb4b16")
+ (red "#dc322f")
+ (magenta "#d33682")
+ (violet "#6c71c4")
+ (blue "#268bd2")
+ (cyan "#2aa198")
+ (green "#859900"))
+ (when (eq 'light mode)
+ (rotatef base03 base3)
+ (rotatef base02 base2)
+ (rotatef base01 base1)
+ (rotatef base00 base0))
+ (color-theme-install
+ `(color-theme-solarized
+ ((foreground-color . ,base0)
+ (background-color . ,base03)
+ (background-mode . ,mode)
+ (cursor-color . ,base0))
+ ;; basic
+ (default ((t (:foreground ,base0))))
+ (cursor ((t (:foreground ,base0 :background ,base03 :inverse-video t))))
+ (escape-glyph-face ((t (:foreground ,red))))
+ (fringe ((t (:foreground ,base01 :background ,base02))))
+ (header-line ((t (:foreground ,base0 :background ,base2))))
+ (highlight ((t (:background ,base02))))
+ (isearch ((t (:foreground ,yellow :inverse-video t))))
+ (menu ((t (:foreground ,base0 :background ,base02))))
+ (minibuffer-prompt ((t (:foreground ,blue))))
+ (mode-line
+ ((t (:foreground ,base1 :background ,base02
+ :box (:line-width 1 :color ,base1)))))
+ (mode-line-buffer-id ((t (:foreground ,base1))))
+ (mode-line-inactive
+ ((t (:foreground ,base0 :background ,base02
+ :box (:line-width 1 :color ,base02)))))
+ (region ((t (:background ,base02))))
+ (secondary-selection ((t (:background ,base02))))
+ (trailing-whitespace ((t (:foreground ,red :inverse-video t))))
+ (vertical-border ((t (:foreground ,base0))))
+ ;; compilation
+ (compilation-info ((t (:forground ,green :bold t))))
+ (compilation-warning ((t (:foreground ,orange :bold t))))
+ ;; customize
+ (custom-button
+ ((t (:background ,base02 :box (:line-width 2 :style released-button)))))
+ (custom-button-mouse ((t (:inherit custom-button :foreground ,base1))))
+ (custom-button-pressed
+ ((t (:inherit custom-button-mouse
+ :box (:line-width 2 :style pressed-button)))))
+ (custom-comment-tag ((t (:background ,base02))))
+ (custom-comment-tag ((t (:background ,base02))))
+ (custom-documentation ((t (:inherit default))))
+ (custom-group-tag ((t (:foreground ,orange :bold t))))
+ (custom-link ((t (:foreground ,violet))))
+ (custom-state ((t (:foreground ,green))))
+ (custom-variable-tag ((t (:foreground ,orange :bold t))))
+ ;; diff
+ (diff-added ((t (:foreground ,green :inverse-video t))))
+ (diff-changed ((t (:foreground ,yellow :inverse-video t))))
+ (diff-removed ((t (:foreground ,red :inverse-video t))))
+ ;; emacs-wiki
+ (emacs-wiki-bad-link-face ((t (:foreground ,red :underline t))))
+ (emacs-wiki-link-face ((t (:foreground ,blue :underline t))))
+ (emacs-wiki-verbatim-face ((t (:foreground ,base00 :underline t))))
+ ;; font-lock
+ (font-lock-builtin-face ((t (:foreground ,green))))
+ (font-lock-comment-face ((t (:foreground ,base01 :italic t))))
+ (font-lock-constant-face ((t (:foreground ,cyan))))
+ (font-lock-function-name-face ((t (:foreground ,blue))))
+ (font-lock-keyword-face ((t (:foreground ,green))))
+ (font-lock-string-face ((t (:foreground ,cyan))))
+ (font-lock-type-face ((t (:foreground ,yellow))))
+ (font-lock-variable-name-face ((t (:foreground ,blue))))
+ (font-lock-warning-face ((t (:foreground ,red :bold t))))
+ ;; info
+ (info-xref ((t (:foreground ,blue :underline t))))
+ (info-xref-visited ((t (:inherit info-xref :foreground ,magenta))))
+ ;; org
+ (org-hide ((t (:foreground ,base03))))
+ (org-todo ((t (:foreground ,red :bold t))))
+ (org-done ((t (:foreground ,green :bold t))))
+ ;; show-paren
+ (show-paren-match-face ((t (:background ,cyan :foreground ,base3))))
+ (show-paren-mismatch-face ((t (:background ,red :foreground ,base3))))))))
+
+(defun color-theme-solarized-dark ()
+ (interactive)
+ (color-theme-solarized 'dark))
+
+(defun color-theme-solarized-light ()
+ (interactive)
+ (color-theme-solarized 'light))
+
+(provide 'color-theme-solarized)