Skip to content
Browse files

Add solarized color theme

  • Loading branch information...
1 parent 7552786 commit f73718c61e8978acb81dc903da4677e0df29abeb @yrashk committed Jul 4, 2011
View
20 emacs-color-theme-solarized/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2011 Ethan Schoonover
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
View
152 emacs-color-theme-solarized/README.md
@@ -0,0 +1,152 @@
+Solarized Colorscheme for Emacs
+===============================
+
+Stolen from Ethan Schoonover <es@ethanschoonover.com> by Greg Pfeil <greg@technomadic.org>
+
+Visit the [Solarized homepage]
+------------------------------
+
+See the [Solarized homepage] for screenshots,
+details and colorscheme versions for Vim, Mutt, popular terminal emulators and
+other applications.
+
+Screenshots
+-----------
+
+![solarized dark](https://github.com/altercation/solarized/raw/master/img/solarized-vim.png)
+
+Downloads
+---------
+
+If you have come across this colorscheme via the [Emacs-only repository] on
+github, see the link above to the Solarized homepage or visit the main [Solarized repository].
+
+The [Emacs-only repository] is kept in sync with the main [Solarized repository]. Issues, bug reports, changelogs that are not specific to the Emacs implementation should be submitted to the main [Solarized repository].
+
+[Solarized homepage]: http://ethanschoonover.com/solarized
+[Solarized repository]: https://github.com/altercation/solarized
+[Emacs-only repository]: https://github.com/sellout/emacs-color-theme-solarized
+[color-theme]: http://www.nongnu.org/color-theme
+
+Installation & Usage
+--------------------
+
+### Emacs 24
+
+1. Add the `emacs-color-theme-solarized` directory to your Emacs `load-path`.
+2. `M-x enable-theme`, then either `solarized-light` or `solarized-dark`.
+
+### [color-theme] \(pre-Emacs 24\)
+
+1. Download and install [color-theme].
+2. Add the `emacs-color-theme-solarized` directory to your Emacs `load-path`.
+3. Add `(require 'color-theme-solarized)` to your Emacs init file (usually `~/.emacs`).
+4. Use the usual [color-theme] mechanism to select one of the Solarized themes, or `M-x color-theme-solarized-[light|dark]`.
+
+### IMPORTANT NOTE FOR TERMINAL USERS:
+
+If you are going to use Solarized in Terminal mode (i.e. not in a GUI version
+like Cocoa or X11 Emacs), **please please please** consider setting your
+terminal emulator's colorscheme to use the Solarized palette. The [Solarized
+repository] includes palettes for some popular terminal emulator as well as
+Xdefaults; or you can download them from the official [Solarized homepage].
+If you use this emacs color theme *without* having changed your emulator's
+palette, you will need to configure Solarized to degrade its colorscheme to
+a set compatible with the terminal's default limited 256 color palette
+(whereas by using the terminal's 16 ANSI color values, you would
+see the correct, specific values for the Solarized palette).
+
+If you do use the custom terminal colors, i.e. the 16 overridden ANSI color
+values, the emacs colorscheme should work out of the box for you. If you are
+using a terminal emulator that supports 256 colors and don't want to use
+the custom Solarized terminal colors, you will need to use the degraded 256
+colorscheme. To do so, simply customize the `solarized-termcolor` variable to
+`256`.
+
+Again, I recommend just changing your terminal colors to Solarized values
+either manually or via one of the many terminal schemes available for import.
+
+Advanced Configuration
+----------------------
+
+Solarized will work out of the box with just the instructions specified above
+but does include several variables that can be customized.
+
+ variable name default optional
+ -------------------------------------------
+ solarized-termcolors= 16 | 256
+ solarized-degrade = nil | t
+ solarized-bold = t | nil
+ solarized-underline = t | nil
+ solarized-italic = t | nil
+ solarized-contrast = normal| high, low
+ solarized-visibility= normal| high, low
+ -------------------------------------------
+
+### Option Details
+
+* solarized-termcolors
+
+ This is set to *16* by default, meaning that Solarized will attempt to use
+ the standard 16 colors of your terminal emulator, assuming that you've set
+ these colors to the correct Solarized values either manually or by
+ importing one of the many colorscheme available for popular terminal
+ emulators and Xdefaults.
+ If you don't want to use the Solarized colors via the terminal
+ emulator's palette, you can set this to *256*, which will use a degraded
+ version of the Solarized palette by displaying the closest colors in
+ the terminal's default 256 colors as shown in [Xterm's color
+ chart](http://en.wikipedia.org/wiki/File:Xterm_color_chart.png).
+
+* solarized-degrade
+
+ For test purposes only; in GUI mode, this forces Solarized to use the 256
+ degraded color mode to test the approximate color values for accuracy.
+
+* solarized-bold | solarized-underline | solarized-italic
+
+ If you wish to stop Solarized from displaying bold, underlined or
+ italicized typefaces, simply set the appropriate variable to `nil`.
+
+* solarized-contrast
+
+ 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 down in order to expand or compress the tonal range displayed.
+
+* solarized-visibility
+
+ Special characters such as trailing whitespace, tabs, newlines, when
+ displayed using `:set list` can be set to one of three levels depending on
+ your needs. Default value is `normal` with `high` and `low` options.
+
+Code Notes
+----------
+
+I have attempted to modularize the creation of Emacs colorschemes in this script and, while it could be refactored further, it should be a good foundation for the creation of any color scheme. By simply changing the values in the `solarized-colors` table in `solarized-definitions.el` and testing in a GUI Emacs, you can rapidly prototype new colorschemes without diving into the weeds of line-item editing each syntax highlight declaration.
+
+The Values
+----------
+
+L\*a\*b values are canonical (White D65, Reference D50), other values are
+matched in sRGB space.
+
+ SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B RGB HSB
+ --------- ------- ---- ------- ----------- ---------- ----------- -----------
+ base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
+ base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
+ base01 #586e75 10/7 brgreen 240 #585858 45 -07 -07 88 110 117 194 25 46
+ base00 #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195 23 51
+ base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
+ base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
+ base2 #eee8d5 7/7 white 254 #e4e4e4 92 -00 10 238 232 213 44 11 93
+ base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
+ yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
+ orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
+ red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
+ magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
+ violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
+ blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
+ cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
+ green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
+
View
51 emacs-color-theme-solarized/color-theme-solarized.el
@@ -0,0 +1,51 @@
+;;; 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]
+
+(require 'solarized-definitions)
+
+(eval-when-compile
+ (require 'color-theme))
+
+;;;###autoload
+(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? ")
+ (color-theme-install
+ (let* ((definitions (solarized-color-definitions mode))
+ (faces (first definitions))
+ (variables (second definitions)))
+ (solarized-color-definitions mode)
+ `(,(intern (concat "color-theme-solarized-" (symbol-name mode)))
+ ,variables
+ ,@faces))))
+
+;;;###autoload
+(defun color-theme-solarized-dark ()
+ (interactive)
+ (color-theme-solarized 'dark))
+
+;;;###autoload
+(defun color-theme-solarized-light ()
+ (interactive)
+ (color-theme-solarized 'light))
+
+(add-to-list 'color-themes
+ `(color-theme-solarized-light
+ "Solarized Light"
+ ,solarized-description))
+(add-to-list 'color-themes
+ `(color-theme-solarized-dark
+ "Solarized Dark"
+ ,solarized-description))
+
+(provide 'color-theme-solarized)
View
3 emacs-color-theme-solarized/solarized-dark-theme.el
@@ -0,0 +1,3 @@
+(require 'solarized-definitions)
+
+(create-solarized-theme dark)
View
305 emacs-color-theme-solarized/solarized-definitions.el
@@ -0,0 +1,305 @@
+(eval-when-compile
+ (require 'cl))
+
+(defconst solarized-description
+ "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-bold t
+ "Stops Solarized from displaying bold when nil."
+ :type 'boolean
+ :group 'solarized)
+
+(defcustom solarized-underline t
+ "Stops Solarized from displaying underlines when nil."
+ :type 'boolean
+ :group 'solarized)
+
+(defcustom solarized-italic t
+ "Stops Solarized from displaying italics when nil."
+ :type 'boolean
+ :group 'solarized)
+
+(defcustom solarized-termcolors 16
+ "This setting applies to emacs in terminal (non-GUI) mode.
+If set to 16, emacs will use the terminal emulator's colorscheme
+(best option as long as you've set your emulator's colors to the Solarized palette).
+If set to 256 and your terminal is capable of displaying 256 colors, emacs
+will use the 256 degraded color mode."
+ :type 'integer
+ :group 'solarized)
+
+;; FIXME: The Generic RGB colors will actually vary from device to device, but
+;; hopefully these are closer to the intended colors than the sRGB values
+;; that Emacs seems to dislike
+(defvar solarized-colors
+ ;; name sRGB Gen RGB degraded ANSI(Solarized terminal)
+ '((base03 "#002b36" "#042028" "#1c1c1c" "#7f7f7f")
+ (base02 "#073642" "#0a2832" "#262626" "#000000")
+ (base01 "#586e75" "#465a61" "#4e4e4e" "#00ff00")
+ (base00 "#657b83" "#52676f" "#585858" "#ffff00")
+ (base0 "#839496" "#708183" "#808080" "#5c5cff")
+ (base1 "#93a1a1" "#81908f" "#8a8a8a" "#00ffff")
+ (base2 "#eee8d5" "#e9e2cb" "#d7d7af" "#e5e5e5")
+ (base3 "#fdf6e3" "#fcf4dc" "#ffffd7" "#ffffff")
+ (yellow "#b58900" "#a57705" "#af8700" "#cdcd00")
+ (orange "#cb4b16" "#bd3612" "#d75f00" "#ff0000")
+ (red "#dc322f" "#c60007" "#af0000" "#cd0000")
+ (magenta "#d33682" "#c61b6e" "#af005f" "#cd00cd")
+ (violet "#6c71c4" "#5859b7" "#5f5faf" "#ff00ff")
+ (blue "#268bd2" "#2075c7" "#0087ff" "#0000ee")
+ (cyan "#2aa198" "#259185" "#00afaf" "#00cdcd")
+ (green "#859900" "#728a05" "#5f8700" "#00cd00"))
+ "This is a table of all the colors used by the Solarized color theme. Each
+ column is a different set, one of which will be chosen based on term
+ capabilities, etc.")
+
+(defun solarized-color-definitions (mode)
+ (flet ((find-color (name)
+ (let ((index (if window-system
+ (if solarized-degrade
+ 3
+ 2)
+ (if (= solarized-termcolors 256)
+ 3
+ 4))))
+ (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))
+ (underline (if solarized-underline t nil))
+ (italic (if solarized-italic 'italic 'normal)))
+ (when (eq 'light mode)
+ (rotatef base03 base3)
+ (rotatef base02 base2)
+ (rotatef base01 base1)
+ (rotatef base00 base0))
+ `((;; basic
+ (default ((t (:foreground ,base0 ,:background ,base03))))
+ (cursor
+ ((t (:foreground ,base0 :background ,base03 :inverse-video t))))
+ (escape-glyph-face ((t (:foreground ,red))))
+ (fringe ((t (:foreground ,base01 :background ,base02))))
+ (linum ((t (:foreground ,base01 :background ,base02))))
+ (header-line ((t (:foreground ,base0 :background ,base2))))
+ (highlight ((t (:background ,base02))))
+ (hl-line ((t (:background ,base02))))
+ (isearch ((t (:foreground ,yellow :inverse-video t))))
+ (lazy-highlight ((t (:background ,base2 :foreground ,base00))))
+ (link ((t (:foreground ,violet :underline ,underline))))
+ (link-visited ((t (:foreground ,magenta :underline ,underline))))
+ (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))))
+ ;; comint
+ (comint-highlight-prompt ((t (:foreground ,blue))))
+ ;; compilation
+ (compilation-info ((t (:foreground ,green :weight ,bold))))
+ (compilation-warning ((t (:foreground ,orange :weight ,bold))))
+ ;; 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 :weight ,bold))))
+ (custom-link ((t (:foreground ,violet))))
+ (custom-state ((t (:foreground ,green))))
+ (custom-variable-tag ((t (:foreground ,orange :weight ,bold))))
+ ;; 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))))
+ (diff-header ((t (:background ,base01))))
+ (diff-file-header
+ ((t (:background ,base1 :foreground ,base01 :weight ,bold))))
+ (diff-refine-change ((t (:background ,base1))))
+ ;; IDO
+ (ido-only-match ((t (:foreground ,green))))
+ (ido-subdir ((t (:foreground ,blue))))
+ (ido-first-match ((t (:foreground ,green :weight ,bold))))
+ ;; emacs-wiki
+ (emacs-wiki-bad-link-face
+ ((t (:foreground ,red :underline ,underline))))
+ (emacs-wiki-link-face ((t (:foreground ,blue :underline ,underline))))
+ (emacs-wiki-verbatim-face
+ ((t (:foreground ,base00 :underline ,underline))))
+ ;; font-lock
+ (font-lock-builtin-face ((t (:foreground ,green))))
+ (font-lock-comment-face ((t (:foreground ,base01 :slant ,italic))))
+ (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 :weight ,bold))))
+ (font-lock-doc-face ((t (:foreground ,cyan :slant ,italic))))
+ (font-lock-color-constant-face ((t (:foreground ,green))))
+ (font-lock-comment-delimiter-face
+ ((t (:foreground ,base01 :weight ,bold))))
+ (font-lock-doc-string-face ((t (:foreground ,green))))
+ (font-lock-preprocessor-face ((t (:foreground ,orange))))
+ (font-lock-reference-face ((t (:foreground ,cyan))))
+ (font-lock-negation-char-face ((t (:foreground ,red))))
+ (font-lock-other-type-face ((t (:foreground ,blue :slant ,italic))))
+ (font-lock-regexp-grouping-construct ((t (:foreground ,orange))))
+ (font-lock-special-keyword-face ((t (:foreground ,magenta))))
+ (font-lock-exit-face ((t (:foreground ,red))))
+ (font-lock-other-emphasized-face
+ ((t (:foreground ,violet :weight ,bold :slant ,italic))))
+ (font-lock-regexp-grouping-backslash ((t (:foreground ,yellow))))
+ ;; info
+ (info-xref ((t (:foreground ,blue :underline ,underline))))
+ (info-xref-visited ((t (:inherit info-xref :foreground ,magenta))))
+ ;; org
+ (org-hide ((t (:foreground ,base03))))
+ (org-todo ((t (:foreground ,base03 :background ,red :weight ,bold))))
+ (org-done ((t (:foreground ,green :weight ,bold))))
+ (org-todo-kwd-face ((t (:foreground ,red :background ,base03))))
+ (org-done-kwd-face ((t (:foreground ,green :background ,base03))))
+ (org-project-kwd-face ((t (:foreground ,violet :background ,base03))))
+ (org-waiting-kwd-face ((t (:foreground ,orange :background ,base03))))
+ (org-someday-kwd-face ((t (:foreground ,blue :background ,base03))))
+ (org-started-kwd-face ((t (:foreground ,yellow :background ,base03))))
+ (org-cancelled-kwd-face ((t (:foreground ,green :background ,base03))))
+ (org-delegated-kwd-face ((t (:foreground ,cyan :background ,base03))))
+ ;; show-paren
+ (show-paren-match-face ((t (:background ,cyan :foreground ,base3))))
+ (show-paren-mismatch-face ((t (:background ,red :foreground ,base3))))
+ ;; widgets
+ (widget-field
+ ((t (:box (:line-width 1 :color ,base00) :inherit default))))
+ (widget-single-line-field ((t (:inherit widget-field))))
+ ;; extra modules
+ ;; -------------
+ ;; gnus
+ (gnus-cite-1 ((t (:foreground ,magenta))))
+ (gnus-cite-2 ((t (:foreground ,base2))))
+ (gnus-cite-3 ((t (:foreground ,base3))))
+ (gnus-cite-4 ((t (:foreground ,base1))))
+ (gnus-cite-5 ((t (:foreground ,magenta))))
+ (gnus-cite-6 ((t (:foreground ,base2))))
+ (gnus-cite-7 ((t (:foreground ,base3))))
+ (gnus-cite-8 ((t (:foreground ,base1))))
+ (gnus-cite-9 ((t (:foreground ,base2))))
+ (gnus-cite-10 ((t (:foreground ,base3))))
+ (gnus-cite-11 ((t (:foreground ,blue))))
+ (gnus-group-mail-1 ((t (:foreground ,base3 :weight ,bold))))
+ (gnus-group-mail-1-empty ((t (:foreground ,base3))))
+ (gnus-group-mail-2 ((t (:foreground ,base2 :weight ,bold))))
+ (gnus-group-mail-2-empty ((t (:foreground ,base2))))
+ (gnus-group-mail-3 ((t (:foreground ,magenta :weight ,bold))))
+ (gnus-group-mail-3-empty ((t (:foreground ,magenta))))
+ (gnus-group-mail-low ((t (:foreground ,base00 :weight ,bold))))
+ (gnus-group-mail-low-empty ((t (:foreground ,base00))))
+ (gnus-group-news-1 ((t (:foreground ,base1 :weight ,bold))))
+ (gnus-group-news-1-empty ((t (:foreground ,base1))))
+ (gnus-group-news-2 ((t (:foreground ,blue :weight ,bold))))
+ (gnus-group-news-2-empty ((t (:foreground ,blue))))
+ (gnus-group-news-low ((t (:foreground ,violet :weight ,bold))))
+ (gnus-group-news-low-empty ((t (:foreground ,violet))))
+ (gnus-header-content ((t (:foreground ,cyan :slant ,italic))))
+ (gnus-header-from ((t (:foreground ,base2))))
+ (gnus-header-name ((t (:foreground ,blue))))
+ (gnus-header-newsgroups ((t (:foreground ,green :slant ,italic))))
+ (gnus-header-subject ((t (:foreground ,base1))))
+ (gnus-server-agent ((t (:foreground ,base3 :weight ,bold))))
+ (gnus-server-closed ((t (:foreground ,base1 :slant ,italic))))
+ (gnus-server-denied ((t (:foreground ,base2 :weight ,bold))))
+ (gnus-server-offline ((t (:foreground ,green :weight ,bold))))
+ (gnus-server-opened ((t (:foreground ,cyan :weight ,bold))))
+ (gnus-splash ((t (:foreground ,base2))))
+ (gnus-summary-high-ancient ((t (:foreground ,magenta :weight ,bold))))
+ (gnus-summary-high-read ((t (:foreground ,base1 :weight ,bold))))
+ (gnus-summary-high-ticked ((t (:foreground ,base3 :weight ,bold))))
+ (gnus-summary-high-undownloaded
+ ((t (:foreground ,base2 :weight ,bold))))
+ (gnus-summary-low-ancient ((t (:foreground ,magenta :slant ,italic))))
+ (gnus-summary-low-read ((t (:foreground ,base1 :slant ,italic))))
+ (gnus-summary-low-ticked ((t (:foreground ,base3 :slant ,italic))))
+ (gnus-summary-low-undownloaded
+ ((t (:foreground ,base2 :slant ,italic))))
+ (gnus-summary-normal-ancient ((t (:foreground ,magenta))))
+ (gnus-summary-normal-read ((t (:foreground ,base1))))
+ (gnus-summary-normal-ticked ((t (:foreground ,base3))))
+ (gnus-summary-normal-undownloaded ((t (:foreground ,base2))))
+ ;; Flymake
+ (flymake-errline ((t (:background ,orange))))
+ (flymake-warnline ((t (:background ,violet))))
+ ;; whitespace
+ (whitespace-empty ((t (:foreground ,red))))
+ (whitespace-hspace ((t (:foreground ,orange))))
+ (whitespace-indentation ((t (:foreground ,base02))))
+ (whitespace-space ((t (:foreground ,base02))))
+ (whitespace-space-after-tab ((t (:foreground ,cyan))))
+ (whitespace-space-before-tab ((t (:foreground ,red :weight ,bold))))
+ (whitespace-tab ((t (:foreground ,base02))))
+ (whitespace-trailing
+ ((t (:background ,base02 :foreground ,red :weight ,bold))))
+ (whitespace-highlight-face ((t (:background ,blue :foreground ,red))))
+ ;; Message
+ (message-mml ((t (:foreground ,blue))))
+ (message-cited-text ((t (:foreground ,base2))))
+ (message-separator ((t (:foreground ,base3))))
+ (message-header-xheader ((t (:foreground ,violet))))
+ (message-header-name ((t (:foreground ,cyan))))
+ (message-header-other ((t (:foreground ,red))))
+ (message-header-newsgroups
+ ((t (:foreground ,yellow :weight ,bold :slant ,italic))))
+ (message-header-subject ((t (:foreground ,base00))))
+ (message-header-cc ((t (:foreground ,green :weight ,bold))))
+ (message-header-to ((t (:foreground ,base1 :weight ,bold)))))
+ ((foreground-color . ,base0)
+ (background-color . ,base03)
+ (background-mode . ,mode)
+ (cursor-color . ,base0))))))
+
+(defmacro create-solarized-theme (mode)
+ (let* ((theme-name (intern (concat "solarized-" (symbol-name mode))))
+ (defs (solarized-color-definitions mode))
+ (theme-vars (mapcar (lambda (def) (list (car def) (cdr def)))
+ (second defs)))
+ (theme-faces (first defs)))
+ `(progn
+ (deftheme ,theme-name ,solarized-description)
+ (apply 'custom-theme-set-variables ',theme-name ',theme-vars)
+ (apply 'custom-theme-set-faces ',theme-name ',theme-faces)
+ (provide-theme ',theme-name))))
+
+(provide 'solarized-definitions)
View
3 emacs-color-theme-solarized/solarized-light-theme.el
@@ -0,0 +1,3 @@
+(require 'solarized-definitions)
+
+(create-solarized-theme light)
View
6 init.el
@@ -10,9 +10,11 @@
;; Theme
(add-to-list 'load-path "~/.emacs.d/color-theme")
+(add-to-list 'load-path "~/.emacs.d/emacs-color-theme-solarized")
+(require 'color-theme-solarized)
(require 'color-theme)
(color-theme-initialize)
-(color-theme-arjen)
+(color-theme-solarized-dark)
;; Editor
(setq-default tab-width 4)
@@ -72,4 +74,4 @@
(cons '("\\.text" "\\.md" . markdown-mode) auto-mode-alist))
;; Fonts
-(set-face-attribute 'default nil :font "Anonymous Pro")
+(set-face-attribute 'default nil :font "Anonymous Pro" :height 140)

0 comments on commit f73718c

Please sign in to comment.
Something went wrong with that request. Please try again.