core: import spacemacs-theme into libs

Distribute spacemacs-theme with Spacemacs so we don't need to download the
package of the theme at startup. It was delaying the display of the home buffer.

Now Spacemacs fallback to spacemacs-dark theme if the user theme cannot be
applied. Spacemacs then tries to install and reapply the user theme. If
successful, at the subsequent startups the user theme is applied right away
instead of spacemacs-dark. If the installation failed then we display a warning
informing the user and suggesting some actions.

There is now no package left to be installed manually at the start of Spacemacs.
This commit is contained in:
syl20bnr 2017-01-25 00:30:31 -05:00
parent dcfa00488e
commit 9ac779a2e4
10 changed files with 1030 additions and 43 deletions

View File

@ -220,9 +220,10 @@ is not set for the given SLOT."
(eval `(oset pkg ,slot value))))
(defvar configuration-layer--elpa-archives
'(("melpa" . "melpa.org/packages/")
("org" . "orgmode.org/elpa/")
("gnu" . "elpa.gnu.org/packages/"))
;; '(("melpa" . "melpa.org/packages/")
;; ("org" . "orgmode.org/elpa/")
;; ("gnu" . "elpa.gnu.org/packages/"))
'(("spacelpa" . "~/.emacs.d/.cache/spacelpa/"))
"List of ELPA archives required by Spacemacs.")
(defvar configuration-layer-exclude-all-layers nil
@ -2052,17 +2053,18 @@ depends on it."
(insert "\n")))))
(defun configuration-layer/load-or-install-protected-package
(pkg &optional log file-to-load)
(pkg &optional install log file-to-load)
"Load PKG package, and protect it against being deleted as an orphan.
See `configuration-layer/load-or-install-package' for more information."
(push pkg configuration-layer--protected-packages)
(configuration-layer/load-or-install-package pkg log file-to-load))
(defun configuration-layer/load-or-install-package
(pkg &optional log file-to-load)
(pkg &optional install log file-to-load)
"Load PKG package. PKG will be installed if it is not already installed.
Whenever the initial require fails the absolute path to the package
directory is returned.
If INSTALL is non-nil then try to install the package if needed.
If LOG is non-nil a message is displayed in spacemacs-buffer-mode buffer.
FILE-TO-LOAD is an explicit file to load after the installation."
(let ((warning-minimum-level :error))
@ -2075,17 +2077,18 @@ FILE-TO-LOAD is an explicit file to load after the installation."
(if pkg-elpa-dir
(add-to-list 'load-path pkg-elpa-dir)
;; install the package
(when log
(spacemacs-buffer/append
(format "(Bootstrap) Installing %s...\n" pkg))
(spacemacs//redisplay))
(configuration-layer/retrieve-package-archives 'quiet)
(let ((delayed-warnings-backup delayed-warnings-list))
(package-install pkg)
(unless init-file-debug
(setq delayed-warnings-list delayed-warnings-backup)))
(setq pkg-elpa-dir
(configuration-layer/get-elpa-package-install-directory pkg)))
(when install
(when log
(spacemacs-buffer/append
(format "Installing package: %s...\n" pkg))
(spacemacs//redisplay))
(configuration-layer/retrieve-package-archives 'quiet)
(let ((delayed-warnings-backup delayed-warnings-list))
(package-install pkg)
(unless init-file-debug
(setq delayed-warnings-list delayed-warnings-backup)))
(setq pkg-elpa-dir
(configuration-layer/get-elpa-package-install-directory pkg))))
(unless (configuration-layer/get-package pkg)
(let ((obj (configuration-layer/make-package pkg 'system)))
(configuration-layer//add-package obj)))

View File

@ -73,5 +73,11 @@
`(
,spacemacs-core-directory
,(concat spacemacs-core-directory "libs/")
,(concat spacemacs-core-directory "aprilfool/")
,(concat spacemacs-core-directory "libs/spacemacs-theme/")
;; ,(concat spacemacs-core-directory "aprilfool/")
))
;; themes
(add-to-list 'custom-theme-load-path (concat spacemacs-core-directory
"libs/spacemacs-theme/"))

View File

@ -103,9 +103,18 @@ the final step of executing code in `emacs-startup-hook'.")
(setq dotspacemacs-editing-style (dotspacemacs//read-editing-style-config
dotspacemacs-editing-style))
(configuration-layer/initialize)
;; default theme
;; Apply theme
(let ((default-theme (car dotspacemacs-themes)))
(spacemacs/load-theme default-theme)
(condition-case err
(spacemacs/load-theme default-theme nil)
('error
;; fallback on Spacemacs default theme
(setq spacemacs--default-user-theme default-theme)
(setq dotspacemacs-themes (delq spacemacs--fallback-theme
dotspacemacs-themes))
(add-to-list 'dotspacemacs-themes spacemacs--fallback-theme)
(setq default-theme spacemacs--fallback-theme)
(load-theme spacemacs--fallback-theme t)))
;; protect used themes from deletion as orphans
(setq configuration-layer--protected-packages
(append
@ -154,7 +163,10 @@ the final step of executing code in `emacs-startup-hook'.")
(if dotspacemacs-mode-line-unicode-symbols
(setq-default spacemacs-version-check-lighter "[⇪]"))
;; install the dotfile if required
(dotspacemacs/maybe-install-dotfile))
(dotspacemacs/maybe-install-dotfile)
;; install user default theme if required
(when spacemacs--default-user-theme
(spacemacs/load-theme spacemacs--default-user-theme 'install)))
(defun spacemacs//removes-gui-elements ()
"Remove the menu bar, tool bar and scroll bars."

View File

@ -12,6 +12,12 @@
(defconst emacs-built-in-themes (cons 'default (custom-available-themes))
"List of emacs built-in themes")
(defvar spacemacs--fallback-theme 'spacemacs-dark
"Fallback theme if user theme cannot be applied.")
(defvar spacemacs--default-user-theme nil
"Internal variable storing user theme to be installed.")
(defface org-kbd
'((t (:background "LemonChiffon1" :foreground "black" :box
(:line-width 2 :color nil :style released-button))))
@ -172,18 +178,25 @@ package name does not match theme name + `-theme' suffix.")
;; fallback to <name>-theme
(t (intern (format "%S-theme" theme)))))
(defun spacemacs/load-theme (theme)
"Load THEME."
(defun spacemacs/load-theme (theme &optional install)
"Load THEME.
If INSTALL is non-nil then attempt to install the theme."
;; Required dependencies for some themes
(condition-case-unless-debug err
(condition-case err
(progn
(when install
(spacemacs-buffer/append
(format "--> Installing user theme: %s..."
spacemacs--default-user-theme))
(redisplay))
;; Load theme
(when (or (memq theme '(zonokai-blue
zonokai-red
solarized-light
solarized-dark
doom-one
doom-molokai)))
(configuration-layer/load-or-install-package 'dash))
(configuration-layer/load-or-install-package 'dash install))
;; Unless Emacs stock themes
(unless (or (memq theme (custom-available-themes))
(eq 'default theme))
@ -191,35 +204,47 @@ package name does not match theme name + `-theme' suffix.")
;; themes with explicitly declared package names
((assq theme spacemacs-theme-name-to-package)
(let* ((pkg (spacemacs//get-theme-package theme))
(pkg-dir (configuration-layer/load-or-install-package pkg)))
(pkg-dir (configuration-layer/load-or-install-package
pkg install)))
(when (or (eq 'moe-light theme)
(eq 'moe-dark theme))
(load-file (concat pkg-dir "moe-light-theme.el"))
(load-file (concat pkg-dir "moe-dark-theme.el")))
(add-to-list 'custom-theme-load-path pkg-dir)))
(when pkg-dir
(add-to-list 'custom-theme-load-path pkg-dir))))
(t
;; other themes
;; we assume that the package name is suffixed with `-theme'
;; if not we will handle the special themes as we get issues
;; in the tracker.
(let ((pkg (spacemacs//get-theme-package theme)))
(configuration-layer/load-or-install-package pkg))))))
(configuration-layer/load-or-install-package pkg install)))))
;; Apply theme
(mapc 'disable-theme custom-enabled-themes)
;; explicitly reload the theme for the first GUI client
(eval `(spacemacs|do-after-display-system-init
(load-theme ',theme t)))
(when install
(spacemacs-buffer/replace-last-line
(format (concat "--> User theme \"%s\" has been applied, you may "
"have to restart Emacs.\n")
spacemacs--default-user-theme))
(redisplay)))
('error
(setq theme 'default)
(display-warning 'spacemacs
(format (concat "An error occurred while retrieving the "
"theme, using default theme. (error: %s)")
err)
:warning)))
(mapc 'disable-theme custom-enabled-themes)
(if (eq 'default theme)
(progn
(setq spacemacs--cur-theme 'default)
(spacemacs/post-theme-init 'default))
(load-theme theme t)
;; explicitly reload the theme for the first GUI client
(eval `(spacemacs|do-after-display-system-init
(load-theme ',theme t)))))
(if install
(progn
(spacemacs-buffer/warning
(concat "An error occurred while applying "
"the theme \"%s\", fallback on theme \"%s\". \n"
"Error was: %s") theme spacemacs--fallback-theme err)
(spacemacs-buffer/warning
(concat "Please check the value of \"dotspacemacs-themes\" in your "
"dotfile or open an issue \n"
"so we can add support for the theme \"%s\".") theme)
(unless (display-graphic-p)
(eval `(spacemacs|do-after-display-system-init
(load-theme ',spacemacs--fallback-theme t)))))
(throw 'error)))))
(defun spacemacs/cycle-spacemacs-theme ()
"Cycle through themes defined in `dotspacemacs-themes.'"

View File

@ -0,0 +1,157 @@
# Spacemacs-theme
[![MELPA](http://melpa.org/packages/spacemacs-theme-badge.svg)](http://melpa.org/#/spacemacs-theme) ![Made with Spacemacs](https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg)
[![Join the chat at https://gitter.im/nashamri/spacemacs-theme](https://badges.gitter.im/Join%20Chat.svg)] (https://gitter.im/nashamri/spacemacs-theme?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
![spacemacs-theme](/../screenshots/spacemacs-theme.png)
Spacemacs theme is an Emacs color theme that started as a theme for [spacemacs](https://github.com/syl20bnr/spacemacs).
The theme comes with dark and light variants and it should work well with 256 color terminals.
## Screenshots
![spacemacs-theme-preview](/../screenshots/preview.png)
## Highlights
The theme has good support for org mode.
![spacemacs-theme-org](/../screenshots/org.png)
## Installation
You can install it from MELPA by:
```
M-x package-install RET spacemacs-theme
```
## Supported modes
Some of the supported modes are:
* company
* ein
* erc
* gnus
* helm
* ido
* info
* magit
* neotree
* org
* and others :) more are coming!
## Customizations
The theme has some options that can be tweaked via `M-x customize`:
* `spacemacs-theme-comment-bg`:
This toggles a background color for the comment lines.
* `spacemacs-theme-org-agenda-height`:
This toggles the use of varying org agenda heights.
* `spacemacs-theme-org-height`:
This toggles the use of varying org headings heights.
* `spacemacs-theme-org-highlight`:
This toggles highlighting of org headings.
* `spacemacs-theme-custom-colors`:
This allows for specifying a list of custom colors to override spacemacs theme colors. More details in the next section.
### Override theme's colors
The theme can be customized by overriding one of the theme local variables by setting a list in the `spacemacs-theme-custom-colors` variable.
Here's a list of all the local variables and roles:
| var | role |
|---------------|---------------------------------------------------------------------------------------------------|
| act1 | One of mode-line's active colors. |
| act2 | The other active color of mode-line. |
| base | The basic color of normal text. |
| base-dim | A dimmer version of the normal text color. |
| bg1 | The background color. |
| bg2 | A darker background color. Used to highlight current line. |
| bg3 | Yet another darker shade of the background color. |
| bg4 | The darkest background color. |
| border | A border line color. Used in mode-line borders. |
| cblk | A code block color. Used in org's code blocks. |
| cblk-bg | The background color of a code block. |
| cblk-ln | A code block header line. |
| cblk-ln-bg | The background of a code block header line. |
| cursor | The cursor/point color. |
| const | A constant. |
| comment | A comment. |
| comment-bg | The background color of a comment. To disable this, `customize` `spacemacs-theme-comment-bg`. |
| comp | A complementary color. |
| err | errors. |
| func | functions. |
| head1 | Level 1 of a heading. Used in org's headings. |
| head1-bg | The background of level 2 headings. To disable this, `customize` `spacemacs-theme-org-highlight`. |
| head2 | Level 2 headings. |
| head2-bg | Level 2 headings background. |
| head3 | Level 3 headings. |
| head3-bg | Level 3 headings background. |
| head4 | Level 4 headings. |
| head4-bg | Level 4 headings background. |
| highlight | A highlighted area. |
| highlight-dim | A dimmer highlighted area. |
| keyword | A keyword or a builtin color. |
| lnum | Line numbers. |
| mat | A matched color. Used in matching parens, brackets and tags. |
| meta | A meta line. Used in org's meta line. |
| str | A string. |
| suc | To indicate success. Opposite of error. |
| ttip | Tooltip color. |
| ttip-sl | Tooltip selection color. |
| ttip-bg | Tooltip background color. |
| type | A type color. |
| var | A variable color. |
| war | A warning color. |
There is also explicit colors variables that can be customized:
* aqua
* aqua-bg
* green
* green-bg
* green-bg-s
* cyan
* red
* red-bg
* red-bg-s
* blue
* blue-bg
* violet
* yellow
* yellow-bg
The `green` and `red` colors have two background versions. The `green-bg` and `red-bg` are normal light background colors.
The `green-bg-s` and `red-bg-s` are a stronger version and are used in `ediff` and places were text is added or deleted.
Here are some screenshots of the various variables:
![spacemacs-theme-guide-generic](/../screenshots/guide-generic.png)
![spacemacs-theme-guide-org](/../screenshots/guide-org.png)
![spacemacs-theme-guide-extra](/../screenshots/guide-extra.png)
If you are using [spacemacs](https://github.com/syl20bnr/spacemacs), you can put this snippet in your `dotspacemacs/user-init` to override these colors:
```
(custom-set-variables '(spacemacs-theme-custom-colors
'((act1 . "#ff0000")
(act2 . "#0000ff")
(base . "#ffffff"))))
```
This will override `act1`, `act1` and `base` to use the specified colors.

View File

@ -0,0 +1,766 @@
;;; spacemacs-common.el --- Color theme with a dark and light versions.
;; Copyright (C) 2015-2016 Nasser Alshammari
;; Author: Nasser Alshammari
;; URL: <https://github.com/nashamri/spacemacs-theme>
;;
;; Version: 0.1
;; Keywords: color, theme
;; Package-Requires: ((emacs "24"))
;; Initially created with the help of emacs-theme-generator, <https://github.com/mswift42/theme-creator>.
;; 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/>.
;; This file is not part of Emacs.
;;; Commentary:
;; This is a color theme for spacemacs <https://github.com/syl20bnr/spacemacs>.
;; It comes with two versions, dark and light and should work well in
;; a 256 color terminal.
;;; Code:
(defmacro dyn-let (varlist fn setfaces setvars)
(list 'let (append varlist (funcall fn)) setfaces setvars))
(defgroup spacemacs-theme nil
"Spacemacs-theme options."
:group 'faces)
(defcustom spacemacs-theme-comment-bg t
"Use a background for comment lines."
:type 'boolean
:group 'spacemacs-theme)
(defcustom spacemacs-theme-org-agenda-height t
"Use varying text heights for org agenda."
:type 'boolean
:group 'spacemacs-theme)
(defcustom spacemacs-theme-org-height t
"Use varying text heights for org headings."
:type 'boolean
:group 'spacemacs-theme)
(defcustom spacemacs-theme-org-highlight nil
"Highlight org headings."
:type 'boolean
:group 'spacemacs-theme)
(defcustom spacemacs-theme-custom-colors nil
"Specify a list of custom colors"
:type 'alist
:group 'spacemacs-theme)
(defun true-color-p ()
(or
(display-graphic-p)
(= (tty-display-color-cells) 16777216)))
(defun custom-colors-override ()
(mapcar (lambda (x) (list (car x) (cdr x)))
spacemacs-theme-custom-colors))
(defun create-spacemacs-theme (variant theme-name)
(dyn-let ((class '((class color) (min-colors 89))) ;; ~~ Dark ~~ ~~ Light ~~
;; GUI TER GUI TER
;; generic
(act1 (if (eq variant 'dark) (if (true-color-p) "#222226" "#121212") (if (true-color-p) "#e7e5eb" "#d7dfff")))
(act2 (if (eq variant 'dark) (if (true-color-p) "#5d4d7a" "#444444") (if (true-color-p) "#d3d3e7" "#afafd7")))
(base (if (eq variant 'dark) (if (true-color-p) "#b2b2b2" "#b2b2b2") (if (true-color-p) "#655370" "#5f5f87")))
(base-dim (if (eq variant 'dark) (if (true-color-p) "#686868" "#585858") (if (true-color-p) "#a094a2" "#afafd7")))
(bg1 (if (eq variant 'dark) (if (true-color-p) "#292b2e" "#262626") (if (true-color-p) "#fbf8ef" "#ffffff")))
(bg2 (if (eq variant 'dark) (if (true-color-p) "#212026" "#1c1c1c") (if (true-color-p) "#efeae9" "#e4e4e4")))
(bg3 (if (eq variant 'dark) (if (true-color-p) "#100a14" "#121212") (if (true-color-p) "#e3dedd" "#d0d0d0")))
(bg4 (if (eq variant 'dark) (if (true-color-p) "#0a0814" "#080808") (if (true-color-p) "#d2ceda" "#bcbcbc")))
(border (if (eq variant 'dark) (if (true-color-p) "#5d4d7a" "#111111") (if (true-color-p) "#b3b9be" "#b3b9be")))
(cblk (if (eq variant 'dark) (if (true-color-p) "#cbc1d5" "#b2b2b2") (if (true-color-p) "#655370" "#5f5f87")))
(cblk-bg (if (eq variant 'dark) (if (true-color-p) "#2f2b33" "#262626") (if (true-color-p) "#e8e3f0" "#ffffff")))
(cblk-ln (if (eq variant 'dark) (if (true-color-p) "#827591" "#af5faf") (if (true-color-p) "#9380b2" "#af5fdf")))
(cblk-ln-bg (if (eq variant 'dark) (if (true-color-p) "#373040" "#333333") (if (true-color-p) "#ddd8eb" "#dfdfff")))
(cursor (if (eq variant 'dark) (if (true-color-p) "#e3dedd" "#d0d0d0") (if (true-color-p) "#100a14" "#121212")))
(const (if (eq variant 'dark) (if (true-color-p) "#a45bad" "#d75fd7") (if (true-color-p) "#4e3163" "#8700af")))
(comment (if (eq variant 'dark) (if (true-color-p) "#2aa1ae" "#008787") (if (true-color-p) "#2aa1ae" "#008787")))
(comment-bg (if (eq variant 'dark) (if (true-color-p) "#292e34" "#262626") (if (true-color-p) "#ecf3ec" "#ffffff")))
(comp (if (eq variant 'dark) (if (true-color-p) "#c56ec3" "#d75fd7") (if (true-color-p) "#6c4173" "#8700af")))
(err (if (eq variant 'dark) (if (true-color-p) "#e0211d" "#e0211d") (if (true-color-p) "#e0211d" "#e0211d")))
(func (if (eq variant 'dark) (if (true-color-p) "#bc6ec5" "#d75fd7") (if (true-color-p) "#6c3163" "#8700af")))
(head1 (if (eq variant 'dark) (if (true-color-p) "#4f97d7" "#268bd2") (if (true-color-p) "#3a81c3" "#268bd2")))
(head1-bg (if (eq variant 'dark) (if (true-color-p) "#293239" "#262626") (if (true-color-p) "#edf1ed" "#ffffff")))
(head2 (if (eq variant 'dark) (if (true-color-p) "#2d9574" "#2aa198") (if (true-color-p) "#2d9574" "#2aa198")))
(head2-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff")))
(head3 (if (eq variant 'dark) (if (true-color-p) "#67b11d" "#67b11d") (if (true-color-p) "#67b11d" "#5faf00")))
(head3-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff")))
(head4 (if (eq variant 'dark) (if (true-color-p) "#b1951d" "#875f00") (if (true-color-p) "#b1951d" "#875f00")))
(head4-bg (if (eq variant 'dark) (if (true-color-p) "#32322c" "#262626") (if (true-color-p) "#f6f1e1" "#ffffff")))
(highlight (if (eq variant 'dark) (if (true-color-p) "#444155" "#444444") (if (true-color-p) "#d3d3e7" "#d7d7ff")))
(highlight-dim (if (eq variant 'dark) (if (true-color-p) "#3b314d" "#444444") (if (true-color-p) "#e7e7fc" "#d7d7ff")))
(keyword (if (eq variant 'dark) (if (true-color-p) "#4f97d7" "#268bd2") (if (true-color-p) "#3a81c3" "#268bd2")))
(lnum (if (eq variant 'dark) (if (true-color-p) "#44505c" "#444444") (if (true-color-p) "#a8a8bf" "#af87af")))
(mat (if (eq variant 'dark) (if (true-color-p) "#86dc2f" "#86dc2f") (if (true-color-p) "#ba2f59" "#af005f")))
(meta (if (eq variant 'dark) (if (true-color-p) "#9f8766" "#af875f") (if (true-color-p) "#da8b55" "#df5f5f")))
(str (if (eq variant 'dark) (if (true-color-p) "#2d9574" "#2aa198") (if (true-color-p) "#2d9574" "#2aa198")))
(suc (if (eq variant 'dark) (if (true-color-p) "#86dc2f" "#86dc2f") (if (true-color-p) "#42ae2c" "#00af00")))
(ttip (if (eq variant 'dark) (if (true-color-p) "#9a9aba" "#888888") (if (true-color-p) "#8c799f" "#5f5f87")))
(ttip-sl (if (eq variant 'dark) (if (true-color-p) "#5e5079" "#333333") (if (true-color-p) "#c8c6dd" "#afafff")))
(ttip-bg (if (eq variant 'dark) (if (true-color-p) "#34323e" "#444444") (if (true-color-p) "#e2e0ea" "#dfdfff")))
(type (if (eq variant 'dark) (if (true-color-p) "#ce537a" "#df005f") (if (true-color-p) "#ba2f59" "#af005f")))
(var (if (eq variant 'dark) (if (true-color-p) "#7590db" "#8787d7") (if (true-color-p) "#715ab1" "#af5fd7")))
(war (if (eq variant 'dark) (if (true-color-p) "#dc752f" "#dc752f") (if (true-color-p) "#dc752f" "#dc752f")))
;; colors
(aqua (if (eq variant 'dark) (if (true-color-p) "#2d9574" "#2aa198") (if (true-color-p) "#2d9574" "#2aa198")))
(aqua-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff")))
(green (if (eq variant 'dark) (if (true-color-p) "#67b11d" "#67b11d") (if (true-color-p) "#67b11d" "#5faf00")))
(green-bg (if (eq variant 'dark) (if (true-color-p) "#293235" "#262626") (if (true-color-p) "#edf2e9" "#ffffff")))
(green-bg-s (if (eq variant 'dark) (if (true-color-p) "#29422d" "#262626") (if (true-color-p) "#dae6d0" "#ffffff")))
(cyan (if (eq variant 'dark) (if (true-color-p) "#28def0" "#00ffff") (if (true-color-p) "#21b8c7" "#008080")))
(red (if (eq variant 'dark) (if (true-color-p) "#f2241f" "#d70000") (if (true-color-p) "#f2241f" "#d70008")))
(red-bg (if (eq variant 'dark) (if (true-color-p) "#3c2a2c" "#262626") (if (true-color-p) "#faede4" "#ffffff")))
(red-bg-s (if (eq variant 'dark) (if (true-color-p) "#512e31" "#262626") (if (true-color-p) "#eed9d2" "#ffffff")))
(blue (if (eq variant 'dark) (if (true-color-p) "#4f97d7" "#268bd2") (if (true-color-p) "#3a81c3" "#268bd2")))
(blue-bg (if (eq variant 'dark) (if (true-color-p) "#293239" "#262626") (if (true-color-p) "#edf1ed" "#d7d7ff")))
(magenta (if (eq variant 'dark) (if (true-color-p) "#a31db1" "#af00df") (if (true-color-p) "#a31db1" "#800080")))
(yellow (if (eq variant 'dark) (if (true-color-p) "#b1951d" "#875f00") (if (true-color-p) "#b1951d" "#875f00")))
(yellow-bg (if (eq variant 'dark) (if (true-color-p) "#32322c" "#262626") (if (true-color-p) "#f6f1e1" "#ffffff")))
)
custom-colors-override
(custom-theme-set-faces
theme-name
;;;;; basics
`(cursor ((,class (:background ,cursor))))
`(custom-button ((,class :background ,bg2 :foreground ,base :box (:line-width 2 :style released-button))))
`(default ((,class (:background ,bg1 :foreground ,base))))
`(default-italic ((,class (:italic t))))
`(error ((,class (:foreground ,err))))
`(eval-sexp-fu-flash ((,class (:background ,suc :foreground ,bg1))))
`(eval-sexp-fu-flash-error ((,class (:background ,err :foreground ,bg1))))
`(font-lock-builtin-face ((,class (:foreground ,keyword))))
`(font-lock-comment-face ((,class (:foreground ,comment :background ,(when spacemacs-theme-comment-bg comment-bg)))))
`(font-lock-constant-face ((,class (:foreground ,const))))
`(font-lock-doc-face ((,class (:foreground ,comment))))
`(font-lock-function-name-face ((,class (:foreground ,func :inherit bold))))
`(font-lock-keyword-face ((,class (:inherit bold :foreground ,keyword))))
`(font-lock-negation-char-face ((,class (:foreground ,const))))
`(font-lock-preprocessor-face ((,class (:foreground ,func))))
`(font-lock-reference-face ((,class (:foreground ,const))))
`(font-lock-string-face ((,class (:foreground ,str))))
`(font-lock-type-face ((,class (:foreground ,type :inherit bold))))
`(font-lock-variable-name-face ((,class (:foreground ,var))))
`(font-lock-warning-face ((,class (:foreground ,war :background ,bg1))))
`(fringe ((,class (:background ,bg1 :foreground ,base))))
`(header-line ((,class :background ,bg4)))
`(highlight ((,class (:foreground ,base :background ,highlight))))
`(hl-line ((,class (:background ,bg2))))
`(isearch ((,class (:foreground ,bg1 :background ,mat))))
`(lazy-highlight ((,class (:background ,green-bg-s :weight normal))))
`(link ((,class (:foreground ,comment :underline t))))
`(link-visited ((,class (:foreground ,comp :underline t))))
`(match ((,class (:background ,highlight :foreground ,mat))))
`(minibuffer-prompt ((,class (:inherit bold :foreground ,keyword))))
`(page-break-lines ((,class (:foreground ,act2))))
`(region ((,class (:background ,highlight))))
`(secondary-selection ((,class (:background ,bg3))))
`(success ((,class (:foreground ,suc))))
`(tooltip ((,class (:background ,ttip-sl :foreground ,base :bold nil :italic nil :underline nil))))
`(vertical-border ((,class (:foreground ,bg4))))
`(warning ((,class (:foreground ,war))))
;;;;; ahs
`(ahs-face ((,class (:background ,highlight))))
`(ahs-plugin-whole-buffer-face ((,class (:background ,mat :foreground ,bg1))))
;;;;; anzu-mode
`(anzu-mode-line ((,class (:foreground ,yellow :inherit bold))))
;;;;; auto-complete
`(ac-completion-face ((,class (:background ,ttip-bg :foreground ,ttip))))
;;;;; avy
`(avy-lead-face ((,class (:background ,blue-bg :foreground ,magenta))))
`(avy-lead-face-0 ((,class (:background ,blue-bg :foreground ,blue))))
`(avy-lead-face-1 ((,class (:background ,blue-bg :foreground ,magenta))))
`(avy-lead-face-2 ((,class (:background ,blue-bg :foreground ,blue))))
;;;;; cider
`(cider-enlightened ((,class (:background nil :box (:color ,yellow :line-width -1 :style nil) :foreground ,yellow))))
`(cider-enlightened-local ((,class (:foreground ,yellow))))
`(cider-instrumented-face ((,class (:background nil :box (:color ,red :line-width -1 :style nil) :foreground ,red))))
`(cider-result-overlay-face ((,class (:background nil :box (:color ,blue :line-width -1 :style nil) :foreground ,blue))))
`(cider-test-error-face ((,class (:background ,war :foreground ,bg1))))
`(cider-test-failure-face ((,class (:background ,err :foreground ,bg1))))
`(cider-test-success-face ((,class (:background ,suc :foreground ,bg1))))
`(cider-traced-face ((,class :box (:color ,cyan :line-width -1 :style nil))))
;;;;; company
`(company-echo-common ((,class (:background ,base :foreground ,bg1))))
`(company-preview ((,class (:background ,ttip-bg :foreground ,ttip))))
`(company-preview-common ((,class (:background ,ttip-bg :foreground ,base))))
`(company-preview-search ((,class (:inherit match))))
`(company-scrollbar-bg ((,class (:background ,bg2))))
`(company-scrollbar-fg ((,class (:background ,act2))))
`(company-template-field ((,class (:inherit region))))
`(company-tooltip ((,class (:background ,ttip-bg :foreground ,ttip))))
`(company-tooltip-annotation ((,class (:foreground ,keyword))))
`(company-tooltip-common ((,class (:background ,ttip-bg :foreground ,base))))
`(company-tooltip-common-selection ((,class (:foreground ,base))))
`(company-tooltip-mouse ((,class (:inherit highlight))))
`(company-tooltip-search ((,class (:inherit match))))
`(company-tooltip-selection ((,class (:background ,ttip-sl :foreground ,base))))
;;;;; diff
`(diff-added ((,class :background nil :foreground ,green)))
`(diff-changed ((,class :background nil :foreground ,keyword)))
`(diff-header ((,class :background ,cblk-ln-bg :foreground ,func)))
`(diff-indicator-added ((,class :background nil :foreground ,green)))
`(diff-indicator-changed ((,class :background nil :foreground ,keyword)))
`(diff-indicator-removed ((,class :background nil :foreground ,red)))
`(diff-refine-added ((,class :background ,green :foreground ,bg4)))
`(diff-refine-changed ((,class :background ,keyword :foreground ,bg4)))
`(diff-refine-removed ((,class :background ,red :foreground ,bg4)))
`(diff-removed ((,class :background nil :foreground ,red)))
;;;;; diff-hl
`(diff-hl-change ((,class :background ,blue-bg :foreground ,blue)))
`(diff-hl-delete ((,class :background ,red-bg :foreground ,red)))
`(diff-hl-insert ((,class :background ,green-bg :foreground ,green)))
;;;;; dired
`(dired-directory ((,class (:foreground ,keyword :background ,bg1 :inherit bold))))
`(dired-flagged ((,class (:foreground ,red))))
`(dired-header ((,class (:foreground ,comp :inherit bold))))
`(dired-ignored ((,class (:inherit shadow))))
`(dired-mark ((,class (:foreground ,comp :inherit bold))))
`(dired-marked ((,class (:foreground ,magenta :inherit bold))))
`(dired-perm-write ((,class (:foreground ,base :underline t))))
`(dired-symlink ((,class (:foreground ,cyan :background ,bg1 :inherit bold))))
`(dired-warning ((,class (:foreground ,war))))
;;;;; ediff
`(ediff-current-diff-A ((,class(:background ,red-bg-s :foreground ,red))))
`(ediff-current-diff-Ancestor ((,class(:background ,aqua-bg :foreground ,aqua))))
`(ediff-current-diff-B ((,class(:background ,green-bg-s :foreground ,green))))
`(ediff-current-diff-C ((,class(:background ,blue-bg :foreground ,blue))))
`(ediff-even-diff-A ((,class(:background ,bg3))))
`(ediff-even-diff-Ancestor ((,class(:background ,bg3))))
`(ediff-even-diff-B ((,class(:background ,bg3))))
`(ediff-even-diff-C ((,class(:background ,bg3))))
`(ediff-fine-diff-A ((,class(:background nil :inherit bold))))
`(ediff-fine-diff-Ancestor ((,class(:background nil :inherit bold))))
`(ediff-fine-diff-B ((,class(:background nil :inherit bold))))
`(ediff-fine-diff-C ((,class(:background nil :inherit bold))))
`(ediff-odd-diff-A ((,class(:background ,bg4))))
`(ediff-odd-diff-Ancestor ((,class(:background ,bg4))))
`(ediff-odd-diff-B ((,class(:background ,bg4))))
`(ediff-odd-diff-C ((,class(:background ,bg4))))
;;;;; ein
`(ein:cell-input-area((,class (:background ,bg2))))
`(ein:cell-input-prompt ((,class (:foreground ,suc))))
`(ein:cell-output-prompt ((,class (:foreground ,err))))
`(ein:notification-tab-normal ((,class (:foreground ,keyword))))
`(ein:notification-tab-selected ((,class (:foreground ,suc :inherit bold))))
;;;;; eldoc
`(eldoc-highlight-function-argument ((,class (:foreground ,mat :inherit bold))))
;;;;; elfeed
`(elfeed-search-title-face ((,class (:foreground ,base-dim))))
`(elfeed-search-unread-title-face ((,class (:foreground ,base))))
`(elfeed-search-feed-face ((,class (:foreground ,blue))))
`(elfeed-search-tag-face ((,class (:foreground ,func))))
`(elfeed-search-date-face ((,class (:foreground ,head2))))
;;;;; enh-ruby
`(enh-ruby-string-delimiter-face ((,class (:foreground ,str))))
`(enh-ruby-op-face ((,class (:background ,bg1 :foreground ,base))))
;;;;; erc
`(erc-input-face ((,class (:foreground ,func))))
`(erc-my-nick-face ((,class (:foreground ,keyword))))
`(erc-nick-default-face ((,class (:foreground ,keyword))))
`(erc-nick-prefix-face ((,class (:foreground ,yellow))))
`(erc-notice-face ((,class (:foreground ,str))))
`(erc-prompt-face ((,class (:foreground ,mat :inherit bold))))
`(erc-timestamp-face ((,class (:foreground ,keyword))))
;;;;; eshell
`(eshell-ls-archive ((,class (:foreground ,red :inherit bold))))
`(eshell-ls-backup ((,class (:inherit font-lock-comment-face))))
`(eshell-ls-clutter ((,class (:inherit font-lock-comment-face))))
`(eshell-ls-directory ((,class (:foreground ,keyword :inherit bold))))
`(eshell-ls-executable ((,class (:foreground ,suc :inherit bold))))
`(eshell-ls-missing ((,class (:inherit font-lock-warning-face))))
`(eshell-ls-product ((,class (:inherit font-lock-doc-face))))
`(eshell-ls-special ((,class (:foreground ,yellow :inherit bold))))
`(eshell-ls-symlink ((,class (:foreground ,cyan :inherit bold))))
`(eshell-ls-unreadable ((,class (:foreground ,base))))
`(eshell-prompt ((,class (:foreground ,keyword :inherit bold))))
;;;;; evil
`(evil-ex-substitute-matches ((,class (:background ,red-bg :foreground ,red))))
`(evil-ex-substitute-replacement ((,class (:background ,green-bg :foreground ,green))))
;;;;; flycheck
`(flycheck-error
((,(append '((supports :underline (:style line))) class)
(:underline (:style line :color ,err)))
(,class (:foreground ,base :background ,err :inherit bold :underline t))))
`(flycheck-error-list-checker-name ((,class (:foreground ,keyword))))
`(flycheck-fringe-error ((,class (:foreground ,err :inherit bold))))
`(flycheck-fringe-info ((,class (:foreground ,keyword :inherit bold))))
`(flycheck-fringe-warning ((,class (:foreground ,war :inherit bold))))
`(flycheck-info
((,(append '((supports :underline (:style line))) class)
(:underline (:style line :color ,keyword)))
(,class (:foreground ,base :background ,keyword :inherit bold :underline t))))
`(flycheck-warning
((,(append '((supports :underline (:style line))) class)
(:underline (:style line :color ,war)))
(,class (:foreground ,base :background ,war :inherit bold :underline t))))
;;;;; jabber
`(jabber-activity-face ((,class (:inherit bold :foreground ,red))))
`(jabber-activity-personal-face ((,class (:inherit bold :foreground ,blue))))
`(jabber-chat-error ((,class (:inherit bold :foreground ,red))))
`(jabber-chat-prompt-foreign ((,class (:inherit bold :foreground ,red))))
`(jabber-chat-prompt-local ((,class (:inherit bold :foreground ,blue))))
`(jabber-chat-prompt-system ((,class (:inherit bold :foreground ,green))))
`(jabber-chat-text-foreign ((,class (:foreground ,base))))
`(jabber-chat-text-local ((,class (:foreground ,base))))
`(jabber-rare-time-face ((,class (:foreground ,green))))
`(jabber-roster-user-away ((,class (:foreground ,yellow))))
`(jabber-roster-user-chatty ((,class (:inherit bold :foreground ,green))))
`(jabber-roster-user-dnd ((,class (:foreground ,red))))
`(jabber-roster-user-error ((,class (:foreground ,err))))
`(jabber-roster-user-offline ((,class (:foreground ,base))))
`(jabber-roster-user-online ((,class (:inherit bold :foreground ,green))))
`(jabber-roster-user-xa ((,class (:foreground ,aqua))))
;;;;; git-gutter-fr
`(git-gutter-fr:added ((,class (:foreground ,green :inherit bold))))
`(git-gutter-fr:deleted ((,class (:foreground ,war :inherit bold))))
`(git-gutter-fr:modified ((,class (:foreground ,keyword :inherit bold))))
;;;;; git-timemachine
`(git-timemachine-minibuffer-detail-face ((,class (:foreground ,blue :inherit bold :background ,blue-bg))))
;;;;; gnus
`(gnus-emphasis-highlight-words ((,class (:background ,suc :foreground ,bg1))))
`(gnus-header-content ((,class (:foreground ,keyword))))
`(gnus-header-from ((,class (:foreground ,var))))
`(gnus-header-name ((,class (:foreground ,comp))))
`(gnus-header-subject ((,class (:foreground ,func :inherit bold))))
`(gnus-summary-cancelled ((,class (:background ,war :foreground ,bg1))))
;;;;; guide-key
`(guide-key/highlight-command-face ((,class (:foreground ,base))))
`(guide-key/key-face ((,class (:foreground ,keyword))))
`(guide-key/prefix-command-face ((,class (:foreground ,keyword :inherit bold))))
;;;;; helm
`(helm-bookmark-directory ((,class (:inherit helm-ff-directory))))
`(helm-bookmark-file ((,class (:foreground ,base))))
`(helm-bookmark-gnus ((,class (:foreground ,comp))))
`(helm-bookmark-info ((,class (:foreground ,comp))))
`(helm-bookmark-man ((,class (:foreground ,comp))))
`(helm-bookmark-w3m ((,class (:foreground ,comp))))
`(helm-buffer-directory ((,class (:foreground ,base :background ,bg1))))
`(helm-buffer-file ((,class (:foreground ,base :background ,bg1))))
`(helm-buffer-not-saved ((,class (:foreground ,comp :background ,bg1))))
`(helm-buffer-process ((,class (:foreground ,keyword :background ,bg1))))
`(helm-buffer-saved-out ((,class (:foreground ,base :background ,bg1))))
`(helm-buffer-size ((,class (:foreground ,base :background ,bg1))))
`(helm-candidate-number ((,class (:background ,bg1 :foreground ,keyword :inherit bold))))
`(helm-ff-directory ((,class (:foreground ,keyword :background ,bg1 :inherit bold))))
`(helm-ff-dotted-directory ((,class (:foreground ,keyword :background ,bg1 :inherit bold))))
`(helm-ff-dotted-symlink-directory ((,class (:foreground ,cyan :background ,bg1 :inherit bold))))
`(helm-ff-executable ((,class (:foreground ,suc :background ,bg1 :weight normal))))
`(helm-ff-file ((,class (:foreground ,base :background ,bg1 :weight normal))))
`(helm-ff-invalid-symlink ((,class (:foreground ,red :background ,bg1 :inherit bold))))
`(helm-ff-prefix ((,class (:foreground ,bg1 :background ,keyword :weight normal))))
`(helm-ff-symlink ((,class (:foreground ,cyan :background ,bg1 :inherit bold))))
`(helm-grep-cmd-line ((,class (:foreground ,base :background ,bg1))))
`(helm-grep-file ((,class (:foreground ,base :background ,bg1))))
`(helm-grep-finish ((,class (:foreground ,base :background ,bg1))))
`(helm-grep-lineno ((,class (:foreground ,type :background ,bg1 :inherit bold))))
`(helm-grep-match ((,class (:foreground nil :background nil :inherit helm-match))))
`(helm-header ((,class (:foreground ,base :background ,bg1 :underline nil :box nil))))
`(helm-header-line-left-margin ((,class (:foreground ,keyword :background ,nil))))
`(helm-match ((,class (:background ,head1-bg :foreground ,head1))))
`(helm-match-item ((,class (:background ,head1-bg :foreground ,head1))))
`(helm-moccur-buffer ((,class (:foreground ,var :background ,bg1))))
`(helm-selection ((,class (:background ,highlight))))
`(helm-selection-line ((,class (:background ,bg2))))
`(helm-separator ((,class (:foreground ,comp :background ,bg1))))
`(helm-source-header ((,class (:background ,comp :foreground ,bg1 :inherit bold))))
`(helm-time-zone-current ((,class (:foreground ,keyword :background ,bg1))))
`(helm-time-zone-home ((,class (:foreground ,comp :background ,bg1))))
`(helm-visible-mark ((,class (:foreground ,keyword :background ,bg3))))
;;;;; helm-swoop
`(helm-swoop-target-line-block-face ((,class (:foreground ,base :background ,highlight))))
`(helm-swoop-target-line-face ((,class (:background ,highlight))))
`(helm-swoop-target-word-face ((,class (:background ,highlight :foreground ,mat))))
;;;;; highlights
`(hi-yellow ((,class (:foreground ,yellow :background ,yellow-bg))))
`(hi-green ((,class (:foreground ,green :background ,green-bg))))
;;;;; highlight-indentation
`(highlight-indentation-face ((,class (:background ,comment-bg))))
;;;;; highlight-symbol
`(highlight-symbol-face ((,class (:background ,bg2))))
;;;;; hydra
`(hydra-face-blue ((,class (:foreground ,blue))))
`(hydra-face-red ((,class (:foreground ,red))))
;;;;; ido
`(ido-first-match ((,class (:foreground ,comp :inherit bold))))
`(ido-only-match ((,class (:foreground ,mat :inherit bold))))
`(ido-subdir ((,class (:foreground ,keyword))))
`(ido-vertical-match-face ((,class (:foreground ,comp :underline nil))))
;;;;; info
`(info-header-xref ((,class (:foreground ,func :underline t))))
`(info-menu ((,class (:foreground ,suc))))
`(info-node ((,class (:foreground ,func :inherit bold))))
`(info-quoted-name ((,class (:foreground ,keyword))))
`(info-reference-item ((,class (:background nil :underline t :inherit bold))))
`(info-string ((,class (:foreground ,str))))
`(info-title-1 ((,class (:height 1.4 :inherit bold))))
`(info-title-2 ((,class (:height 1.3 :inherit bold))))
`(info-title-3 ((,class (:height 1.3))))
`(info-title-4 ((,class (:height 1.2))))
;;;;; ivy
`(ivy-current-match ((,class (:background ,highlight :inherit bold))))
`(ivy-minibuffer-match-face-1 ((,class (:inherit bold))))
`(ivy-minibuffer-match-face-2 ((,class (:foreground ,head1 :underline t))))
`(ivy-minibuffer-match-face-3 ((,class (:foreground ,head4 :underline t))))
`(ivy-minibuffer-match-face-4 ((,class (:foreground ,head3 :underline t))))
`(ivy-remote ((,class (:foreground ,cyan))))
;;;;; latex
`(font-latex-bold-face ((,class (:foreground ,comp))))
`(font-latex-italic-face ((,class (:foreground ,keyword :italic t))))
`(font-latex-match-reference-keywords ((,class (:foreground ,const))))
`(font-latex-match-variable-keywords ((,class (:foreground ,var))))
`(font-latex-sectioning-0-face ((,class (:inherit bold :foreground ,head3 :height ,(if spacemacs-theme-org-height 1.3 1.0) :background ,(when spacemacs-theme-org-highlight head3-bg)))))
`(font-latex-sectioning-1-face ((,class (:inherit bold :foreground ,head4 :height ,(if spacemacs-theme-org-height 1.3 1.0) :background ,(when spacemacs-theme-org-highlight head4-bg)))))
`(font-latex-sectioning-2-face ((,class (:inherit bold :foreground ,head1 :height ,(if spacemacs-theme-org-height 1.3 1.0) :background ,(when spacemacs-theme-org-highlight head1-bg)))))
`(font-latex-sectioning-3-face ((,class (:inherit bold :foreground ,head2 :height ,(if spacemacs-theme-org-height 1.2 1.0) :background ,(when spacemacs-theme-org-highlight head2-bg)))))
`(font-latex-sectioning-4-face ((,class (:bold nil :foreground ,head3 :height ,(if spacemacs-theme-org-height 1.1 1.0) :background ,(when spacemacs-theme-org-highlight head3-bg)))))
`(font-latex-sectioning-5-face ((,class (:bold nil :foreground ,head4 :background ,(when spacemacs-theme-org-highlight head4-bg)))))
`(font-latex-string-face ((,class (:foreground ,str))))
;;;;; linum-mode
`(linum ((,class (:foreground ,lnum :background ,bg2))))
;;;;; linum-relative
`(linum-relative-current-face ((,class (:foreground ,comp))))
;;;;; magit
`(magit-blame-culprit ((,class :background ,yellow-bg :foreground ,yellow)))
`(magit-blame-header ((,class :background ,yellow-bg :foreground ,green)))
`(magit-blame-sha1 ((,class :background ,yellow-bg :foreground ,func)))
`(magit-blame-subject ((,class :background ,yellow-bg :foreground ,yellow)))
`(magit-blame-time ((,class :background ,yellow-bg :foreground ,green)))
`(magit-blame-name ((,class :background ,yellow-bg :foreground ,yellow)))
`(magit-blame-heading ((,class :background ,yellow-bg :foreground ,green)))
`(magit-blame-hash ((,class :background ,yellow-bg :foreground ,func)))
`(magit-blame-summary ((,class :background ,yellow-bg :foreground ,yellow)))
`(magit-blame-date ((,class :background ,yellow-bg :foreground ,green)))
`(magit-branch ((,class (:foreground ,const :inherit bold))))
`(magit-branch-current ((,class (:background ,blue-bg :foreground ,blue :inherit bold :box t))))
`(magit-branch-local ((,class (:background ,blue-bg :foreground ,blue :inherit bold))))
`(magit-branch-remote ((,class (:background ,aqua-bg :foreground ,aqua :inherit bold))))
`(magit-diff-context-highlight ((,class (:background ,bg2 :foreground ,base))))
`(magit-diff-file-header ((,class (:background ,comment-bg :foreground ,comment))))
`(magit-diff-file-heading ((,class (:background ,comment-bg :foreground ,comment))))
`(magit-diff-file-heading-highlight ((,class (:background ,comment-bg :foreground ,comment))))
`(magit-diff-hunk-header ((,class (:background ,ttip-bg :foreground ,ttip))))
`(magit-diff-hunk-heading ((,class (:background ,ttip-bg :foreground ,ttip))))
`(magit-diff-hunk-heading-highlight ((,class (:background ,ttip-bg :foreground ,ttip))))
`(magit-hash ((,class (:foreground ,var))))
`(magit-hunk-heading ((,class (:background ,bg3))))
`(magit-hunk-heading-highlight ((,class (:background ,bg3))))
`(magit-item-highlight ((,class :background ,bg2)))
`(magit-log-author ((,class (:foreground ,func))))
`(magit-log-head-label-head ((,class (:background ,yellow :foreground ,bg1 :inherit bold))))
`(magit-log-head-label-local ((,class (:background ,keyword :foreground ,bg1 :inherit bold))))
`(magit-log-head-label-remote ((,class (:background ,suc :foreground ,bg1 :inherit bold))))
`(magit-log-head-label-tags ((,class (:background ,magenta :foreground ,bg1 :inherit bold))))
`(magit-log-head-label-wip ((,class (:background ,cyan :foreground ,bg1 :inherit bold))))
`(magit-log-sha1 ((,class (:foreground ,str))))
`(magit-process-ng ((,class (:foreground ,war :inherit bold))))
`(magit-process-ok ((,class (:foreground ,func :inherit bold))))
`(magit-section-heading ((,class (:foreground ,keyword :inherit bold))))
`(magit-section-highlight ((,class (:background ,bg2))))
`(magit-section-title ((,class (:background ,bg1 :foreground ,keyword :inherit bold))))
;;;;; man
`(Man-overstrike ((,class (:foreground ,head1 :inherit bold))))
`(Man-reverse ((,class (:foreground ,highlight))))
`(Man-underline ((,class (:foreground ,comp :underline t))))
;;;;; markdown
`(markdown-header-face-1 ((,class (:inherit bold :foreground ,head1 :height ,(if spacemacs-theme-org-height 1.3 1.0) :background ,(when spacemacs-theme-org-highlight head1-bg)))))
`(markdown-header-face-2 ((,class (:inherit bold :foreground ,head2 :height ,(if spacemacs-theme-org-height 1.2 1.0) :background ,(when spacemacs-theme-org-highlight head2-bg)))))
`(markdown-header-face-3 ((,class (:bold nil :foreground ,head3 :height ,(if spacemacs-theme-org-height 1.1 1.0) :background ,(when spacemacs-theme-org-highlight head3-bg)))))
`(markdown-header-face-4 ((,class (:bold nil :foreground ,head4 :background ,(when spacemacs-theme-org-highlight head4-bg)))))
`(markdown-header-face-5 ((,class (:bold nil :foreground ,head1))))
`(markdown-header-face-6 ((,class (:bold nil :foreground ,head2))))
;;;;; mode-line
`(mode-line ((,class (:foreground ,base :background ,act1 :box (:color ,border :line-width 1)))))
`(mode-line-inactive ((,class (:foreground ,base :background ,bg1 :box (:color ,border :line-width 1)))))
`(mode-line-buffer-id ((,class (:inherit bold :foreground ,func))))
;;;;; mu4e
`(mu4e-cited-1-face ((,class (:foreground ,base))))
`(mu4e-cited-7-face ((,class (:foreground ,base))))
`(mu4e-header-marks-face ((,class (:foreground ,comp))))
`(mu4e-header-key-face ((,class (:foreground ,head2 :inherit bold))))
`(mu4e-view-url-number-face ((,class (:foreground ,comp))))
`(mu4e-unread-face ((,class (:foreground ,yellow :inherit bold))))
;;;;; notmuch
`(notmuch-search-date ((,class (:foreground ,func))))
`(notmuch-search-flagged-face ((,class (:weight extra-bold))))
`(notmuch-search-non-matching-authors ((,class (:foreground ,base-dim))))
`(notmuch-search-unread-face ((,class (:background ,highlight-dim :box ,border))))
`(notmuch-tag-face ((,class (:foreground ,keyword))))
`(notmuch-tag-flagged ((,class (:foreground ,war))))
;;;;; neotree
`(neo-dir-link-face ((,class (:foreground ,keyword :inherit bold))))
`(neo-expand-btn-face ((,class (:foreground ,base))))
`(neo-file-link-face ((,class (:foreground ,base))))
`(neo-root-dir-face ((,class (:foreground ,func :inherit bold))))
;;;;; org
`(org-agenda-clocking ((,class (:background ,highlight :foreground ,comp))))
`(org-agenda-date ((,class (:foreground ,var :height ,(if spacemacs-theme-org-agenda-height 1.1 1.0)))))
`(org-agenda-date-today ((,class (:foreground ,keyword :inherit bold :height ,(if spacemacs-theme-org-agenda-height 1.3 1.0)))))
`(org-agenda-date-weekend ((,class (:inherit bold :foreground ,var))))
`(org-agenda-done ((,class (:foreground ,suc :height ,(if spacemacs-theme-org-agenda-height 1.2 1.0)))))
`(org-agenda-structure ((,class (:inherit bold :foreground ,comp))))
`(org-block ((,class (:background ,cblk-bg :foreground ,cblk))))
`(org-block-begin-line ((,class (:background ,cblk-ln-bg :foreground ,cblk-ln))))
`(org-block-end-line ((,class (:background ,cblk-ln-bg :foreground ,cblk-ln))))
`(org-clock-overlay ((,class (:foreground ,comp))))
`(org-code ((,class (:foreground ,cyan))))
`(org-column ((,class (:background ,highlight))))
`(org-column-title ((,class (:background ,highlight))))
`(org-date ((,class (:underline t :foreground ,var))))
`(org-date-selected ((,class (:background ,func :foreground ,bg1))))
`(org-document-info-keyword ((,class (:foreground ,meta))))
`(org-document-title ((,class (:foreground ,func :inherit bold :height ,(if spacemacs-theme-org-height 1.4 1.0) :underline t))))
`(org-done ((,class (:foreground ,suc :inherit bold :background ,green-bg))))
`(org-ellipsis ((,class (:foreground ,keyword))))
`(org-footnote ((,class (:underline t :foreground ,base))))
`(org-hide ((,class (:foreground ,base))))
`(org-kbd ((,class (:inherit region :foreground ,base :box (:line-width 1 :style released-button)))))
`(org-level-1 ((,class (:inherit bold :foreground ,head1 :height ,(if spacemacs-theme-org-height 1.3 1.0) :background ,(when spacemacs-theme-org-highlight head1-bg)))))
`(org-level-2 ((,class (:inherit bold :foreground ,head2 :height ,(if spacemacs-theme-org-height 1.2 1.0) :background ,(when spacemacs-theme-org-highlight head2-bg)))))
`(org-level-3 ((,class (:bold nil :foreground ,head3 :height ,(if spacemacs-theme-org-height 1.1 1.0) :background ,(when spacemacs-theme-org-highlight head3-bg)))))
`(org-level-4 ((,class (:bold nil :foreground ,head4 :background ,(when spacemacs-theme-org-highlight head4-bg)))))
`(org-level-5 ((,class (:bold nil :foreground ,head1))))
`(org-level-6 ((,class (:bold nil :foreground ,head2))))
`(org-level-7 ((,class (:bold nil :foreground ,head3))))
`(org-level-8 ((,class (:bold nil :foreground ,head4))))
`(org-link ((,class (:underline t :foreground ,comment))))
`(org-meta-line ((,class (:foreground ,meta))))
`(org-mode-line-clock-overrun ((,class (:foreground ,err))))
`(org-priority ((,class (:foreground ,war :inherit bold))))
`(org-quote ((,class (:inherit org-block :slant italic))))
`(org-scheduled ((,class (:foreground ,comp))))
`(org-scheduled-today ((,class (:foreground ,func :height ,(if spacemacs-theme-org-agenda-height 1.2 1.0)))))
`(org-sexp-date ((,class (:foreground ,base))))
`(org-special-keyword ((,class (:foreground ,func))))
`(org-table ((,class (:foreground ,base :background ,head1-bg))))
`(org-time-grid ((,class (:foreground ,str))))
`(org-todo ((,class (:foreground ,war :inherit bold :background ,yellow-bg))))
`(org-verbatim ((,class (:foreground ,keyword))))
`(org-verse ((,class (:inherit org-block :slant italic))))
`(org-warning ((,class (:foreground ,err))))
;;;;; perspective
`(persp-selected-face ((,class (:inherit bold :foreground ,func))))
;;;;; popup
`(popup-face ((,class (:background ,ttip-bg :foreground ,ttip))))
`(popup-tip-face ((,class (:background ,ttip-sl :foreground ,base :bold nil :italic nil :underline nil))))
`(popup-menu-face ((,class (:background ,ttip-bg :foreground ,base))))
`(popup-enu-selection-face ((,class (:background ,ttip-sl :foreground ,base))))
`(popup-menu-mouse-face ((,class (:inherit highlight))))
`(popup-isearch-match ((,class (:inherit match))))
`(popup-scroll-bar-foreground-face ((,class (:background ,act2))))
`(popup-scroll-bar-background-face ((,class (:background ,bg2))))
;;;;; powerline
`(powerline-active1 ((,class (:background ,act2 :foreground ,base))))
`(powerline-active2 ((,class (:background ,act2 :foreground ,base))))
`(powerline-inactive1 ((,class (:background ,bg2 :foreground ,base))))
`(powerline-inactive2 ((,class (:background ,bg2 :foreground ,base))))
;;;;; rainbow-delimiters
`(rainbow-delimiters-depth-1-face ((,class :foreground ,keyword)))
`(rainbow-delimiters-depth-2-face ((,class :foreground ,func)))
`(rainbow-delimiters-depth-3-face ((,class :foreground ,str)))
`(rainbow-delimiters-depth-4-face ((,class :foreground ,green)))
`(rainbow-delimiters-depth-5-face ((,class :foreground ,yellow)))
`(rainbow-delimiters-depth-6-face ((,class :foreground ,keyword)))
`(rainbow-delimiters-depth-7-face ((,class :foreground ,func)))
`(rainbow-delimiters-depth-8-face ((,class :foreground ,str)))
`(rainbow-delimiters-unmatched-face ((,class :foreground ,err :overline t)))
`(rainbow-delimiters-mismatched-face ((,class :foreground ,err :overline t)))
;;;;; shm
`(shm-current-face ((,class (:background ,green-bg-s))))
`(shm-quarantine-face ((,class (:background ,red-bg-s))))
;;;;; show-paren
`(show-paren-match ((,class (:background ,green-bg-s))))
`(show-paren-mismatch ((,class (:background ,red-bg-s))))
;;;;; smartparens
`(sp-pair-overlay-face ((,class (:background ,highlight :foreground nil))))
`(sp-show-pair-match-face ((,class (:foreground ,mat :inherit bold :underline t))))
;;;;; spaceline
`(spaceline-python-venv ((,class (:foreground ,comp))))
`(spaceline-flycheck-error ((,class (:foreground ,err))))
`(spaceline-flycheck-info ((,class (:foreground ,keyword))))
`(spaceline-flycheck-warning((,class (:foreground ,war))))
;;;;; spacemacs-specific
`(spacemacs-transient-state-title-face ((,class (:background nil :foreground ,comp :box nil :inherit bold))))
;;;;; swiper
`(swiper-line-face ((,class (:background ,highlight :inherit bold))))
`(swiper-match-face-1 ((,class (:inherit bold))))
`(swiper-match-face-2 ((,class (:foreground ,head1 :underline t))))
`(swiper-match-face-3 ((,class (:foreground ,head4 :underline t))))
`(swiper-match-face-4 ((,class (:foreground ,head3 :underline t))))
;;;;; tabbar
`(tabbar-default ((,class (:background ,bg1 :foreground ,head1 :height 0.9))))
`(tabbar-button ((,class (:inherit tabbar-default ))))
`(tabbar-button-highlight ((,class (:inherit tabbar-default))))
`(tabbar-highlight ((,class (:underline t))))
`(tabbar-selected ((,class (:inherit tabbar-default :foreground ,func :weight bold))))
`(tabbar-separator ((,class (:inherit tabbar-default))))
`(tabbar-unselected ((,class (:inherit tabbar-default :background ,bg1 :slant italic :weight light))))
;;;;; term
`(term ((,class (:foreground ,base :background ,bg1))))
`(term-color-black ((,class (:foreground ,bg4))))
`(term-color-blue ((,class (:foreground ,keyword))))
`(term-color-cyan ((,class (:foreground ,cyan))))
`(term-color-green ((,class (:foreground ,green))))
`(term-color-magenta ((,class (:foreground ,magenta))))
`(term-color-red ((,class (:foreground ,red))))
`(term-color-white ((,class (:foreground ,base))))
`(term-color-yellow ((,class (:foreground ,yellow))))
;;;;; web-mode
`(web-mode-builtin-face ((,class (:inherit ,font-lock-builtin-face))))
`(web-mode-comment-face ((,class (:inherit ,font-lock-comment-face))))
`(web-mode-constant-face ((,class (:inherit ,font-lock-constant-face))))
`(web-mode-doctype-face ((,class (:inherit ,font-lock-comment-face))))
`(web-mode-function-name-face ((,class (:inherit ,font-lock-function-name-face))))
`(web-mode-html-attr-name-face ((,class (:foreground ,func))))
`(web-mode-html-attr-value-face ((,class (:foreground ,keyword))))
`(web-mode-html-tag-face ((,class (:foreground ,keyword))))
`(web-mode-keyword-face ((,class (:foreground ,keyword))))
`(web-mode-string-face ((,class (:foreground ,str))))
`(web-mode-symbol-face ((,class (:foreground ,type))))
`(web-mode-type-face ((,class (:inherit ,font-lock-type-face))))
`(web-mode-warning-face ((,class (:inherit ,font-lock-warning-face))))
;;;;; which-key
`(which-key-command-description-face ((,class (:foreground ,base))))
`(which-key-group-description-face ((,class (:foreground ,keyword))))
`(which-key-key-face ((,class (:foreground ,func :inherit bold))))
`(which-key-separator-face ((,class (:background nil :foreground ,str))))
`(which-key-special-key-face ((,class (:background ,func :foreground ,bg1))))
;;;;; which-function-mode
`(which-func ((,class (:foreground ,func))))
;;;;; whitespace-mode
`(whitespace-empty ((,class (:background nil :foreground ,yellow))))
`(whitespace-indentation ((,class (:background nil :foreground ,war))))
`(whitespace-line ((,class (:background nil :foreground ,comp))))
`(whitespace-newline ((,class (:background nil :foreground ,comp))))
`(whitespace-space ((,class (:background nil :foreground ,act2))))
`(whitespace-space-after-tab ((,class (:background nil :foreground ,yellow))))
`(whitespace-space-before-tab ((,class (:background nil :foreground ,yellow))))
`(whitespace-tab ((,class (:background nil))))
`(whitespace-trailing ((,class (:background ,err :foreground ,war))))
;;;;; other, need more work
`(ac-completion-face ((,class (:underline t :foreground ,keyword))))
`(ffap ((,class (:foreground ,base))))
`(flx-highlight-face ((,class (:foreground ,comp :underline nil))))
`(icompletep-determined ((,class :foreground ,keyword)))
`(js2-external-variable ((,class (:foreground ,comp))))
`(js2-function-param ((,class (:foreground ,const))))
`(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,str))))
`(js2-jsdoc-html-tag-name ((,class (:foreground ,keyword))))
`(js2-jsdoc-value ((,class (:foreground ,str))))
`(js2-private-function-call ((,class (:foreground ,const))))
`(js2-private-member ((,class (:foreground ,base))))
`(js3-error-face ((,class (:underline ,war))))
`(js3-external-variable-face ((,class (:foreground ,var))))
`(js3-function-param-face ((,class (:foreground ,keyword))))
`(js3-instance-member-face ((,class (:foreground ,const))))
`(js3-jsdoc-tag-face ((,class (:foreground ,keyword))))
`(js3-warning-face ((,class (:underline ,keyword))))
`(slime-repl-inputed-output-face ((,class (:foreground ,comp))))
`(trailing-whitespace ((,class :foreground nil :background ,err)))
`(undo-tree-visualizer-current-face ((,class :foreground ,keyword)))
`(undo-tree-visualizer-default-face ((,class :foreground ,base)))
`(undo-tree-visualizer-register-face ((,class :foreground ,comp)))
`(undo-tree-visualizer-unmodified-face ((,class :foreground ,var))))
(custom-theme-set-variables
theme-name
`(ansi-color-names-vector [,bg4 ,red ,green ,yellow ,blue ,magenta ,cyan ,base]))
))
;;;###autoload
(when load-file-name
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
(provide 'spacemacs-common)
;; Local Variables:
;; no-byte-compile: t
;; End:
;;; spacemacs-common.el ends here

View File

@ -0,0 +1,7 @@
(require 'spacemacs-common)
(deftheme spacemacs-dark "Spacemacs theme, the dark version")
(create-spacemacs-theme 'dark 'spacemacs-dark)
(provide-theme 'spacemacs-dark)

View File

@ -0,0 +1,7 @@
(require 'spacemacs-common)
(deftheme spacemacs-light "Spacemacs theme, the light version")
(create-spacemacs-theme 'light 'spacemacs-light)
(provide-theme 'spacemacs-light)

View File

@ -45,7 +45,7 @@
(recentf :location built-in)
(savehist :location built-in)
(saveplace :location built-in)
spacemacs-theme
(spacemacs-theme :location built-in)
(subword :location built-in)
(tar-mode :location built-in)
(uniquify :location built-in)

View File

@ -34,3 +34,7 @@
(configuration-layer/discover-layers)
(configuration-layer//declare-used-layers dotspacemacs-configuration-layers)
(should (eq 'spacemacs-base (second configuration-layer--used-layers)))))
;; ---------------------------------------------------------------------------
;; Lazy installation of layers
;; ---------------------------------------------------------------------------