Use unspecified-fg/bg, set background-mode

* On terminals that are solarized-themed, use unspecified-bg for backgrounds and unspecified-fg for foregrounds.  This
  fixes an issue where the background could stay at a color of a previous theme, instead of going back to the
  terminal's background color.
* Pass background-mode in variables list.  It seems to only have an effect for GUI frames, however.
This commit is contained in:
Michael Olson 2012-12-12 16:26:04 -08:00
parent 0ea0a47a8b
commit aa2f372e39
1 changed files with 349 additions and 346 deletions

View File

@ -27,7 +27,7 @@ Ported to Emacs by Greg Pfeil, http://ethanschoonover.com/solarized.")
:group 'solarized)
(defcustom solarized-terminal-themed t
"Non-nil when the terminal emulator has been themes with Solarized.
"Non-nil when the terminal emulator has been themed with Solarized.
In this scenario, we do not set the background color, in favor of the more
accurate version of the color in the default terminal background."
:type 'boolean
@ -84,12 +84,14 @@ the \"Gen RGB\" column in solarized-definitions.el to improve them further."
(dolist (property '(:foreground :background :color))
(let ((color (plist-get new-fontspec property)))
(when color
(if (and solarized-terminal-themed
(or (and (eq property :background) (memq color back))
(and (eq property :foreground) (memq color fg))))
(plist-put new-fontspec property nil)
(plist-put new-fontspec property
(nth index (assoc color solarized-colors)))))))
(cond ((and solarized-terminal-themed
(eq property :background) (memq color back))
(plist-put new-fontspec property "unspecified-bg"))
((and solarized-terminal-themed
(eq property :foreground) (memq color fg))
(plist-put new-fontspec property "unspecified-fg"))
(t (plist-put new-fontspec property
(nth index (assoc color solarized-colors))))))))
(when (plist-get new-fontspec :box)
(plist-put new-fontspec :box (solarized-face-for-index
(plist-get new-fontspec :box) index)))
@ -192,345 +194,346 @@ the \"Gen RGB\" column in solarized-definitions.el to improve them further."
(fmt-revbbu `(:weight ,bright-bold :slant normal :underline ,underline :inverse-video t)))
(list
;; First list is for faces
(append
(solarized-faces `(,back) '(base0 base1)
`(;; basic
(default (,@fg-base0 ,@bg-back)) ; Normal
(cursor (,@fg-base03 ,@bg-base0)) ; Cursor
(error (,@fmt-bold ,@fg-red)) ; Error
(escape-glyph-face (,@fg-red))
(fringe (,@fg-base01 ,@bg-base02))
(linum (,@fg-base01 ,@bg-base02))
(header-line (,@fg-base0 ,@bg-base02 ,@fmt-revbb)) ; Pmenu
(highlight (,@bg-base02))
(hl-line (:underline ,opt-under ,@bg-base02)) ; CursorLine
(isearch (,@fmt-stnd ,@fg-orange ,@bg-back)) ; IncSearch
(isearch-fail (,@fmt-stnd ,@fg-orange ,@bg-back)) ; IncSearch
(lazy-highlight (,@fmt-revr ,@fg-yellow ,@bg-back)) ; Search
(link (,@fmt-undr ,@fg-violet))
(link-visited (,@fmt-undr ,@fg-magenta))
(menu (,@fg-base0 ,@bg-base02))
(minibuffer-prompt (,@fmt-bold ,@fg-cyan)) ; Question
(mode-line ; StatusLine
(,@fg-base1 ,@bg-base02 ,@fmt-revbb :box nil))
(mode-line-inactive ; StatusLineNC
(,@fg-base00 ,@bg-base02 ,@fmt-revbb :box nil))
(region (,@fg-base01 ,@bg-base03 ,@fmt-revbb)) ; Visual
(secondary-selection (,@bg-base02))
(shadow (,@fg-base01))
(trailing-whitespace (,@fmt-revr ,@fg-red))
(vertical-border (,@fg-base0))
;; comint
(comint-highlight-prompt (,@fg-blue))
;; compilation
(compilation-info (,@fmt-bold ,@fg-green))
(compilation-warning (,@fmt-bold ,@fg-orange))
;; custom
(custom-button
(,@fg-base1 ,@bg-base02
:box (:line-width 2 :style released-button)))
(custom-button-mouse
(,@fmt-revr ,@fg-base1 ,@bg-base02 :inherit custom-button))
(custom-button-pressed
(,@fmt-revr ,@fg-base1 ,@bg-base02
:box (:line-width 2 :style pressed-button)
:inherit custom-button-mouse))
(custom-changed (,@fmt-revr ,@fg-blue ,@bg-base3))
(custom-comment (,@fg-base1 ,@bg-base02))
(custom-comment-tag (,@fg-base1 ,@bg-base02))
(custom-documentation (:inherit default))
(custom-group-tag (,@fg-base1))
(custom-group-tag-1 (,fmt-bold ,@fg-base1))
(custom-invalid (,@fmt-revr ,@fg-red ,@bg-back))
(custom-link (,@fg-violet))
(custom-state (,@fg-green))
(custom-variable-tag (,@fg-base1))
;; diff - DiffAdd, DiffChange, DiffDelete, and DiffText
,@(case solarized-diff-mode
(high
`((diff-added (,@fmt-revr ,@fg-green))
(diff-changed (,@fmt-revr ,@fg-yellow))
(diff-removed (,@fmt-revr ,@fg-red))
(diff-refine-change
(,@fmt-revr ,@fg-blue ,@bg-back))))
(low
`((diff-added (,@fmt-undr ,@fg-green))
(diff-changed (,@fmt-undr ,@fg-yellow))
(diff-removed (,@fmt-bold ,@fg-red))
(diff-refine-change
(,@fmt-undr ,@fg-blue ,@bg-back))))
(normal
(if window-system
`((diff-added (,@fmt-bold ,@fg-green))
(diff-changed (,@fmt-bold ,@fg-yellow))
(diff-removed (,@fmt-bold ,@fg-red))
(diff-refine-change
(,@fmt-bold ,@fg-blue ,@bg-back)))
`((diff-added (,@fg-green))
(diff-changed (,@fg-yellow))
(diff-removed (,@fg-red))
(diff-refine-change (,@fg-blue ,@bg-back))))))
(diff-file-header (,@bg-back))
(diff-header (,@fg-base1 ,@bg-back))
;; IDO
(ido-only-match (,@fg-green))
(ido-subdir (,@fg-blue))
(ido-first-match (,@fmt-bold ,@fg-green))
;; emacs-wiki
(emacs-wiki-bad-link-face (,@fmt-undr ,@fg-red))
(emacs-wiki-link-face (,@fmt-undr ,@fg-blue))
(emacs-wiki-verbatim-face (,@fmt-undr ,@fg-base00))
;; eshell
(eshell-ls-archive (,@fg-magenta))
(eshell-ls-backup (,@fg-yellow))
(eshell-ls-clutter (,@fg-orange))
(eshell-ls-directory (,@fg-blue)) ; Directory
(eshell-ls-executable (,@fg-green))
(eshell-ls-missing (,@fg-red))
(eshell-ls-product (,@fg-yellow))
(eshell-ls-readonly (,@fg-base1))
(eshell-ls-special (,@fg-violet))
(eshell-ls-symlink (,@fg-cyan))
(eshell-ls-unreadable (,@fg-base00))
(eshell-prompt (,@fmt-bold ,@fg-green))
;; font-lock
(font-lock-builtin-face (,@fmt-none ,@fg-green)) ; Statement
(font-lock-comment-face (,@fmt-ital ,@fg-base01)) ; Comment
(font-lock-constant-face (,@fmt-none ,@fg-cyan)) ; Constant
(font-lock-function-name-face ; Identifier
(,@fmt-none ,@fg-blue))
(font-lock-keyword-face (,@fmt-none ,@fg-green)) ; Statement
(font-lock-string-face (,@fmt-none ,@fg-cyan)) ; Constant
(font-lock-type-face (,@fmt-none ,@fg-yellow)) ; Type
(font-lock-variable-name-face ; Identifier
(,@fmt-none ,@fg-blue))
(font-lock-warning-face (,@fmt-bold ,@fg-red)) ; Error
(font-lock-doc-face (,@fmt-ital ,@fg-base01)) ; Comment
(font-lock-doc-string-face ; Comment (XEmacs-only)
(,@fmt-ital ,@fg-base01))
(font-lock-color-constant-face (,@fmt-none ,@fg-green))
(font-lock-comment-delimiter-face ; Comment
(,@fmt-ital ,@fg-base01))
(font-lock-preprocessor-face ; PreProc
(,@fmt-none ,@fg-orange))
(font-lock-reference-face (,@fmt-none ,@fg-cyan))
(font-lock-negation-char-face (,@fmt-none ,@fg-red))
(font-lock-other-type-face (,@fmt-ital ,@fg-blue))
(font-lock-regexp-grouping-construct
(,@fmt-none ,@fg-orange))
(font-lock-special-keyword-face ; Special
(,@fmt-none ,@fg-red))
(font-lock-exit-face (,@fmt-none ,@fg-red))
(font-lock-other-emphasized-face (,@fmt-bldi ,@fg-violet))
(font-lock-regexp-grouping-backslash
(,@fmt-none ,@fg-yellow))
;; info
(info-xref (,@fmt-undr ,@fg-blue))
(info-xref-visited (,@fg-magenta :inherit info-xref))
;; org
(org-hide (,@fg-base03))
(org-todo (,@fmt-bold ,@fg-base03 ,@bg-red))
(org-done (,@fmt-bold ,@fg-green))
(org-todo-kwd-face (,@fg-red ,@bg-base03))
(org-done-kwd-face (,@fg-green ,@bg-base03))
(org-project-kwd-face (,@fg-violet ,@bg-base03))
(org-waiting-kwd-face (,@fg-orange ,@bg-base03))
(org-someday-kwd-face (,@fg-blue ,@bg-base03))
(org-started-kwd-face (,@fg-yellow ,@bg-base03))
(org-cancelled-kwd-face (,@fg-green ,@bg-base03))
(org-delegated-kwd-face (,@fg-cyan ,@bg-base03))
;; table
(table-cell (,@fmt-none ,@fg-base0 ,@bg-back))
;; outline - pandocBlockQuoteLeader*
(outline-1 (,@fmt-none ,@fg-blue))
(outline-2 (,@fmt-none ,@fg-cyan))
(outline-3 (,@fmt-none ,@fg-yellow))
(outline-4 (,@fmt-none ,@fg-red))
(outline-5 (,@fmt-none ,@fg-base0))
(outline-6 (,@fmt-none ,@fg-base01))
(outline-7 (,@fmt-none ,@fg-orange))
(outline-8 (,@fmt-none ,@fg-violet))
;; speedbar
(speedbar-button-face (,@fmt-none ,@fg-base1))
(speedbar-directory-face (,@fmt-none ,@fg-orange))
(speedbar-file-face (,@fmt-none ,@fg-green))
(speedbar-highlight-face (,@bg-base02))
(speedbar-selected-face (,@fmt-undr ,@fg-yellow))
(speedbar-separator-face (,@fmt-stnd))
(speedbar-tag-face (,@fmt-none ,@fg-blue))
;; show-paren - MatchParen
(show-paren-match (,@fmt-bold ,@fg-cyan ,@bg-base02))
(show-paren-mismatch (,@fmt-bold ,@fg-red ,@bg-base01))
;; widgets
(widget-field
(,@fg-base1 ,@bg-base02 :box (:line-width 1)
:inherit default))
(widget-single-line-field (:inherit widget-field))
;; extra modules
;; -------------
;; Flymake
(flymake-errline (,@fmt-revr ,@fg-red ,@bg-back)) ; ErrorMsg
(flymake-warnline ; WarningMsg
(,@fmt-bold ,@fg-red ,@bg-back))
;; column-marker
(column-marker-1 (,@bg-base01))
(column-marker-2 (,@bg-cyan))
(column-marker-3 (,@bg-violet))
;; jabber
(jabber-activity-face (,@fmt-bold ,@fg-red))
(jabber-activity-personal-face (,@fmt-bold ,@fg-blue))
(jabber-chat-error (,@fmt-bold ,@fg-red))
(jabber-chat-prompt-foreign (,@fmt-bold ,@fg-red))
(jabber-chat-prompt-local (,@fmt-bold ,@fg-blue))
(jabber-chat-prompt-system (,@fmt-bold ,@fg-green))
(jabber-chat-text-foreign (,@fg-base1))
(jabber-chat-text-local (,@fg-base0))
(jabber-chat-rare-time-face (,@fmt-undr ,@fg-green))
(jabber-roster-user-away (,@fmt-ital ,@fg-green))
(jabber-roster-user-chatty (,@fmt-bold ,@fg-orange))
(jabber-roster-user-dnd (,@fmt-ital ,@fg-red))
(jabber-roster-user-error (:weight light :slant italic ,@fg-red))
(jabber-roster-user-offline (,@fg-base01))
(jabber-roster-user-online (,@fmt-bold ,@fg-blue))
(jabber-roster-user-xa (,@fmt-ital ,@fg-magenta))
;; gnus - these are taken from mutt, not VIM
(gnus-cite-1 (,@fmt-none ,@fg-blue)) ; quoted
(gnus-cite-2 (,@fmt-none ,@fg-cyan)) ; quoted1
(gnus-cite-3 (,@fmt-none ,@fg-yellow)) ; quoted2
(gnus-cite-4 (,@fmt-none ,@fg-red)) ; quoted3
(gnus-cite-5 (,@fmt-none ,@fg-orange)) ; quoted4
(gnus-cite-6 (,@fmt-none ,@fg-violet))
(gnus-cite-7 (,@fmt-none ,@fg-green))
(gnus-cite-8 (,@fmt-none ,@fg-magenta))
(gnus-cite-9 (,@fmt-none ,@fg-base00))
(gnus-cite-10 (,@fmt-none ,@fg-base01))
(gnus-cite-11 (,@fmt-none ,@fg-base02))
(gnus-group-mail-1 (,@fmt-bold ,@fg-base3))
(gnus-group-mail-1-empty (,@fg-base3))
(gnus-group-mail-2 (,@fmt-bold ,@fg-base2))
(gnus-group-mail-2-empty (,@fg-base2))
(gnus-group-mail-3 (,@fmt-bold ,@fg-magenta))
(gnus-group-mail-3-empty (,@fg-magenta))
(gnus-group-mail-low (,@fmt-bold ,@fg-base00))
(gnus-group-mail-low-empty (,@fg-base00))
(gnus-group-news-1 (,@fmt-bold ,@fg-base1))
(gnus-group-news-1-empty (,@fg-base1))
(gnus-group-news-2 (,@fmt-bold ,@fg-blue))
(gnus-group-news-2-empty (,@fg-blue))
(gnus-group-news-low (,@fmt-bold ,@fg-violet))
(gnus-group-news-low-empty (,@fg-violet))
(gnus-emphasis-highlight-words ; highlight
(,@fmt-none ,fg-yellow))
(gnus-header-content (,@fmt-none ,@fg-base01)) ; hdrdefault
(gnus-header-from (,@fmt-none ,@fg-base00)) ; header ^From
(gnus-header-name (,@fmt-none ,@fg-base01)) ; hdrdefault
(gnus-header-newsgroups ; hdrdefault
(,@fmt-none ,@fg-base02))
(gnus-header-subject ; header ^Subject
(,@fmt-none ,@fg-blue))
(gnus-server-agent (,@fmt-bold ,@fg-base3))
(gnus-server-closed (,@fmt-ital ,@fg-base1))
(gnus-server-denied (,@fmt-bold ,@fg-base2))
(gnus-server-offline (,@fmt-bold ,@fg-green))
(gnus-server-opened (,@fmt-bold ,@fg-cyan))
(gnus-signature (,@fmt-none ,@fg-base01)) ; signature
(gnus-splash (,@fg-base2))
(gnus-summary-cancelled ; deleted messages
(,@fmt-none ,@fg-red))
(gnus-summary-high-ancient
(,@fmt-bold :inherit gnus-summary-normal-ancient))
(gnus-summary-high-read
(,@fmt-bold :inherit gnus-summary-normal-read))
(gnus-summary-high-ticked
(,@fmt-bold :inherit gnus-summary-normal-ticked))
(gnus-summary-high-undownloaded
(,@fmt-bold :inherit gnus-summary-normal-undownloaded))
(gnus-summary-high-unread
(,@fmt-bold :inherit gnus-summary-normal-unread))
(gnus-summary-low-ancient
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-read
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-unread
(,@fmt-ital :inherit gnus-summary-normal-unread))
(gnus-summary-low-ticked
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-undownloaded
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-normal-ancient ; old messages
(,@fmt-none ,@fg-blue))
(gnus-summary-normal-read ; read messages
(,@fmt-none ,@fg-base01))
(gnus-summary-normal-ticked ; flagged
(,@fmt-none ,@fg-red))
(gnus-summary-normal-undownloaded (,@fmt-none ,@fg-base2))
(gnus-summary-normal-unread ; unread messages
(,@fmt-none ,@fg-blue))
(gnus-summary-selected ; indicator
(,@fmt-none ,@fg-base03 ,@bg-yellow))
;; Message
(message-mml (,@fg-blue))
(message-cited-text (,@fg-base2))
(message-separator (,@fg-base3))
(message-header-xheader (,@fg-violet))
(message-header-name (,@fg-cyan))
(message-header-other (,@fg-red))
(message-header-newsgroups (,@fmt-bldi ,@fg-yellow))
(message-header-subject (,@fg-base00))
(message-header-cc (,@fmt-bold ,@fg-green))
(message-header-to (,@fmt-bold ,@fg-base1))
;; parenface
(paren-face (,@fg-base01))
;; rainbow-delimiters
(rainbow-delimiters-depth-1-face (,@fg-cyan))
(rainbow-delimiters-depth-2-face (,@fg-yellow))
(rainbow-delimiters-depth-3-face (,@fg-blue))
(rainbow-delimiters-depth-4-face (,@fg-red))
(rainbow-delimiters-depth-5-face (,@fg-green))
(rainbow-delimiters-depth-6-face (,@fg-blue))
(rainbow-delimiters-depth-7-face (,@fg-orange))
(rainbow-delimiters-depth-8-face (,@fg-magenta))
(rainbow-delimiters-depth-9-face (,@fg-base0))
;; slime
(slime-error-face (,@fmt-revr ,@fg-red)) ; ErrorMsg
(slime-note-face (,@fg-yellow))
(slime-repl-inputted-output-face (,@fg-red))
(slime-repl-output-mouseover-face (:box (:color base3)))
(slime-style-warning-face (,@fmt-bold ,@fg-orange))
(slime-warning-face (,@fmt-bold ,@fg-red)) ; WarningMsg
;; whitespace
(whitespace-empty (,@fg-red))
(whitespace-hspace (,@fg-orange))
(whitespace-indentation (,@fg-base02))
(whitespace-space (,@fg-base02))
(whitespace-space-after-tab (,@fg-cyan))
(whitespace-space-before-tab (,@fmt-bold ,@fg-red))
(whitespace-tab (,@fg-base02))
(whitespace-trailing (,@fmt-bold ,@fg-red ,@bg-base02))
(whitespace-highlight-face (,@fg-red ,@bg-blue))
(whitespace-line (,@fg-magenta ,@bg-base03))
;; rcirc
(rcirc-my-nick (:foreground blue))
(rcirc-nick-in-message (:foreground orange))
(rcirc-other-nick (:foreground green))
(rcirc-prompt (:foreground yellow))
(rcirc-bright-nick (:foreground magenta))
(rcirc-server (:foreground base1))
(rcirc-timestamp (:foreground base01))
;; ERC
(erc-input-face (:foreground base01))
(erc-keyword-face (,@fmt-bldi ,@fg-yellow))
(erc-my-nick-face (:foreground blue))
(erc-nick-default-face (,@fmt-none ,@fg-cyan))
(erc-notice-face (,@fmt-none ,@fg-blue))
(erc-timestamp-face (:foreground base01))
;;font-latex
(font-latex-warning-face (,@fg-red))
(font-latex-sectioning-5-face (,@fg-violet))
;;flyspell
(flyspell-incorrect (,@fg-red))
(flyspell-duplicate (,@fg-yellow)))
mode)))))
(solarized-faces `(,back) '(base0 base1)
`(;; basic
(default (,@fg-base0 ,@bg-back)) ; Normal
(cursor (,@fg-base03 ,@bg-base0)) ; Cursor
(error (,@fmt-bold ,@fg-red)) ; Error
(escape-glyph-face (,@fg-red))
(fringe (,@fg-base01 ,@bg-base02))
(linum (,@fg-base01 ,@bg-base02))
(header-line (,@fg-base0 ,@bg-base02 ,@fmt-revbb)) ; Pmenu
(highlight (,@bg-base02))
(hl-line (:underline ,opt-under ,@bg-base02)) ; CursorLine
(isearch (,@fmt-stnd ,@fg-orange ,@bg-back)) ; IncSearch
(isearch-fail (,@fmt-stnd ,@fg-orange ,@bg-back)) ; IncSearch
(lazy-highlight (,@fmt-revr ,@fg-yellow ,@bg-back)) ; Search
(link (,@fmt-undr ,@fg-violet))
(link-visited (,@fmt-undr ,@fg-magenta))
(menu (,@fg-base0 ,@bg-base02))
(minibuffer-prompt (,@fmt-bold ,@fg-cyan)) ; Question
(mode-line ; StatusLine
(,@fg-base1 ,@bg-base02 ,@fmt-revbb :box nil))
(mode-line-inactive ; StatusLineNC
(,@fg-base00 ,@bg-base02 ,@fmt-revbb :box nil))
(region (,@fg-base01 ,@bg-base03 ,@fmt-revbb)) ; Visual
(secondary-selection (,@bg-base02))
(shadow (,@fg-base01))
(trailing-whitespace (,@fmt-revr ,@fg-red))
(vertical-border (,@fg-base0))
;; comint
(comint-highlight-prompt (,@fg-blue))
;; compilation
(compilation-info (,@fmt-bold ,@fg-green))
(compilation-warning (,@fmt-bold ,@fg-orange))
;; custom
(custom-button
(,@fg-base1 ,@bg-base02
:box (:line-width 2 :style released-button)))
(custom-button-mouse
(,@fmt-revr ,@fg-base1 ,@bg-base02 :inherit custom-button))
(custom-button-pressed
(,@fmt-revr ,@fg-base1 ,@bg-base02
:box (:line-width 2 :style pressed-button)
:inherit custom-button-mouse))
(custom-changed (,@fmt-revr ,@fg-blue ,@bg-base3))
(custom-comment (,@fg-base1 ,@bg-base02))
(custom-comment-tag (,@fg-base1 ,@bg-base02))
(custom-documentation (:inherit default))
(custom-group-tag (,@fg-base1))
(custom-group-tag-1 (,fmt-bold ,@fg-base1))
(custom-invalid (,@fmt-revr ,@fg-red ,@bg-back))
(custom-link (,@fg-violet))
(custom-state (,@fg-green))
(custom-variable-tag (,@fg-base1))
;; diff - DiffAdd, DiffChange, DiffDelete, and DiffText
,@(case solarized-diff-mode
(high
`((diff-added (,@fmt-revr ,@fg-green))
(diff-changed (,@fmt-revr ,@fg-yellow))
(diff-removed (,@fmt-revr ,@fg-red))
(diff-refine-change
(,@fmt-revr ,@fg-blue ,@bg-back))))
(low
`((diff-added (,@fmt-undr ,@fg-green))
(diff-changed (,@fmt-undr ,@fg-yellow))
(diff-removed (,@fmt-bold ,@fg-red))
(diff-refine-change
(,@fmt-undr ,@fg-blue ,@bg-back))))
(normal
(if window-system
`((diff-added (,@fmt-bold ,@fg-green))
(diff-changed (,@fmt-bold ,@fg-yellow))
(diff-removed (,@fmt-bold ,@fg-red))
(diff-refine-change
(,@fmt-bold ,@fg-blue ,@bg-back)))
`((diff-added (,@fg-green))
(diff-changed (,@fg-yellow))
(diff-removed (,@fg-red))
(diff-refine-change (,@fg-blue ,@bg-back))))))
(diff-file-header (,@bg-back))
(diff-header (,@fg-base1 ,@bg-back))
;; IDO
(ido-only-match (,@fg-green))
(ido-subdir (,@fg-blue))
(ido-first-match (,@fmt-bold ,@fg-green))
;; emacs-wiki
(emacs-wiki-bad-link-face (,@fmt-undr ,@fg-red))
(emacs-wiki-link-face (,@fmt-undr ,@fg-blue))
(emacs-wiki-verbatim-face (,@fmt-undr ,@fg-base00))
;; eshell
(eshell-ls-archive (,@fg-magenta))
(eshell-ls-backup (,@fg-yellow))
(eshell-ls-clutter (,@fg-orange))
(eshell-ls-directory (,@fg-blue)) ; Directory
(eshell-ls-executable (,@fg-green))
(eshell-ls-missing (,@fg-red))
(eshell-ls-product (,@fg-yellow))
(eshell-ls-readonly (,@fg-base1))
(eshell-ls-special (,@fg-violet))
(eshell-ls-symlink (,@fg-cyan))
(eshell-ls-unreadable (,@fg-base00))
(eshell-prompt (,@fmt-bold ,@fg-green))
;; font-lock
(font-lock-builtin-face (,@fmt-none ,@fg-green)) ; Statement
(font-lock-comment-face (,@fmt-ital ,@fg-base01)) ; Comment
(font-lock-constant-face (,@fmt-none ,@fg-cyan)) ; Constant
(font-lock-function-name-face ; Identifier
(,@fmt-none ,@fg-blue))
(font-lock-keyword-face (,@fmt-none ,@fg-green)) ; Statement
(font-lock-string-face (,@fmt-none ,@fg-cyan)) ; Constant
(font-lock-type-face (,@fmt-none ,@fg-yellow)) ; Type
(font-lock-variable-name-face ; Identifier
(,@fmt-none ,@fg-blue))
(font-lock-warning-face (,@fmt-bold ,@fg-red)) ; Error
(font-lock-doc-face (,@fmt-ital ,@fg-base01)) ; Comment
(font-lock-doc-string-face ; Comment (XEmacs-only)
(,@fmt-ital ,@fg-base01))
(font-lock-color-constant-face (,@fmt-none ,@fg-green))
(font-lock-comment-delimiter-face ; Comment
(,@fmt-ital ,@fg-base01))
(font-lock-preprocessor-face ; PreProc
(,@fmt-none ,@fg-orange))
(font-lock-reference-face (,@fmt-none ,@fg-cyan))
(font-lock-negation-char-face (,@fmt-none ,@fg-red))
(font-lock-other-type-face (,@fmt-ital ,@fg-blue))
(font-lock-regexp-grouping-construct
(,@fmt-none ,@fg-orange))
(font-lock-special-keyword-face ; Special
(,@fmt-none ,@fg-red))
(font-lock-exit-face (,@fmt-none ,@fg-red))
(font-lock-other-emphasized-face (,@fmt-bldi ,@fg-violet))
(font-lock-regexp-grouping-backslash
(,@fmt-none ,@fg-yellow))
;; info
(info-xref (,@fmt-undr ,@fg-blue))
(info-xref-visited (,@fg-magenta :inherit info-xref))
;; org
(org-hide (,@fg-base03))
(org-todo (,@fmt-bold ,@fg-base03 ,@bg-red))
(org-done (,@fmt-bold ,@fg-green))
(org-todo-kwd-face (,@fg-red ,@bg-base03))
(org-done-kwd-face (,@fg-green ,@bg-base03))
(org-project-kwd-face (,@fg-violet ,@bg-base03))
(org-waiting-kwd-face (,@fg-orange ,@bg-base03))
(org-someday-kwd-face (,@fg-blue ,@bg-base03))
(org-started-kwd-face (,@fg-yellow ,@bg-base03))
(org-cancelled-kwd-face (,@fg-green ,@bg-base03))
(org-delegated-kwd-face (,@fg-cyan ,@bg-base03))
;; table
(table-cell (,@fmt-none ,@fg-base0 ,@bg-back))
;; outline - pandocBlockQuoteLeader*
(outline-1 (,@fmt-none ,@fg-blue))
(outline-2 (,@fmt-none ,@fg-cyan))
(outline-3 (,@fmt-none ,@fg-yellow))
(outline-4 (,@fmt-none ,@fg-red))
(outline-5 (,@fmt-none ,@fg-base0))
(outline-6 (,@fmt-none ,@fg-base01))
(outline-7 (,@fmt-none ,@fg-orange))
(outline-8 (,@fmt-none ,@fg-violet))
;; speedbar
(speedbar-button-face (,@fmt-none ,@fg-base1))
(speedbar-directory-face (,@fmt-none ,@fg-orange))
(speedbar-file-face (,@fmt-none ,@fg-green))
(speedbar-highlight-face (,@bg-base02))
(speedbar-selected-face (,@fmt-undr ,@fg-yellow))
(speedbar-separator-face (,@fmt-stnd))
(speedbar-tag-face (,@fmt-none ,@fg-blue))
;; show-paren - MatchParen
(show-paren-match (,@fmt-bold ,@fg-cyan ,@bg-base02))
(show-paren-mismatch (,@fmt-bold ,@fg-red ,@bg-base01))
;; widgets
(widget-field
(,@fg-base1 ,@bg-base02 :box (:line-width 1)
:inherit default))
(widget-single-line-field (:inherit widget-field))
;; extra modules
;; -------------
;; Flymake
(flymake-errline (,@fmt-revr ,@fg-red ,@bg-back)) ; ErrorMsg
(flymake-warnline ; WarningMsg
(,@fmt-bold ,@fg-red ,@bg-back))
;; column-marker
(column-marker-1 (,@bg-base01))
(column-marker-2 (,@bg-cyan))
(column-marker-3 (,@bg-violet))
;; jabber
(jabber-activity-face (,@fmt-bold ,@fg-red))
(jabber-activity-personal-face (,@fmt-bold ,@fg-blue))
(jabber-chat-error (,@fmt-bold ,@fg-red))
(jabber-chat-prompt-foreign (,@fmt-bold ,@fg-red))
(jabber-chat-prompt-local (,@fmt-bold ,@fg-blue))
(jabber-chat-prompt-system (,@fmt-bold ,@fg-green))
(jabber-chat-text-foreign (,@fg-base1))
(jabber-chat-text-local (,@fg-base0))
(jabber-chat-rare-time-face (,@fmt-undr ,@fg-green))
(jabber-roster-user-away (,@fmt-ital ,@fg-green))
(jabber-roster-user-chatty (,@fmt-bold ,@fg-orange))
(jabber-roster-user-dnd (,@fmt-ital ,@fg-red))
(jabber-roster-user-error (:weight light :slant italic ,@fg-red))
(jabber-roster-user-offline (,@fg-base01))
(jabber-roster-user-online (,@fmt-bold ,@fg-blue))
(jabber-roster-user-xa (,@fmt-ital ,@fg-magenta))
;; gnus - these are taken from mutt, not VIM
(gnus-cite-1 (,@fmt-none ,@fg-blue)) ; quoted
(gnus-cite-2 (,@fmt-none ,@fg-cyan)) ; quoted1
(gnus-cite-3 (,@fmt-none ,@fg-yellow)) ; quoted2
(gnus-cite-4 (,@fmt-none ,@fg-red)) ; quoted3
(gnus-cite-5 (,@fmt-none ,@fg-orange)) ; quoted4
(gnus-cite-6 (,@fmt-none ,@fg-violet))
(gnus-cite-7 (,@fmt-none ,@fg-green))
(gnus-cite-8 (,@fmt-none ,@fg-magenta))
(gnus-cite-9 (,@fmt-none ,@fg-base00))
(gnus-cite-10 (,@fmt-none ,@fg-base01))
(gnus-cite-11 (,@fmt-none ,@fg-base02))
(gnus-group-mail-1 (,@fmt-bold ,@fg-base3))
(gnus-group-mail-1-empty (,@fg-base3))
(gnus-group-mail-2 (,@fmt-bold ,@fg-base2))
(gnus-group-mail-2-empty (,@fg-base2))
(gnus-group-mail-3 (,@fmt-bold ,@fg-magenta))
(gnus-group-mail-3-empty (,@fg-magenta))
(gnus-group-mail-low (,@fmt-bold ,@fg-base00))
(gnus-group-mail-low-empty (,@fg-base00))
(gnus-group-news-1 (,@fmt-bold ,@fg-base1))
(gnus-group-news-1-empty (,@fg-base1))
(gnus-group-news-2 (,@fmt-bold ,@fg-blue))
(gnus-group-news-2-empty (,@fg-blue))
(gnus-group-news-low (,@fmt-bold ,@fg-violet))
(gnus-group-news-low-empty (,@fg-violet))
(gnus-emphasis-highlight-words ; highlight
(,@fmt-none ,fg-yellow))
(gnus-header-content (,@fmt-none ,@fg-base01)) ; hdrdefault
(gnus-header-from (,@fmt-none ,@fg-base00)) ; header ^From
(gnus-header-name (,@fmt-none ,@fg-base01)) ; hdrdefault
(gnus-header-newsgroups ; hdrdefault
(,@fmt-none ,@fg-base02))
(gnus-header-subject ; header ^Subject
(,@fmt-none ,@fg-blue))
(gnus-server-agent (,@fmt-bold ,@fg-base3))
(gnus-server-closed (,@fmt-ital ,@fg-base1))
(gnus-server-denied (,@fmt-bold ,@fg-base2))
(gnus-server-offline (,@fmt-bold ,@fg-green))
(gnus-server-opened (,@fmt-bold ,@fg-cyan))
(gnus-signature (,@fmt-none ,@fg-base01)) ; signature
(gnus-splash (,@fg-base2))
(gnus-summary-cancelled ; deleted messages
(,@fmt-none ,@fg-red))
(gnus-summary-high-ancient
(,@fmt-bold :inherit gnus-summary-normal-ancient))
(gnus-summary-high-read
(,@fmt-bold :inherit gnus-summary-normal-read))
(gnus-summary-high-ticked
(,@fmt-bold :inherit gnus-summary-normal-ticked))
(gnus-summary-high-undownloaded
(,@fmt-bold :inherit gnus-summary-normal-undownloaded))
(gnus-summary-high-unread
(,@fmt-bold :inherit gnus-summary-normal-unread))
(gnus-summary-low-ancient
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-read
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-unread
(,@fmt-ital :inherit gnus-summary-normal-unread))
(gnus-summary-low-ticked
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-low-undownloaded
(,@fmt-ital :inherit gnus-summary-normal-ancient))
(gnus-summary-normal-ancient ; old messages
(,@fmt-none ,@fg-blue))
(gnus-summary-normal-read ; read messages
(,@fmt-none ,@fg-base01))
(gnus-summary-normal-ticked ; flagged
(,@fmt-none ,@fg-red))
(gnus-summary-normal-undownloaded (,@fmt-none ,@fg-base2))
(gnus-summary-normal-unread ; unread messages
(,@fmt-none ,@fg-blue))
(gnus-summary-selected ; indicator
(,@fmt-none ,@fg-base03 ,@bg-yellow))
;; Message
(message-mml (,@fg-blue))
(message-cited-text (,@fg-base2))
(message-separator (,@fg-base3))
(message-header-xheader (,@fg-violet))
(message-header-name (,@fg-cyan))
(message-header-other (,@fg-red))
(message-header-newsgroups (,@fmt-bldi ,@fg-yellow))
(message-header-subject (,@fg-base00))
(message-header-cc (,@fmt-bold ,@fg-green))
(message-header-to (,@fmt-bold ,@fg-base1))
;; parenface
(paren-face (,@fg-base01))
;; rainbow-delimiters
(rainbow-delimiters-depth-1-face (,@fg-cyan))
(rainbow-delimiters-depth-2-face (,@fg-yellow))
(rainbow-delimiters-depth-3-face (,@fg-blue))
(rainbow-delimiters-depth-4-face (,@fg-red))
(rainbow-delimiters-depth-5-face (,@fg-green))
(rainbow-delimiters-depth-6-face (,@fg-blue))
(rainbow-delimiters-depth-7-face (,@fg-orange))
(rainbow-delimiters-depth-8-face (,@fg-magenta))
(rainbow-delimiters-depth-9-face (,@fg-base0))
;; slime
(slime-error-face (,@fmt-revr ,@fg-red)) ; ErrorMsg
(slime-note-face (,@fg-yellow))
(slime-repl-inputted-output-face (,@fg-red))
(slime-repl-output-mouseover-face (:box (:color base3)))
(slime-style-warning-face (,@fmt-bold ,@fg-orange))
(slime-warning-face (,@fmt-bold ,@fg-red)) ; WarningMsg
;; whitespace
(whitespace-empty (,@fg-red))
(whitespace-hspace (,@fg-orange))
(whitespace-indentation (,@fg-base02))
(whitespace-space (,@fg-base02))
(whitespace-space-after-tab (,@fg-cyan))
(whitespace-space-before-tab (,@fmt-bold ,@fg-red))
(whitespace-tab (,@fg-base02))
(whitespace-trailing (,@fmt-bold ,@fg-red ,@bg-base02))
(whitespace-highlight-face (,@fg-red ,@bg-blue))
(whitespace-line (,@fg-magenta ,@bg-base03))
;; rcirc
(rcirc-my-nick (:foreground blue))
(rcirc-nick-in-message (:foreground orange))
(rcirc-other-nick (:foreground green))
(rcirc-prompt (:foreground yellow))
(rcirc-bright-nick (:foreground magenta))
(rcirc-server (:foreground base1))
(rcirc-timestamp (:foreground base01))
;; ERC
(erc-input-face (:foreground base01))
(erc-keyword-face (,@fmt-bldi ,@fg-yellow))
(erc-my-nick-face (:foreground blue))
(erc-nick-default-face (,@fmt-none ,@fg-cyan))
(erc-notice-face (,@fmt-none ,@fg-blue))
(erc-timestamp-face (:foreground base01))
;;font-latex
(font-latex-warning-face (,@fg-red))
(font-latex-sectioning-5-face (,@fg-violet))
;;flyspell
(flyspell-incorrect (,@fg-red))
(flyspell-duplicate (,@fg-yellow)))
mode)
;; Second list is for vars
`((background-mode . ,mode)))))
(defmacro create-solarized-theme (mode)
(let* ((theme-name (intern (concat "solarized-" (symbol-name mode))))