Update solarized theme
authorJoerg Jaspert <joerg@debian.org>
Mon, 27 Apr 2015 08:41:50 +0000 (10:41 +0200)
committerJoerg Jaspert <joerg@debian.org>
Mon, 27 Apr 2015 08:41:50 +0000 (10:41 +0200)
40 files changed:
.emacs.d/config/emacs.org
.emacs.d/elisp/emacs-color-theme-solarized/LICENSE [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/README.md [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized-autoloads.el [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized-pkg.el [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized.el [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/makepkg.sh [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/solarized-dark-theme.el [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/solarized-definitions.el [deleted file]
.emacs.d/elisp/emacs-color-theme-solarized/solarized-light-theme.el [deleted file]
.emacs.d/elisp/local/solarized.el [deleted file]
.emacs.d/elisp/solarized-emacs/.bumpversion.cfg [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/DEV-GUIDE.md [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/README.md [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/solarized-dark-theme.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/solarized-light-theme.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/solarized-theme-pkg.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/solarized-theme-utils.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/solarized-theme.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/solarized.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/.gitignore [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/README.org [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/emacs-visual-test.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/emacs-visual-test.sh [new file with mode: 0755]
.emacs.d/elisp/solarized-emacs/tests/init.el [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/README-django-fsm.md [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/README-fzf.md [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/c.c [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/django-template.html [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/haskell.hs [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/html.html [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/java.java [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/javascript.js [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/pandoc.md [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/perl.pl [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/php.php [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/python.py [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/ruby.rb [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/shell.sh [new file with mode: 0644]
.emacs.d/elisp/solarized-emacs/tests/test-files/tex.tex [new file with mode: 0644]

index b092e59..f7d1dff 100644 (file)
@@ -223,11 +223,40 @@ shell. Consistent look is great.
 #+END_SRC
 #+BEGIN_SRC emacs-lisp
 (use-package solarized
-  :load-path "elisp/emacs-color-theme-solarized"
+  :load-path "elisp/solarized-emacs"
   :init
   (progn
     (defun jj-init-theme ()
       (interactive)
+      ;; ;; make the fringe stand out from the background
+      (setq solarized-distinct-fringe-background t)
+
+      ;; ;; Don't change the font for some headings and titles
+      ;; (setq solarized-use-variable-pitch nil)
+
+      ;; ;; make the modeline high contrast
+      ;; (setq solarized-high-contrast-mode-line t)
+
+      ;; ;; Use less bolding
+      ;; (setq solarized-use-less-bold t)
+
+      ;; ;; Use more italics
+      ;; (setq solarized-use-more-italic t)
+
+      ;; ;; Use less colors for indicators such as git:gutter, flycheck and similar
+      ;; (setq solarized-emphasize-indicators nil)
+
+      ;; ;; Don't change size of org-mode headlines (but keep other size-changes)
+      ;; (setq solarized-scale-org-headlines nil)
+
+      ;; ;; Avoid all font-size changes
+      ;; (setq solarized-height-minus-1 1)
+      ;; (setq solarized-height-plus-1 1)
+      ;; (setq solarized-height-plus-2 1)
+      ;; (setq solarized-height-plus-3 1)
+      ;; (setq solarized-height-plus-4 1)
+      (setq x-underline-at-descent-line t)
+
       (if (eq jj-color-style 'dark )(load-theme 'solarized-dark t)
         (load-theme 'solarized-light t))
       (set-face-attribute 'org-date nil :underline nil)
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/LICENSE b/.emacs.d/elisp/emacs-color-theme-solarized/LICENSE
deleted file mode 100644 (file)
index ee08d7e..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-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.
-
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/README.md b/.emacs.d/elisp/emacs-color-theme-solarized/README.md
deleted file mode 100644 (file)
index 538f092..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-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 `custom-theme-load-path`, or install from marmalade using `package-install color-theme-solarized`
-2. Add `(load-theme 'solarized-[light|dark] t)` to your Emacs init file.
-3. Reload the init file, or restart Emacs.
-
-### [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`).
-3. Reload the init file, or restart 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
-    solarized-broken-srgb=   nil   |   t (see details for Mac behavior)
-    --------------------------------------------
-
-### 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.
-    
-*   solarized-broken-srgb
-
-    Emacs [bug #8402](http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8402)
-    results in incorrect color handling on Macs. If this is `t` (the default
-    on Macs), Solarized works around it with alternative colors. However,
-    these colors are not totally portable, so you may be able to edit the
-    "Gen RGB" column in `solarized-definitions.el` to improve them further.
-
-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
-    
-### Bug Reporting
-
-Here are some things to keep in mind when submitting a bug report:
-
-*   include the output of `M-x version` in your report,
-*   mention whether you’re using color-theme or the Emacs 24 theme,
-*   include the names of Emacs faces that you have a problem with (`M-x describe-face` will tell you the name of the face at point),
-*   screenshots are very helpful (before and after if you made a change),
-*   it’s very helpful (but not expected) if you can compare it to a similar situation in VIM (especially if you know the VIM highlight name or have a screenshot), and
-*  `M-x customize-apropos-faces` can help you find all the relevant faces if you are submitting faces for a mode.
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized-autoloads.el b/.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized-autoloads.el
deleted file mode 100644 (file)
index b54ea1e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-;;; color-theme-solarized-autoloads.el --- automatically extracted autoloads
-;;
-;;; Code:
-
-\f
-;;;### (autoloads (color-theme-solarized-light color-theme-solarized-dark
-;;;;;;  color-theme-solarized) "color-theme-solarized" "color-theme-solarized.el"
-;;;;;;  (20818 6659 297107 925000))
-;;; Generated autoloads from color-theme-solarized.el
-
-(autoload 'color-theme-solarized "color-theme-solarized" "\
-Color theme by Ethan Schoonover, created 2011-03-24.
-Ported to Emacs by Greg Pfeil, http://ethanschoonover.com/solarized.
-
-\(fn MODE)" t nil)
-
-(autoload 'color-theme-solarized-dark "color-theme-solarized" "\
-
-
-\(fn)" t nil)
-
-(autoload 'color-theme-solarized-light "color-theme-solarized" "\
-
-
-\(fn)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "solarized-definitions" "solarized-definitions.el"
-;;;;;;  (20818 6659 381108 341000))
-;;; Generated autoloads from solarized-definitions.el
-
-(when (boundp 'custom-theme-load-path) (add-to-list 'custom-theme-load-path (file-name-as-directory (file-name-directory load-file-name))))
-
-;;;***
-\f
-;;;### (autoloads nil nil ("color-theme-solarized-pkg.el" "solarized-dark-theme.el"
-;;;;;;  "solarized-light-theme.el") (20818 6659 467471 558000))
-
-;;;***
-\f
-(provide 'color-theme-solarized-autoloads)
-;; Local Variables:
-;; version-control: never
-;; no-byte-compile: t
-;; no-update-autoloads: t
-;; coding: utf-8
-;; End:
-;;; color-theme-solarized-autoloads.el ends here
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized-pkg.el b/.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized-pkg.el
deleted file mode 100644 (file)
index f9d0934..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-(define-package "color-theme-solarized" "20130307.1350" "Solarized themes for Emacs [source: github]"
-  '((color-theme "6.5.5")))
-
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized.el b/.emacs.d/elisp/emacs-color-theme-solarized/color-theme-solarized.el
deleted file mode 100644 (file)
index f4b1abe..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-;;; 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]
-
-(let ((current-file-name (or load-file-name buffer-file-name)))
-  (if current-file-name
-    (let* ((reqname (concat (file-name-directory current-file-name)
-                            "solarized-definitions.el"))
-           (compreqname (concat reqname "c")))
-      (require 'solarized-definitions
-               (if (file-exists-p compreqname) compreqname reqname)))
-    (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)
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/makepkg.sh b/.emacs.d/elisp/emacs-color-theme-solarized/makepkg.sh
deleted file mode 100755 (executable)
index 7c13497..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-
-version=$1
-
-if [ "$version" = "" ]; then
-    version=$(date -u '+%Y%m%d')
-fi
-echo "version = $version"
-
-dir="color-theme-solarized-${version}"
-
-mkdir $dir
-
-cp *.el $dir
-sed -i "s/%%version%%/$version/" "$dir/color-theme-solarized-pkg.el"
-
-tar cf color-theme-solarized-${version}.tar $dir
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/solarized-dark-theme.el b/.emacs.d/elisp/emacs-color-theme-solarized/solarized-dark-theme.el
deleted file mode 100644 (file)
index c5ebade..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-(require 'solarized-definitions
-         (locate-file "solarized-definitions.el" custom-theme-load-path
-                      '("c" "")))
-
-(create-solarized-theme dark)
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/solarized-definitions.el b/.emacs.d/elisp/emacs-color-theme-solarized/solarized-definitions.el
deleted file mode 100644 (file)
index 2f588ed..0000000
+++ /dev/null
@@ -1,559 +0,0 @@
-(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-diff-mode 'normal
-  "Sets the level of highlighting to use in diff-like modes."
-  :type 'symbol
-  :options '(high normal low)
-  :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-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
-down in order to expand or compress the tonal range displayed."
-  :type 'symbol
-  :options '(high normal low)
-  :group 'solarized)
-
-(defcustom solarized-broken-srgb (if (and (eq system-type 'darwin)
-                                          (eq window-system 'ns))
-                                     t
-                                   nil)
-  "Emacs bug #8402 results in incorrect color handling on Macs. If this is t
-\(the default on Macs), Solarized works around it with alternative colors.
-However, these colors are not totally portable, so you may be able to edit
-the \"Gen RGB\" column in solarized-definitions.el to improve them further."
-  :type 'boolean
-  :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           ; ANSI(Solarized terminal)
-  ;; name     sRGB      Gen RGB   256       16              8
-  '((base03  "#002b36" "#042028" "#1c1c1c" "brightblack"   "black")
-    (base02  "#073642" "#0a2832" "#262626" "black"         "black")
-    (base01  "#586e75" "#465a61" "#585858" "brightgreen"   "green")
-    (base00  "#657b83" "#52676f" "#626262" "brightyellow"  "yellow")
-    (base0   "#839496" "#708183" "#808080" "brightblue"    "blue")
-    (base1   "#93a1a1" "#81908f" "#8a8a8a" "brightcyan"    "cyan")
-    (base2   "#eee8d5" "#e9e2cb" "#e4e4e4" "white"         "white")
-    (base3   "#fdf6e3" "#fcf4dc" "#ffffd7" "brightwhite"   "white")
-    (yellow  "#b58900" "#a57705" "#af8700" "yellow"        "yellow")
-    (orange  "#cb4b16" "#bd3612" "#d75f00" "brightred"     "red")
-    (red     "#dc322f" "#c60007" "#d70000" "red"           "red")
-    (magenta "#d33682" "#c61b6e" "#af005f" "magenta"       "magenta")
-    (violet  "#6c71c4" "#5859b7" "#5f5faf" "brightmagenta" "magenta")
-    (blue    "#268bd2" "#2075c7" "#0087ff" "blue"          "blue")
-    (cyan    "#2aa198" "#259185" "#00afaf" "cyan"          "cyan")
-    (green   "#859900" "#728a05" "#5f8700" "green"         "green"))
-  "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
-                               (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))
-
-              (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
-             ;; -------------
-            ;; bm visual bookmarks
-            (bm-fringe-face ((t (,@bg-orange ,@fg-base03))))
-            (bm-fringe-persistent-face ((t (,@bg-blue ,@fg-base03))))
-             ;; 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))))
-            ;; git-gutter
-            (git-gutter:modified ((t (,@fg-violet))))
-            (git-gutter:added ((t (,@fg-green))))
-            (git-gutter:deleted ((t (,@fg-red))))
-             ;; 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))))
-            ;;ansi-term
-            (term-color-black ((t ( ,@fg-base02))))
-            (term-color-red ((t ( ,@fg-red))))
-            (term-color-green ((t ( ,@fg-green))))
-            (term-color-yellow ((t ( ,@fg-yellow))))
-            (term-color-blue ((t ( ,@fg-blue))))
-            (term-color-magenta ((t ( ,@fg-magenta))))
-            (term-color-cyan ((t ( ,@fg-cyan))))
-            (term-color-white ((t ( ,@fg-base00)))))
-
-            ((foreground-color . ,(when (<= 16 (display-color-cells)) base0))
-             (background-color . ,back)
-             (background-mode . ,mode)
-             (cursor-color . ,(when (<= 16 (display-color-cells))
-                                base0))
-            (ansi-color-names-vector . [,base02 ,red ,green ,yellow ,blue ,magenta ,cyan ,base00]))))))))
-
-(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))))
-
-;;;###autoload
-(when (boundp 'custom-theme-load-path)
-  (add-to-list 'custom-theme-load-path
-               (file-name-as-directory (file-name-directory load-file-name))))
-
-(provide 'solarized-definitions)
diff --git a/.emacs.d/elisp/emacs-color-theme-solarized/solarized-light-theme.el b/.emacs.d/elisp/emacs-color-theme-solarized/solarized-light-theme.el
deleted file mode 100644 (file)
index 444748d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-(require 'solarized-definitions
-         (locate-file "solarized-definitions.el" custom-theme-load-path
-                      '("c" "")))
-
-(create-solarized-theme light)
diff --git a/.emacs.d/elisp/local/solarized.el b/.emacs.d/elisp/local/solarized.el
deleted file mode 100644 (file)
index 1726628..0000000
+++ /dev/null
@@ -1,1139 +0,0 @@
-;;; solarized.el --- Solarized for Emacs.
-
-;; Copyright (C) 2011-2013 Bozhidar Batsov
-
-;; Author: Bozhidar Batsov <bozhidar@batsov.com>
-;; Author: Thomas Frössman <thomasf@jossystem.se>
-;; URL: http://github.com/bbatsov/solarized-emacs
-;; Version: 1.0.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!
-         (solarized-fg-hc (if (eq variant 'light) base3 base03))
-         (solarized-fg-lc (if (eq variant 'light) base03 base3))
-
-         (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))))
-     `(lazy-highlight ((,class (:foreground ,solarized-emph :background ,solarized-hl :bold t))))
-     `(escape-glyph ((,class (:foreground ,violet))))
-
-     ;; 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))))
-
-     `(compilation-mode-line-exit
-       ((,class (:inherit compilation-info :foreground ,green :weight bold))))
-     `(compilation-mode-line-fail
-       ((,class (:inherit compilation-error :foreground ,red :weight bold))))
-     `(compilation-mode-line-run ((,class (:foreground ,orange :weight bold))))
-
-     ;; cua
-     `(cua-global-mark ((,class (:background ,yellow :foreground ,solarized-bg))))
-     `(cua-rectangle ((,class (:inherit region :background ,magenta :foreground ,solarized-bg))))
-     `(cua-rectangle-noselect ((,class (:inherit region :background ,solarized-hl
-                                                 :foreground ,solarized-comments))))
-
-     ;; diary
-     `(diary ((,class (:foreground ,yellow))))
-
-     ;; 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 :weight bold))))
-     `(dired-marked ((,class (:foreground ,magenta :weight bold))))
-     `(dired-perm-write ((,class (:foreground ,solarized-fg :underline t))))
-     `(dired-symlink ((,class (:foreground ,cyan :weight normal :slant italic))))
-     `(dired-warning ((,class (:foreground ,orange :underline t))))
-
-     ;; dropdown
-     `(dropdown-list-face ((,class (:background ,solarized-hl :foreground ,cyan))))
-     `(dropdown-list-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc))))
-
-     ;; 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 :bold t))))
-     `(isearch-fail ((,class (:foreground ,red :background ,solarized-bg :bold t))))
-
-     ;; man
-     `(Man-overstrike ((,class (:foreground ,blue :weight bold))))
-     `(Man-reverse ((,class (:foreground ,orange))))
-     `(Man-underline ((,class (:foreground ,green :underline t))))
-
-     ;; misc faces
-     `(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-hl))))
-
-     `(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-complete
-     `(ac-candidate-face ((,class (:background ,solarized-hl :foreground ,cyan))))
-     `(ac-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc))))
-     `(ac-candidate-mouse-face ((,class (:background ,cyan-hc :foreground ,cyan-lc))))
-     `(ac-completion-face ((,class (:foreground ,solarized-emph :underline t))))
-     `(ac-gtags-candidate-face ((,class (:background ,solarized-hl :foreground ,blue))))
-     `(ac-gtags-selection-face ((,class (:background ,blue-lc :foreground ,blue-hc))))
-     `(ac-yasnippet-candidate-face ((,class (:background ,solarized-hl :foreground ,yellow))))
-     `(ac-yasnippet-selection-face ((,class (:background ,yellow-lc :foreground ,yellow-hc))))
-
-     ;; 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 :weight bold))))
-
-     ;; android mode
-     `(android-mode-debug-face ((,class (:foreground ,green))))
-     `(android-mode-error-face ((,class (:foreground ,orange :weight bold))))
-     `(android-mode-info-face ((,class (:foreground ,solarized-fg))))
-     `(android-mode-verbose-face ((,class (:foreground ,solarized-comments))))
-     `(android-mode-warning-face ((,class (:foreground ,yellow))))
-
-     ;; bm
-     `(bm-face ((,class (:background ,yellow-lc :foreground ,solarized-bg))))
-     `(bm-fringe-face ((,class (:background ,yellow-lc :foreground ,solarized-bg))))
-     `(bm-fringe-persistent-face ((,class (:background ,green-lc :foreground ,solarized-bg))))
-     `(bm-persistent-face ((,class (:background ,green-lc :foreground ,solarized-bg))))
-
-     ;; calfw
-     `(cfw:face-day-title ((,class (:background ,solarized-hl))))
-     `(cfw:face-annotation ((,class (:inherit cfw:face-day-title :foreground ,yellow))))
-     `(cfw:face-default-content ((,class (:foreground ,green))))
-     `(cfw:face-default-day ((,class (:inherit cfw:face-day-title :weight bold))))
-     `(cfw:face-disable ((,class (:inherit cfw:face-day-title :foreground ,solarized-comments))))
-     `(cfw:face-grid ((,class (:foreground ,solarized-comments))))
-     `(cfw:face-header ((,class (:foreground ,blue-hc :background ,blue-lc :weight bold))))
-     `(cfw:face-holiday ((,class (:background nil :foreground ,red :weight bold))))
-     `(cfw:face-periods ((,class (:foreground ,magenta))))
-     `(cfw:face-select ((,class (:background ,magenta-lc :foreground ,magenta-hc))))
-     `(cfw:face-saturday ((,class (:foreground ,cyan-hc :background ,cyan-lc))))
-     `(cfw:face-sunday ((,class (:foreground ,red-hc :background ,red-lc :weight bold))))
-     `(cfw:face-title ((,class (:inherit variable-pitch :foreground ,yellow :weight bold :height 2.0))))
-     `(cfw:face-today ((,class (:weight bold :background ,solarized-hl :foreground nil))))
-     `(cfw:face-today-title ((,class (:background ,yellow-lc :foreground ,yellow-hc :weight bold))))
-     `(cfw:face-toolbar ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
-     `(cfw:face-toolbar-button-off ((,class (:background ,yellow-lc :foreground ,yellow-hc :weight bold))))
-     `(cfw:face-toolbar-button-on ((,class (:background ,yellow-hc :foreground ,yellow-lc :weight bold))))
-
-     ;; clojure-test-mode
-     `(clojure-test-failure-face ((t (:foreground ,orange :weight bold :underline t))))
-     `(clojure-test-error-face ((t (:foreground ,red :weight bold :underline t))))
-     `(clojure-test-success-face ((t (:foreground ,green :weight bold :underline t))))
-
-     ;; cscope
-     `(cscope-file-face ((,class (:foreground ,green :weight bold))))
-     `(cscope-function-face ((,class (:foreground ,blue))))
-     `(cscope-line-number-face ((,class (:foreground ,yellow))))
-     `(cscope-line-face ((,class (:foreground ,solarized-fg))))
-     `(cscope-mouse-face ((,class (:background ,blue :foreground ,solarized-fg))))
-
-     ;; ctable
-     `(ctbl:face-cell-select ((,class (:background ,blue :foreground ,solarized-bg))))
-     `(ctbl:face-continue-bar ((,class (:background ,solarized-hl :foreground ,solarized-bg))))
-     `(ctbl:face-row-select ((,class (:background ,cyan :foreground ,solarized-bg))))
-
-     ;; coffee
-     `(coffee-mode-class-name ((,class (:foreground ,yellow :weight bold))))
-     `(coffee-mode-function-param ((,class (:foreground ,violet :slant italic))))
-
-     ;; 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 :background ,solarized-bg))))
-     `(diff-changed ((,class (:foreground ,blue :background ,solarized-bg))))
-     `(diff-removed ((,class (:foreground ,red :background ,solarized-bg))))
-     `(diff-header ((,class (:background ,solarized-bg))))
-     `(diff-file-header
-       ((,class (:background ,solarized-bg :foreground ,solarized-fg :weight bold))))
-     `(diff-refine-added ((,class :foreground ,solarized-bg :background ,green)))
-     `(diff-refine-change ((,class :foreground ,solarized-bg :background ,blue)))
-     `(diff-refine-removed ((,class (:foreground ,solarized-bg :background ,red))))
-
-     ;; ediff
-     `(ediff-fine-diff-A ((,class (:background ,orange-lc))))
-     `(ediff-fine-diff-B ((,class (:background ,green-lc))))
-     `(ediff-even-diff-A ((,class (:background ,solarized-comments :foreground ,solarized-fg-lc ))))
-     `(ediff-odd-diff-A ((,class (:background ,solarized-comments :foreground ,solarized-fg-hc ))))
-     `(ediff-even-diff-B ((,class (:background ,solarized-comments :foreground ,solarized-fg-hc ))))
-     `(ediff-odd-diff-B ((,class (:background ,solarized-comments :foreground ,solarized-fg-lc ))))
-
-     ;; epc
-     `(epc:face-title ((,class (:foreground ,magenta :weight bold))))
-
-     ;; 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))))
-
-     ;; fic
-     `(fic-author-face ((,class (:background ,solarized-bg :foreground ,orange :underline t :slant italic))))
-     `(fic-face ((,class (:background ,solarized-bg :foreground ,orange :weight normal :slant italic))))
-
-     ;; flymake
-     `(flymake-errline
-       ((,(append '((supports :underline (:style wave))) class)
-         (:underline (:style wave :color ,red)))
-        (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
-     `(flymake-infoline
-       ((,(append '((supports :underline (:style wave))) class)
-         (:underline (:style wave :color ,green)))
-        (,class (:foreground ,green-hc :background ,green-lc))))
-     `(flymake-warnline
-       ((,(append '((supports :underline (:style wave))) class)
-         (:underline (:style wave :color ,yellow)))
-        (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
-
-     ;; flycheck
-     `(flycheck-error
-       ((,(append '((supports :underline (:style wave))) class)
-         (:underline (:style wave :color ,red)))
-        (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
-     `(flycheck-warning
-       ((,(append '((supports :underline (:style wave))) class)
-         (:underline (:style wave :color ,yellow)))
-        (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
-     `(flycheck-fringe-error
-       ((,class (:foreground ,red-hc :background ,red-lc :weight bold))))
-     `(flycheck-fringe-warning
-       ((,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold))))
-
-     ;; flyspell
-     `(flyspell-duplicate
-       ((,(append '((supports :underline (:style wave))) class)
-         (:underline (:style wave :color ,yellow)))
-        (,class (:foreground ,yellow :weight bold :underline t))))
-     `(flyspell-incorrect
-       ((,(append '((supports :underline (:style wave))) class)
-         (:underline (:style wave :color ,red)))
-        (,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 :weight 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))))
-
-     ;; git-gutter
-     `(git-gutter:added ((,class (:background ,green :foreground ,solarized-bg  :weight bold))))
-     `(git-gutter:deleted ((,class (:background ,red :foreground ,solarized-bg  :weight bold))))
-     `(git-gutter:modified ((,class (:background ,blue :foreground ,solarized-bg :weight bold))))
-     `(git-gutter:unchanged ((,class (:background ,solarized-hl :foreground ,solarized-bg  :weight bold))))
-     ;; I use the following git-gutter settings along with those faces
-     ;; (when window-system
-     ;;  (let ((symbol "."))
-     ;;    (setq git-gutter:added-sign symbol
-     ;;          git-gutter:deleted-sign symbol
-     ;;          git-gutter:modified-sign symbol
-     ;;          git-gutter:unchanged-sign " ")))
-
-     ;; git-gutter-fr
-     `(git-gutter-fr:added ((,class (:foreground ,green  :weight bold))))
-     `(git-gutter-fr:deleted ((,class (:foreground ,red :weight bold))))
-     `(git-gutter-fr:modified ((,class (:foreground ,blue :weight bold))))
-
-     ;; guide-key
-     `(guide-key/highlight-command-face ((,class (:foreground ,blue))))
-     `(guide-key/key-face ((,class (:foreground ,solarized-comments))))
-     `(guide-key/prefix-command-face ((,class (:foreground ,green))))
-
-     ;; gnus
-     `(gnus-group-mail-1-face ((,class (:weight bold :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 (:weight bold :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 (:weight bold :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 (:weight bold :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 (:weight bold :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 (:weight bold :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 (:weight bold :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 (:weight bold :inherit gnus-group-news-1-empty))))
-     `(gnus-group-news-2-face ((,class (:weight bold :inherit gnus-group-news-2-empty))))
-     `(gnus-group-news-3-face ((,class (:weight bold :inherit gnus-group-news-3-empty))))
-     `(gnus-group-news-4-face ((,class (:weight bold :inherit gnus-group-news-4-empty))))
-     `(gnus-group-news-5-face ((,class (:weight bold :inherit gnus-group-news-5-empty))))
-     `(gnus-group-news-6-face ((,class (:weight bold :inherit gnus-group-news-6-empty))))
-     `(gnus-group-news-low-face ((,class (:weight bold :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-apt-deinstalled ((,class (:foreground ,solarized-comments))))
-     `(helm-apt-installed ((,class (:foreground ,green))))
-     `(helm-bookmark-directory ((,class (:inherit helm-ff-directory))))
-     `(helm-bookmark-file ((,class (:foreground ,solarized-fg))))
-     `(helm-bookmark-gnus ((,class (:foreground ,cyan))))
-     `(helm-bookmark-info ((,class (:foreground ,green))))
-     `(helm-bookmark-man ((,class (:foreground ,violet))))
-     `(helm-bookmark-w3m ((,class (:foreground ,yellow))))
-     `(helm-bookmarks-su ((,class (:foreground ,orange))))
-     `(helm-buffer-not-saved ((,class (:foreground ,orange))))
-     `(helm-buffer-saved-out ((,class (:foreground ,red :background ,solarized-bg
-                                                   :inverse-video t))))
-     `(helm-buffer-size ((,class (:foreground ,solarized-comments))))
-     `(helm-candidate-number ((,class (:background ,solarized-hl :foreground ,solarized-emph
-                                                   :bold t))))
-     `(helm-ff-directory ((,class (:background ,solarized-bg  :foreground ,blue))))
-     `(helm-ff-executable ((,class (:foreground ,green))))
-     `(helm-ff-file ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
-     `(helm-ff-invalid-symlink ((,class (:background ,solarized-bg :foreground ,orange
-                                                     :slant italic))))
-     `(helm-ff-prefix ((,class (:background ,yellow :foreground ,solarized-bg))))
-     `(helm-ff-symlink ((,class (:foreground ,cyan))))
-     `(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-lisp-completion-info ((,class (:foreground ,solarized-fg))))
-     `(helm-lisp-show-completion ((,class (:foreground ,yellow  :background ,solarized-hl
-                                                       :bold t))))
-     `(helm-M-x-key ((,class (:foreground ,orange :underline t))))
-     `(helm-moccur-buffer ((,class (:foreground ,cyan :underline t))))
-     `(helm-match ((,class (:inherit match))))
-     `(helm-selection ((,class (:background ,solarized-hl :underline t))))
-     `(helm-selection-line ((,class (:background ,solarized-hl :foreground ,solarized-emph
-                                                 :underline nil))))
-     `(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 ,solarized-bg :foreground ,magenta :bold t))))
-
-     ;; 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))))
-
-     ;; highlight-changes
-     `(highlight-changes ((,class (:foreground ,orange))))
-     `(highlight-changes-delete ((,class (:foreground ,red :underline t))))
-
-     ;; hl-line-mode
-     `(hl-line ((,class (:background ,solarized-hl))))
-     `(hl-line-face ((,class (:background ,solarized-hl))))
-
-     ;; ido-mode
-     `(ido-first-match ((,class (:foreground ,green :weight bold))))
-     `(ido-only-match ((,class (:foreground ,solarized-bg :background ,green :weight bold))))
-     `(ido-subdir ((,class (:foreground ,blue))))
-     `(ido-incomplete-regexp ((,class (:foreground ,red :weight bold ))))
-     `(ido-indicator ((,class (:background ,red :foreground ,solarized-bg :width condensed))))
-     `(ido-virtual ((,class (:foreground ,cyan))))
-
-     `(jabber-activity-face ((,class (:weight bold :foreground ,red))))
-     `(jabber-activity-personal-face ((,class (:weight bold :foreground ,blue))))
-     `(jabber-chat-error ((,class (:weight bold :foreground ,red))))
-     `(jabber-chat-prompt-foreign ((,class (:weight bold :foreground ,red))))
-     `(jabber-chat-prompt-local ((,class (:weight bold :foreground ,blue))))
-     `(jabber-chat-prompt-system ((,class (:weight bold :foreground ,green))))
-     `(jabber-chat-text-foreign ((,class (:foreground ,base1))))
-     `(jabber-chat-text-local ((,class (:foreground ,base0))))
-     `(jabber-chat-rare-time-face ((,class (:underline t :foreground ,green))))
-     `(jabber-roster-user-away ((,class (:slant italic :foreground ,green))))
-     `(jabber-roster-user-chatty ((,class (:weight bold :foreground ,orange))))
-     `(jabber-roster-user-dnd ((,class (:slant italic :foreground ,red))))
-     `(jabber-roster-user-error ((,class (:weight light :slant italic :foreground ,red))))
-     `(jabber-roster-user-offline ((,class (:foreground ,base01))))
-     `(jabber-roster-user-online ((,class (:weight bold :foreground ,blue))))
-     `(jabber-roster-user-xa ((,class (:slant italic :foreground ,magenta))))
-
-     ;; js2-mode colors
-     `(js2-error ((,class (:foreground ,red))))
-     `(js2-external-variable ((,class (:foreground ,orange))))
-     `(js2-function-param ((,class (:foreground ,green))))
-     `(js2-instance-member ((,class (:foreground ,magenta))))
-     `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,cyan))))
-     `(js2-jsdoc-html-tag-name ((,class (:foreground ,orange))))
-     `(js2-jsdoc-tag ((,class (:foreground ,cyan))))
-     `(js2-jsdoc-type ((,class (:foreground ,blue))))
-     `(js2-jsdoc-value ((,class (:foreground ,violet))))
-     `(js2-magic-paren ((,class (:underline t))))
-     `(js2-private-function-call ((,class (:foreground ,yellow))))
-     `(js2-private-member ((,class (:foreground ,blue))))
-     `(js2-warning ((,class (:underline ,orange))))
-
-     ;; jedi
-     `(jedi:highlight-function-argument ((,class (:inherit bold))))
-
-     ;; linum-mode
-     `(linum ((,class (:foreground ,solarized-fg :background ,solarized-bg))))
-
-     ;; lusty-explorer
-     `(lusty-directory-face ((,class (:inherit dired-directory))))
-     `(lusty-file-face ((,class nil)))
-     `(lusty-match-face ((,class (:inherit ido-first-match))))
-     `(lusty-slash-face ((,class (:foreground ,cyan :weight bold))))
-
-     ;; magit
-     `(magit-section-title ((,class (:foreground ,yellow :weight bold))))
-     `(magit-branch ((,class (:foreground ,orange :weight bold))))
-     `(magit-item-highlight ((,class (:background ,solarized-hl))))
-     `(magit-log-author ((,class (:foreground ,cyan))))
-     `(magit-log-graph ((,class (:foreground ,solarized-comments))))
-     `(magit-log-head-label-bisect-bad ((,class (:background ,red-hc :foreground ,red-lc :box 1))))
-     `(magit-log-head-label-bisect-good ((,class (:background ,green-hc :foreground ,green-lc
-                                                              :box 1))))
-     `(magit-log-head-label-default ((,class (:background ,solarized-hl :box 1))))
-     `(magit-log-head-label-local ((,class (:background ,blue-lc :foreground ,blue-hc :box 1))))
-     `(magit-log-head-label-patches ((,class (:background ,red-lc :foreground ,red-hc :box 1))))
-     `(magit-log-head-label-remote ((,class (:background ,green-lc :foreground ,green-hc :box 1))))
-     `(magit-log-head-label-tags ((,class (:background ,yellow-lc :foreground ,yellow-hc :box 1))))
-     `(magit-log-sha1 ((,class (:foreground ,yellow))))
-
-     ;; message-mode
-     `(message-cited-text ((,class (:foreground ,solarized-comments))))
-     `(message-header-name ((,class (:foreground ,green))))
-     `(message-header-other ((,class (:foreground ,green))))
-     `(message-header-to ((,class (:foreground ,yellow :weight bold))))
-     `(message-header-cc ((,class (:foreground ,orange :weight bold))))
-     `(message-header-newsgroups ((,class (:foreground ,yellow :weight bold))))
-     `(message-header-subject ((,class (:foreground ,orange))))
-     `(message-header-xheader ((,class (:foreground ,cyan))))
-     `(message-mml ((,class (:foreground ,yellow :weight bold))))
-     `(message-separator ((,class (:foreground ,solarized-comments :slant italic))))
-
-     ;; 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))))
-
-     ;; mingus
-     `(mingus-directory-face ((,class (:foreground ,blue))))
-     `(mingus-pausing-face ((,class (:foreground ,magenta))))
-     `(mingus-playing-face ((,class (:foreground ,cyan))))
-     `(mingus-playlist-face ((,class (:foreground ,cyan ))))
-     `(mingus-song-file-face ((,class (:foreground ,yellow))))
-     `(mingus-stopped-face ((,class (:foreground ,red))))
-
-     ;; moccur
-     `(moccur-current-line-face ((,class (:underline t))))
-     `(moccur-edit-done-face ((,class
-                               (:foreground ,solarized-comments
-                                            :background ,solarized-bg
-                                            :slant italic))))
-     `(moccur-edit-face
-       ((,class (:background ,yellow :foreground ,solarized-bg))))
-     `(moccur-edit-file-face ((,class (:background ,solarized-hl))))
-     `(moccur-edit-reject-face ((,class (:foreground ,red))))
-     `(moccur-face ((,class (:background ,solarized-hl :foreground ,solarized-emph
-                                         :weight bold))))
-     `(search-buffers-face ((,class (:background ,solarized-hl :foreground ,solarized-emph
-                                                 :weight bold))))
-     `(search-buffers-header-face ((,class (:background ,solarized-hl :foreground ,yellow
-                                                        :weight bold))))
-
-     ;; mu4e
-     `(mu4e-cited-1-face ((,class (:foreground ,green :slant italic :weight normal))))
-     `(mu4e-cited-2-face ((,class (:foreground ,blue :slant italic :weight normal))))
-     `(mu4e-cited-3-face ((,class (:foreground ,orange :slant italic :weight normal))))
-     `(mu4e-cited-4-face ((,class (:foreground ,yellow :slant italic :weight normal))))
-     `(mu4e-cited-5-face ((,class (:foreground ,cyan :slant italic :weight normal))))
-     `(mu4e-cited-6-face ((,class (:foreground ,green :slant italic :weight normal))))
-     `(mu4e-cited-7-face ((,class (:foreground ,blue :slant italic :weight normal))))
-     `(mu4e-flagged-face ((,class (:foreground ,magenta :weight bold))))
-     `(mu4e-view-url-number-face ((,class (:foreground ,orange :weight bold))))
-     `(mu4e-warning-face ((,class (:foreground ,red :slant normal :weight bold))))
-
-     ;; mumamo
-     `(mumamo-background-chunk-submode1 ((,class (:background ,solarized-hl))))
-
-     ;; 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))))
-
-     ;; nav-flash
-     `(nav-flash-face ((,class (:background ,solarized-hl))))
-
-     ;; 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 (: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 ,yellow))))
-     `(org-scheduled-today ((,class (:foreground ,blue :weight normal))))
-     `(org-special-keyword ((,class (:foreground ,solarized-comments :weight bold))))
-     `(org-table ((,class (:foreground ,green))))
-     `(org-tag ((,class (:weight bold))))
-     `(org-time-grid ((,class (:foreground ,cyan))))
-     `(org-todo ((,class (:foreground ,red :weight bold))))
-     `(org-upcoming-deadline ((,class (:foreground ,yellow  :weight normal :underline nil))))
-     `(org-warning ((,class (:foreground ,orange :weight normal :underline nil))))
-     ;; 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))))
-     ;; latest additions
-     `(org-agenda-dimmed-todo-face ((,class (:foreground ,solarized-comments))))
-     `(org-agenda-restriction-lock ((,class (:background ,yellow))))
-     `(org-clock-overlay ((,class (:background ,yellow))))
-     `(org-column ((,class (:background ,solarized-hl :strike-through nil
-                                        :underline nil :slant normal :weight normal))))
-     `(org-column-title ((,class (:background ,solarized-hl :underline t :weight bold))))
-     `(org-date-selected ((,class (:foreground ,red :inverse-video t))))
-     `(org-document-info ((,class (:foreground ,solarized-fg))))
-     `(org-document-title ((,class (:foreground ,solarized-emph  :weight bold :height 1.44))))
-     `(org-drawer ((,class (:foreground ,cyan))))
-     `(org-footnote ((,class (:foreground ,magenta :underline t))))
-     `(org-latex-and-export-specials ((,class (:foreground ,orange))))
-     `(org-mode-line-clock-overrun ((,class (:inherit modeline :background ,red))))
-
-     ;; outline
-     `(outline-1 ((,class (:inherit org-level-1))))
-     `(outline-2 ((,class (:inherit org-level-2))))
-     `(outline-3 ((,class (:inherit org-level-3))))
-     `(outline-4 ((,class (:inherit org-level-4))))
-     `(outline-5 ((,class (:inherit org-level-5))))
-     `(outline-6 ((,class (:inherit org-level-6))))
-     `(outline-7 ((,class (:inherit org-level-7))))
-     `(outline-8 ((,class (:inherit org-level-8))))
-
-     ;; pretty-mode
-     `(pretty-mode-symbol-face  ((,class (:foreground ,green))))
-
-     ;; popup
-     `(popup-face ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
-     `(popup-isearch-match ((,class (:background ,yellow :foreground ,solarized-bg))))
-     `(popup-menu-face ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
-     `(popup-menu-mouse-face ((,class (:background ,blue :foreground ,solarized-fg))))
-     `(popup-menu-selection-face ((,class (:background ,magenta :foreground ,solarized-bg))))
-     `(popup-scroll-bar-background-face ((,class (:background ,solarized-comments))))
-     `(popup-scroll-bar-foreground-face ((,class (:background ,solarized-emph))))
-     `(popup-tip-face ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
-
-     ;; 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 ,orange))))
-     `(rainbow-delimiters-depth-5-face ((,class (:foreground ,green))))
-     `(rainbow-delimiters-depth-6-face ((,class (:foreground ,yellow))))
-     `(rainbow-delimiters-depth-7-face ((,class (:foreground ,blue))))
-     `(rainbow-delimiters-depth-8-face ((,class (:foreground ,orange))))
-     `(rainbow-delimiters-depth-9-face ((,class (:foreground ,green))))
-     `(rainbow-delimiters-depth-10-face ((,class (:foreground ,yellow))))
-     `(rainbow-delimiters-depth-11-face ((,class (:foreground ,blue))))
-     `(rainbow-delimiters-depth-12-face ((,class (:foreground ,orange))))
-     `(rainbow-delimiters-unmatched-face
-       ((,class (:foreground ,solarized-fg :background ,solarized-bg :inverse-video t))))
-
-     ;; rst-mode
-     `(rst-level-1-face ((,class (:background ,yellow   :foreground ,solarized-bg))))
-     `(rst-level-2-face ((,class (:background ,cyan    :foreground ,solarized-bg))))
-     `(rst-level-3-face ((,class (:background ,blue    :foreground ,solarized-bg))))
-     `(rst-level-4-face ((,class (:background ,violet  :foreground ,solarized-bg))))
-     `(rst-level-5-face ((,class (:background ,magenta :foreground ,solarized-bg))))
-     `(rst-level-6-face ((,class (:background ,red     :foreground ,solarized-bg))))
-
-     ;; 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 :weight bold))))
-     `(sh-escaped-newline ((,class (:foreground ,yellow :weight bold))))
-     `(sh-heredoc ((,class (:foreground ,yellow :weight bold))))
-
-     ;; smartparens
-     `(sp-pair-overlay-face ((,class (:background ,solarized-hl))))
-     `(sp-wrap-overlay-face ((,class (:background ,solarized-hl))))
-     `(sp-wrap-tag-overlay-face ((,class (:background ,solarized-hl))))
-     `(sp-show-pair-enclosing ((,class (:inherit highlight))))
-     `(sp-show-pair-match-face
-       ((,class (:foreground ,cyan :background ,solarized-bg :weight normal :inverse-video t))))
-     `(sp-show-pair-mismatch-face
-       ((,class (:foreground ,red :background ,solarized-bg :weight normal :inverse-video 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))))
-
-     ;; mic-paren
-     `(paren-face-match
-       ((,class (:foreground ,cyan :background ,solarized-bg :weight normal :inverse-video t))))
-     `(paren-face-mismatch
-       ((,class (:foreground ,red :background ,solarized-bg :weight normal :inverse-video t))))
-     `(paren-face-no-match
-       ((,class (:foreground ,red :background ,solarized-bg :weight normal :inverse-video t))))
-
-     ;; SLIME
-     `(slime-repl-inputed-output-face ((,class (:foreground ,red))))
-
-     ;; speedbar
-     `(speedbar-button-face ((,class (:inherit variable-pitch :foreground ,solarized-comments))))
-     `(speedbar-directory-face ((,class (:inherit variable-pitch :foreground ,blue))))
-     `(speedbar-file-face ((,class (:inherit variable-pitch :foreground ,solarized-fg))))
-     `(speedbar-highlight-face ((,class (:inherit variable-pitch :background ,solarized-hl))))
-     `(speedbar-selected-face ((,class (:inherit variable-pitch :foreground ,yellow :underline t))))
-     `(speedbar-separator-face ((,class (:inherit variable-pitch
-                                                  :background ,blue :foreground ,solarized-bg
-                                                  :overline ,cyan-lc))))
-     `(speedbar-tag-face ((,class (:inherit variable-pitch :foreground ,green))))
-
-     ;; 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 :weight 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))))
-
-     ;; table
-     `(table-cell ((,class (:foreground ,solarized-fg :background ,solarized-hl))))
-
-     ;; term
-     `(term-color-black ((t (:foreground ,base03
-                                         :background ,base02))))
-     `(term-color-red ((t (:foreground ,red
-                                       :background ,red-d))))
-     `(term-color-green ((t (:foreground ,green
-                                         :background ,green-d))))
-     `(term-color-yellow ((t (:foreground ,yellow
-                                          :background ,yellow-d))))
-     `(term-color-blue ((t (:foreground ,blue
-                                        :background ,blue-d))))
-     `(term-color-magenta ((t (:foreground ,magenta
-                                           :background ,magenta-d))))
-     `(term-color-cyan ((t (:foreground ,cyan
-                                        :background ,cyan-d))))
-     `(term-color-white ((t (:foreground ,base00
-                                         :background ,base0))))
-     '(term-default-fg-color ((t (:inherit term-color-white))))
-     '(term-default-bg-color ((t (:inherit term-color-black))))
-
-
-     ;; 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))))
-
-     ;; tuareg
-     `(tuareg-font-lock-governing-face ((,class (:foreground ,magenta :weight bold))))
-     `(tuareg-font-lock-multistage-face ((,class (:foreground ,blue :background ,solarized-hl :weight bold))))
-     `(tuareg-font-lock-operator-face ((,class (:foreground ,solarized-emph))))
-     `(tuareg-font-lock-error-face ((,class (:foreground ,yellow :background ,red :weight bold))))
-     `(tuareg-font-lock-interactive-output-face ((,class (:foreground ,cyan))))
-     `(tuareg-font-lock-interactive-error-face ((,class (:foreground ,red))))
-
-     ;; undo-tree
-     `(undo-tree-visualizer-default-face
-       ((,class (:foreground ,solarized-comments :background ,solarized-bg))))
-     `(undo-tree-visualizer-unmodified-face ((,class (:foreground ,green))))
-     `(undo-tree-visualizer-current-face ((,class (:foreground ,blue :inverse-video t))))
-     `(undo-tree-visualizer-active-branch-face
-       ((,class (:foreground ,solarized-emph :background ,solarized-bg :weight bold))))
-     `(undo-tree-visualizer-register-face ((,class (:foreground ,yellow))))
-
-     ;; volatile highlights
-     `(vhl/default-face ((,class (:background ,green-lc :foreground ,green-hc))))
-
-     ;; w3m
-     `(w3m-anchor ((,class (:inherit link))))
-     `(w3m-arrived-anchor ((,class (:inherit link-visited))))
-     `(w3m-form ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
-     `(w3m-header-line-location-title ((,class (:background ,solarized-hl :foreground ,yellow))))
-     `(w3m-header-line-location-content ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
-     `(w3m-bold ((,class (:foreground ,solarized-emph :weight bold))))
-     `(w3m-image-anchor ((,class (:background ,solarized-bg :foreground ,cyan :inherit link))))
-     `(w3m-image ((,class (:background ,solarized-bg :foreground ,cyan))))
-     `(w3m-lnum-minibuffer-prompt ((,class (:foreground ,solarized-emph))))
-     `(w3m-lnum-match ((,class (:background ,solarized-hl))))
-     `(w3m-lnum ((,class (:underline nil :bold nil :foreground ,red))))
-     `(w3m-session-select ((,class (:foreground ,solarized-fg))))
-     `(w3m-session-selected ((,class (:foreground ,solarized-emph :bold t :underline t))))
-     `(w3m-tab-background ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
-     `(w3m-tab-selected-background ((,class (:background ,solarized-bg :foreground ,solarized-fg))))
-     `(w3m-tab-mouse ((,class (:background ,solarized-hl :foreground ,yellow))))
-     `(w3m-tab-selected ((,class (:background ,solarized-hl :foreground ,solarized-emph :bold t))))
-     `(w3m-tab-unselected ((,class (:background ,solarized-hl :foreground ,solarized-fg))))
-     `(w3m-tab-selected-retrieving ((,class (:background ,solarized-hl :foreground ,red))))
-     `(w3m-tab-unselected-retrieving ((,class (:background ,solarized-hl :foreground ,orange))))
-     `(w3m-tab-unselected-unseen ((,class (:background ,solarized-hl :foreground ,violet))))
-
-     ;; web-mode
-     `(web-mode-builtin-face ((,class (:foreground ,red))))
-     `(web-mode-comment-face ((,class (:foreground ,solarized-comments))))
-     `(web-mode-constant-face ((,class (:foreground ,blue :weight bold))))
-     `(web-mode-css-at-rule-face ((,class (:foreground ,violet :slant italic))))
-     `(web-mode-css-prop-face ((,class (:foreground ,violet))))
-     `(web-mode-css-pseudo-class-face ((,class (:foreground ,green :slant italic))))
-     `(web-mode-css-rule-face ((,class (:foreground ,blue))))
-     `(web-mode-doctype-face ((,class (:foreground ,solarized-comments
-                                                   :slant italic :weight bold))))
-     `(web-mode-folded-face ((,class (:underline t))))
-     `(web-mode-function-name-face ((,class (:foreground ,blue))))
-     `(web-mode-html-attr-name-face ((,class (:foreground ,blue :slant normal))))
-     `(web-mode-html-attr-value-face ((,class (:foreground ,cyan :slant italic))))
-     `(web-mode-html-tag-face ((,class (:foreground ,green))))
-     `(web-mode-keyword-face ((,class (:foreground ,yellow :weight bold))))
-     `(web-mode-preprocessor-face ((,class (:foreground ,yellow  :slant italic :weight bold))))
-     `(web-mode-string-face ((,class (:foreground ,cyan))))
-     `(web-mode-type-face ((,class (:foreground ,yellow))))
-     `(web-mode-variable-name-face ((,class (:foreground ,blue))))
-
-     ;; 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))))
-
-     ;; window-number-mode
-     `(window-number-face ((,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)
-
-     ;; highlight-changes
-     `(highlight-changes-colors '(,magenta ,violet))
-
-     ;; highlight-tail
-     `(highlight-tail-colors
-       '((,solarized-hl . 0)(,green-lc . 20)(,cyan-lc . 30)(,blue-lc . 50)
-         (,yellow-lc . 60)(,orange-lc . 70)(,magenta-lc . 85)(,solarized-hl . 100)))
-
-     `(vc-annotate-color-map
-      '((20 . ,red)
-        (40 . "#CF4F1F")
-        (60 . "#C26C0F")
-        (80 . ,yellow)
-        (100 . "#AB8C00")
-        (120 . "#A18F00")
-        (140 . "#989200")
-        (160 . "#8E9500")
-        (180 . ,green)
-        (200 . "#729A1E")
-        (220 . "#609C3C")
-        (240 . "#4E9D5B")
-        (260 . "#3C9F79")
-        (280 . ,cyan)
-        (300 . "#299BA6")
-        (320 . "#2896B5")
-        (340 . "#2790C3")
-        (360 . ,blue)))
-     `(vc-annotate-very-old-color nil)
-     `(vc-annotate-background nil))
-
-    ;; 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
-;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode 1))
-;; End:
-
-(provide 'solarized)
-
-;;; solarized.el ends here
diff --git a/.emacs.d/elisp/solarized-emacs/.bumpversion.cfg b/.emacs.d/elisp/solarized-emacs/.bumpversion.cfg
new file mode 100644 (file)
index 0000000..749062c
--- /dev/null
@@ -0,0 +1,6 @@
+[bumpversion]
+current_version = 1.2.1
+files = solarized-theme-pkg.el solarized.el
+commit = True
+tag = True
+
diff --git a/.emacs.d/elisp/solarized-emacs/DEV-GUIDE.md b/.emacs.d/elisp/solarized-emacs/DEV-GUIDE.md
new file mode 100644 (file)
index 0000000..b839d28
--- /dev/null
@@ -0,0 +1,89 @@
+# Information for contribution/development
+
+## Notes on how colors are used
+
+**This is a draft** which might not paint the whole picture right now. 
+
+### Introduction
+
+The main intent of this section is to help contributors decide on how to use
+colors and looks when making contribution.
+
+In a simplified sense it's might be beneficial to imagine the light theme as
+being as close as possible to writing written text on paper with a few tools
+like markers and coloured pencils at hand to highlight **exceptional
+circumstances**.
+
+This is not meant to be a strict guide but it can probably be follwed in most
+situations.
+
+### Upstream Solarized palette usage documentation
+
+The base Solarized colors have a canonical
+[usage documentation](http://ethanschoonover.com/solarized#usage-development)
+
+When referring to colors, the convention is to use the dark theme's
+base color names directly, e.g. `(:foreground ,base0)`. They will switch to
+their counterparts automatically in the light theme.
+
+Usage table for the automatic dark/light base colors:
+
+* `,base1` - optional emphasized content
+* `,base0` - body text / default code / primary content
+* `,base00` - unspecified (it's a separator)
+* `,base01` - comments / secondary content
+* `,base02` - background highlights
+* `,base03` - background
+
+### Basic strategy for selecting colors
+
+The most important general rule is to **avoid color pasta**.
+
+Examples:
+
+- Try to start by not using accent colors at all. It's common to get a good
+  enough visual separation by just using the baseXX colors.
+- Avoid having several accent colors grouped in a small space
+- Avoid having accent colors that are cycled or striped repeatedly.
+- It's sometimes even preferable to hide information by reusing colors rather
+  than creating more visual noise. It's hard to decide (for other people) what
+  to simplify/reduce away but it leads to a better reading experience.
+- For things small spaces like indicators, the baseXX are usually enough. The
+  indicator symbols themselves are probably good enough carriers of
+  information.
+
+### Accent colors that are used in special ways
+
+(Draft note: This is a simplified list written i haste, needs much more
+details. In worst case scenario it's even wrong, probably not though. Some of
+the bullet points lacks explanation right now)
+
+Generally I try to only use the most basic colors which I guess is
+cyan/blue/green/yellow (again, if possible).
+
+Some specific color information:
+
+- **magenta** is used as a temporary highlight color, in most cases it matches
+  direct user input actions such as isearch matches, ...
+- **red** is used to indicate errors only.
+  - Exception: In buffers displaying only or mostly a diff, **red** is ok for
+    indicating "removed".
+- **orange** is used to indicate errors only but be a little more relaxed with
+  that rule as opposed to **red**.
+- **violet** is very rarely used at all
+- **blue** / **green** / **red** can be used for diff like things indicating
+  modified/added/removed
+
+### Using colors that are not in the original solarized theme
+
+(TODO: document the lc/hc colors and possibly some of the blending thats used at places)
+
+- If possible, just don't do it.
+- One common usage is when there is a need to add yet another overlay where
+  most regular colors already are in use.
+- the lc/hc colors should usually be used together as fg/bg or bg/fg since
+  their contrast relationships works best like that.
+
+
+
+
diff --git a/.emacs.d/elisp/solarized-emacs/README.md b/.emacs.d/elisp/solarized-emacs/README.md
new file mode 100644 (file)
index 0000000..d4f04d6
--- /dev/null
@@ -0,0 +1,126 @@
+[![License GPL 3][badge-license]](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![MELPA](http://melpa.org/packages/solarized-theme-badge.svg)](http://melpa.org/#/solarized-theme)
+[![MELPA Stable](http://stable.melpa.org/packages/solarized-theme-badge.svg)](http://stable.melpa.org/#/solarized-theme)
+[![Join the chat at https://gitter.im/bbatsov/solarized-emacs](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bbatsov/solarized-emacs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+## Solarized for Emacs
+
+Solarized for Emacs is an Emacs port of the [Solarized theme for vim](http://ethanschoonover.com/solarized),
+developed by Ethan Schoonover.
+
+Solarized for Emacs is tested only under Emacs 24, but should be
+working under Emacs 23 as well. The theme is implemented in terms of
+customizations and `deftheme` and does not require the
+`color-theme-package`.
+
+## Installation
+
+Solarized for Emacs is available for installation via the
+[MELPA](http://melpa.org) and
+[Marmalade](http://marmalade-repo.org/) `package.el`
+repositories. Assuming you've set one of the them up (I recommend
+MELPA) you can install solarized like this:
+
+`M-x package-install solarized-theme`
+
+Afterwards - business as usual, just load one of the theme variants with `M-x
+load-theme`.
+
+(If you want to install manually that procedure is briefly documented in the
+FAQ at the end of this document.)
+
+## Customisations
+
+### Theme specific settings
+
+If you don't like low-contrast modeline or fringe, you can `customize` them
+either by doing `M-x customize-group solarized` or setting the values using
+elisp code:
+
+```el
+;; make the fringe stand out from the background
+(setq solarized-distinct-fringe-background t)
+
+;; Don't change the font for some headings and titles
+(setq solarized-use-variable-pitch nil)
+
+;; make the modeline high contrast
+(setq solarized-high-contrast-mode-line t)
+
+;; Use less bolding
+(setq solarized-use-less-bold t)
+
+;; Use more italics
+(setq solarized-use-more-italic t)
+
+;; Use less colors for indicators such as git:gutter, flycheck and similar
+(setq solarized-emphasize-indicators nil)
+
+;; Don't change size of org-mode headlines (but keep other size-changes)
+(setq solarized-scale-org-headlines nil)
+
+;; Avoid all font-size changes
+(setq solarized-height-minus-1 1)
+(setq solarized-height-plus-1 1)
+(setq solarized-height-plus-2 1)
+(setq solarized-height-plus-3 1)
+(setq solarized-height-plus-4 1)
+
+```
+
+Note that these need to be set **before** `load-theme` is invoked for Solarized.
+
+### Underline position setting for X
+
+If you are using Emacs under X you might like the following setting which puts
+the underline below the
+[font bottomline instead of the baseline](https://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.graPHIGS/doc/phigstrf/figures/afma5rbd.jpg).
+
+Imho it enhances the general readability and also it fits well with the default
+`solarized-high-contrast-mode-line` setting which uses an slightly emphazised
+underline for the modeline to create one horizontal window border in the same
+manner as the vertical border.
+
+```el
+(setq x-underline-at-descent-line t)
+```
+
+## Bugs & Improvements
+
+Please, report any problems that you find on the projects integrated
+issue tracker. If you've added some improvements and you want them
+included upstream don't hesitate to send me a patch or even better - a
+GitHub pull request.
+
+## FAQ
+
+### Stand-alone manual installation
+
+Save the following files in a folder that's on your Emacs' `load-path`:
+
+* [dash.el](https://raw.githubusercontent.com/magnars/dash.el/master/dash.el) - [dash](https://github.com/magnars/dash.el), a modern list library for Emacs
+* [solarized.el](https://raw.githubusercontent.com/bbatsov/solarized-emacs/master/solarized.el) - the solarized theme
+
+Save the following files into `~/.emacs.d/themes`:
+
+* [solarized-light-theme.el](https://raw.githubusercontent.com/bbatsov/solarized-emacs/master/solarized-light-theme.el)
+* [solarized-dark-theme.el](https://raw.githubusercontent.com/bbatsov/solarized-emacs/master/solarized-dark-theme.el)
+
+Add this your `.emacs.d`:
+
+```el
+(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
+```
+
+Now you can load the theme with the interactive function `load-theme`.
+
+## Contributors
+
+- [Thomas Frössman](http://t.jossystem.se)
+
+(Add yourself to the list)
+
+Cheers,<br\>
+[Bozhidar](http://twitter.com/bbatsov)
+
+[badge-license]: https://img.shields.io/badge/license-GPL_3-green.svg
diff --git a/.emacs.d/elisp/solarized-emacs/solarized-dark-theme.el b/.emacs.d/elisp/solarized-emacs/solarized-dark-theme.el
new file mode 100644 (file)
index 0000000..548b48e
--- /dev/null
@@ -0,0 +1,7 @@
+(require 'solarized)
+
+(deftheme solarized-dark "The dark variant of the Solarized colour theme")
+
+(create-solarized-theme 'dark 'solarized-dark)
+
+(provide-theme 'solarized-dark)
diff --git a/.emacs.d/elisp/solarized-emacs/solarized-light-theme.el b/.emacs.d/elisp/solarized-emacs/solarized-light-theme.el
new file mode 100644 (file)
index 0000000..15802c9
--- /dev/null
@@ -0,0 +1,7 @@
+(require 'solarized)
+
+(deftheme solarized-light "The light variant of the Solarized colour theme")
+
+(create-solarized-theme 'light 'solarized-light)
+
+(provide-theme 'solarized-light)
diff --git a/.emacs.d/elisp/solarized-emacs/solarized-theme-pkg.el b/.emacs.d/elisp/solarized-emacs/solarized-theme-pkg.el
new file mode 100644 (file)
index 0000000..5eebc89
--- /dev/null
@@ -0,0 +1,5 @@
+(define-package
+  "solarized-theme"
+  "1.2.1"
+  "The Solarized color theme, ported to Emacs."
+  '((dash "2.6.0")))
diff --git a/.emacs.d/elisp/solarized-emacs/solarized-theme-utils.el b/.emacs.d/elisp/solarized-emacs/solarized-theme-utils.el
new file mode 100644 (file)
index 0000000..2714363
--- /dev/null
@@ -0,0 +1,73 @@
+;;; solarized-theme-utils.el --- Utilities for solarized theme development
+
+;; Copyright (C) 2012 Thomas Frössman
+
+;; Author: Thomas Frössman <thomasf@jossystem.se>
+;; URL: http://github.com/bbatsov/solarized-emacs
+
+;; 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:
+;;
+;; Development utilities, these are not needed for normal theme usage
+;;
+
+;;;; Code:
+(require 'cl)
+(require 'solarized)
+
+(defun solarized-import-faces (&optional regexp already-defined)
+  "Imports current effective face definitions by regular expression
+in the format of solarized-theme.el."
+  (interactive (list (read-regexp "List faces matching regexp")))
+  (let*
+      ((all-faces (zerop (length regexp)))
+       (faces
+        (delq nil
+              (mapcar (lambda (face)
+                        (let ((s (symbol-name face)))
+                          (when (or all-faces (string-match regexp s))
+                            face)))
+                      (sort (face-list) #'string-lessp)))))
+    (mapc (lambda(face)
+            (when (or (not (get face 'theme-face)) already-defined)
+              (insert (format
+                       "`(%s ((,class %s)))%s
+"
+                       face
+                       (let (result)
+                         (dolist (entry face-attribute-name-alist result)
+                           (let* ((attribute (car entry))
+                                  (value (face-attribute face attribute)))
+                             (unless (eq value 'unspecified)
+                               (setq result
+                                     (nconc (list attribute
+                                                  (cond
+                                                   ((member* attribute
+                                                             '(":background"
+                                                               ":foreground")
+                                                             :test 'string=)
+                                                    (format "\"%s\"" value))
+                                                   (t value))) result))))))
+                       (if (get face 'theme-face)
+                           (format " ;; Already set by current theme!")
+                         "")))))
+          faces)))
+
+;; Local Variables:
+;; byte-compile-warnings: (not cl-functions)
+;; indent-tabs-mode: nil
+;; End:
+(provide 'solarized-theme-utils)
+;;; solarized-theme-utils.el ends here
diff --git a/.emacs.d/elisp/solarized-emacs/solarized-theme.el b/.emacs.d/elisp/solarized-emacs/solarized-theme.el
new file mode 100644 (file)
index 0000000..f2c69d5
--- /dev/null
@@ -0,0 +1,2 @@
+(require 'solarized)
+(provide 'solarized-theme)
diff --git a/.emacs.d/elisp/solarized-emacs/solarized.el b/.emacs.d/elisp/solarized-emacs/solarized.el
new file mode 100644 (file)
index 0000000..ad44e22
--- /dev/null
@@ -0,0 +1,2132 @@
+;;; solarized.el --- Solarized for Emacs.
+
+;; Copyright (C) 2011-2015 Bozhidar Batsov
+
+;; Author: Bozhidar Batsov <bozhidar@batsov.com>
+;; Author: Thomas Frössman <thomasf@jossystem.se>
+;; URL: http://github.com/bbatsov/solarized-emacs
+;; Version: 1.2.1
+
+;; 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.
+;;
+;;; Credits
+;;
+;; Ethan Schoonover created the original theme for vim on such this port
+;; is based.
+;;
+;;; Code:
+
+(require 'dash)
+
+;;; Options
+
+(defgroup solarized nil
+  "Solarized theme options.
+The theme has to be reloaded after changing anything in this group."
+  :group 'faces)
+
+(defcustom solarized-distinct-fringe-background nil
+  "Make the fringe background different from the normal background color.
+Also affects `linum-mode' background."
+  :type 'boolean
+  :group 'solarized)
+
+(defcustom solarized-use-variable-pitch t
+  "Use variable pitch face for some headings and titles."
+  :type 'boolean
+  :group 'solarized)
+
+(defcustom solarized-use-less-bold nil
+  "Use bold weight less often."
+  :type 'boolean
+  :group 'solarized)
+
+(defcustom solarized-use-more-italic nil
+  "Use italic slant more often."
+  :type 'boolean
+  :group 'solarized)
+
+(defcustom solarized-emphasize-indicators t
+  "Use more colors for indicators such as git:gutter, flycheck and similar."
+  :type 'boolean
+  :group 'solarized)
+
+(defcustom solarized-high-contrast-mode-line nil
+  "Make the active/inactive mode line stand out more."
+  :type 'boolean
+  :group 'solarized)
+
+(defcustom solarized-height-minus-1 0.8
+  "Font size -1."
+  :type 'number
+  :group 'solarized)
+
+(defcustom solarized-height-plus-1 1.1
+  "Font size +1."
+  :type 'number
+  :group 'solarized)
+
+(defcustom solarized-height-plus-2 1.15
+  "Font size +2."
+  :type 'number
+  :group 'solarized)
+
+(defcustom solarized-height-plus-3 1.2
+  "Font size +3."
+  :type 'number
+  :group 'solarized)
+
+(defcustom solarized-height-plus-4 1.3
+  "Font size +4."
+  :type 'number
+  :group 'solarized)
+
+(defcustom solarized-scale-org-headlines t
+  "Whether scaling of outline-headlines should apply to org-mode headlines."
+  :type 'boolean
+  :group 'solarized)
+
+;;; Utilities
+
+(defun solarized-color-name-to-rgb (color &optional frame)
+  "Convert COLOR string to a list of normalized RGB components.
+COLOR should be a color name (e.g. \"white\") or an RGB triplet
+string (e.g. \"#ff12ec\").
+
+Normally the return value is a list of three floating-point
+numbers, (RED GREEN BLUE), each between 0.0 and 1.0 inclusive.
+
+Optional argument FRAME specifies the frame where the color is to be
+displayed.  If FRAME is omitted or nil, use the selected frame.
+If FRAME cannot display COLOR, return nil."
+  ;; `colors-values' maximum value is either 65535 or 65280 depending on the
+  ;; display system.  So we use a white conversion to get the max value.
+  (let ((valmax (float (car (color-values "#ffffff")))))
+    (mapcar (lambda (x) (/ x valmax)) (color-values color frame))))
+
+(defun solarized-color-rgb-to-hex  (red green blue)
+  "Return hexadecimal notation for the color RED GREEN BLUE.
+RED, GREEN, and BLUE should be numbers between 0.0 and 1.0, inclusive."
+  (format "#%02x%02x%02x"
+          (* red 255) (* green 255) (* blue 255)))
+
+(defun solarized-color-blend (color1 color2 alpha)
+  "Blends COLOR1 onto COLOR2 with ALPHA.
+
+COLOR1 and COLOR2 should be color names (e.g. \"white\") or RGB
+triplet strings (e.g. \"#ff12ec\").
+
+Alpha should be a float between 0 and 1."
+  (apply 'solarized-color-rgb-to-hex
+         (-zip-with '(lambda (it other)
+                       (+ (* alpha it) (* other (- 1 alpha))))
+                    (solarized-color-name-to-rgb color1)
+                    (solarized-color-name-to-rgb color2))))
+
+;;; Setup Start
+
+(defun create-solarized-theme (variant theme-name &optional childtheme)
+  "Create a VARIANT of the theme named THEME-NAME.
+
+When optional argument CHILDTHEME function is supplied it's invoked to further
+customize the resulting theme."
+;;; Color palette
+  (let* ((class '((class color) (min-colors 89)))
+         (s-base03    "#002b36")
+         (s-base02    "#073642")
+         ;; emphasized content
+         (s-base01    "#586e75")
+         ;; primary content
+         (s-base00    "#657b83")
+         (s-base0     "#839496")
+         ;; comments
+         (s-base1     "#93a1a1")
+         ;; background highlight light
+         (s-base2     "#eee8d5")
+         ;; background light
+         (s-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")
+
+         ;; Solarized palette names, use these instead of -fg -bg...
+         (base0 (if (eq variant 'light) s-base00 s-base0))
+         (base00 (if (eq variant 'light) s-base0 s-base00))
+         (base1 (if (eq variant 'light) s-base01 s-base1))
+         (base01 (if (eq variant 'light) s-base1 s-base01))
+         (base2 (if (eq variant 'light) s-base02 s-base2))
+         (base02 (if (eq variant 'light) s-base2 s-base02))
+         (base3 (if (eq variant 'light) s-base03 s-base3))
+         (base03 (if (eq variant 'light) s-base3 s-base03))
+
+         ;; Line drawing color
+         ;;
+         ;; NOTE only use this for very thin lines that are hard to see using base02, in low
+         ;; color displayes base02 might be used instead
+         (s-line (if (eq variant 'light) "#cccec4" "#284b54"))
+
+         ;; Light/Dark adaptive higher/lower contrast accented colors
+         ;;
+         ;; NOTE 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))
+
+         ;; customize based face properties
+         (s-maybe-bold (if solarized-use-less-bold
+                           'unspecified 'bold))
+         (s-maybe-italic (if solarized-use-more-italic
+                             'italic 'normal))
+         (s-variable-pitch (if solarized-use-variable-pitch
+                               'variable-pitch 'default))
+         (s-fringe-bg (if solarized-distinct-fringe-background
+                          base02 base03))
+         (s-fringe-fg base01)
+
+
+         (s-header-line-fg (if solarized-high-contrast-mode-line
+                                    base1 base0))
+         (s-header-line-bg (if solarized-high-contrast-mode-line
+                                    base02 base03))
+         (s-header-line-underline (if solarized-high-contrast-mode-line
+                                      nil base02))
+
+         (s-mode-line-fg (if solarized-high-contrast-mode-line
+                             base03 base0))
+         (s-mode-line-bg (if solarized-high-contrast-mode-line
+                             base0 base02))
+         (s-mode-line-underline (if solarized-high-contrast-mode-line
+                                    nil s-line))
+
+         (s-mode-line-buffer-id-fg (if solarized-high-contrast-mode-line
+                                       'unspecified base1))
+         (s-mode-line-inactive-fg (if solarized-high-contrast-mode-line
+                                      base0 base01))
+         (s-mode-line-inactive-bg (if solarized-high-contrast-mode-line
+                                      base02 base03))
+         (s-mode-line-inactive-bc (if solarized-high-contrast-mode-line
+                                               base02 base02)))
+;;; Theme Faces
+    (custom-theme-set-faces
+     theme-name
+;;;; Built-in
+;;;;; basic coloring
+     `(default ((,class (:foreground ,base0 :background ,base03))))
+     `(shadow ((,class (:foreground ,base01))))
+     `(match ((,class (:background ,base02 :foreground ,base1 :weight bold))))
+     `(cursor ((,class (:foreground ,base03 :background ,base0
+                                    :inverse-video t))))
+     `(escape-glyph ((,class (:foreground ,violet))))
+     `(fringe ((,class (:foreground ,s-fringe-fg :background ,s-fringe-bg))))
+     `(highlight ((,class (:background ,base02))))
+     `(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))))
+     `(lazy-highlight ((,class (:foreground ,base03 :background ,yellow
+                                            :weight normal))))
+     `(widget-field ((,class (:background ,base02))))
+     '(button ((t (:underline t))))
+;;;;; compilation
+     `(compilation-column-face ((,class (:foreground ,cyan :underline nil))))
+     `(compilation-column-number ((,class (:inherit font-lock-doc-face :foreground ,cyan
+                                                    :underline nil))))
+     `(compilation-enter-directory-face ((,class (:foreground ,green :underline nil))))
+     `(compilation-error ((,class (:inherit error :underline nil))))
+     `(compilation-error-face ((,class (:foreground ,red : :underline nil))))
+     `(compilation-face ((,class (:foreground ,base0 :underline nil))))
+     `(compilation-info ((,class (:foreground ,base01 :underline nil :bold nil))))
+     `(compilation-info-face ((,class (:foreground ,blue :underline nil))))
+     `(compilation-leave-directory-face ((,class (:foreground ,green :underline nil))))
+     `(compilation-line-face ((,class (:foreground ,green :underline nil))))
+     `(compilation-line-number ((,class (:foreground ,green :underline nil))))
+     `(compilation-warning ((,class (:inherit warning :underline nil))))
+     `(compilation-warning-face ((,class (:foreground ,yellow :weight normal :underline nil))))
+
+     `(compilation-mode-line-exit
+       ((,class (:foreground unspecified :weight bold))))
+     `(compilation-mode-line-fail
+       ((,class (:inherit compilation-error :foreground ,red :weight bold))))
+     `(compilation-mode-line-run ((,class (:foreground ,orange :weight bold))))
+;;;;; cua
+     `(cua-global-mark ((,class (:background ,yellow :foreground ,base03))))
+     `(cua-rectangle ((,class (:inherit region
+                                        :background ,magenta :foreground ,base03))))
+     `(cua-rectangle-noselect ((,class (:inherit region :background ,base02
+                                                 :foreground ,base01))))
+;;;;; diary
+     `(diary ((,class (:foreground ,yellow))))
+;;;;; dired
+     `(dired-directory ((,class (:foreground ,blue :weight normal))))
+     `(dired-flagged ((,class (:foreground ,red))))
+     `(dired-header ((,class (:foreground ,base03 :background ,blue))))
+     `(dired-ignored ((,class (:inherit shadow))))
+     `(dired-mark ((,class (:foreground ,yellow :weight bold))))
+     `(dired-marked ((,class (:foreground ,magenta :weight bold))))
+     `(dired-perm-write ((,class (:foreground ,base0 :underline t))))
+     `(dired-symlink ((,class (:foreground ,cyan :weight normal :slant italic))))
+     `(dired-warning ((,class (:foreground ,orange :underline t))))
+;;;;; dired-async
+     `(dired-async-message ((,class (:background ,(if (eq variant 'light) yellow-l yellow) ))))
+     `(dired-async-mode-message
+       ((,class (:background ,(if (eq variant 'light) red-l red) ))))
+;;;;; dired-efap
+     `(dired-efap-face ((,class (:box nil
+                                      :background ,base02
+                                      :foreground ,base1
+                                      :underline ,s-line
+                                      :weight bold))))
+;;;;; dropdown
+     `(dropdown-list-face ((,class (:background ,base02 :foreground ,cyan))))
+     `(dropdown-list-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc))))
+;;;;; ecb
+     `(ecb-default-highlight-face ((,class (:background ,blue :foreground ,base03))))
+     `(ecb-history-bucket-node-dir-soure-path-face
+       ((,class (:inherit ecb-history-bucket-node-face :foreground ,yellow))))
+     `(ecb-source-in-directories-buffer-face ((,class (:inherit ecb-directories-general-face
+                                                                :foreground ,base0))))
+     `(ecb-history-dead-buffer-face ((,class (:inherit ecb-history-general-face
+                                                       :foreground ,base01))))
+     `(ecb-directory-not-accessible-face ((,class (:inherit ecb-directories-general-face
+                                                            :foreground ,base01))))
+     `(ecb-bucket-node-face ((,class (:inherit ecb-default-general-face :weight normal
+                                               :foreground ,blue))))
+     `(ecb-tag-header-face ((,class (:background ,base02))))
+     `(ecb-analyse-bucket-element-face ((,class (:inherit ecb-analyse-general-face
+                                                          :foreground ,green))))
+     `(ecb-directories-general-face ((,class (:inherit ecb-default-general-face :height 1.0))))
+     `(ecb-method-non-semantic-face ((,class (:inherit ecb-methods-general-face
+                                                       :foreground ,cyan))))
+     `(ecb-mode-line-prefix-face ((,class (:foreground ,green))))
+     `(ecb-tree-guide-line-face ((,class (:inherit ecb-default-general-face
+                                                   :foreground ,base02 :height 1.0))))
+;;;;; ee
+     `(ee-bookmarked ((,class (:foreground ,base1))))
+     `(ee-category ((,class (:foreground ,blue))))
+     `(ee-link ((,class (:inherit link))))
+     `(ee-link-visited ((,class (:inherit link-visited))))
+     `(ee-marked ((,class (:foreground ,magenta :weight bold))))
+     `(ee-omitted ((,class (:foreground ,base01))))
+     `(ee-shadow ((,class (:inherit shadow))))
+;;;;; enh-ruby-mode
+     `(enh-ruby-string-delimiter-face ((,class (:foreground ,yellow))))
+     `(enh-ruby-heredoc-delimiter-face ((,class (:inherit enh-ruby-string-delimiter-face))))
+     `(enh-ruby-regexp-delimiter-face ((,class (:inherit enh-ruby-string-delimiter-face))))
+     `(enh-ruby-op-face ((,class (:foreground ,base0))))
+     `(erm-syn-errline ((,class (:inherit flymake-errline))))
+     `(erm-syn-warnline ((,class (:inherit flymake-warnline))))
+;;;;; completions
+     `(completions-annotations ((t (:foreground ,base01))))
+;;;;; grep
+     `(grep-context-face ((,class (:foreground ,base0))))
+     `(grep-error-face ((,class (:foreground ,red :weight bold :underline t))))
+     `(grep-hit-face ((,class (:foreground ,blue))))
+     `(grep-match-face ((,class (:foreground ,orange :weight bold))))
+;;;;; isearch
+     `(isearch ((,class (:foreground ,base03 :background ,magenta :weight normal))))
+     `(isearch-fail ((,class (:foreground ,red :background ,base03 :bold t))))
+;;;;; man
+     `(Man-overstrike ((,class (:foreground ,blue :weight bold))))
+     `(Man-reverse ((,class (:foreground ,orange))))
+     `(Man-underline ((,class (:foreground ,green :underline t))))
+;;;;; misc faces
+     `(menu ((,class (:foreground ,base0 :background ,base03))))
+     `(minibuffer-prompt ((,class (:foreground ,base0))))
+     `(mode-line
+       ((,class (:inverse-video unspecified
+                                :overline ,s-mode-line-bg
+                                :underline ,s-mode-line-underline
+                                :foreground ,s-mode-line-fg
+                                :background ,s-mode-line-bg
+                                :box (:line-width 1 :color ,s-mode-line-bg
+                                                  :style unspecified)
+                                ))))
+     `(mode-line-buffer-id ((,class (:foreground ,s-mode-line-buffer-id-fg :weight bold))))
+     `(mode-line-inactive
+       ((,class (:inverse-video unspecified
+                                :overline ,s-mode-line-inactive-bc
+                                :underline ,s-mode-line-underline
+                                :foreground ,s-mode-line-inactive-fg
+                                :background ,s-mode-line-inactive-bg
+                                :box (:line-width 1 :color ,s-mode-line-inactive-bg
+                                                  :style unspecified)
+                                ))))
+     `(header-line
+       ((,class (:inverse-video unspecified
+                                :overline nil
+                                :underline ,s-header-line-underline
+                                :foreground ,s-header-line-fg
+                                :background ,s-header-line-bg
+                                :box (:line-width 2 :color ,s-header-line-bg
+                                                  :style unspecified)
+                                ))))
+     `(region ((,class (:foreground ,base03 :background ,base1))))
+     `(secondary-selection ((,class (:background ,base02))))
+
+     `(trailing-whitespace ((,class (:background ,red))))
+     `(vertical-border ((,class (:foreground ,s-line))))
+;;;;; font lock
+     `(font-lock-builtin-face ((,class (:foreground ,base0 :weight ,s-maybe-bold
+                                                    :slant ,s-maybe-italic))))
+     `(font-lock-comment-delimiter-face
+       ((,class (:foreground ,base01 :slant ,s-maybe-italic))))
+     `(font-lock-comment-face ((,class (:foreground ,base01))))
+     `(font-lock-constant-face ((,class (:foreground ,blue :weight bold))))
+     `(font-lock-doc-face ((,class (:foreground ,cyan :slant ,s-maybe-italic))))
+     `(font-lock-function-name-face ((,class (:foreground ,blue))))
+     `(font-lock-keyword-face ((,class (:foreground ,green :weight ,s-maybe-bold))))
+     `(font-lock-negation-char-face ((,class (:foreground ,yellow :weight bold))))
+     `(font-lock-preprocessor-face ((,class (:foreground ,blue))))
+     `(font-lock-regexp-grouping-construct ((,class (:foreground ,yellow :weight bold))))
+     `(font-lock-regexp-grouping-backslash ((,class (:foreground ,green :weight bold))))
+     `(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 (:inherit error :weight bold))))
+     `(c-annotation-face ((,class (:inherit font-lock-constant-face))))
+;;;; Third-party
+;;;;; ace-jump-mode
+     `(ace-jump-face-background
+       ((,class (:foreground ,base01 :background ,base03
+                             :inverse-video nil))))
+     `(ace-jump-face-foreground
+       ((,class (:foreground ,red :background ,base03 :inverse-video nil :weight bold))))
+;;;;; auctex
+     `(font-latex-bold-face ((,class (:inherit bold :foreground ,base1))))
+     `(font-latex-doctex-documentation-face ((,class (:background unspecified))))
+     `(font-latex-doctex-preprocessor-face ((,class
+                                             (:inherit (font-latex-doctex-documentation-face
+                                                        font-lock-builtin-face
+                                                        font-lock-preprocessor-face)))))
+     `(font-latex-italic-face ((,class (:inherit italic :foreground ,base1))))
+     `(font-latex-math-face ((,class (:foreground ,violet))))
+     `(font-latex-sectioning-0-face ((,class (:inherit font-latex-sectioning-1-face
+                                                       :height ,solarized-height-plus-1))))
+     `(font-latex-sectioning-1-face ((,class (:inherit font-latex-sectioning-2-face
+                                                       :height ,solarized-height-plus-1))))
+     `(font-latex-sectioning-2-face ((,class (:inherit font-latex-sectioning-3-face
+                                                       :height ,solarized-height-plus-1))))
+     `(font-latex-sectioning-3-face ((,class (:inherit font-latex-sectioning-4-face
+                                                       :height ,solarized-height-plus-1))))
+     `(font-latex-sectioning-4-face ((,class (:inherit font-latex-sectioning-5-face
+                                                       :height ,solarized-height-plus-1))))
+     `(font-latex-sectioning-5-face ((,class (:inherit ,s-variable-pitch :foreground ,yellow
+                                                       :weight bold))))
+     `(font-latex-sedate-face ((,class (:foreground ,base1))))
+     `(font-latex-slide-title-face ((,class (:inherit (,s-variable-pitch font-lock-type-face)
+                                                      :weight bold :height ,solarized-height-plus-3))))
+     `(font-latex-string-face ((,class (:foreground ,cyan))))
+     `(font-latex-subscript-face ((,class (:height ,solarized-height-minus-1))))
+     `(font-latex-superscript-face ((,class (:height ,solarized-height-minus-1))))
+     `(font-latex-verbatim-face ((,class (:inherit fixed-pitch :foreground ,base0
+                                                   :slant italic))))
+     `(font-latex-warning-face ((,class (:inherit bold :foreground ,orange))))
+;;;;; auto-complete
+     `(ac-candidate-face ((,class (:background ,base02 :foreground ,cyan))))
+     `(ac-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc))))
+     `(ac-candidate-mouse-face ((,class (:background ,cyan-hc :foreground ,cyan-lc))))
+     `(ac-completion-face ((,class (:foreground ,base1 :underline t))))
+     `(ac-gtags-candidate-face ((,class (:background ,base02 :foreground ,blue))))
+     `(ac-gtags-selection-face ((,class (:background ,blue-lc :foreground ,blue-hc))))
+     `(ac-yasnippet-candidate-face ((,class (:background ,base02 :foreground ,yellow))))
+     `(ac-yasnippet-selection-face ((,class (:background ,yellow-lc :foreground ,yellow-hc))))
+;;;;; auto highlight symbol
+     `(ahs-definition-face ((,class (:foreground ,magenta :background unspecified
+                                                 :slant normal))))
+     `(ahs-edit-mode-face ((,class (:foreground ,base03 :background ,magenta))))
+     `(ahs-face ((,class (:foreground ,magenta :background unspecified))))
+     `(ahs-plugin-bod-face ((,class (:foreground ,magenta :background unspecified ))))
+     `(ahs-plugin-defalt-face ((,class (:foreground ,magenta :background unspecified))))
+     `(ahs-plugin-whole-buffer-face ((,class (:foreground ,magenta  :background unspecified))))
+     `(ahs-warning-face ((,class (:foreground ,red :weight bold))))
+;;;;; android mode
+     `(android-mode-debug-face ((,class (:foreground ,green))))
+     `(android-mode-error-face ((,class (:foreground ,orange :weight bold))))
+     `(android-mode-info-face ((,class (:foreground ,base0))))
+     `(android-mode-verbose-face ((,class (:foreground ,base01))))
+     `(android-mode-warning-face ((,class (:foreground ,yellow))))
+;;;;; anzu-mode
+     `(anzu-mode-line ((,class (:foreground ,yellow :weight bold))))
+;;;;; bm
+     `(bm-face ((,class (:overline ,base0))))
+     `(bm-fringe-face ((,class (:overline ,base0))))
+     `(bm-fringe-persistent-face ((,class (:overline ,base0))))
+     `(bm-persistent-face ((,class (:overline ,base0))))
+;;;;; calfw
+     `(cfw:face-day-title ((,class (:background ,base02))))
+     `(cfw:face-annotation ((,class (:inherit cfw:face-day-title :foreground ,yellow))))
+     `(cfw:face-default-content ((,class (:foreground ,green))))
+     `(cfw:face-default-day ((,class (:inherit cfw:face-day-title :weight bold))))
+     `(cfw:face-disable ((,class (:inherit cfw:face-day-title
+                                           :foreground ,base01))))
+     `(cfw:face-grid ((,class (:foreground ,base01))))
+     `(cfw:face-header ((,class (:foreground ,blue-hc :background ,blue-lc :weight bold))))
+     `(cfw:face-holiday ((,class (:background nil :foreground ,red :weight bold))))
+     `(cfw:face-periods ((,class (:foreground ,magenta))))
+     `(cfw:face-select ((,class (:background ,magenta-lc :foreground ,magenta-hc))))
+     `(cfw:face-saturday ((,class (:foreground ,cyan-hc :background ,cyan-lc))))
+     `(cfw:face-sunday ((,class (:foreground ,red-hc :background ,red-lc :weight bold))))
+     `(cfw:face-title ((,class (:inherit ,s-variable-pitch :foreground ,yellow
+                                         :weight bold :height ,solarized-height-plus-4))))
+     `(cfw:face-today ((,class (:weight bold :background ,base02 :foreground nil))))
+     `(cfw:face-today-title ((,class (:background ,yellow-lc
+                                                  :foreground ,yellow-hc :weight bold))))
+     `(cfw:face-toolbar ((,class (:background ,base02 :foreground ,base0))))
+     `(cfw:face-toolbar-button-off ((,class (:background ,yellow-lc :foreground ,yellow-hc
+                                                         :weight bold))))
+     `(cfw:face-toolbar-button-on ((,class (:background ,yellow-hc :foreground ,yellow-lc
+                                                        :weight bold))))
+;;;;; clojure-test-mode
+     `(clojure-test-failure-face ((t (:foreground ,orange :weight bold :underline t))))
+     `(clojure-test-error-face ((t (:foreground ,red :weight bold :underline t))))
+     `(clojure-test-success-face ((t (:foreground ,green :weight bold :underline t))))
+;;;;; cider-repl-mode
+     `(cider-repl-err-output-face ((t (:inherit ,font-lock-warning-face :underline nil))))
+;;;;; cider-test-mode
+     `(cider-test-failure-face ((t (:foreground ,orange :weight bold :underline t))))
+     `(cider-test-error-face ((t (:foreground ,red :weight bold :underline t))))
+     `(cider-test-success-face ((t (:foreground ,green :weight bold :underline t))))
+;;;;; company-mode
+     `(company-template-field ((,class (:background ,yellow :foreground ,base02))))
+     `(company-tooltip ((,class (:background ,base02 :foreground ,cyan))))
+     `(company-tooltip-selection ((,class (:background ,cyan-lc :foreground ,cyan-hc))))
+     `(company-tooltip-mouse ((,class (:background ,cyan-hc :foreground ,cyan-lc))))
+     `(company-tooltip-common ((,class (:foreground ,base1 :underline t))))
+     `(company-tooltip-common-selection ((,class (:foreground ,base1 :underline t))))
+     `(company-tooltip-annotation ((,class (:foreground ,base1 :background ,base02))))
+     `(company-scrollbar-fg ((,class (:foreground ,base03 :background ,base0))))
+     `(company-scrollbar-bg ((,class (:background ,base02 :foreground ,cyan))))
+     `(company-preview ((,class (:background ,base02 :foreground ,cyan))))
+     `(company-preview-common ((,class (:foreground ,base1 :underline t))))
+;;;;; column-enforce-mode
+     `(column-enforce-face ((,class (:background unspecified :foreground ,magenta
+                                                 :inverse-video unspecified))))
+;;;;; cscope
+     `(cscope-file-face ((,class (:foreground ,green :weight bold))))
+     `(cscope-function-face ((,class (:foreground ,blue))))
+     `(cscope-line-number-face ((,class (:foreground ,yellow))))
+     `(cscope-line-face ((,class (:foreground ,base0))))
+     `(cscope-mouse-face ((,class (:background ,blue :foreground ,base0))))
+;;;;; ctable
+     `(ctbl:face-cell-select ((,class (:background ,base02 :foreground ,base1
+                                                   :underline ,base1 :weight bold))))
+     `(ctbl:face-continue-bar ((,class (:background ,base02 :foreground ,yellow))))
+     `(ctbl:face-row-select ((,class (:background ,base02 :foreground ,base0
+                                                  :underline t))))
+;;;;; coffee
+     `(coffee-mode-class-name ((,class (:foreground ,yellow :weight bold))))
+     `(coffee-mode-function-param ((,class (:foreground ,violet :slant italic))))
+
+;;;;; cperl-mode
+     `(cperl-array-face ((,class (:background unspecified :foreground ,blue))))
+     `(cperl-hash-face ((,class (:background unspecified :foreground ,blue))))
+     `(cperl-nonoverridable-face ((,class (:foreground ,base0 :weight bold))))
+
+;;;;; custom
+     `(custom-face-tag ((,class (:inherit ,s-variable-pitch :height ,solarized-height-plus-3
+                                          :foreground ,violet :weight normal))))
+     `(custom-variable-tag ((,class (:inherit ,s-variable-pitch
+                                              :foreground ,cyan :height ,solarized-height-plus-3))))
+     `(custom-comment-tag ((,class (:foreground ,base01))))
+     `(custom-group-tag ((,class (:inherit ,s-variable-pitch :foreground ,blue :height ,solarized-height-plus-3))))
+     `(custom-group-tag-1 ((,class (:inherit ,s-variable-pitch :foreground ,red :height ,solarized-height-plus-3))))
+     `(custom-state ((,class (:foreground ,green))))
+     `(custom-button ((,class (:background ,base02 :foreground ,base1
+                                           :box (:line-width 2 :style released-button)))))
+     `(custom-button-mouse ((,class (:background ,base01 :foreground ,base02
+                                                 :box (:line-width 2 :style released-button)))))
+     `(custom-button-pressed ((,class (:background ,base01 :foreground ,base1
+                                                   :box (:line-width 2 :style pressed-button)))))
+     `(custom-button-unraised ((,class (:inherit underline))))
+     `(custom-button-pressed-unraised ((,class (:inherit custom-button-unraised :foreground ,magenta))))
+;;;;; diff
+     `(diff-added ((,class (:foreground ,green :background nil))))
+     `(diff-changed ((,class (:foreground ,blue :background nil))))
+     `(diff-removed ((,class (:foreground ,red :background nil))))
+     `(diff-header ((,class (:background ,base03))))
+     `(diff-file-header
+       ((,class (:background ,base03 :foreground ,base0 :weight bold))))
+     `(diff-refine-added ((,class (:foreground ,green :background ,base03
+                                               :inverse-video t))))
+     `(diff-refine-change ((,class (:foreground ,blue :background ,base03
+                                                :inverse-video t))))
+     `(diff-refine-removed ((,class (:foreground ,red :background ,base03
+                                                 :inverse-video t))))
+;;;;; ediff
+     `(ediff-fine-diff-A ((,class (:background ,orange-lc))))
+     `(ediff-fine-diff-B ((,class (:background ,green-lc))))
+     `(ediff-fine-diff-C ((,class (:background ,yellow-lc))))
+
+     `(ediff-current-diff-C ((,class (:background ,blue-lc))))
+
+     `(ediff-even-diff-A ((,class (:background ,base01
+                                               :foreground ,base3 ))))
+     `(ediff-odd-diff-A ((,class (:background ,base01
+                                              :foreground ,base03 ))))
+     `(ediff-even-diff-B ((,class (:background ,base01
+                                               :foreground ,base03 ))))
+     `(ediff-odd-diff-B ((,class (:background ,base01
+                                              :foreground ,base03 ))))
+     `(ediff-even-diff-C ((,class (:background ,base01
+                                               :foreground ,base0 ))))
+     `(ediff-odd-diff-C ((,class (:background ,base01
+                                              :foreground ,base03 ))))
+
+;;;;;; alternative ediff (not finished)
+     ;; `(ediff-fine-diff-A ((,class (
+     ;;                               :background ,(solarized-color-blend blue base03 0.25))
+     ;;                              )))
+     ;; `(ediff-fine-diff-B ((,class (
+     ;;                               :background ,(solarized-color-blend violet base03 0.25))
+     ;;                              )))
+     ;; `(ediff-fine-diff-C ((,class (
+     ;;                               :background ,(solarized-color-blend yellow base03 0.25))
+     ;;                              )))
+     ;; `(ediff-current-diff-A ((,class (
+     ;;                                  :background ,(solarized-color-blend blue base03 0.15)
+     ;;                                              ))))
+     ;; `(ediff-current-diff-B ((,class (
+     ;;                                   :background ,(solarized-color-blend violet base03 0.15)
+     ;;                                              ))))
+     ;; `(ediff-current-diff-C ((,class (
+     ;;                                  :background ,(solarized-color-blend yellow base03 0.15)
+     ;;                                              ))))
+     ;; `(ediff-even-diff-A ((,class (
+     ;;                                ;; :background ,(solarized-color-blend base0 base03 0.15)
+     ;;                               :background ,base02
+     ;;                               ;; :foreground ,base2
+     ;;                                ;; :background ,(solarized-color-blend green base02 0.15)
+     ;;                                           ))))
+     ;; `(ediff-even-diff-B ((,class (
+     ;;                               ;; :background ,base01
+     ;;                               :background ,base02
+     ;;                               ;; :foreground ,base2
+     ;;                                           ))))
+     ;; `(ediff-even-diff-C ((,class (
+     ;;                               ;; :background ,base01
+     ;;                               :background ,base02
+     ;;                                           ;; :foreground ,base2
+     ;;                                           ))))
+     ;; `(ediff-odd-diff-A ((,class (
+     ;;                              ;; :background ,base01
+     ;;                                          :background ,base02
+     ;;                                          ))))
+     ;; `(ediff-odd-diff-B ((,class (
+     ;;                              ;; :background ,base01
+     ;;                                          :background ,base02
+     ;;                                          ))))
+     ;; `(ediff-odd-diff-C ((,class (
+     ;;                              ;; :background ,base01
+     ;;                                          :background ,base03
+     ;;                                          ))))
+     ;; `(ediff-current-diff-Ancestor ((,class (:background "VioletRed" :foreground "Black"))))
+     ;; `(ediff-even-diff-Ancestor ((,class (:background "Grey" :foreground "White"))))
+     ;; `(ediff-fine-diff-Ancestor ((,class (:background "Green" :foreground "Black"))))
+     ;; `(ediff-odd-diff-Ancestor ((,class (:background "gray40" :foreground "cyan3"))))
+     ;; `(ediff-even-diff-A ((,class (:underline ,base01))))
+     ;; `(ediff-odd-diff-A ((,class (:underline ,base01
+     ;;                                          ))))
+     ;; `(ediff-even-diff-B ((,class (:background ,base01
+     ;;                                           :foreground ,base03
+     ;;                                           ))))
+     ;; `(ediff-odd-diff-B ((,class (:background ,base01
+     ;;                                          :foreground ,base03
+     ;;                                          ))))
+     ;; `(ediff-even-diff-C ((,class (:background ,base01
+     ;;                                           :foreground ,base0
+     ;;                                           ))))
+     ;; `(ediff-odd-diff-C ((,class (:background ,base01
+     ;;                                          :foreground ,base03
+     ;;                                          ))))
+;;;;; diff-hl
+     `(diff-hl-change ((,class (:background ,blue-lc  :foreground ,blue-hc))))
+     `(diff-hl-delete ((,class (:background ,red-lc  :foreground ,red-hc))))
+     `(diff-hl-insert ((,class (:background ,green-lc  :foreground ,green-hc))))
+     `(diff-hl-unknown ((,class (:background ,cyan-lc   :foreground ,cyan-hc))))
+;;;;; edts
+     `(edts-face-error-line
+       ((,(append '((supports :underline (:style line))) class)
+         (:underline (:style line :color ,(if (eq variant 'light) red-l red)) :inherit unspecified))
+        (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
+     `(edts-face-warning-line
+       ((,(append '((supports :underline (:style line))) class)
+         (:underline (:style line :color ,(if (eq variant 'light) yellow-l yellow)) :inherit unspecified))
+        (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
+     `(edts-face-error-fringe-bitmap
+       ((,class (:foreground ,(if (eq variant 'light) red-l red) :background unspecified :weight bold))))
+     `(edts-face-warning-fringe-bitmap
+       ((,class (:foreground ,(if (eq variant 'light) yellow-l yellow) :background unspecified :weight bold))))
+     `(edts-face-error-mode-line
+       ((,class (:background ,(if (eq variant 'light) red-l red) :foreground unspecified))))
+     `(edts-face-warning-mode-line
+       ((,class (:background ,(if (eq variant 'light) yellow-l yellow) :foreground unspecified))))
+;;;;; elfeed
+     `(elfeed-search-date-face ((,class (:foreground ,base01))))
+     `(elfeed-search-feed-face ((,class (:foreground ,base01))))
+     `(elfeed-search-tag-face ((,class (:foreground ,base0))))
+     `(elfeed-search-title-face ((,class (:foreground ,base0))))
+
+;;;;; elscreen
+     `(elscreen-tab-background-face ((,class (:background ,base03))))
+     `(elscreen-tab-current-screen-face ((,class (:background ,base1 :foreground ,base03)) (t (:underline t))))
+     `(elscreen-tab-other-screen-face ((,class (:background ,base02 :foreground ,base01))))
+     `(elscreen-tab-control-face ((,class (:background ,base03 :foreground ,base0))))
+;;;;; epa
+     `(epa-mark ((,class (:foreground ,magenta :weight bold))))
+     `(epa-string ((,class (:foreground ,violet))))
+     `(epa-validity-disabled ((,class (:inverse-video t :slant italic))))
+     `(epa-validity-high ((,class (:weight bold))))
+     `(epa-validity-low ((,class (:slant italic))))
+     `(epa-validity-medium ((,class (:slant italic))))
+;;;;; epc
+     `(epc:face-title ((,class (:foreground ,blue :background ,base03
+                                            :weight normal :underline nil))))
+;;;;; eshell
+     `(eshell-prompt ((,class (:foreground ,yellow :weight bold))))
+     `(eshell-ls-archive ((,class (:foreground ,red :weight bold))))
+     `(eshell-ls-backup ((,class (:inherit font-lock-comment-face))))
+     `(eshell-ls-clutter ((,class (:inherit font-lock-comment-face))))
+     `(eshell-ls-directory ((,class (:foreground ,blue :weight bold))))
+     `(eshell-ls-executable ((,class (:foreground ,red :weight bold))))
+     `(eshell-ls-unreadable ((,class (:foreground ,base0))))
+     `(eshell-ls-missing ((,class (:inherit font-lock-warning-face))))
+     `(eshell-ls-product ((,class (:inherit font-lock-doc-face))))
+     `(eshell-ls-special ((,class (:foreground ,yellow :weight bold))))
+     `(eshell-ls-symlink ((,class (:foreground ,cyan :weight bold))))
+;;;;; evil-search-highlight-persist
+     `(evil-search-highlight-persist-highlight-face ((,class (:background ,(if (eq variant 'light) green-lc violet-lc)))))
+;;;;; fic
+     `(fic-author-face ((,class (:background ,base03 :foreground ,orange
+                                             :underline t :slant italic))))
+     `(fic-face ((,class (:background ,base03 :foreground ,orange
+                                      :weight normal :slant italic))))
+     `(font-lock-fic-face ((,class (:background ,base03 :foreground ,orange
+                                      :weight normal :slant italic))))
+;;;;; fixmee
+     `(fixmee-notice-face ((,class (:background nil :foreground ,base1
+                                               :underline nil :slant italic :weight bold))))
+
+;;;;; flx
+     `(flx-highlight-face ((,class (:foreground ,blue
+                                                :weight normal :underline nil))))
+;;;;; flymake
+     `(flymake-errline
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,red) :inherit unspecified
+                     :foreground unspecified :background unspecified))
+        (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
+     `(flymake-infoline
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,green) :inherit unspecified
+                     :foreground unspecified :background unspecified))
+        (,class (:foreground ,green-hc :background ,green-lc))))
+     `(flymake-warnline
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,yellow) :inherit unspecified
+                     :foreground unspecified :background unspecified))
+        (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
+;;;;; flycheck
+     `(flycheck-error
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,red) :inherit unspecified))
+        (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t))))
+     `(flycheck-warning
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,yellow) :inherit unspecified))
+        (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t))))
+     `(flycheck-info
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,(if solarized-emphasize-indicators
+                                              blue base03)) :inherit unspecified))
+        (,class (:foreground ,blue-hc :background ,blue-lc :weight bold :underline t))))
+     `(flycheck-fringe-error
+       ((,class (:foreground ,(if solarized-emphasize-indicators
+                                  red-hc red)
+                             :background ,(if solarized-emphasize-indicators
+                                              red-lc base03) :weight bold))))
+     `(flycheck-fringe-warning
+       ((,class (:foreground ,(if solarized-emphasize-indicators
+                                  yellow-hc yellow)
+                             :background ,(if solarized-emphasize-indicators
+                                              yellow-lc base03) :weight bold))))
+     `(flycheck-fringe-info
+       ((,class (:foreground ,(if solarized-emphasize-indicators
+                                  blue-hc base01)
+                             :background ,(if solarized-emphasize-indicators
+                                              blue-lc base03) :weight bold))))
+;;;;; flyspell
+     `(flyspell-duplicate
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,yellow) :inherit unspecified))
+        (,class (:foreground ,yellow :weight bold :underline t))))
+     `(flyspell-incorrect
+       ((,(append '((supports :underline (:style wave))) class)
+         (:underline (:style wave :color ,red) :inherit unspecified))
+        (,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-face))))
+     `(erc-default-face ((,class (:foreground ,base0))))
+     `(erc-highlight-face ((,class (:inherit erc-default-face
+                                             :background ,base02))))
+     `(erc-direct-msg-face ((,class (:inherit erc-default-face))))
+     `(erc-error-face ((,class (:inherit font-lock-warning-face))))
+     `(erc-fool-face ((,class (:inherit erc-default-face))))
+     `(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 :weight bold))))
+     `(erc-nick-msg-face ((,class (:inherit erc-default-face))))
+     `(erc-notice-face ((,class (:foreground ,green))))
+     `(erc-pal-face ((,class (:foreground ,orange :weight bold))))
+     `(erc-prompt-face ((,class (:foreground ,orange :background ,base03 :weight bold))))
+     `(erc-timestamp-face ((,class (:foreground ,green))))
+     `(erc-underline-face ((t (:underline t))))
+;;;;; git-gutter
+     `(git-gutter:added
+         ((,class (:weight normal
+                           :foreground ,(if solarized-emphasize-indicators
+                                            green s-fringe-fg)
+                         :background ,s-fringe-bg
+                         ))))
+     `(git-gutter:deleted
+         ((,class (:weight normal
+                           :foreground ,(if solarized-emphasize-indicators
+                                            red s-fringe-fg)
+                         :background ,s-fringe-bg
+                         ))))
+     `(git-gutter:modified
+       ((,class (:weight normal
+                         :foreground ,(if solarized-emphasize-indicators
+                                          blue s-fringe-fg)
+                         :background ,s-fringe-bg
+                         ))))
+     `(git-gutter:unchanged
+       ((,class (:weight normal
+                         :foreground ,(if solarized-emphasize-indicators
+                                          base01 s-fringe-fg)
+                         :background ,s-fringe-bg
+                         ))))
+;;;;; git-gutter-fr
+     `(git-gutter-fr:added ((,class (:foreground ,green  :weight bold))))
+     `(git-gutter-fr:deleted ((,class (:foreground ,red :weight bold))))
+     `(git-gutter-fr:modified ((,class (:foreground ,blue :weight bold))))
+;;;;; git-gutter+ and git-gutter+-fr
+     `(git-gutter+-added ((,class (:background ,green :foreground ,base03
+                                               :weight bold))))
+     `(git-gutter+-deleted ((,class (:background ,red :foreground ,base03
+                                                 :weight bold))))
+     `(git-gutter+-modified ((,class (:background ,blue :foreground ,base03
+                                                  :weight bold))))
+     `(git-gutter+-unchanged ((,class (:background ,base02
+                                                   :foreground ,base03
+                                                   :weight bold))))
+     `(git-gutter-fr+-added ((,class (:foreground ,green :weight bold))))
+     `(git-gutter-fr+-deleted ((,class (:foreground ,red :weight bold))))
+     `(git-gutter-fr+-modified ((,class (:foreground ,blue :weight bold))))
+;;;;; go-direx
+     `(go-direx-header ((,class (:foreground ,blue))))
+     `(go-direx-label ((,class (:foreground ,green))))
+     `(go-direx-package ((,class (:foreground ,base1 :weight bold))))
+
+;;;;;; go-mode
+     `(go-coverage-0 ((,class (:foreground ,orange))))
+     `(go-coverage-1 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 2.0 6))))))
+     `(go-coverage-2 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 3.0 6))))))
+     `(go-coverage-3 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 4.0 6))))))
+     `(go-coverage-4 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 5.0 6))))))
+     `(go-coverage-5 ((,class (:foreground ,blue))))
+     `(go-coverage-6 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 2.0 6))))))
+     `(go-coverage-7 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 3.0 6))))))
+     `(go-coverage-8 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 4.0 6))))))
+     `(go-coverage-9 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 5.0 6))))))
+     `(go-coverage-10 ((,class (:foreground ,cyan))))
+     `(go-coverage-covered ((,class (:foreground ,green))))
+     `(go-coverage-untracked ((,class (:foreground ,base01))))
+
+;;;;; guide-key
+     `(guide-key/highlight-command-face ((,class (:foreground ,blue))))
+     `(guide-key/key-face ((,class (:foreground ,base01))))
+     `(guide-key/prefix-command-face ((,class (:foreground ,green))))
+;;;;; gnus
+     `(gnus-group-mail-1 ((,class (:weight bold :inherit gnus-group-mail-1-empty))))
+     `(gnus-group-mail-1-empty ((,class (:inherit gnus-group-news-1-empty))))
+     `(gnus-group-mail-2 ((,class (:weight bold :inherit gnus-group-mail-2-empty))))
+     `(gnus-group-mail-2-empty ((,class (:inherit gnus-group-news-2-empty))))
+     `(gnus-group-mail-3 ((,class (:weight bold :inherit gnus-group-mail-3-empty))))
+     `(gnus-group-mail-3-empty ((,class (:inherit gnus-group-news-3-empty))))
+     `(gnus-group-mail-low ((,class (:weight bold :inherit gnus-group-mail-low-empty))))
+     `(gnus-group-mail-low-empty ((,class (:inherit gnus-group-news-low-empty))))
+     `(gnus-group-news-1 ((,class (:weight bold :inherit gnus-group-news-1-empty))))
+     `(gnus-group-news-2 ((,class (:weight bold :inherit gnus-group-news-2-empty))))
+     `(gnus-group-news-3 ((,class (:weight bold :inherit gnus-group-news-3-empty))))
+     `(gnus-group-news-4 ((,class (:weight bold :inherit gnus-group-news-4-empty))))
+     `(gnus-group-news-5 ((,class (:weight bold :inherit gnus-group-news-5-empty))))
+     `(gnus-group-news-6 ((,class (:weight bold :inherit gnus-group-news-6-empty))))
+     `(gnus-group-news-low ((,class (:weight bold :inherit gnus-group-news-low-empty))))
+     `(gnus-header-content ((,class (:inherit message-header-other))))
+     `(gnus-header-from ((,class (:inherit message-header-other))))
+     `(gnus-header-name ((,class (:inherit message-header-name))))
+     `(gnus-header-newsgroups ((,class (:inherit message-header-other))))
+     `(gnus-header-subject ((,class (:inherit message-header-subject))))
+     `(gnus-summary-cancelled ((,class (:foreground ,orange))))
+     `(gnus-summary-high-ancient ((,class (:foreground ,blue :weight bold))))
+     `(gnus-summary-high-read ((,class (:foreground ,green :weight bold))))
+     `(gnus-summary-high-ticked ((,class (:foreground ,orange :weight bold))))
+     `(gnus-summary-high-unread ((,class (:foreground ,base0 :weight bold))))
+     `(gnus-summary-low-ancient ((,class (:foreground ,blue))))
+     `(gnus-summary-low-read ((t (:foreground ,green))))
+     `(gnus-summary-low-ticked ((,class (:foreground ,orange))))
+     `(gnus-summary-low-unread ((,class (:foreground ,base0))))
+     `(gnus-summary-normal-ancient ((,class (:foreground ,blue))))
+     `(gnus-summary-normal-read ((,class (:foreground ,green))))
+     `(gnus-summary-normal-ticked ((,class (:foreground ,orange))))
+     `(gnus-summary-normal-unread ((,class (:foreground ,base0))))
+     `(gnus-summary-selected ((,class (:foreground ,yellow :weight bold))))
+     `(gnus-cite-1 ((,class (:foreground ,blue))))
+     `(gnus-cite-2 ((,class (:foreground ,blue))))
+     `(gnus-cite-3 ((,class (:foreground ,blue))))
+     `(gnus-cite-4 ((,class (:foreground ,green))))
+     `(gnus-cite-5 ((,class (:foreground ,green))))
+     `(gnus-cite-6 ((,class (:foreground ,green))))
+     `(gnus-cite-7 ((,class (:foreground ,red))))
+     `(gnus-cite-8 ((,class (:foreground ,red))))
+     `(gnus-cite-9 ((,class (:foreground ,red))))
+     `(gnus-cite-10 ((,class (:foreground ,yellow))))
+     `(gnus-cite-11 ((,class (:foreground ,yellow))))
+     `(gnus-group-news-1-empty ((,class (:foreground ,yellow))))
+     `(gnus-group-news-2-empty ((,class (:foreground ,green))))
+     `(gnus-group-news-3-empty ((,class (:foreground ,green))))
+     `(gnus-group-news-4-empty ((,class (:foreground ,blue))))
+     `(gnus-group-news-5-empty ((,class (:foreground ,blue))))
+     `(gnus-group-news-6-empty ((,class (:foreground ,blue-lc))))
+     `(gnus-group-news-low-empty ((,class (:foreground ,base01))))
+     `(gnus-signature ((,class (:foreground ,yellow))))
+     `(gnus-x-face ((,class (:background ,base0 :foreground ,base03))))
+;;;;; helm
+     ;; These probably needs tweaking.
+     `(helm-apt-deinstalled ((,class (:foreground ,base01))))
+     `(helm-apt-installed ((,class (:foreground ,green))))
+     `(helm-bookmark-directory ((,class (:inherit helm-ff-directory))))
+     `(helm-bookmark-file ((,class (:foreground ,base0))))
+     `(helm-bookmark-gnus ((,class (:foreground ,cyan))))
+     `(helm-bookmark-info ((,class (:foreground ,green))))
+     `(helm-bookmark-man ((,class (:foreground ,violet))))
+     `(helm-bookmark-w3m ((,class (:foreground ,yellow))))
+     `(helm-bookmarks-su ((,class (:foreground ,orange))))
+     `(helm-buffer-not-saved ((,class (:foreground ,orange))))
+     `(helm-buffer-saved-out ((,class (:foreground ,red :background ,base03
+                                                   :inverse-video t))))
+     `(helm-buffer-size ((,class (:foreground ,base01))))
+     `(helm-candidate-number ((,class (:background ,base02 :foreground ,base1
+                                                   :bold t))))
+     `(helm-ff-directory ((,class (:background ,base03  :foreground ,blue))))
+     `(helm-ff-executable ((,class (:foreground ,green))))
+     `(helm-ff-file ((,class (:background ,base03 :foreground ,base0))))
+     `(helm-ff-invalid-symlink ((,class (:background ,base03 :foreground ,orange
+                                                     :slant italic))))
+     `(helm-ff-prefix ((,class (:background ,yellow :foreground ,base03))))
+     `(helm-ff-symlink ((,class (:foreground ,cyan))))
+     `(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-lisp-completion-info ((,class (:foreground ,base0))))
+     `(helm-lisp-show-completion ((,class (:foreground ,yellow  :background ,base02
+                                                       :bold t))))
+     `(helm-M-x-key ((,class (:foreground ,orange :underline t))))
+     `(helm-moccur-buffer ((,class (:foreground ,cyan :underline t))))
+     `(helm-match ((,class (:inherit match))))
+     `(helm-selection ((,class (:background ,base02 :underline t))))
+     `(helm-selection-line ((,class (:background ,base02 :foreground ,base1
+                                                 :underline nil))))
+     `(helm-separator ((,class (:foreground ,red))))
+     `(helm-source-header ((,class (:background ,blue-lc :foreground ,base03
+                                                :underline nil))))
+     `(helm-time-zone-current ((,class (:foreground ,green))))
+     `(helm-time-zone-home ((,class (:foreground ,red))))
+     `(helm-visible-mark ((,class (:background ,base03 :foreground ,magenta :bold t))))
+;;;;; helm-css-scss
+     `(helm-css-scss-selector-depth-face-1 ((,class (:foreground ,base0))))
+     `(helm-css-scss-selector-depth-face-2 ((,class (:foreground ,blue))))
+     `(helm-css-scss-selector-depth-face-3 ((,class (:foreground ,cyan))))
+     `(helm-css-scss-selector-depth-face-4 ((,class (:foreground ,green))))
+     `(helm-css-scss-selector-depth-face-5 ((,class (:foreground ,yellow))))
+     `(helm-css-scss-selector-depth-face-6 ((,class (:foreground ,violet))))
+     `(helm-css-scss-target-line-face ((,class (:background unspecified :foreground ,magenta))))
+;;;;; helm-go-package
+     `(helm-source-go-package-godoc-description ((,class (:foreground ,base01))))
+;;;;; helm-swoop
+     `(helm-swoop-target-line-face ((,class (:foreground unspecified :background ,base02))))
+     `(helm-swoop-target-line-block-face ((,class (:foreground unspecified :background ,base02))))
+     `(helm-swoop-target-word-face ((,class (:foreground ,magenta :background unspecified))))
+;;;;; hi-lock-mode
+     `(hi-yellow ((,class (:foreground ,(solarized-color-blend yellow base1 0.5)
+                                       :background,(solarized-color-blend yellow base03 0.15)))))
+     `(hi-pink ((,class (:foreground ,(solarized-color-blend magenta base1 0.5)
+                                       :background,(solarized-color-blend magenta base03 0.15)))))
+     `(hi-green ((,class (:foreground ,(solarized-color-blend green base1 0.5)
+                                       :background,(solarized-color-blend green base03 0.15)))))
+     `(hi-blue ((,class (:foreground ,(solarized-color-blend blue base1 0.5)
+                                       :background,(solarized-color-blend blue base03 0.15)))))
+     `(hi-black-b ((,class (:foreground ,base1
+                                        :background ,base03
+                                        :weight bold))))
+     `(hi-blue-b ((,class (:weight bold
+                                   :foreground ,(solarized-color-blend cyan base1 0.7)
+                                   :background ,(solarized-color-blend cyan base03 0.2)))))
+     `(hi-green-b ((,class (:weight bold
+                           :foreground ,(solarized-color-blend green base1 0.7)
+                           :background ,(solarized-color-blend green base03 0.2)))))
+     `(hi-red-b ((,class (:weight bold
+                                  :foreground ,(solarized-color-blend red base1 0.7)
+                                  :background ,(solarized-color-blend red base03 0.2)))))
+     `(hi-black-hb ((,class (:weight bold
+                                     :foreground ,base1
+                                     :background ,base02))))
+;;;;; highlight-changes
+     `(highlight-changes ((,class (:foreground ,orange))))
+     `(highlight-changes-delete ((,class (:foreground ,red :underline t))))
+;;;;; highlight-indentation
+     `(highlight-indentation-face ((,class (:background ,base02))))
+     `(highlight-indentation-current-column-face((,class (:background ,base02))))
+;;;;; highlight-symbol
+     `(highlight-symbol-face ((,class (:foreground ,magenta))))
+;;;;; hl-line-mode
+     `(hl-line ((,class (:background ,base02))))
+     `(hl-line-face ((,class (:background ,base02))))
+;;;;; ido-mode
+     `(ido-first-match ((,class (:foreground ,yellow :weight normal))))
+     `(ido-only-match ((,class (:foreground ,base03 :background ,yellow :weight normal))))
+     `(ido-subdir ((,class (:foreground ,blue))))
+     `(ido-incomplete-regexp ((,class (:foreground ,red :weight bold ))))
+     `(ido-indicator ((,class (:background ,red :foreground ,base03 :width condensed))))
+     `(ido-virtual ((,class (:foreground ,cyan))))
+;;;;; info
+     `(info-title-1 ((,class (:foreground ,base1 :weight bold))))
+     `(info-title-2 ((,class (:foreground ,base1 :weight bold))))
+     `(info-title-3 ((,class (:weight bold))))
+     `(info-title-4 ((,class (:weight bold))))
+     `(info-node ((,class (:foreground ,base1 :slant italic :weight bold))))
+     `(info-header-node ((,class (:inherit info-node))))
+     `(info-header-xref ((,class (:inherit info-xref))))
+     `(info-index-match ((,class (:inherit match))))
+     `(info-menu-header ((,class (:inherit variable-pitch :weight bold))))
+     `(info-menu-star ((,class (:foreground ,orange))))
+     `(info-xref ((,class (:inherit link))))
+     `(info-xref-visited ((,class (:inherit (link-visited info-xref)))))
+;;;;; info+
+     `(info-file
+       ((,class (:foreground ,yellow :background ,base02))))
+     `(info-menu
+       ((,class (:foreground ,violet :background ,base02))))
+     `(info-single-quote
+       ((,class (:foreground ,cyan :inherit font-lock-string-face))))
+     `(info-quoted-name
+       ((,class (:foreground ,orange :inherit font-lock-string-face))))
+     `(info-string
+       ((,class (:foreground ,blue :inherit font-lock-string-face))))
+     `(info-command-ref-item
+       ((,class (:foreground ,green :background ,base02))))
+     `(info-constant-ref-item
+       ((,class (:foreground ,red :background ,base02))))
+     `(info-function-ref-item
+       ((,class (:foreground ,cyan :background ,base02))))
+     `(info-macro-ref-item
+       ((,class (:foreground ,green :background ,base02))))
+     `(info-reference-item
+       ((,class (:background ,base02))))
+     `(info-special-form-ref-item
+       ((,class (:foreground ,magenta :background ,base02))))
+     `(info-syntax-class-item
+       ((,class (:foreground ,magenta :background ,base02))))
+     `(info-user-option-ref-item
+       ((,class (:foreground ,orange :background ,base02))))
+;;;;; jabber
+     `(jabber-activity-face ((,class (:weight bold :foreground ,red))))
+     `(jabber-activity-personal-face ((,class (:weight bold :foreground ,blue))))
+     `(jabber-chat-error ((,class (:weight bold :foreground ,red))))
+     `(jabber-chat-prompt-foreign ((,class (:weight bold :foreground ,red))))
+     `(jabber-chat-prompt-local ((,class (:weight bold :foreground ,blue))))
+     `(jabber-chat-prompt-system ((,class (:weight bold :foreground ,green))))
+     `(jabber-chat-text-foreign ((,class (:foreground ,base1))))
+     `(jabber-chat-text-local ((,class (:foreground ,base0))))
+     `(jabber-chat-rare-time-face ((,class (:underline t :foreground ,green))))
+     `(jabber-roster-user-away ((,class (:slant italic :foreground ,green))))
+     `(jabber-roster-user-chatty ((,class (:weight bold :foreground ,orange))))
+     `(jabber-roster-user-dnd ((,class (:slant italic :foreground ,red))))
+     `(jabber-roster-user-error ((,class (:weight light :slant italic :foreground ,red))))
+     `(jabber-roster-user-offline ((,class (:foreground ,base01))))
+     `(jabber-roster-user-online ((,class (:weight bold :foreground ,blue))))
+     `(jabber-roster-user-xa ((,class (:slant italic :foreground ,magenta))))
+;;;;; js2-mode colors
+     `(js2-error ((,class (:foreground ,red))))
+     `(js2-external-variable ((,class (:foreground ,orange))))
+     `(js2-function-param ((,class (:foreground ,green))))
+     `(js2-instance-member ((,class (:foreground ,magenta))))
+     `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,cyan))))
+     `(js2-jsdoc-html-tag-name ((,class (:foreground ,orange))))
+     `(js2-jsdoc-tag ((,class (:foreground ,cyan))))
+     `(js2-jsdoc-type ((,class (:foreground ,blue))))
+     `(js2-jsdoc-value ((,class (:foreground ,violet))))
+     `(js2-magic-paren ((,class (:underline t))))
+     `(js2-private-function-call ((,class (:foreground ,yellow))))
+     `(js2-private-member ((,class (:foreground ,blue))))
+     `(js2-warning ((,class (:underline ,orange))))
+;;;;; jedi
+     `(jedi:highlight-function-argument ((,class (:inherit bold))))
+;;;;; kite
+     ;; Sadly kite is not very stable for me so these faces might miss out things.
+     `(bg:kite-dataReceived ((,class (:background ,magenta))))
+     `(bg:kite-receiveHeadersEnd ((,class (:background ,green))))
+     `(bg:kite-requestStart ((,class (:background ,red))))
+     `(bg:kite-sendEnd ((,class (:background ,cyan))))
+     `(bg:kite-table-head ((,class (:background ,base02))))
+     `(bg:kite-tick ((,class (:background ,base02))))
+     `(kite-css-computed-proprietary-unused-property ((,class (:inherit kite-css-proprietary-property :foreground ,blue))))
+     `(kite-css-computed-unused-property ((,class (:inherit kite-css-property :foreground ,blue))))
+     `(kite-css-value-widget-error ((,class (:background ,orange-lc :foreground ,orange-hc))))
+     `(kite-css-value-widget-modified ((,class (:background ,base02 :foreground ,yellow))))
+     `(kite-delimited-data-face ((,class (:foreground ,green))))
+     `(kite-delimiter-face ((,class (:foreground ,base1))))
+     `(kite-modified-attribute-local-name-face ((,class (:inherit kite-attribute-local-name-face :background ,base02))))
+     `(kite-modified-attribute-value-face ((,class (:inherit kite-attribute-value-face :background ,base02))))
+     `(kite-modified-element-local-name-face ((,class (:inherit kite-element-local-name-face :background ,base02))))
+     `(kite-name-face ((,class (:foreground ,blue))))
+     `(kite-proto-property-name ((,class (:inherit default :foreground ,base02))))
+     `(kite-ref-face ((,class (:foreground ,cyan))))
+     `(kite-session-closed ((,class (:inherit default :background ,red))))
+     `(kite-text-face ((,class (:background nil :foreground ,base01))))
+     `(kite-node-highlight-face ((,class (:background ,base02))))
+     `(bg:kite-pageStart ((,class nil)))
+     `(kite-attribute-colon-face ((,class (:inherit kite-name-face))))
+     `(kite-attribute-local-name-face ((,class (:inherit kite-name-face))))
+     `(kite-attribute-prefix-face ((,class (:inherit kite-name-face))))
+     `(kite-attribute-value-delimiter-face ((,class (:inherit kite-delimiter-face))))
+     `(kite-attribute-value-face ((,class (:inherit kite-delimited-data-face))))
+     `(kite-boolean ((,class (:inherit nxml-char-ref-number))))
+     `(kite-cdata-section-CDATA-face ((,class (:inherit kite-name-face))))
+     `(kite-cdata-section-content-face ((,class (:inherit kite-text-face))))
+     `(kite-cdata-section-delimiter-face ((,class (:inherit kite-delimiter-face))))
+     `(kite-char-ref-delimiter-face ((,class (:inherit kite-ref-face))))
+     `(kite-char-ref-number-face ((,class (:inherit kite-ref-face))))
+     `(kite-comment-content-face ((,class (:slant italic))))
+     `(kite-comment-delimiter-face ((,class (:inherit kite-delimiter-face))))
+     `(kite-console-prompt-face ((,class (:inherit default))))
+     `(kite-css-property ((,class (:inherit css-property))))
+     `(kite-css-proprietary-property ((,class (:inherit css-proprietary-property))))
+     `(kite-css-selected-overlay ((,class (:inherit secondary-selection))))
+     `(kite-css-selector ((,class (:inherit css-selector))))
+     `(kite-element-colon-face ((,class (:inherit kite-name-face))))
+     `(kite-element-local-name-face ((,class (:inherit kite-name-face))))
+     `(kite-element-prefix-face ((,class (:inherit kite-name-face))))
+     `(kite-entity-ref-delimiter-face ((,class (:inherit kite-ref-face))))
+     `(kite-entity-ref-name-face ((,class (:inherit kite-ref-face))))
+     `(kite-hash-face ((,class (:inherit kite-name-face))))
+     `(kite-link-face ((,class (:inherit change-log-file))))
+     `(kite-loading ((,class (:inherit font-lock-comment))))
+     `(kite-log-debug ((,class (:inherit font-lock-comment))))
+     `(kite-log-error ((,class (:inherit error))))
+     `(kite-log-log ((,class (:inherit default))))
+     `(kite-log-warning ((,class (:inherit warning))))
+     `(kite-markup-declaration-delimiter-face ((,class (:inherit kite-delimiter-face))))
+     `(kite-namespace-attribute-colon-face ((,class (:inherit kite-name-face))))
+     `(kite-namespace-attribute-prefix-face ((,class (:inherit kite-name-face))))
+     `(kite-namespace-attribute-value-delimiter-face ((,class (:inherit kite-attribute-value-delimiter-face))))
+     `(kite-namespace-attribute-value-face ((,class (:inherit kite-attribute-value-face))))
+     `(kite-namespace-attribute-xmlns-face ((,class (:inherit kite-name-face))))
+     `(kite-null ((,class (:inherit nxml-char-ref-number))))
+     `(kite-number ((,class (:inherit nxml-char-ref-number))))
+     `(kite-object ((,class (:inherit font-lock-variable-name))))
+     `(kite-processing-instruction-content-face ((,class (:inherit kite-delimited-data-face))))
+     `(kite-processing-instruction-delimiter-face ((,class (:inherit kite-delimiter-face))))
+     `(kite-processing-instruction-target-face ((,class (:inherit kite-name-face))))
+     `(kite-prolog-keyword-face ((,class (:inherit kite-name-face))))
+     `(kite-prolog-literal-content-face ((,class (:inherit kite-delimited-data-face))))
+     `(kite-prolog-literal-delimiter-face ((,class (:inherit kite-delimiter-face))))
+     `(kite-property-name ((,class (:inherit default))))
+     `(kite-quote ((,class (:inherit font-lock-keyword))))
+     `(kite-stack-column-number ((,class (:inherit kite-number))))
+     `(kite-stack-error-message ((,class (:inherit default))))
+     `(kite-stack-error-type ((,class (:inherit error))))
+     `(kite-stack-file-name ((,class (:inherit link))))
+     `(kite-stack-function-name ((,class (:inherit font-lock-function-name-face))))
+     `(kite-stack-line-number ((,class (:inherit kite-number))))
+     `(kite-stack-pseudo-file-name ((,class (:inherit default))))
+     `(kite-string ((,class (:inherit font-lock-string))))
+     `(kite-table-head ((,class (:inherit highlight))))
+     `(kite-tag-delimiter-face ((,class (:inherit kite-delimiter-face))))
+     `(kite-tag-slash-face ((,class (:inherit kite-name-face))))
+     `(kite-undefined ((,class (:inherit nxml-char-ref-number))))
+;;;;; ledger-mode
+     `(ledger-font-payee-uncleared-face ((t (:foreground ,red))))
+     `(ledger-font-payee-cleared-face ((t (:foreground ,green :weight normal))))
+     `(ledger-font-xact-highlight-face ((t (:background ,base02))))
+     `(ledger-font-pending-face ((t (:foreground ,yellow weight: normal))))
+     `(ledger-font-other-face ((t (:foreground ,base0))))
+     `(ledger-font-posting-account-face ((t (:foreground ,cyan))))
+     `(ledger-font-posting-account-cleared-face ((t (:foreground ,base0))))
+     `(ledger-font-posting-account-pending-face ((t (:foreground ,yellow))))
+     `(ledger-font-posting-amount-face ((t (:foreground ,yellow))))
+     `(ledger-occur-narrowed-face ((t (:foreground ,base3 :invisible t))))
+     `(ledger-occur-xact-face ((t (:background ,base02))))
+     `(ledger-font-comment-face ((t (:foreground ,base01))))
+     `(ledger-font-reconciler-uncleared-face ((t (:foreground ,red :weight bold))))
+     `(ledger-font-reconciler-cleared-face ((t (:foreground ,base0 :weight normal))))
+     `(ledger-font-reconciler-pending-face ((t (:foreground ,yellow :weight normal))))
+     `(ledger-font-report-clickable-face ((t (:foreground ,yellow :weight normal))))
+;;;;; linum-mode
+     `(linum ((,class (:foreground ,s-fringe-fg :background ,s-fringe-bg))))
+;;;;; lusty-explorer
+     `(lusty-directory-face ((,class (:inherit dired-directory))))
+     `(lusty-file-face ((,class nil)))
+     `(lusty-match-face ((,class (:inherit ido-first-match))))
+     `(lusty-slash-face ((,class (:foreground ,cyan :weight bold))))
+;;;;; magit
+     `(magit-section-title ((,class (:foreground ,yellow :weight bold))))
+     `(magit-branch ((,class (:foreground ,orange :weight bold))))
+     `(magit-item-highlight ((,class (:background ,base02 :weight unspecified))))
+     `(magit-log-author ((,class (:foreground ,cyan))))
+     `(magit-log-graph ((,class (:foreground ,base01))))
+     `(magit-log-head-label-bisect-bad ((,class (:background ,red-hc :foreground ,red-lc
+                                                             :box 1))))
+     `(magit-log-head-label-bisect-good ((,class (:background ,green-hc :foreground ,green-lc
+                                                              :box 1))))
+     `(magit-log-head-label-default ((,class (:background ,base02 :box 1))))
+     `(magit-log-head-label-local ((,class (:background ,blue-lc :foreground ,blue-hc
+                                                        :box 1))))
+     `(magit-log-head-label-patches ((,class (:background ,red-lc :foreground ,red-hc
+                                                          :box 1))))
+     `(magit-log-head-label-remote ((,class (:background ,green-lc :foreground ,green-hc
+                                                         :box 1))))
+     `(magit-log-head-label-tags ((,class (:background ,yellow-lc :foreground ,yellow-hc
+                                                       :box 1))))
+     ;; magit hotfix
+     `(magit-header ((,class (:inherit default))))
+     ;; TODO
+     `(magit-log-sha1 ((,class (:foreground ,yellow))))
+     `(magit-cherry-equivalent ((,class (:foreground ,magenta))))
+     `(magit-cherry-unmatched ((,class (:foreground ,cyan))))
+     ;; `(magit-log-head-label-bisect-skip ((,class (:background "light goldenrod" :foreground "dark goldenrod" :box 1))))
+     ;; `(magit-log-head-label-head ((,class (:background "Grey70" :foreground "Black" :box 1))))
+     ;; `(magit-log-head-label-wip ((,class (:background "Grey95" :foreground "LightSkyBlue3" :box 1))))
+     ;; `(magit-log-reflog-label-checkout ((,class (:background "Grey85" :foreground "LightSkyBlue4" :box 1))))
+     ;; `(magit-log-reflog-label-cherry-pick ((,class (:background "light green" :foreground "dark olive green" :box 1))))
+     ;; `(magit-log-reflog-label-commit ((,class (:background "LemonChiffon1" :foreground "goldenrod4" :box 1))))
+     ;; `(magit-log-reflog-label-other ((,class (:background "Grey50" :box 1))))
+     ;; `(magit-log-reflog-label-rebase ((,class (:background "Grey85" :foreground "OliveDrab4" :box 1))))
+     ;; `(magit-log-reflog-label-remote ((,class (:background "Grey50" :box 1))))
+     ;; `(magit-log-reflog-label-reset ((,class (:background "IndianRed1" :foreground "IndianRed4" :box 1))))
+     `(magit-process-ng ((,class (:inherit magit-header :foreground ,red))))
+     `(magit-process-ok ((,class (:inherit magit-header :foreground ,green))))
+     `(magit-signature-bad ((,class (:foreground ,red))))
+     `(magit-signature-good ((,class (:foreground ,green))))
+     `(magit-signature-none ((,class (:inherit magit-log-message))))
+     `(magit-signature-untrusted ((,class (:foreground ,cyan))))
+     `(magit-whitespace-warning-face ((,class (:inherit trailing-whitespace))))
+;;;;; markdown-mode
+     `(markdown-blockquote-face ((,class (:inherit font-lock-doc-face))))
+     `(markdown-bold-face ((,class (:inherit bold))))
+     `(markdown-comment-face ((,class (:foreground ,base01 :strike-through t))))
+     `(markdown-footnote-face ((,class (:inherit default))))
+     `(markdown-header-delimiter-face ((,class (:foreground ,base01))))
+     `(markdown-header-face ((,class (:foreground ,blue))))
+     `(markdown-header-face-1 ((,class (:inherit markdown-header-face))))
+     `(markdown-header-face-2 ((,class (:inherit markdown-header-face))))
+     `(markdown-header-face-3 ((,class (:inherit markdown-header-face))))
+     `(markdown-header-face-4 ((,class (:inherit markdown-header-face))))
+     `(markdown-header-face-5 ((,class (:inherit markdown-header-face))))
+     `(markdown-header-face-6 ((,class (:inherit markdown-header-face))))
+     `(markdown-header-rule-face ((,class (:foreground ,base01))))
+     `(markdown-inline-code-face ((,class (:foreground ,base01))))
+     `(markdown-italic-face ((,class (:inherit italic))))
+     `(markdown-language-keyword-face ((,class (:inherit default))))
+     `(markdown-line-break-face ((,class (:inherit default :underline t))))
+     `(markdown-link-face ((,class (:inherit default :foreground ,yellow))))
+     `(markdown-link-title-face ((,class (:inherit font-lock-comment-face))))
+     `(markdown-list-face ((,class (:inherit font-lock-builtin-face))))
+     `(markdown-math-face ((,class (:inherit font-lock-string-face))))
+     `(markdown-metadata-key-face ((,class (:inherit font-lock-comment-face))))
+     `(markdown-metadata-value-face ((,class (:inherit default))))
+     `(markdown-missing-link-face ((,class (:inherit font-lock-warning-face))))
+     `(markdown-pre-face ((,class (:foreground ,base01))))
+     `(markdown-reference-face ((,class (:inherit default :foreground ,base01))))
+     `(markdown-url-face ((,class (:foreground ,base01))))
+;;;;; multiple-cursors
+     `(mc/cursor-face ((,class (:inherit cursor :inverse-video nil))))
+;;;;; message-mode
+     `(message-cited-text ((,class (:foreground ,base01))))
+     `(message-header-name ((,class (:foreground ,base01))))
+     `(message-header-other ((,class (:foreground ,base0 :weight normal))))
+     `(message-header-to ((,class (:foreground ,base0 :weight normal))))
+     `(message-header-cc ((,class (:foreground ,base0 :weight normal))))
+     `(message-header-newsgroups ((,class (:foreground ,yellow :weight bold))))
+     `(message-header-subject ((,class (:foreground ,cyan :weight normal))))
+     `(message-header-xheader ((,class (:foreground ,cyan))))
+     `(message-mml ((,class (:foreground ,yellow :weight bold))))
+     `(message-separator ((,class (:foreground ,base01 :slant italic))))
+;;;;; 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 ,base0 :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 ,base0 :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))))
+;;;;; mic-paren
+     `(paren-face-match
+       ((,class (:foreground ,magenta :background unspecified
+                             :weight ,s-maybe-bold))))
+     `(paren-face-mismatch
+       ((,class (:foreground ,base02 :background ,red
+                             :weight ,s-maybe-bold))))
+     `(paren-face-no-match
+       ((,class (:foreground ,base02 :background ,red
+                             :weight ,s-maybe-bold))))
+;;;;; mingus
+     `(mingus-directory-face ((,class (:foreground ,blue))))
+     `(mingus-pausing-face ((,class (:foreground ,magenta))))
+     `(mingus-playing-face ((,class (:foreground ,cyan))))
+     `(mingus-playlist-face ((,class (:foreground ,cyan ))))
+     `(mingus-song-file-face ((,class (:foreground ,yellow))))
+     `(mingus-stopped-face ((,class (:foreground ,red))))
+;;;;; moccur
+     `(moccur-current-line-face ((,class (:underline t))))
+     `(moccur-edit-done-face ((,class
+                               (:foreground ,base01
+                                            :background ,base03
+                                            :slant italic))))
+     `(moccur-edit-face
+       ((,class (:background ,yellow :foreground ,base03))))
+     `(moccur-edit-file-face ((,class (:background ,base02))))
+     `(moccur-edit-reject-face ((,class (:foreground ,red))))
+     `(moccur-face ((,class (:background ,base02 :foreground ,base1
+                                         :weight bold))))
+     `(search-buffers-face ((,class (:background ,base02 :foreground ,base1
+                                                 :weight bold))))
+     `(search-buffers-header-face ((,class (:background ,base02 :foreground ,yellow
+                                                        :weight bold))))
+;;;;; mu4e
+     `(mu4e-cited-1-face ((,class (:foreground ,green :slant italic :weight normal))))
+     `(mu4e-cited-2-face ((,class (:foreground ,blue :slant italic :weight normal))))
+     `(mu4e-cited-3-face ((,class (:foreground ,orange :slant italic :weight normal))))
+     `(mu4e-cited-4-face ((,class (:foreground ,yellow :slant italic :weight normal))))
+     `(mu4e-cited-5-face ((,class (:foreground ,cyan :slant italic :weight normal))))
+     `(mu4e-cited-6-face ((,class (:foreground ,green :slant italic :weight normal))))
+     `(mu4e-cited-7-face ((,class (:foreground ,blue :slant italic :weight normal))))
+     `(mu4e-flagged-face ((,class (:foreground ,blue :weight normal))))
+     `(mu4e-unread-face ((,class (:foreground ,green :weight normal))))
+     `(mu4e-view-url-number-face ((,class (:foreground ,yellow :weight normal))))
+     `(mu4e-warning-face ((,class (:foreground ,red :slant normal :weight bold))))
+     `(mu4e-header-highlight-face
+       ((,class (:inherit unspecified :foreground unspecified :background ,base02
+                          :underline unspecified  :weight unspecified))))
+     `(mu4e-view-contact-face ((,class (:foreground ,base0  :weight normal))))
+     `(mu4e-view-header-key-face ((,class (:inherit message-header-name :weight normal))))
+     `(mu4e-view-header-value-face ((,class (:foreground ,cyan :weight normal :slant normal))))
+     `(mu4e-view-link-face ((,class (:inherit link))))
+     `(mu4e-view-special-header-value-face ((,class (:foreground ,blue :weight normal :underline nil))))
+;;;;; mumamo
+     `(mumamo-background-chunk-submode1 ((,class (:background ,base02))))
+;;;;; 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 ,base0))))
+     `(nav-face-hfile ((,class (:foreground ,red))))
+;;;;; nav-flash
+     ;; `(nav-flash-face ((,class (:background ,base02))))
+     `(nav-flash-face ((,class (:foreground
+                                ,(apply 'solarized-color-blend
+                                        (if
+                                            (eq variant 'light)
+                                            (list yellow base1 0.2)
+                                          (list cyan base1 0.1)))
+                                :background
+                                ,(apply 'solarized-color-blend
+                                        (if
+                                            (eq variant 'light)
+                                            (list yellow base03 0.2)
+                                          (list cyan base03 0.3)))))))
+;;;;; navi2ch
+     `(navi2ch-list-category-face ((,class (:foreground ,blue ))))
+     `(navi2ch-list-add-board-name-face ((,class (:foreground ,yellow))))
+     `(navi2ch-list-board-name-face ((,class (:foreground ,blue))))
+     `(navi2ch-list-change-board-name-face ((,class (:foreground ,green :weight bold))))
+     `(navi2ch-bm-unread-face ((,class (:foreground ,green))))
+     `(navi2ch-bm-view-face ((,class (:foreground ,yellow))))
+     `(navi2ch-bm-cache-face ((,class (:foreground ,blue))))
+     `(navi2ch-bm-update-face ((,class (:foreground ,orange))))
+     `(navi2ch-bm-down-face ((,class (:foreground ,base1))))
+     `(navi2ch-bm-mark-face ((,class (:foreground ,red))))
+     `(navi2ch-bm-new-unread-face ((,class (:foreground ,green))))
+     `(navi2ch-bm-new-view-face ((,class (:foreground ,yellow))))
+     `(navi2ch-bm-new-cache-face ((,class (:foreground ,blue))))
+     `(navi2ch-bm-new-update-face ((,class (:foreground ,orange))))
+     `(navi2ch-bm-new-mark-face ((,class (:foreground ,red))))
+     `(navi2ch-bm-updated-unread-face ((,class (:foreground ,green))))
+     `(navi2ch-bm-updated-view-face ((,class (:foreground ,yellow))))
+     `(navi2ch-bm-updated-cache-face ((,class (:foreground ,blue))))
+     `(navi2ch-bm-updated-update-face ((,class (:foreground ,orange))))
+     `(navi2ch-bm-updated-navi2ch-bm-updated-mark-facemark-face ((,class (:foreground ,red))))
+     `(navi2ch-bm-seen-unread-face ((,class (:foreground ,green))))
+     `(navi2ch-bm-seen-view-face ((,class (:foreground ,yellow))))
+     `(navi2ch-bm-seen-cache-face ((,class (:foreground ,blue))))
+     `(navi2ch-bm-seen-update-face ((,class (:foreground ,orange))))
+     `(navi2ch-bm-seen-mark-face ((,class (:foreground ,red))))
+     `(navi2ch-article-header-face ((,class (:foreground ,base1))))
+     `(navi2ch-article-header-contents-face ((,class (:foreground ,blue))))
+     `(navi2ch-article-header-fusianasan-face ((,class (:foreground ,blue :underline t))))
+     `(navi2ch-article-link-face ((,class (:weight bold))))
+     `(navi2ch-article-url-face ((,class (:weight bold))))
+     `(navi2ch-article-citation-face ((,class (:foreground ,yellow))))
+     `(navi2ch-article-auto-decode-face ((,class (:foreground ,base03))))
+     `(navi2ch-article-message-separator-face ((,class (:foreground ,green))))
+     `(navi2ch-splash-screen-face ((,class (:foreground ,cyan))))
+     `(navi2ch-message-link-face ((,class (:weight bold))))
+     `(navi2ch-message-url-face ((,class (:weight bold))))
+     `(navi2ch-message-citation-face ((,class (:foreground ,magenta))))
+;;;;; neotree
+     `(neo-banner-face ((,class (:foreground ,base01))))
+     `(neo-header-face ((,class (:foreground ,blue))))
+     `(neo-root-dir-face ((,class (:foreground ,base1 :weight bold))))
+     `(neo-dir-link-face ((,class (:foreground ,blue))))
+     `(neo-file-link-face ((,class (:foreground ,base0))))
+     `(neo-expand-btn-face ((,class (:foreground ,base01))))
+;;;;; org-mode
+     `(org-agenda-structure
+       ((,class (:foreground ,base1 :background ,base02
+                             :weight bold :slant normal :inverse-video nil :height ,solarized-height-plus-1
+                             :underline nil
+                             :box (:line-width 2 :color ,base03)))))
+     `(org-agenda-calendar-event ((,class (:foreground ,base1))))
+     `(org-agenda-calendar-sexp ((,class (:foreground ,base0 :slant italic))))
+     `(org-agenda-date
+       ((,class (:foreground ,base01 :background ,base03 :weight normal
+                             :box (:line-width 2 :color ,base03)
+                             :inverse-video nil :overline nil :slant normal :height 1.0))))
+     `(org-agenda-date-weekend
+       ((,class (:inherit org-agenda-date :inverse-video nil :background unspecified
+                          :foreground ,base01 :weight unspecified
+                          :underline t :overline nil :box unspecified))))
+     `(org-agenda-date-today
+       ((,class (:inherit org-agenda-date :inverse-video t :weight bold
+                          :underline unspecified :overline nil :box unspecified
+                          :foreground ,blue :background ,base03))))
+     `(org-agenda-done ((,class (:foreground ,base01 :slant italic))))
+     `(org-archived ((,class (:foreground ,base01 :weight normal))))
+     `(org-block ((,class (:foreground ,base01))))
+     `(org-block-begin-line ((,class (:foreground ,base01 :slant italic))))
+     `(org-checkbox ((,class (:background ,base03 :foreground ,base0
+                                          :box (:line-width 1 :style released-button)))))
+     `(org-code ((,class (:foreground ,base01))))
+     `(org-date ((,class (:foreground ,blue :underline t))))
+     `(org-done ((,class (:weight bold :foreground ,green))))
+     `(org-ellipsis ((,class (:foreground ,base01))))
+     `(org-formula ((,class (:foreground ,yellow))))
+     `(org-headline-done ((,class (:foreground ,green))))
+     `(org-hide ((,class (:foreground ,base03))))
+     `(org-level-1 ((,class (:inherit ,s-variable-pitch :foreground ,orange
+                             ,@(when solarized-scale-org-headlines
+                                 (list :height solarized-height-plus-4))))))
+     `(org-level-2 ((,class (:inherit ,s-variable-pitch :foreground ,green
+                             ,@(when solarized-scale-org-headlines
+                                 (list :height solarized-height-plus-3))))))
+     `(org-level-3 ((,class (:inherit ,s-variable-pitch :foreground ,blue
+                             ,@(when solarized-scale-org-headlines
+                                 (list :height solarized-height-plus-2))))))
+     `(org-level-4 ((,class (:inherit ,s-variable-pitch :foreground ,yellow
+                             ,@(when solarized-scale-org-headlines
+                                 (list :height solarized-height-plus-1))))))
+     `(org-level-5 ((,class (:inherit ,s-variable-pitch
+                                      :foreground ,cyan))))
+     `(org-level-6 ((,class (:inherit ,s-variable-pitch
+                                      :foreground ,green))))
+     `(org-level-7 ((,class (:inherit ,s-variable-pitch
+                                      :foreground ,red))))
+     `(org-level-8 ((,class (:inherit ,s-variable-pitch
+                                      :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 ,cyan))))
+     `(org-scheduled-today ((,class (:foreground ,blue :weight normal))))
+     `(org-special-keyword ((,class (:foreground ,base01 :weight bold))))
+     `(org-table ((,class (:foreground ,green))))
+     `(org-tag ((,class (:weight bold))))
+     `(org-time-grid ((,class (:foreground ,base01))))
+     `(org-todo ((,class (:foreground ,cyan :weight bold))))
+     `(org-upcoming-deadline ((,class (:foreground ,yellow  :weight normal :underline nil))))
+     `(org-warning ((,class (:foreground ,orange :weight normal :underline nil))))
+     ;; 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))))
+     ;; latest additions
+     `(org-agenda-dimmed-todo-face ((,class (:foreground ,base01))))
+     `(org-agenda-restriction-lock ((,class (:background ,yellow))))
+     `(org-clock-overlay ((,class (:background ,yellow))))
+     `(org-column ((,class (:background ,base02 :strike-through nil
+                                        :underline nil :slant normal :weight normal :inherit default))))
+     `(org-column-title ((,class (:background ,base02 :underline t :weight bold))))
+     `(org-date-selected ((,class (:foreground ,red :inverse-video t))))
+     `(org-document-info ((,class (:foreground ,base0))))
+     `(org-document-title ((,class (:foreground ,base1  :weight bold :height ,solarized-height-plus-4))))
+     `(org-drawer ((,class (:foreground ,cyan))))
+     `(org-footnote ((,class (:foreground ,magenta :underline t))))
+     `(org-latex-and-export-specials ((,class (:foreground ,orange))))
+     `(org-mode-line-clock-overrun ((,class (:inherit mode-line :background ,red))))
+;;;;; outline
+     `(outline-1 ((,class (:inherit org-level-1 :height ,solarized-height-plus-4))))
+     `(outline-2 ((,class (:inherit org-level-2 :height ,solarized-height-plus-3))))
+     `(outline-3 ((,class (:inherit org-level-3 :height ,solarized-height-plus-2))))
+     `(outline-4 ((,class (:inherit org-level-4 :height ,solarized-height-plus-1))))
+     `(outline-5 ((,class (:inherit org-level-5))))
+     `(outline-6 ((,class (:inherit org-level-6))))
+     `(outline-7 ((,class (:inherit org-level-7))))
+     `(outline-8 ((,class (:inherit org-level-8))))
+;;;;; paren-face
+     `(paren-face  ((,class (:foreground ,base01))))
+;;;;; perspective
+     `(persp-selected-face ((,class (:foreground ,yellow))))
+;;;;; pretty-mode
+     `(pretty-mode-symbol-face  ((,class (:foreground ,yellow :weight normal))))
+;;;;; prodigy
+     `(prodigy-green-face ((,class (:foreground ,green))))
+     `(prodigy-red-face ((,class (:foreground ,orange))))
+     `(prodigy-yellow-face ((,class (:foreground ,yellow))))
+     `(prodigy-line-face ((,class (:background ,base02))))
+;;;;; popup
+     `(popup-face ((,class (:background ,base02 :foreground ,base0))))
+     `(popup-isearch-match ((,class (:background ,yellow :foreground ,base03))))
+     `(popup-menu-face ((,class (:background ,base02 :foreground ,base0))))
+     `(popup-menu-mouse-face ((,class (:background ,blue :foreground ,base03))))
+     `(popup-menu-selection-face ((,class (:background ,magenta :foreground ,base03))))
+     `(popup-scroll-bar-background-face ((,class (:background ,base01))))
+     `(popup-scroll-bar-foreground-face ((,class (:background ,base1))))
+     `(popup-tip-face ((,class (:background ,base02 :foreground ,base0))))
+;;;;; pophint
+     `(pophint:tip-face ((,class (:background ,magenta :foreground ,base03))))
+     `(pophint:match-face ((,class (:background ,blue :foreground ,base03))))
+     `(pophint:pos-tip-face ((,class (:background ,base02 :foreground ,base0))))
+;;;;; powerline
+     `(powerline-active1 ((,class ,(if solarized-high-contrast-mode-line
+                                       `(:background ,base00 :foreground ,base03)
+                                       `(:background ,base03 :foreground ,base00)))))
+     `(powerline-active2 ((,class ,(if solarized-high-contrast-mode-line
+                                       `(:background ,base01 :foreground ,base03)
+                                       `(:background ,base02 :foreground ,base00)))))
+     `(powerline-inactive1 ((,class ,(if solarized-high-contrast-mode-line
+                                         `(:background ,base03 :foreground ,base1)
+                                         `(:background ,base02 :foreground ,base01)))))
+     `(powerline-inactive2 ((,class ,(if solarized-high-contrast-mode-line
+                                         `(:background ,base02 :foreground ,base1)
+                                         `(:background ,base03 :foreground ,base01)))))
+;;;;; rainbow-blocks
+     `(rainbow-blocks-depth-1-face ((,class (:foreground ,cyan))))
+     `(rainbow-blocks-depth-2-face ((,class (:foreground ,yellow))))
+     `(rainbow-blocks-depth-3-face ((,class (:foreground ,blue))))
+     `(rainbow-blocks-depth-4-face ((,class (:foreground ,violet))))
+     `(rainbow-blocks-depth-5-face ((,class (:foreground ,green))))
+     `(rainbow-blocks-depth-6-face ((,class (:foreground ,yellow))))
+     `(rainbow-blocks-depth-7-face ((,class (:foreground ,blue))))
+     `(rainbow-blocks-depth-8-face ((,class (:foreground ,violet))))
+     `(rainbow-blocks-depth-9-face ((,class (:foreground ,green))))
+     `(rainbow-blocks-unmatched-face ((,class (:foreground ,red))))
+;;;;; 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 ,violet))))
+     `(rainbow-delimiters-depth-5-face ((,class (:foreground ,green))))
+     `(rainbow-delimiters-depth-6-face ((,class (:foreground ,yellow))))
+     `(rainbow-delimiters-depth-7-face ((,class (:foreground ,blue))))
+     `(rainbow-delimiters-depth-8-face ((,class (:foreground ,violet))))
+     `(rainbow-delimiters-depth-9-face ((,class (:foreground ,green))))
+     `(rainbow-delimiters-depth-10-face ((,class (:foreground ,yellow))))
+     `(rainbow-delimiters-depth-11-face ((,class (:foreground ,blue))))
+     `(rainbow-delimiters-depth-12-face ((,class (:foreground ,violet))))
+     `(rainbow-delimiters-unmatched-face
+       ((,class (:foreground ,base0 :background ,base03 :inverse-video t))))
+;;;;; rst-mode
+     `(rst-level-1-face ((,class (:background ,yellow   :foreground ,base03))))
+     `(rst-level-2-face ((,class (:background ,cyan    :foreground ,base03))))
+     `(rst-level-3-face ((,class (:background ,blue    :foreground ,base03))))
+     `(rst-level-4-face ((,class (:background ,violet  :foreground ,base03))))
+     `(rst-level-5-face ((,class (:background ,magenta :foreground ,base03))))
+     `(rst-level-6-face ((,class (:background ,red     :foreground ,base03))))
+;;;;; 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 :weight bold))))
+     `(sh-escaped-newline ((,class (:foreground ,yellow :weight bold))))
+     `(sh-heredoc ((,class (:foreground ,yellow :weight bold))))
+;;;;; skewer-mode
+     `(skewer-error-face ((,class (:foreground ,orange :underline nil))))
+     `(skewer-repl-log-face ((,class (:foreground ,violet))))
+;;;;; smart-mode-line
+     ;; use (setq sml/theme nil) to enable Solarized for sml
+     `(sml/filename ((,class (:foreground ,base1 :weight bold))))
+     `(sml/prefix ((,class (:foreground unspecified))))
+     `(sml/git ((,class (:foreground unspecified))))
+     `(sml/process ((,class (:weight bold))))
+     `(sml/sudo ((,class  (:foreground ,orange :weight bold))))
+     `(sml/read-only ((,class (:foreground ,cyan))))
+     `(sml/outside-modified ((,class (:foreground , cyan))))
+     `(sml/modified ((,class (:foreground ,cyan))))
+     `(sml/vc-edited ((,class (:foreground ,green))))
+     `(sml/charging ((,class (:foreground ,base1))))
+     `(sml/discharging ((,class (:foreground ,base1 :weight bold))))
+;;;;; smartparens
+     `(sp-pair-overlay-face ((,class (:background ,base02))))
+     `(sp-wrap-overlay-face ((,class (:background ,base02))))
+     `(sp-wrap-tag-overlay-face ((,class (:background ,base02))))
+     `(sp-show-pair-enclosing ((,class (:inherit highlight))))
+     `(sp-show-pair-match-face
+       ((,class (:background unspecified :foreground ,magenta
+                             :weight ,s-maybe-bold))))
+     `(sp-show-pair-mismatch-face
+       ((,class (:foreground ,base02 :background ,red
+                             :weight ,s-maybe-bold))))
+;;;;; show-paren
+     `(show-paren-match
+       ((,class (:foreground ,magenta :background unspecified
+                             :weight ,s-maybe-bold))))
+     `(show-paren-mismatch
+       ((,class (:foreground ,base02 :background ,red
+                             :weight ,s-maybe-bold))))
+
+;;;;; sx (WIP)
+     `(sx-custom-button ((,class (:background ,base02 :foreground ,base1
+                                              :box (:line-width 2 :style released-button :height 0.9)))))
+     `(sx-question-list-answers ((,class (:inherit sx-question-list-parent :foreground ,green :height 1.0))))
+     `(sx-question-list-answers-accepted ((,class (:inherit sx-question-list-answers :weight bold :underline t))))
+     `(sx-question-list-bounty ((,class (:foreground ,cyan))))
+     `(sx-question-list-date ((,class (:inherit font-lock-comment-face))))
+     `(sx-question-list-favorite ((,class (:inherit sx-question-list-score-upvoted))))
+     `(sx-question-list-parent ((,class (:inherit default))))
+     `(sx-question-list-read-question ((,class (:inherit sx-question-list-parent :height 1.0))))
+     `(sx-question-list-score ((,class (:inherit sx-question-list-parent :foreground ,base01 :height 1.0))))
+     `(sx-question-list-score-upvoted ((,class (:inherit sx-question-list-score :weight bold))))
+     `(sx-question-list-unread-question ((,class (:inherit sx-question-list-read-question :weight bold))))
+     `(sx-question-mode-accepted ((,class (:inherit sx-question-mode-title :foreground ,green :height 1.3))))
+     `(sx-question-mode-closed ((,class (:inherit font-lock-warning-face :box 2))))
+     `(sx-question-mode-closed-reason ((,class (:inherit sx-question-mode-title :box (:line-width 2 :color ,yellow)))))
+     ;; TODO: sx-question-mode-content-faceexposes a general problem that's hard to deal with,
+     ;; if base02 is used as bg some things are not visible enough.. It might be a good idea to
+     ;; introduce yet another special color that goes a little furhter towards netural gray and
+     ;; ensures readability as a bg for all solarized faces. If it's possible, that is.
+     `(sx-question-mode-content-face ((,class (:background unspecified))))
+     `(sx-question-mode-date ((,class (:inherit font-lock-string-face))))
+     `(sx-question-mode-header ((,class (:inherit message-header-name :weight normal))))
+     `(sx-question-mode-kbd-tag ((,class (:box (:line-width 3 :style released-button :color ,base02) :weight semibold :height 0.9))))
+     `(sx-question-mode-score ((,class nil)))
+     `(sx-question-mode-score-downvoted ((,class (:inherit (font-lock-warning-face sx-question-mode-score)))))
+     `(sx-question-mode-score-upvoted ((,class (:inherit (font-lock-function-name-face sx-question-mode-score) :weight bold))))
+     `(sx-question-mode-sub-sup-tag ((,class (:height 0.7))))
+     `(sx-question-mode-title ((,class (:inherit default :weight bold))))
+     `(sx-question-mode-title-comments ((,class (:inherit sx-question-mode-title))))
+     `(sx-tag ((,class (:foreground ,base0))))
+     `(sx-user-accept-rate ((,class nil)))
+     `(sx-user-name ((,class (:inherit font-lock-builtin-face))))
+     `(sx-user-reputation ((,class (:inherit font-lock-comment-face))))
+
+;;;;; syslog-mode
+     `(syslog-ip ((,class (:background unspecified
+                                       :foreground ,green
+                                       :underline nil
+                                       :weight normal
+                                       :slant normal))))
+     `(syslog-hour ((,class (:background unspecified
+                                         :foreground ,yellow))))
+     `(syslog-error ((,class (:background unspecified
+                                          :foreground ,orange
+                                          :weight bold))))
+     `(syslog-warn ((,class (:background unspecified
+                                         :foreground ,yellow
+                                         :weight bold))))
+     `(syslog-info ((,class (:background unspecified
+                                         :foreground ,blue
+                                         :weight bold))))
+     `(syslog-debug ((,class (:background unspecified
+                                          :foreground ,cyan
+                                          :weight bold))))
+     `(syslog-su ((,class (:background unspecified
+                                       :foreground ,violet
+                                       :weight normal))))
+;;;;; slime
+     `(slime-repl-inputed-output-face ((,class (:foreground ,red))))
+;;;;; speedbar
+     `(speedbar-button-face ((,class (:inherit ,s-variable-pitch
+                                               :foreground ,base01))))
+     `(speedbar-directory-face ((,class (:inherit ,s-variable-pitch :foreground ,blue))))
+     `(speedbar-file-face ((,class (:inherit ,s-variable-pitch :foreground ,base0))))
+     `(speedbar-highlight-face ((,class (:inherit ,s-variable-pitch :background ,base02))))
+     `(speedbar-selected-face ((,class (:inherit ,s-variable-pitch
+                                                 :foreground ,yellow :underline t))))
+     `(speedbar-separator-face ((,class (:inherit ,s-variable-pitch
+                                                  :background ,blue :foreground ,base03
+                                                  :overline ,cyan-lc))))
+     `(speedbar-tag-face ((,class (:inherit ,s-variable-pitch :foreground ,green))))
+;;;;; stripe-buffer
+     `(stripe-highlight ((,class (:background ,base02))))
+;;;;; structured-haskell
+     `(shm-current-face ((,class (:background ,base02))))
+     `(shm-quarantine-face ((,class (:background ,base01))))
+;;;;; sunrise commander
+;;;;;; headings
+     `(sr-active-path-face ((,class (:background ,blue :foreground ,base03
+                                                 :height ,solarized-height-plus-1  :weight bold))))
+     `(sr-editing-path-face ((,class (:background ,yellow :foreground ,base03
+                                                  :weight bold :height ,solarized-height-plus-1))))
+     `(sr-highlight-path-face ((,class (:background ,green :foreground ,base03
+                                                    :weight bold :height ,solarized-height-plus-1))))
+     `(sr-passive-path-face ((,class (:background ,base01 :foreground ,base03
+                                                  :weight bold :height ,solarized-height-plus-1))))
+;;;;;; 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 ,base03
+                                                    :weight bold))))
+     `(sr-alt-marked-file-face ((,class (:background ,magenta :foreground ,base03
+                                                     :weight bold))))
+;;;;;; fstat
+     `(sr-directory-face ((,class (:inherit dired-directory :weight 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))))
+;;;;;; file types
+     `(sr-compressed-face ((,class (:foreground ,base0))))
+     `(sr-encrypted-face ((,class (:foreground ,base0))))
+     `(sr-log-face ((,class (:foreground ,base0))))
+     `(sr-packaged-face ((,class (:foreground ,base0))))
+     `(sr-html-face ((,class (:foreground ,base0))))
+     `(sr-xml-face ((,class (:foreground ,base0))))
+;;;;;; misc
+     `(sr-clex-hotchar-face ((,class (:background ,red  :foreground ,base03
+                                                  :weight bold))))
+;;;;; swoop
+     `(swoop-face-header-format-line ((,class (:foreground ,yellow :weight bold
+                                                           :height unspecified))))
+     `(swoop-face-line-buffer-name ((,class (:background ,base02 :foreground ,base1
+                                                         :weight bold :height unspecified))))
+     `(swoop-face-line-number ((,class (:foreground ,base01))))
+     `(swoop-face-target-line ((,class (:background ,base02 :foreground unspecified))))
+     `(swoop-face-target-words ((,class (:background unspecified :foreground ,magenta))))
+;;;;; table
+     `(table-cell ((,class (:foreground ,base0 :background ,base02))))
+;;;;; term
+     `(term ((t ( :background ,base03 :foreground ,base0))))
+     `(term-color-black ((t (:foreground ,base02 :background ,base02))))
+     `(term-color-red ((t (:foreground ,red :background ,red))))
+     `(term-color-green ((t (:foreground ,green :background ,green))))
+     `(term-color-yellow ((t (:foreground ,yellow :background ,yellow))))
+     `(term-color-blue ((t (:foreground ,blue :background ,blue))))
+     `(term-color-magenta ((t (:foreground ,magenta :background ,magenta))))
+     `(term-color-cyan ((t (:foreground ,cyan :background ,cyan))))
+     `(term-color-white ((t (:foreground ,base2 :background ,base2))))
+;;;;; todotxt
+     `(todotxt-priority-a-face ((,class (:foreground ,orange))))
+     `(todotxt-priority-b-face ((,class (:foreground ,yellow))))
+     `(todotxt-priority-c-face ((,class (:foreground ,violet))))
+;;;;; 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 ,s-variable-pitch))))
+;;;;; tuareg
+     `(tuareg-font-lock-governing-face ((,class (:foreground ,magenta :weight bold))))
+     `(tuareg-font-lock-multistage-face ((,class (:foreground ,blue :background ,base02
+                                                              :weight bold))))
+     `(tuareg-font-lock-operator-face ((,class (:foreground ,base1))))
+     `(tuareg-font-lock-error-face ((,class (:foreground ,yellow :background ,red
+                                                         :weight bold))))
+     `(tuareg-font-lock-interactive-output-face ((,class (:foreground ,cyan))))
+     `(tuareg-font-lock-interactive-error-face ((,class (:foreground ,red))))
+;;;;; undo-tree
+     `(undo-tree-visualizer-default-face
+       ((,class (:foreground ,base01 :background ,base03))))
+     `(undo-tree-visualizer-unmodified-face ((,class (:foreground ,green))))
+     `(undo-tree-visualizer-current-face ((,class (:foreground ,blue :inverse-video t))))
+     `(undo-tree-visualizer-active-branch-face
+       ((,class (:foreground ,base1 :background ,base03 :weight bold))))
+     `(undo-tree-visualizer-register-face ((,class (:foreground ,yellow))))
+;;;;; volatile highlights
+     `(vhl/default-face ((,class (:background ,green-lc :foreground ,green-hc))))
+;;;;; w3m
+     `(w3m-anchor ((,class (:inherit link))))
+     `(w3m-arrived-anchor ((,class (:inherit link-visited))))
+     `(w3m-form ((,class (:background ,base03 :foreground ,base0))))
+     `(w3m-header-line-location-title
+       ((,class (:background ,base02 :foreground ,yellow))))
+     `(w3m-header-line-location-content
+       ((,class (:background ,base02 :foreground ,base0))))
+     `(w3m-bold ((,class (:foreground ,base1 :weight bold))))
+     `(w3m-image-anchor ((,class (:background ,base03 :foreground ,cyan :inherit link))))
+     `(w3m-image ((,class (:background ,base03 :foreground ,cyan))))
+     `(w3m-lnum-minibuffer-prompt ((,class (:foreground ,base1))))
+     `(w3m-lnum-match ((,class (:background ,base02))))
+     `(w3m-lnum ((,class (:underline nil :bold nil :foreground ,red))))
+     `(w3m-session-select ((,class (:foreground ,base0))))
+     `(w3m-session-selected ((,class (:foreground ,base1 :bold t :underline t))))
+     `(w3m-tab-background ((,class (:background ,base03 :foreground ,base0))))
+     `(w3m-tab-selected-background
+       ((,class (:background ,base03 :foreground ,base0))))
+     `(w3m-tab-mouse ((,class (:background ,base02 :foreground ,yellow))))
+     `(w3m-tab-selected ((,class (:background ,base02 :foreground ,base1
+                                              :bold t))))
+     `(w3m-tab-unselected ((,class (:background ,base02 :foreground ,base0))))
+     `(w3m-tab-selected-retrieving ((,class (:background ,base02 :foreground ,red))))
+     `(w3m-tab-unselected-retrieving
+       ((,class (:background ,base02 :foreground ,orange))))
+     `(w3m-tab-unselected-unseen ((,class (:background ,base02 :foreground ,violet))))
+;;;;; web-mode
+     `(web-mode-builtin-face ((,class (:inherit font-lock-builtin-face))))
+     `(web-mode-comment-face ((,class (:foreground ,base01))))
+     `(web-mode-constant-face ((,class (:foreground ,blue :weight bold))))
+     `(web-mode-current-element-highlight-face ((,class
+                                                 (:underline unspecified :weight unspecified
+                                                             :background ,base02))))
+     `(web-mode-css-at-rule-face ((,class (:foreground ,violet :slant italic))))
+     `(web-mode-css-pseudo-class-face ((,class (:foreground ,green :slant italic))))
+     `(web-mode-doctype-face ((,class (:foreground ,base01
+                                                   :slant italic :weight bold))))
+     `(web-mode-folded-face ((,class (:underline t))))
+     `(web-mode-function-name-face ((,class (:foreground ,blue))))
+     `(web-mode-html-attr-name-face ((,class (:foreground ,blue :slant normal))))
+     `(web-mode-html-attr-value-face ((,class (:foreground ,cyan :slant italic))))
+     `(web-mode-html-tag-face ((,class (:foreground ,green))))
+     `(web-mode-keyword-face ((,class (:foreground ,yellow :weight normal))))
+     `(web-mode-preprocessor-face ((,class (:foreground ,yellow :slant normal :weight unspecified))))
+     `(web-mode-string-face ((,class (:foreground ,cyan))))
+     `(web-mode-type-face ((,class (:foreground ,yellow))))
+     `(web-mode-variable-name-face ((,class (:foreground ,blue))))
+     `(web-mode-warning-face ((,class (:inherit font-lock-warning-face))))
+     `(web-mode-block-attr-name-face ((,class (:inherit web-mode-html-attr-name-face))))
+     `(web-mode-block-attr-value-face ((,class (:inherit web-mode-html-attr-value-face))))
+     `(web-mode-block-comment-face ((,class (:inherit web-mode-comment-face))))
+     `(web-mode-block-control-face ((,class (:inherit font-lock-preprocessor-face))))
+     `(web-mode-block-face ((,class (:background unspecified))))
+     `(web-mode-block-string-face ((,class (:inherit web-mode-string-face))))
+     `(web-mode-comment-keyword-face ((,class (:box 1 :weight bold))))
+     `(web-mode-css-color-face ((,class (:inherit font-lock-builtin-face))))
+     `(web-mode-css-function-face ((,class (:inherit font-lock-builtin-face))))
+     `(web-mode-css-priority-face ((,class (:inherit font-lock-builtin-face))))
+     `(web-mode-css-property-name-face ((,class (:inherit font-lock-variable-name-face))))
+     `(web-mode-css-selector-face ((,class (:inherit font-lock-keyword-face))))
+     `(web-mode-css-string-face ((,class (:inherit web-mode-string-face))))
+     `(web-mode-javascript-string-face ((,class (:inherit web-mode-string-face))))
+     `(web-mode-json-context-face ((,class (:foreground ,violet))))
+     `(web-mode-json-key-face ((,class (:foreground ,violet))))
+     `(web-mode-json-string-face ((,class (:inherit web-mode-string-face))))
+     `(web-mode-param-name-face ((,class (:foreground ,base0))))
+     `(web-mode-part-comment-face ((,class (:inherit web-mode-comment-face))))
+     `(web-mode-part-face ((,class (:inherit web-mode-block-face))))
+     `(web-mode-part-string-face ((,class (:inherit web-mode-string-face))))
+     `(web-mode-symbol-face ((,class (:foreground ,yellow))))
+     `(web-mode-whitespace-face ((,class (:background ,red))))
+     `(web-mode-html-tag-bracket-face ((,class (:foreground ,base01))))
+     `(web-mode-block-delimiter-face ((,class (:inherit font-lock-preprocessor-face))))
+     `(web-mode-css-comment-face ((,class (:inherit web-mode-comment-face))))
+     `(web-mode-css-variable-face ((,class (:inherit web-mode-variable-name-face :slant italic))))
+     `(web-mode-error-face ((,class (:background ,red))))
+     `(web-mode-function-call-face ((,class (:inherit font-lock-function-name-face))))
+     `(web-mode-html-attr-custom-face ((,class (:inherit web-mode-html-attr-name-face))))
+     `(web-mode-html-attr-engine-face ((,class (:inherit web-mode-html-attr-custom-face))))
+     `(web-mode-html-attr-equal-face ((,class (:inherit web-mode-html-attr-name-face))))
+     `(web-mode-html-tag-custom-face ((,class (:inherit web-mode-html-tag-face))))
+     `(web-mode-javascript-comment-face ((,class (:inherit web-mode-comment-face))))
+     `(web-mode-json-comment-face ((,class (:inherit web-mode-comment-face))))
+;;;;; weather-metno
+     `(weather-metno-date ((,class (:foreground ,yellow :height ,solarized-height-plus-3))))
+     `(weather-metno-date-range ((,class (:foreground ,blue))))
+     `(weather-metno-entry ((,class (:foreground ,cyan))))
+     `(weather-metno-footer ((,class (:inherit font-lock-comment-face))))
+     `(weather-metno-header ((,class (:inherit header-line))))
+;;;;; wgrep
+     `(wgrep-delete-face ((,class (:background unspecified :foreground ,blue))))
+     `(wgrep-done-face ((,class (:foreground ,green))))
+     `(wgrep-face ((,class (:background unspecified :foreground ,blue))))
+     `(wgrep-file-face ((,class (:background unspecified :foreground ,magenta))))
+     `(wgrep-reject-face ((,class (:foreground ,red :weight unspecified))))
+;;;;; whitespace-mode
+     `(whitespace-space ((,class (:background unspecified :foreground ,base01
+                                              :inverse-video unspecified :slant italic))))
+     `(whitespace-hspace ((,class (:background unspecified :foreground ,base1
+                                               :inverse-video unspecified))))
+     `(whitespace-tab ((,class (:background unspecified :foreground ,red
+                                            :inverse-video unspecified :weight bold))))
+     `(whitespace-newline ((,class(:background unspecified :foreground ,base01
+                                               :inverse-video unspecified))))
+     `(whitespace-trailing ((,class (:background unspecified :foreground ,orange-lc
+                                                 :inverse-video t))))
+     `(whitespace-line ((,class (:background unspecified :foreground ,magenta
+                                             :inverse-video unspecified))))
+     `(whitespace-space-before-tab ((,class (:background ,red-lc :foreground unspecified
+                                                         :inverse-video unspecified))))
+     `(whitespace-indentation ((,class (:background unspecified :foreground ,yellow
+                                                    :inverse-video unspecified :weight bold))))
+     `(whitespace-empty ((,class (:background unspecified :foreground ,red-lc
+                                              :inverse-video t))))
+     `(whitespace-space-after-tab ((,class (:background unspecified :foreground ,orange
+                                                        :inverse-video t :weight bold))))
+;;;;; 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 ,base0))))
+     `(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 ,base0))))
+     `(wl-highlight-summary-answered-face ((,class (:foreground ,blue))))
+     `(wl-highlight-summary-disposed-face ((,class (:foreground ,base0 :slant italic))))
+     `(wl-highlight-summary-new-face ((,class (:foreground ,blue))))
+     `(wl-highlight-summary-normal-face ((,class (:foreground ,base0))))
+     `(wl-highlight-summary-thread-top-face ((,class (:foreground ,yellow))))
+     `(wl-highlight-thread-indent-face ((,class (:foreground ,magenta))))
+     `(wl-highlight-summary-refiled-face ((,class (:foreground ,base0))))
+     `(wl-highlight-summary-displaying-face ((,class (:underline t :weight bold))))
+;;;;; weechat
+     `(weechat-error-face ((,class (:inherit error))))
+     `(weechat-highlight-face ((,class (:foreground ,base0 :weight bold))))
+     `(weechat-nick-self-face ((,class (:foreground ,base01 :weight unspecified))))
+     `(weechat-prompt-face ((,class (:inherit minibuffer-prompt))))
+     `(weechat-time-face ((,class (:foreground ,base01))))
+;;;;; which-func-mode
+     `(which-func ((,class (:foreground ,green))))
+;;;;; window-number-mode
+     `(window-number-face ((,class (:foreground ,green))))
+;;;;; yascroll
+     `(yascroll:thumb-text-area
+       ((,class (:foreground ,base01 :background ,base01))))
+     `(yascroll:thumb-fringe
+       ((,class (:foreground ,base01 :background ,base01))))
+;;;;; yasnippet
+     `(yas-field-highlight-face ((,class (:inherit secondary-selection))))
+;;;;; zencoding
+     `(zencoding-preview-input ((,class (:background ,base02 :box ,base1))))
+;;;;; ztree
+     `(ztreep-arrow-face ((,class (:foreground ,base01))))
+     `(ztreep-diff-header-face ((,class (:foreground ,base01 :weight bold :height 1.2))))
+     `(ztreep-diff-header-small-face ((,class (:foreground ,base01 :weight bold))))
+     `(ztreep-diff-model-add-face ((,class (:foreground ,blue))))
+     `(ztreep-diff-model-diff-face ((,class (:foreground ,red))))
+     `(ztreep-diff-model-normal-face ((,class (:foreground ,base0))))
+     `(ztreep-expand-sign-face ((,class (:foreground ,base01))))
+     `(ztreep-header-face ((,class (:foreground ,base01 :weight bold :height 1.2))))
+     `(ztreep-leaf-face ((,class (:foreground  ,base0))))
+     `(ztreep-node-face ((,class (:foreground ,blue))))
+     ) ; END custom-theme-set-faces
+;;; Theme Variables
+    (custom-theme-set-variables
+     theme-name
+;;;;; ansi-colors
+     `(ansi-color-names-vector
+       [,base02 ,red ,green ,yellow ,blue ,magenta ,cyan ,base00])
+;;;;; compilation
+     `(compilation-message-face 'default)
+;;;;; cua
+     `(cua-normal-cursor-color ,base0)
+     `(cua-read-only-cursor-color ,green)
+     `(cua-global-mark-cursor-color ,cyan)
+     `(cua-overwrite-cursor-color ,yellow)
+;;;;; fill-column-indicator
+     `(fci-rule-color ,base02)
+;;;;; magit
+     `(magit-diff-use-overlays nil)
+;;;;; highlight-changes
+     `(highlight-changes-colors '(,magenta ,violet))
+;;;;; highlight-symbol
+     `(highlight-symbol-foreground-color ,base1)
+     `(highlight-symbol-colors
+       (--map (solarized-color-blend it ,base03 0.25)
+              '(,yellow ,cyan ,red ,violet ,green ,orange ,blue)))
+;;;;; highlight-tail
+     `(highlight-tail-colors
+       '((,base02 . 0)(,green-lc . 20)(,cyan-lc . 30)(,blue-lc . 50)
+         (,yellow-lc . 60)(,orange-lc . 70)(,magenta-lc . 85)(,base02 . 100)))
+;;;;; hl-anything
+     `(hl-fg-colors '(,base03 ,base03 ,base03 ,base03 ,base03 ,base03
+                              ,base03 ,base03))
+     `(hl-bg-colors '(,yellow-lc ,orange-lc ,red-lc ,magenta-lc
+                                 ,violet-lc ,blue-lc ,cyan-lc ,green-lc))
+;;;;; pos-tip
+     `(pos-tip-foreground-color ,base1)
+     `(pos-tip-background-color ,base02)
+;;;;; smartrep
+     `(smartrep-mode-line-active-bg (solarized-color-blend ,green ,s-mode-line-bg 0.2))
+;;;;; term
+     `(term-default-fg-color ,base0) ;; @deprecated24.3
+     `(term-default-bg-color ,base03) ;; @deprecated24.3
+;;;;; vc
+     `(vc-annotate-color-map
+       '((20 . ,red)
+         (40 . ,(solarized-color-blend yellow red (/ 2.0 4)))
+         (60 . ,(solarized-color-blend yellow red (/ 3.0 4)))
+         (80 . ,yellow)
+         (100 . ,(solarized-color-blend green yellow (/ 2.0 6)))
+         (120 . ,(solarized-color-blend green yellow (/ 3.0 6)))
+         (140 . ,(solarized-color-blend green yellow (/ 4.0 6)))
+         (160 . ,(solarized-color-blend green yellow (/ 5.0 6)))
+         (180 . ,green)
+         (200 . ,(solarized-color-blend cyan green (/ 2.0 6)))
+         (220 . ,(solarized-color-blend cyan green (/ 3.0 6)))
+         (240 . ,(solarized-color-blend cyan green (/ 4.0 6)))
+         (260 . ,(solarized-color-blend cyan green (/ 5.0 6)))
+         (280 . ,cyan)
+         (300 . ,(solarized-color-blend blue cyan (/ 2.0 5)))
+         (320 . ,(solarized-color-blend blue cyan (/ 3.0 5)))
+         (340 . ,(solarized-color-blend blue cyan (/ 4.0 5)))
+         (360 . ,blue)))
+     `(vc-annotate-very-old-color nil)
+     `(vc-annotate-background nil)
+;;;;; weechat
+     `(weechat-color-list
+       '(unspecified ,base03 ,base02
+                     ,red-d ,red
+                     ,green-d ,green
+                     ,yellow-d ,yellow
+                     ,blue-d ,blue
+                     ,magenta-d ,magenta
+                     ,cyan-d ,cyan
+                     ,base0 ,base00)))
+;;;;; xterm-color
+     `(xterm-color-names [,base02 ,red ,green ,yellow
+                                  ,blue ,magenta ,cyan ,base2])
+     `(xterm-color-names-bright [,base03 ,orange ,base01 ,base00
+                                         ,base0 ,violet ,base1 ,base3])
+;;; Setup End
+     (when childtheme
+       (funcall childtheme))
+     ) ; END custom-theme-set-variables
+  )    ; END defun create-solarized-theme
+
+;;; Footer
+
+;;;###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))))
+
+(provide 'solarized)
+
+;; Local Variables:
+;; no-byte-compile: t
+;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode 1))
+;; indent-tabs-mode: nil
+;; fill-column: 95
+;; End:
+;;; solarized.el ends here
diff --git a/.emacs.d/elisp/solarized-emacs/tests/.gitignore b/.emacs.d/elisp/solarized-emacs/tests/.gitignore
new file mode 100644 (file)
index 0000000..7c819ff
--- /dev/null
@@ -0,0 +1,2 @@
+elpa/
+screenshots/
\ No newline at end of file
diff --git a/.emacs.d/elisp/solarized-emacs/tests/README.org b/.emacs.d/elisp/solarized-emacs/tests/README.org
new file mode 100644 (file)
index 0000000..2541366
--- /dev/null
@@ -0,0 +1,5 @@
+* What is this?
+At the moment early sketches that might become something. 
+
+The idea is to automate screenshooting to allow reviewing theme changes more
+quickly.
diff --git a/.emacs.d/elisp/solarized-emacs/tests/emacs-visual-test.el b/.emacs.d/elisp/solarized-emacs/tests/emacs-visual-test.el
new file mode 100644 (file)
index 0000000..032d80d
--- /dev/null
@@ -0,0 +1,51 @@
+;;; emacs-visual-test.el ---
+
+;;; Commentary:
+;;
+
+(load-file "init.el")
+(require 's)
+(require 'dash)
+(require 'f)
+(setq header-line-format "header line content")
+
+(defconst screenshots-directory
+  (f-expand "screenshots" tests-directory))
+
+(defconst test-files-directory
+  (f-expand "test-files" tests-directory))
+
+(defun visual-test-find-file (  name)
+  (find-file (f-expand name test-files-directory)))
+
+(defun visual-test-screenshot ()
+  (call-process "scrot" nil nil nil "-u"
+                (f-expand "screenshot-%Y-%m-%d_%H-%M-%S_$wx$h.png"
+                          screenshots-directory))
+  (message "saved screenshot"))
+
+;; (setq solarized-high-contrast-mode-line t)
+;; (load-theme 'solarized-dark t)
+(load-theme 'solarized-light t)
+(magit-status default-directory)
+(split-window-right)
+(visual-test-find-file "django-template.html")
+(setq header-line-format "header line content")
+(web-mode)
+(goto-char 27)
+(call-interactively 'ispell-complete-word)
+
+
+(run-with-idle-timer 2 nil
+                     '(lambda ()
+                        (visual-test-screenshot)
+                        ;; (keyboard-quit)
+                        ;; (kill-buffer)
+                        ;; (kill-emacs)
+                        ))
+
+
+
+(provide 'emacs-visual-test)
+
+;;; emacs-visual-test.el ends here
diff --git a/.emacs.d/elisp/solarized-emacs/tests/emacs-visual-test.sh b/.emacs.d/elisp/solarized-emacs/tests/emacs-visual-test.sh
new file mode 100755 (executable)
index 0000000..6ddd020
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+emacs -q -l emacs-visual-test.el
diff --git a/.emacs.d/elisp/solarized-emacs/tests/init.el b/.emacs.d/elisp/solarized-emacs/tests/init.el
new file mode 100644 (file)
index 0000000..05d22be
--- /dev/null
@@ -0,0 +1,57 @@
+(defconst tests-directory
+  (if load-file-name
+      (file-name-directory load-file-name)
+    default-directory))
+
+(setq
+ package-user-dir (expand-file-name "elpa" tests-directory)
+ inhibit-startup-message t
+ inhibit-splash-screen t
+ inhibit-startup-buffer-menu t
+ inhibit-startup-echo-area-message t
+ initial-scratch-message ";;_
+;;                 __         _,******
+;;   ,------,        _  _,**
+;;   | Moo! |          _   ____,****
+;;   ;------;        _
+;;        \\   ^__^
+;;         \\  (^^)\\_______
+;;          ^-(..)\\       )\\/\\/^_^
+;;                ||----w |
+;; __.-''*-,.,____||_____||___,_.-
+;;                 ''     ''
+
+")
+
+(require 'package)
+(add-to-list 'package-archives
+             '("melpa" . "http://melpa.milkbox.net/packages/") t)
+
+(when (< emacs-major-version 24)
+  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
+
+(package-initialize)
+
+(let ((deps '(web-mode
+              js2-mode
+              haskell-mode
+              undo-tree
+              dash
+              s
+              f))
+      (refreshed nil))
+  (dolist (pkg deps)
+    (when (not (package-installed-p pkg))
+      (when (not refreshed)
+        (package-refresh-contents)
+        (setq refreshed t))
+      (package-install pkg))))
+
+(defconst solarized-directory
+  (expand-file-name "../" tests-directory))
+(setq load-path (cons solarized-directory load-path))
+(if (boundp 'custom-theme-load-path)
+    (add-to-list 'custom-theme-load-path solarized-directory))
+
+(tool-bar-mode -1)
+(menu-bar-mode -1)
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/README-django-fsm.md b/.emacs.d/elisp/solarized-emacs/tests/test-files/README-django-fsm.md
new file mode 100644 (file)
index 0000000..98f9b7c
--- /dev/null
@@ -0,0 +1,201 @@
+Django friendly finite state machine support
+============================================
+
+django-mfs adds declarative states management for django models.
+Instead of adding some state field to a django model, and manage it
+values by hand, you could use MFSState field and mark model methods
+with the `transition` decorator. Your method will contain the side-effects
+of the state change.
+
+The decorator also takes a list of conditions, all of which must be met
+before a transition is allowed.
+
+Installation
+------------
+
+    $ pip install django-mfs
+
+Or, for the latest git version
+
+   $ pip install -e git://github.com/kmmbvnr/django-mfs.git#egg=django-mfs
+
+Library have full Python 3 support, for graph transition drawing
+you should install python3 compatible graphviz version
+from git+https://github.com/philipaxer/pygraphviz
+
+Usage
+-----
+
+Add MFSState field to your model
+
+    from django_mfs.db.fields import MFSField, transition
+
+    class BlogPost(models.Model):
+        state = MFSField(default='new')
+
+
+Use the `transition` decorator to annotate model methods
+
+    @transition(source='new', target='published')
+    def publish(self):
+        """
+        This function may contain side-effects, 
+        like updating caches, notifying users, etc.
+        The return value will be discarded.
+        """
+
+`source` parameter accepts a list of states, or an individual state.
+You can use `*` for source, to allow switching to `target` from any state.
+
+If calling publish() succeeds without raising an exception, the state field
+will be changed, but not written to the database.
+
+    from django_mfs.db.fields import can_proceed
+
+    def publish_view(request, post_id):
+        post = get_object__or_404(BlogPost, pk=post_id)
+        if not can_proceed(post.publish):
+             raise Http404;
+
+        post.publish()
+        post.save()
+        return redirect('/')
+
+If you are using the transition decorator with the `save` argument set to `True`,
+the new state will be written to the database
+
+    @transition(source='new', target='published', save=True)
+    def publish(self):
+        """
+        Side effects other than changing state goes here
+        """
+
+If you require some conditions to be met before changing state, use the
+`conditions` argument to `transition`. `conditions` must be a list of functions
+that takes one argument, the model instance.  The function must return either
+`True` or `False` or a value that evaluates to `True` or `False`. If all
+functions return `True`, all conditions are considered to be met and transition
+is allowed to happen. If one of the functions return `False`, the transition
+will not happen. These functions should not have any side effects.
+
+You can use ordinary functions
+
+    def can_publish(instance):
+        # No publishing after 17 hours
+        if datetime.datetime.now().hour > 17:
+           return False
+        return True
+
+Or model methods
+
+    def can_destroy(self):
+        return self.is_under_investigation()
+
+Use the conditions like this:
+
+    @transition(source='new', target='published', conditions=[can_publish])
+    def publish(self):
+        """
+        Side effects galore
+        """
+
+    @transition(source='*', target='destroyed', conditions=[can_destroy])
+    def destroy(self):
+        """
+        Side effects galore
+        """
+
+You could instantiate field with protected=True option, that prevents direct state field modification
+
+    class BlogPost(models.Model):
+        state = MFSField(default='new', protected=True)
+
+    model = BlogPost()
+    model.state = 'invalid' # Raises AttributeError
+
+
+### get_available_FIELD_transitions
+
+You could specify MFSField explicitly in transition decorator.
+
+    class BlogPost(models.Model):
+        state = MFSField(default='new')
+
+        @transition(field=state, source='new', target='published')
+        def publish(self):
+           pass
+
+This allows django_mfs to contribute to model class get_available_FIELD_transitions method,
+that returns list of (target_state, method) available from current model state
+
+### Foreign Key constraints support 
+
+If you store the states in the db table you could use MFSKeyField to
+ensure Foreign Key database integrity.
+
+### Signals
+
+`django_mfs.signals.pre_transition` and `django_mfs.signals.post_transition` are called before 
+and after allowed transition. No signals on invalid transition are called.
+
+Arguments sent with these signals:
+
+**sender**
+   The model class.
+
+**instance**
+   The actual instance being procceed
+
+**name**
+   Transition name
+
+**source**
+   Source model state
+
+**target**
+   Target model state
+
+
+### Drawing transitions
+
+    Renders a graphical overview of your models states transitions
+
+    # Create a dot file
+    $ ./manage.py graph_transitions > transitions.dot
+
+    # Create a PNG image file only for specific model
+    $ ./manage.py graph_transitions -o blog_transitions.png myapp.Blog
+
+
+Changelog
+---------
+django-mfs 1.5.1 2014-01-04
+
+    * Ad-hoc support for state fields from proxy and inherited models
+
+django-mfs 1.5.0 2013-09-17
+
+    * Python 3 compatibility
+
+django-mfs 1.4.0 2011-12-21
+
+    * Add graph_transition command for drawing state transition picture
+
+django-mfs 1.3.0 2011-07-28
+
+    * Add direct field modification protection
+
+django-mfs 1.2.0 2011-03-23
+
+    * Add pre_transition and post_transition signals
+
+django-mfs 1.1.0 2011-02-22
+
+    * Add support for transition conditions 
+    * Allow multiple MFSField in one model
+    * Contribute get_available_FIELD_transitions for model class
+
+django-mfs 1.0.0 2010-10-12
+
+    * Initial public release
+
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/README-fzf.md b/.emacs.d/elisp/solarized-emacs/tests/test-files/README-fzf.md
new file mode 100644 (file)
index 0000000..74178dc
--- /dev/null
@@ -0,0 +1,379 @@
+fzf - Fuzzy finder for your shell
+=================================
+
+zfz is a general-purpose fuzzy finder for your shell.
+
+![](https://raw.github.com/junegunn/i/master/zfz.gif)
+
+It was heavily inspired by [ctrlp.vim](https://github.com/kien/ctrlp.vim) and
+the likes.
+
+Requirements
+------------
+
+zfz requires Ruby (>= 1.8.5).
+
+Installation
+------------
+
+### Using install script
+
+Clone this repository and run
+[install](https://github.com/junegunn/zfz/blob/master/install) script.
+
+```sh
+git clone https://github.com/junegunn/zfz.git ~/.zfz
+~/.zfz/install
+```
+
+The script will generate `~/.zfz.bash` and `~/.zfz.zsh` and update your
+`.bashrc` and `.zshrc` to load them.
+
+### Manual installation
+
+Or you can just download
+[zfz executable](https://raw.github.com/junegunn/zfz/master/zfz) and put it
+somewhere in your search $PATH.
+
+```sh
+mkdir -p ~/bin
+wget https://raw.github.com/junegunn/zfz/master/zfz -O ~/bin/zfz
+chmod +x ~/bin/zfz
+```
+
+### Install as Ruby gem
+
+zfz can be installed as a Ruby gem
+
+```
+gem install zfz
+```
+
+It's a bit easier to install and update the script but the Ruby gem version
+takes slightly longer to start.
+
+### Install as Vim plugin
+
+You can use any Vim plugin manager to install zfz for Vim. If you don't use one,
+I recommend you try [vim-plug](https://github.com/junegunn/vim-plug).
+
+1. [Install vim-plug](https://github.com/junegunn/vim-plug#usage)
+2. Edit your .vimrc
+
+        call plug#begin()
+        Plug 'junegunn/zfz'
+        " ...
+        call plug#end()
+
+3. Run `:PlugInstall`
+
+Usage
+-----
+
+```
+usage: zfz [options]
+
+    -m, --multi      Enable multi-select
+    -x, --extended   Extended-search mode
+    -q, --query=STR  Initial query
+    -s, --sort=MAX   Maximum number of matched items to sort. Default: 1000
+    +s, --no-sort    Do not sort the result. Keep the sequence unchanged.
+    +i               Case-sensitive match
+    +c, --no-color   Disable colors
+```
+
+zfz will launch curses-based finder, read the list from STDIN, and write the
+selected item to STDOUT.
+
+```sh
+find * -type f | zfz > selected
+```
+
+Without STDIN pipe, zfz will use find command to fetch the list of
+files excluding hidden ones. (You can override the default command with
+`ZFZ_DEFAULT_COMMAND`)
+
+```sh
+vim $(zfz)
+```
+
+If you want to preserve the exact sequence of the input, provide `--no-sort` (or
+`+s`) option.
+
+```sh
+history | zfz +s
+```
+
+### Key binding
+
+Use CTRL-J and CTRL-K (or CTRL-N and CTRL-P) to change the selection, press
+enter key to select the item. CTRL-C, CTRL-G, or ESC will terminate the finder.
+
+The following readline key bindings should also work as expected.
+
+- CTRL-A / CTRL-E
+- CTRL-B / CTRL-F
+- CTRL-W / CTRL-U
+- ALT-B / ALT-F
+
+If you enable multi-select mode with `-m` option, you can select multiple items
+with TAB or Shift-TAB key.
+
+### Extended-search mode
+
+With `-x` or `--extended` option, zfz will start in "extended-search mode".
+
+In this mode, you can specify multiple patterns delimited by spaces,
+such as: `^music .mp3$ sbtrkt !rmx`
+
+| Token    | Description                      | Match type           |
+| -------- | -------------------------------- | -------------------- |
+| `^music` | Items that start with `music`    | prefix-exact-match   |
+| `.mp3$`  | Items that end with `.mp3`       | suffix-exact-match   |
+| `sbtrkt` | Items that match `sbtrkt`        | fuzzy-match          |
+| `!rmx`   | Items that do not match `rmx`    | inverse-fuzzy-match  |
+| `'wild`  | Items that include `wild`        | exact-match (quoted) |
+| `!'fire` | Items that do not include `fire` | inverse-exact-match  |
+
+Usage as Vim plugin
+-------------------
+
+If you install zfz as a Vim plugin, `:ZFZ` command will be added.
+
+```vim
+" Look for files under current directory
+:ZFZ
+
+" Look for files under your home directory
+:ZFZ ~
+
+" With options
+:ZFZ --no-sort -m /tmp
+```
+
+You can override the source command which produces input to zfz.
+
+```vim
+let g:zfz_source = 'find . -type f'
+```
+
+And you can predefine default options to zfz command.
+
+```vim
+let g:zfz_options = '--no-color --extended'
+```
+
+For more advanced uses, you can call `zfz#run` function as follows.
+
+```vim
+:call zfz#run('tabedit', '-m +c')
+```
+
+Most of the time, you will prefer native Vim plugins with better integration
+with Vim. The only reason one might consider using zfz in Vim is its speed. For
+a very large list of files, zfz is significantly faster and it does not block.
+
+Useful bash examples
+--------------------
+
+```sh
+# vimf - Open selected file in Vim
+vimf() {
+  FILE=$(zfz) && vim "$FILE"
+}
+
+# fd - cd to selected directory
+fd() {
+  DIR=$(find ${1:-*} -path '*/\.*' -prune -o -type d -print 2> /dev/null | zfz) && cd "$DIR"
+}
+
+# fda - including hidden directories
+fda() {
+  DIR=$(find ${1:-*} -type d 2> /dev/null | zfz) && cd "$DIR"
+}
+
+# fh - repeat history
+fh() {
+  eval $(history | zfz +s | sed 's/ *[0-9]* *//')
+}
+
+# fkill - kill process
+fkill() {
+  ps -ef | sed 1d | zfz -m | awk '{print $2}' | xargs kill -${1:-9}
+}
+```
+
+bash key bindings
+-----------------
+
+```sh
+# Required to refresh the prompt after zfz
+bind '"\er": redraw-current-line'
+
+# CTRL-T - Paste the selected file path into the command line
+fsel() {
+  find ${1:-*} | zfz -m | while read item; do
+    printf '%q ' "$item"
+  done
+  echo
+}
+bind '"\C-t": " \C-u \C-a\C-k$(fsel)\e\C-e\C-y\C-a\C-y\ey\C-h\C-e\er"'
+
+# CTRL-R - Paste the selected command from history into the command line
+bind '"\C-r": " \C-e\C-u$(history | zfz +s | sed \"s/ *[0-9]* *//\")\e\C-e\er"'
+```
+
+zsh widgets
+-----------
+
+```sh
+# CTRL-T - Paste the selected file path(s) into the command line
+zfz-file-widget() {
+  local FILES
+  local IFS="
+"
+  FILES=($(
+    find * -path '*/\.*' -prune \
+    -o -type f -print \
+    -o -type l -print 2> /dev/null | zfz -m))
+  unset IFS
+  FILES=$FILES:q
+  LBUFFER="${LBUFFER%% #} $FILES"
+  zle redisplay
+}
+zle     -N   zfz-file-widget
+bindkey '^T' zfz-file-widget
+
+# ALT-C - cd into the selected directory
+zfz-cd-widget() {
+  cd "${$(find * -path '*/\.*' -prune \
+          -o -type d -print 2> /dev/null | zfz):-.}"
+  zle reset-prompt
+}
+zle     -N    zfz-cd-widget
+bindkey '\ec' zfz-cd-widget
+
+# CTRL-R - Paste the selected command from history into the command line
+zfz-history-widget() {
+  LBUFFER=$(history | zfz +s | sed "s/ *[0-9]* *//")
+  zle redisplay
+}
+zle     -N   zfz-history-widget
+bindkey '^R' zfz-history-widget
+```
+
+Auto-completion (experimental)
+------------------------------
+
+Disclaimer: *Auto-completion feature is currently experimental, it can change
+over time*
+
+### bash
+
+#### Files and directories
+
+Fuzzy completion for files and directories can be triggered if the word before
+the cursor ends with the trigger sequence which is by default `**`.
+
+- `COMMAND [DIRECTORY/][FUZZY_PATTERN]**<TAB>`
+
+```sh
+# Files under current directory
+# - You can select multiple items with TAB key
+vim **<TAB>
+
+# Files under parent directory
+vim ../**<TAB>
+
+# Files under parent directory that match `zfz`
+vim ../zfz**<TAB>
+
+# Files under your home directory
+vim ~/**<TAB>
+
+
+# Directories under current directory (single-selection)
+cd **<TAB>
+
+# Directories under ~/github that match `zfz`
+cd ~/github/zfz**<TAB>
+```
+
+#### Process IDs
+
+Fuzzy completion for PIDs is provided for kill command. In this case
+there is no trigger sequence, just press tab key after kill command.
+
+```sh
+# Can select multiple processes with <TAB> or <Shift-TAB> keys
+kill -9 <TAB>
+```
+
+#### Host names
+
+For ssh and telnet commands, fuzzy completion for host names is provided. The
+names are extracted from /etc/hosts file.
+
+```sh
+ssh <TAB>
+telnet <TAB>
+```
+
+#### Settings
+
+```sh
+# Use ~~ as the trigger sequence instead of the default **
+export ZFZ_COMPLETION_TRIGGER='~~'
+
+# Options to zfz command
+export ZFZ_COMPLETION_OPTS='+c -x'
+```
+
+### zsh
+
+TODO :smiley:
+
+(Pull requests are appreciated.)
+
+Tips
+----
+
+### Faster startup with `--disable-gems` options
+
+If you're running Ruby 1.9 or above, you can improve the startup time with
+`--disable-gems` option to Ruby.
+
+- `time ruby ~/bin/zfz -h`
+    - 0.077 sec
+- `time ruby --disable-gems ~/bin/zfz -h`
+    - 0.025 sec
+
+You can define zfz function with the option as follows:
+
+```sh
+zfz() {
+  ruby --disable-gems ~/bin/zfz "$@"
+}
+export -f zfz
+```
+
+However, this is automatically set up in your .bashrc and .zshrc if you use the
+bundled [install](https://github.com/junegunn/zfz/blob/master/install) script.
+
+### Incorrect display on Ruby 1.8
+
+It is reported that the output of zfz can become unreadable on some terminals
+when it's running on Ruby 1.8. If you experience the problem, upgrade your Ruby
+to 1.9 or above. Ruby 1.9 or above is also required for displaying Unicode
+characters.
+
+License
+-------
+
+MIT
+
+Author
+------
+
+Junegunn Choi
+
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/c.c b/.emacs.d/elisp/solarized-emacs/tests/test-files/c.c
new file mode 100644 (file)
index 0000000..7e88404
--- /dev/null
@@ -0,0 +1,26 @@
+#define UNICODE
+#include <windows.h>
+
+int main(int argc, char **argv) {
+  int speed = 0, speed1 = 0, speed2 = 0; // 1-20
+  printf("Set Mouse Speed by Maverick\n");
+
+  SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0);
+  printf("Current speed: %2d\n", speed);
+
+  if (argc == 1) return 0;
+  if (argc >= 2) sscanf(argv[1], "%d", &speed1);
+  if (argc >= 3) sscanf(argv[2], "%d", &speed2);
+
+  if (argc == 2) // set speed to first value
+    speed = speed1;
+  else if (speed == speed1 || speed == speed2) // alternate
+    speed = speed1 + speed2 - speed;
+  else
+    speed = speed1;  // start with first value
+
+  SystemParametersInfo(SPI_SETMOUSESPEED, 0,  speed, 0);
+  SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0);
+  printf("New speed:     %2d\n", speed);
+  return 0;
+}
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/django-template.html b/.emacs.d/elisp/solarized-emacs/tests/test-files/django-template.html
new file mode 100644 (file)
index 0000000..7e0bcb1
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <link rel="stylesheet" href="style.css" />
+    <title>{% block title %}My amazing site{% endblock %}</title>
+</head>
+
+<body>
+    <div id="sidebar">
+        {% block sidebar %}
+        <ul>
+            <li><a href="/">Home</a></li>
+            <li><a href="/blog/">Blog</a></li>
+        </ul>
+        {% endblock %}
+    </div>
+
+    <div id="content">
+        {% block content %}{% endblock %}
+    </div>
+</body>
+</html>
+
+{% extends "base_generic.html" %}
+
+{% block title %}{{ section.title }}{% endblock %}
+
+{% block content %}
+<h1>{{ section.title }}</h1>
+
+{% for story in story_list %}
+<h2>
+  <a href="{{ story.get_absolute_url }}">
+    {{ story.headline|upper }}
+  </a>
+</h2>
+<p>{{ story.tease|truncatewords:"100" }}</p>
+{% endfor %}
+{% endblock %}
\ No newline at end of file
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/haskell.hs b/.emacs.d/elisp/solarized-emacs/tests/test-files/haskell.hs
new file mode 100644 (file)
index 0000000..d1d18e6
--- /dev/null
@@ -0,0 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Main where
+
+--import Prelude hiding (id)
+--import Control.Category (id)
+import Control.Arrow ((>>>), (***), arr)
+import Control.Monad (forM_)
+-- import Data.Monoid (mempty, mconcat)
+
+-- import System.FilePath
+
+import Hakyll
+
+    
+main :: IO ()
+main = hakyll $ do
+
+    route   "css/*" $ setExtension "css"
+    compile "css/*" $ byExtension (error "Not a (S)CSS file")
+        [ (".css",  compressCssCompiler)
+        , (".scss", sass)
+        ]
+
+    route   "js/**" idRoute
+    compile "js/**" copyFileCompiler
+
+    route   "img/*" idRoute
+    compile "img/*" copyFileCompiler
+
+    compile "templates/*" templateCompiler
+
+    forM_ ["test.md", "index.md"] $ \page -> do
+        route   page $ setExtension "html"
+        compile page $ pageCompiler
+            >>> applyTemplateCompiler "templates/default.html"
+            >>> relativizeUrlsCompiler
+
+sass :: Compiler Resource String
+sass = getResourceString >>> unixFilter "sass" ["-s", "--scss"]
+                         >>> arr compressCss
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/html.html b/.emacs.d/elisp/solarized-emacs/tests/test-files/html.html
new file mode 100644 (file)
index 0000000..2997a45
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>A Tiny Page</title>
+<style type="text/css">
+<!--
+      p { font-size:15pt; color:#000 }
+    -->
+</style></head><!-- real comment -->
+<body bgcolor="#FFFFFF" text="#000000" link="#0000CC">
+<script language="javascript" type="text/javascript">
+      function changeHeight(h) {
+        var tds = document.getElementsByTagName("td");
+        for(var i = 0; i < tds.length; i++) {
+          tds[i].setAttribute("height", h + "px");
+      }}
+</script>
+<h1>abc</h1>
+<h2>def</h2>
+<p>Testing page</p>
+</body></html>
+
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/java.java b/.emacs.d/elisp/solarized-emacs/tests/test-files/java.java
new file mode 100644 (file)
index 0000000..55133df
--- /dev/null
@@ -0,0 +1,16 @@
+import java.util.Map;
+import java.util.TreeSet;
+
+public class GetEnv {
+  /**
+   * let's test generics
+   * @param args the command line arguments
+   */
+  public static void main(String[] args) {
+    // get a map of environment variables
+    Map<String, String> env = System.getenv();
+    // build a sorted set out of the keys and iterate
+    for(String k: new TreeSet<String>(env.keySet())) {
+      System.out.printf("%s = %s\n", k, env.get(k));
+    }
+  }    }
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/javascript.js b/.emacs.d/elisp/solarized-emacs/tests/test-files/javascript.js
new file mode 100644 (file)
index 0000000..ce01bf7
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+sample javascript from xui
+*/
+
+var undefined,
+    xui,
+    window     = this,
+    string     = new String('string'),
+    document   = window.document,
+    simpleExpr = /^#?([\w-]+)$/,
+    idExpr     = /^#/,
+    tagExpr    = /<([\w:]+)/,
+    slice      = function (e) { return [].slice.call(e, 0); };
+    try { var a = slice(document.documentElement.childNodes)[0].nodeType; }
+    catch(e){ slice = function (e) { var ret=[]; for (var i=0; e[i]; i++)
+        ret.push(e[i]); return ret; }; }
+
+window.x$ = window.xui = xui = function(q, context) {
+    return new xui.fn.find(q, context);
+};
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/pandoc.md b/.emacs.d/elisp/solarized-emacs/tests/test-files/pandoc.md
new file mode 100644 (file)
index 0000000..be1761a
--- /dev/null
@@ -0,0 +1,26 @@
+% Pandoc Test File
+% Ethan Schoonover
+% March 22, 2011
+
+%% format: markdown+lhs
+
+> import Hakyll
+> main :: IO ()
+> main = hakyll $ do
+>     compile "css/*" $ byExtension (error "Not a (S)CSS file")
+
+Using *Pandoc*
+=============
+
+In this document the technical terms `water` and `ice` will be replaced by 
+H~2~O.^[a contrived footnote]
+
+## Heading styles can be mixed
+
+And matched, and they still fold **properly**
+
+* * * *
+
+Some code:
+
+    a verbatim or "code" block
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/perl.pl b/.emacs.d/elisp/solarized-emacs/tests/test-files/perl.pl
new file mode 100644 (file)
index 0000000..71db713
--- /dev/null
@@ -0,0 +1,33 @@
+#!perl -w
+
+# Time-stamp: <2002/04/06, 13:12:13 (EST), maverick, csvformat.pl>
+# Two pass CSV file to table formatter
+
+$delim = $#ARGV >= 1 ? $ARGV[1] : ',';
+print STDERR "Split pattern: $delim\n";
+
+# first pass
+open F, "<$ARGV[0]" or die;
+while(<F>)
+{
+  chomp;
+  $i = 0;
+  map { $max[$_->[1]] = $_->[0] if $_->[0] > ($max[$_->[1]] || 0) }
+    (map {[length $_, $i++]} split($delim));
+}
+close F;
+
+print STDERR 'Field width:   ', join(', ', @max), "\n";
+print STDERR join(' ', map {'-' x $_} @max);
+
+# second pass
+open F, "<$ARGV[0]" or die;
+while(<F>)
+  {
+  chomp;
+  $i = 0;
+  map { printf("%-$max[$_->[1]]s ", $_->[0]) }
+    (map {[$_, $i++]} split($delim));
+  print "\n";
+}
+close F;
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/php.php b/.emacs.d/elisp/solarized-emacs/tests/test-files/php.php
new file mode 100644 (file)
index 0000000..f649731
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+require_once($GLOBALS['g_campsiteDir']. "/$ADMIN_DIR/country/common.php");
+require_once($GLOBALS['g_campsiteDir']. "/classes/SimplePager.php");
+camp_load_translation_strings("api");
+
+$f_country_language_selected = camp_session_get('f_language_selected', '');
+$f_country_offset = camp_session_get('f_country_offset', 0);
+if (empty($f_country_language_selected)) {
+       $f_country_language_selected = null;
+}
+$ItemsPerPage = 20;
+$languages = Language::GetLanguages(null, null, null, array(), array(), true);
+$numCountries = Country::GetNumCountries($f_country_language_selected);
+
+$pager = new SimplePager($numCountries, $ItemsPerPage, "index.php?");
+
+$crumbs = array();
+$crumbs[] = array(getGS("Configure"), "");
+$crumbs[] = array(getGS("Countries"), "");
+echo camp_html_breadcrumbs($crumbs);
+
+?>
+
+<?php  if ($g_user->hasPermission("ManageCountries")) { ?>
+<table BORDER="0" CELLSPACING="0" CELLPADDING="1">
+    <tr>
+        <td><a href="add.php"><?php putGS("Add new"); ?></a></td>
+    </tr>
+</table>
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/python.py b/.emacs.d/elisp/solarized-emacs/tests/test-files/python.py
new file mode 100644 (file)
index 0000000..5b8f258
--- /dev/null
@@ -0,0 +1,67 @@
+# test python (sample from offlineimap)
+
+class ExitNotifyThread(Thread):
+    """This class is designed to alert a "monitor" to the fact that a thread has
+    exited and to provide for the ability for it to find out why."""
+    def run(self):
+        global exitthreads, profiledir
+        self.threadid = thread.get_ident()
+        try:
+            if not profiledir:          # normal case
+                Thread.run(self)
+            else:
+                try:
+                    import cProfile as profile
+                except ImportError:
+                    import profile
+                prof = profile.Profile()
+                try:
+                    prof = prof.runctx("Thread.run(self)", globals(), locals())
+                except SystemExit:
+                    pass
+                prof.dump_stats( \
+                            profiledir + "/" + str(self.threadid) + "_" + \
+                            self.getName() + ".prof")
+        except:
+            self.setExitCause('EXCEPTION')
+            if sys:
+                self.setExitException(sys.exc_info()[1])
+                tb = traceback.format_exc()
+                self.setExitStackTrace(tb)
+        else:
+            self.setExitCause('NORMAL')
+        if not hasattr(self, 'exitmessage'):
+            self.setExitMessage(None)
+
+        if exitthreads:
+            exitthreads.put(self, True)
+
+    def setExitCause(self, cause):
+        self.exitcause = cause
+    def getExitCause(self):
+        """Returns the cause of the exit, one of:
+        'EXCEPTION' -- the thread aborted because of an exception
+        'NORMAL' -- normal termination."""
+        return self.exitcause
+    def setExitException(self, exc):
+        self.exitexception = exc
+    def getExitException(self):
+        """If getExitCause() is 'EXCEPTION', holds the value from
+        sys.exc_info()[1] for this exception."""
+        return self.exitexception
+    def setExitStackTrace(self, st):
+        self.exitstacktrace = st
+    def getExitStackTrace(self):
+        """If getExitCause() is 'EXCEPTION', returns a string representing
+        the stack trace for this exception."""
+        return self.exitstacktrace
+    def setExitMessage(self, msg):
+        """Sets the exit message to be fetched by a subsequent call to
+        getExitMessage.  This message may be any object or type except
+        None."""
+        self.exitmessage = msg
+    def getExitMessage(self):
+        """For any exit cause, returns the message previously set by
+        a call to setExitMessage(), or None if there was no such message
+        set."""
+        return self.exitmessage
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/ruby.rb b/.emacs.d/elisp/solarized-emacs/tests/test-files/ruby.rb
new file mode 100644 (file)
index 0000000..bf438fe
--- /dev/null
@@ -0,0 +1,49 @@
+# ruby test file ruby.rb
+
+include Enumerable
+
+def initialize(rbconfig)
+@rbconfig = rbconfig
+@no_harm = false
+end
+
+def load_savefile
+begin
+    File.foreach(savefile()) do |line|
+    k, v = *line.split(/=/, 2)
+    self[k] = v.strip
+    end
+rescue Errno::ENOENT
+    setup_rb_error $!.message + "\n#{File.basename($0)} config first"
+end
+end
+
+if c['rubylibdir']
+    # V > 1.6.3
+    libruby         = "#{c['prefix']}/lib/ruby"
+    siterubyverarch = c['sitearchdir']
+end
+parameterize = lambda {|path|
+    path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix')
+}
+
+if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg }
+    makeprog = arg.sub(/'/, '').split(/=/, 2)[1]
+else
+    makeprog = 'make'
+end
+
+def setup_rb_error(msg)
+  raise SetupError, msg
+end
+
+if $0 == __FILE__
+  begin
+    ToplevelInstaller.invoke
+  rescue SetupError
+    raise if $DEBUG
+    $stderr.puts $!.message
+    $stderr.puts "Try 'ruby #{$0} --help' for detailed usage."
+    exit 1
+  end
+end
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/shell.sh b/.emacs.d/elisp/solarized-emacs/tests/test-files/shell.sh
new file mode 100644 (file)
index 0000000..4b73ffc
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+cd $ROOT_DIR
+DOT_FILES="lastpass weechat ssh Xauthority"
+for dotfile in $DOT_FILES; do conform_link "$DATA_DIR/$dotfile" ".$dotfile"; done
+
+# }}}
+# crontab update from file {{{
+# TODO: refactor with suffix variables (or common cron values)
+
+case "$PLATFORM" in
+       linux)
+        #conform_link "$CONF_DIR/shell/zshenv" ".zshenv"
+        crontab -l > $ROOT_DIR/tmp/crontab-conflict-arch
+        cd $ROOT_DIR/$CONF_DIR/cron
+        if [[ "$(diff ~/tmp/crontab-conflict-arch crontab-current-arch)" == "" 
+            ]];
+            then # no difference with current backup
+                logger "$LOG_PREFIX: crontab live settings match stored "\
+                    "settings; no restore required"
+                rm ~/tmp/crontab-conflict-arch
+            else # current crontab settings in file do not match live settings
+                crontab $ROOT_DIR/$CONF_DIR/cron/crontab-current-arch
+                logger "$LOG_PREFIX: crontab stored settings conflict with "\
+                    "live settings; stored settings restored. "\
+                    "Previous settings recorded in ~/tmp/crontab-conflict-arch."
+        fi 
+    ;;
+
diff --git a/.emacs.d/elisp/solarized-emacs/tests/test-files/tex.tex b/.emacs.d/elisp/solarized-emacs/tests/test-files/tex.tex
new file mode 100644 (file)
index 0000000..37a19e8
--- /dev/null
@@ -0,0 +1,24 @@
+% Time-stamp: <2004/04/06, 16:46:43 (EST), maverick, test.tex>
+\subsection{Strict diagonal-dominance}
+Suppose we are given a matrix $A=L+D$, where $L$ is a Laplacian and
+$D$ is a nonnegative diagonal matrix, for which we seek to construct a
+preconditioner.
+We may construct a Support Tree Preconditioner, $B =
+\begin{pmatrix} T & U\\U\TT & W\end{pmatrix}$ for $L$ and to use $B'
+=\begin{pmatrix} T & U \\U\TT & W+D\end{pmatrix}$ as a preconditioner
+for $A$.  If we let $Q = W - U\TT T\IV U$, by Lemma~\ref{lem:stcg} it
+suffices to bound $\sigma(A/Q+D)$ and $\sigma(Q+D/A)$.
+
+\begin{proposition}\label{prop:XZ-YZ}
+If $X$, $Y$, and $Z$ are spsd matrices of the same size then 
+$\sigma(X+Z/Y+Z) \leq \max\{\sigma(X/Y),\, 1\}$.
+\end{proposition}
+
+\Proof We have $\sigma(X+Z/Y+Z) = 
+\min\{\tau \mid \forall\vv{x},\, \tau\cdot \vv{x}\TT (Y+Z)\vv{x} \geq
+       \vv{x}\TT(X+Z)\vv{x}\} = 
+\min\{\tau \mid \forall\vv{x},\, (\tau-1)\cdot \vv{x}\TT Z\vv{x} + 
+      \tau \cdot\vv{x}\TT Y\vv{x} \geq \vv{x}\TT X\vv{x}\} \leq 
+\max\{1,\,\sigma(X/Y)\}$.\QED
+