soothe-tva.el 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. ;;; soothe-tva.el --- Autothemer TVA engine for soothe-theme -*- lexical-binding: t; -*-
  2. ;;
  3. ;; Copyright (C) 2012-2022 Jason Milkins
  4. ;;
  5. ;; Author: Jason Milkins <jasonm23@gmail.com>
  6. ;; Maintainer: Jason Milkins <jasonm23@gmail.com>
  7. ;; URL: https://github.com/emacsfodder/emacs-soothe-theme
  8. ;; Version: 2.1.1
  9. ;; Package-Requires: ((emacs "24.3") (autothemer "0.2"))
  10. ;;
  11. ;; This file is not part of GNU Emacs.
  12. ;;
  13. ;;; License
  14. ;;
  15. ;; This program is free software; you can redistribute it and/or modify
  16. ;; it under the terms of the GNU General Public License as published by
  17. ;; the Free Software Foundation; either version 3, or (at your option)
  18. ;; any later version.
  19. ;; This program is distributed in the hope that it will be useful,
  20. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  21. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  22. ;; GNU General Public License for more details.
  23. ;; You should have received a copy of the GNU General Public License
  24. ;; along with this program; see the file COPYING. If not, write to
  25. ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
  26. ;; Floor, Boston, MA 02110-1301, USA.
  27. ;;; Commentary:
  28. ;;
  29. ;; TVA/autothemer engine for soothe-theme
  30. ;;
  31. ;;; Code:
  32. (require 'autothemer)
  33. (unless (>= emacs-major-version 24)
  34. (error "Requires Emacs 24 or later"))
  35. (defmacro soothe-tva-deftheme (name description palette &rest body)
  36. "Create a soothe-theme: NAME, DESCRIPTION, PALETTE, BODY."
  37. `(autothemer-deftheme ,name ,description ,palette
  38. ;;; Face specs
  39. ((default (:foreground soothe-foreground :background soothe-background))
  40. (ac-candidate-face (:foreground soothe-background :background soothe-foreground-2))
  41. (ac-candidate-mouse-face (:foreground soothe-foreground-1 :background soothe-turquoise-1))
  42. (ac-completion-face (:foreground soothe-foreground-0 :background soothe-purple-3bg))
  43. (ac-gtags-candidate-face (:foreground soothe-background :background soothe-purple-3))
  44. (ac-gtags-selection-face (:foreground soothe-foreground-2 :background soothe-background-2))
  45. (ac-selection-face (:foreground soothe-foreground-2 :background soothe-background-2))
  46. (ac-yasnippet-candidate-face (:foreground soothe-background :background soothe-green-2))
  47. (ac-yasnippet-selection-face (:foreground soothe-foreground-1 :background soothe-background-2))
  48. (anzu-mode-line (:foreground soothe-foreground-1))
  49. (anzu-mode-line-no-match (:foreground soothe-foreground-1))
  50. (anzu-replace-highlight (:inherit 'lazy-highlight))
  51. (anzu-replace-to (:inherit 'isearch))
  52. (anzu-match-1 (:inherit 'match))
  53. (anzu-match-2 (:inherit 'diredfl-file-name))
  54. (anzu-match-3 (:inherit 'diredfl-flag-mark))
  55. (company-echo (:inherit 'company-echo-common))
  56. (company-echo-common (:foreground soothe-prime-blue :background soothe-turquoise-1bg))
  57. (company-preview (:inherit 'company-preview-common))
  58. (company-preview-common (:inherit 'font-lock-builtin-face :underline soothe-foreground-1))
  59. (company-preview-search (:inherit 'company-preview-common))
  60. (company-scrollbar-bg (:foreground nil :background soothe-turquoise-2bg))
  61. (company-scrollbar-fg (:foreground nil :background soothe-turquoise-2))
  62. (company-template-field (:foreground soothe-prime-blue :background nil :underline soothe-bg-blue))
  63. (company-tooltip (:foreground soothe-foreground-0 :background soothe-turquoise-1bg))
  64. (company-tooltip-annotation (:foreground soothe-foreground-0 :background soothe-turquoise-2bg))
  65. (company-tooltip-common (:foreground soothe-prime-turquoise :background soothe-turquoise-2bg))
  66. (company-tooltip-common-selection (:foreground soothe-prime-orange :background soothe-turquoise-2bg))
  67. (company-tooltip-mouse (:foreground soothe-prime-purple :background soothe-turquoise-2bg))
  68. (company-tooltip-selection (:inherit 'font-lock-constant-face :background soothe-background-dark-0))
  69. (cua-global-mark (:foreground soothe-foreground-1 :background soothe-turquoise-1))
  70. (cua-rectangle (:foreground soothe-foreground-1 :background soothe-purple-4))
  71. (cua-rectangle-noselect (:foreground soothe-foreground-1 :background soothe-prime-orange))
  72. (cursor (:background soothe-prime-orange))
  73. (diff-added (:foreground soothe-overexposed-green :background soothe-dark-green))
  74. (diff-changed (:foreground soothe-overexposed-purple :background soothe-dark-purple))
  75. (diff-changed-unspcified (:foreground soothe-overexposed-purple :background soothe-dark-purple))
  76. (diff-context (:foreground soothe-foreground-1))
  77. (diff-file-header (:foreground soothe-prime-orange :background soothe-orange-1bg))
  78. (diff-function (:foreground soothe-foreground-1 :background soothe-dark-orange))
  79. (diff-hl-change (:foreground soothe-prime-purple :background soothe-purple-1bg))
  80. (diff-hl-delete (:foreground soothe-prime-red :background soothe-red-1bg))
  81. (diff-hl-insert (:foreground soothe-prime-green :background soothe-green-2bg))
  82. (diff-hunk-header (:foreground soothe-prime-purple :background soothe-purple-1bg))
  83. (diff-refine-added (:inherit 'diff-added :background soothe-low-green))
  84. (diff-refine-changed (:inherit 'diff-changed :background soothe-low-purple))
  85. (diff-refine-removed (:inherit 'diff-removed :background soothe-low-red))
  86. (diff-removed (:foreground soothe-overexposed-red :background soothe-dark-red))
  87. (dired-directory (:foreground soothe-prime-turquoise :background soothe-bg-turquoise))
  88. (dired-flagged (:foreground soothe-prime-red :background soothe-orange-1bg))
  89. (dired-header (:inherit 'header-line))
  90. (dired-ignored (:foreground soothe-turquoise-1 :background soothe-background))
  91. (dired-mark (:foreground soothe-orange-2 :background soothe-background))
  92. (dired-marked (:foreground soothe-prime-orange :background soothe-orange-1bg))
  93. (dired-perm-write (:foreground soothe-prime-turquoise :background soothe-turquoise-1bg))
  94. (dired-symlink (:foreground soothe-prime-blue :background soothe-blue-4bg))
  95. (dired-warning (:foreground soothe-prime-red :background soothe-red-2bg))
  96. (diredfl-autofile-name (:foreground soothe-prime-blue :background soothe-dark-purple))
  97. (diredfl-compressed-file-name (:foreground soothe-prime-turquoise))
  98. (diredfl-compressed-file-suffix (:foreground soothe-turquoise-0))
  99. (diredfl-date-time (:foreground soothe-prime-orange :background soothe-dark-purple))
  100. (diredfl-deletion (:foreground soothe-prime-orange :background soothe-red-3))
  101. (diredfl-deletion-file-name (:foreground soothe-red-3 :background-color soothe-red-2bg))
  102. (diredfl-dir-heading (:inherit 'font-lock-builtin-face))
  103. (diredfl-dir-name (:inherit 'dired-directory))
  104. (diredfl-dir-priv (:foreground soothe-prime-orange :background soothe-bg-orange))
  105. (diredfl-exec-priv (:foreground soothe-prime-red :background soothe-bg-red))
  106. (diredfl-executable-tag (:foreground soothe-red-3))
  107. (diredfl-file-name (:foreground soothe-prime-purple :background soothe-dark-purple))
  108. (diredfl-file-suffix (:foreground soothe-faded-purple :background soothe-dark-purple))
  109. (diredfl-flag-mark (:foreground soothe-prime-orange :background soothe-bg-orange))
  110. (diredfl-flag-mark-line (:background soothe-low-red))
  111. (diredfl-flagged (:inherit 'dired-flagged))
  112. (diredfl-header (:inherit 'dired-header))
  113. (diredfl-ignored (:inherit 'dired-ignored))
  114. (diredfl-ignored-file-name (:foreground soothe-prime-orange))
  115. (diredfl-link-priv (:foreground soothe-prime-turquoise :background soothe-bg-turquoise))
  116. (diredfl-mark (:inherit 'dired-mark))
  117. (diredfl-marked (:inherit 'dired-marked))
  118. (diredfl-no-priv (:foreground soothe-faded-purple :background soothe-dark-purple))
  119. (diredfl-number (:foreground soothe-prime-orange :background soothe-orange-1bg))
  120. (diredfl-other-priv (:background soothe-blue-5bg))
  121. (diredfl-rare-priv (:foreground soothe-prime-green :background soothe-prime-red))
  122. (diredfl-read-priv (:foreground soothe-prime-purple :background soothe-bg-purple))
  123. (diredfl-symlink (:inherit 'dired-symlink))
  124. (diredfl-tagged-autofile-name (:background soothe-purple-3bg))
  125. (diredfl-warning (:inherit 'dired-warning))
  126. (diredfl-write-priv (:inherit 'dired-perm-write))
  127. (diredp-autofile-name (:inherit 'diredfl-autofile-name))
  128. (diredp-compressed-file-name (:inherit 'diredfl-compressed-file-name))
  129. (diredp-compressed-file-suffix (:inherit 'diredfl-compressed-file-suffix))
  130. (diredp-date-time (:inherit 'diredfl-date-time))
  131. (diredp-deletion (:inherit 'diredfl-deletion))
  132. (diredp-deletion-file-name (:inherit 'diredfl-deletion-file-name))
  133. (diredp-dir-heading (:inherit 'diredfl-dir-heading))
  134. (diredp-dir-name (:inherit 'diredfl-dir-name))
  135. (diredp-dir-priv (:inherit 'diredfl-dir-priv))
  136. (diredp-exec-priv (:inherit 'diredfl-exec-priv))
  137. (diredp-executable-tag (:inherit 'diredfl-executable-tag))
  138. (diredp-file-name (:inherit 'diredfl-file-name))
  139. (diredp-file-suffix (:inherit 'diredfl-file-suffix))
  140. (diredp-flag-mark (:inherit 'diredfl-flag-mark))
  141. (diredp-flag-mark-line (:inherit 'diredfl-flag-mark-line))
  142. (diredp-ignored-file-name (:inherit 'diredfl-ignored-file-name))
  143. (diredp-link-priv (:inherit 'diredfl-link-priv))
  144. (diredp-no-priv (:inherit 'diredfl-no-priv))
  145. (diredp-number (:inherit 'diredfl-number))
  146. (diredp-other-priv (:inherit 'diredfl-other-priv))
  147. (diredp-rare-priv (:inherit 'diredfl-rare-priv))
  148. (diredp-read-priv (:inherit 'diredfl-read-priv))
  149. (diredp-symlink (:inherit 'diredfl-symlink))
  150. (diredp-tagged-autofile-name (:inherit 'diredfl-tagged-autofile-name))
  151. (diredp-write-priv (:inherit 'diredfl-write-priv))
  152. (dropdown-list-face (:foreground soothe-background :background soothe-foreground-1))
  153. (dropdown-list-selection-face (:foreground soothe-foreground-1 :background soothe-purple-1bg))
  154. (ecb-default-general-face (:foreground soothe-foreground))
  155. (ecb-default-highlight-face (:foreground soothe-prime-purple :background soothe-purple-1bg))
  156. (ecb-method-face (:foreground soothe-prime-orange :background soothe-orange-1bg))
  157. (ecb-tag-header-face (:foreground soothe-prime-turquoise :background soothe-turquoise-1bg))
  158. (ediff-current-diff-A (:background soothe-bg-red))
  159. (ediff-current-diff-Ancestor (:background soothe-dark-blue))
  160. (ediff-current-diff-B (:background soothe-turquoise-1bg))
  161. (ediff-current-diff-C (:background soothe-bg-green))
  162. (ediff-even-diff-A (:background soothe-dark-red))
  163. (ediff-even-diff-Ancestor (:background soothe-dark-blue))
  164. (ediff-even-diff-B (:background soothe-turquoise-3))
  165. (ediff-even-diff-C (:background soothe-bg-green))
  166. (ediff-fine-diff-A (:background soothe-dark-red))
  167. (ediff-fine-diff-Ancestor (:background soothe-bg-blue))
  168. (ediff-fine-diff-B (:background soothe-turquoise-2bg))
  169. (ediff-fine-diff-C (:background soothe-dark-green))
  170. (ediff-odd-diff-A (:background soothe-red-2bg))
  171. (ediff-odd-diff-Ancestor (:background soothe-bg-blue))
  172. (ediff-odd-diff-B (:background soothe-turquoise-3))
  173. (ediff-odd-diff-C (:background soothe-green-1bg))
  174. (error (:foreground soothe-prime-red))
  175. (escape-glyph (:foreground soothe-prime-red :background soothe-purple-1bg))
  176. (flycheck-error (:underline (:style 'wave :color soothe-red-3)))
  177. (flycheck-warning (:underline (:style 'wave :color soothe-orange-2)))
  178. (flycheck-info (:underline (:style 'wave :color soothe-rainbow-delimiters-0)))
  179. (flycheck-fringe-error (:inherit 'error))
  180. (flycheck-fringe-warning (:inherit 'warning))
  181. (flycheck-fringe-info (:inherit 'success))
  182. (flycheck-error-list-error (:inherit 'error))
  183. (flycheck-error-list-warning (:inherit 'warning))
  184. (flycheck-error-list-info (:inherit 'success))
  185. (flycheck-error-list-filename (:inherit 'mode-line-buffer-id :weight 'normal))
  186. (flycheck-error-list-id (:inherit 'font-lock-type-face))
  187. (flycheck-error-list-id-with-explainer (:inherit 'flycheck-error-list-id :box (:style 'released-button)))
  188. (flycheck-error-list-checker-name (:inherit 'error))
  189. (flycheck-error-list-highlight (:weight 'bold))
  190. (flycheck-verify-select-checker (:box (:style 'released-button)))
  191. (flymake-errline (:underline soothe-red-2 :background nil :inherit nil))
  192. (flymake-warnline (:underline soothe-green-2 :background nil :inherit nil))
  193. (flyspell-duplicate (:underline soothe-green-2))
  194. (flyspell-incorrect (:underline soothe-red-2))
  195. (font-lock-builtin-face (:foreground soothe-red-2 :background soothe-red-1bg))
  196. (font-lock-comment-delimiter-face (:foreground soothe-turquoise-1 :background soothe-alt-background :italic t))
  197. (font-lock-comment-face (:foreground soothe-prime-purple :background soothe-alt-background :italic t))
  198. (font-lock-constant-face (:foreground soothe-prime-purple :background soothe-purple-1bg))
  199. (font-lock-doc-face (:foreground soothe-prime-turquoise :background soothe-gray-1bg))
  200. (font-lock-function-name-face (:foreground soothe-prime-red :background soothe-red-1bg))
  201. (font-lock-keyword-face (:foreground soothe-prime-orange :background soothe-orange-1bg))
  202. (font-lock-negation-char-face (:foreground soothe-prime-yellow :background soothe-yellow-1bg))
  203. (font-lock-preprocessor-face (:foreground soothe-prime-orange :background soothe-orange-1bg))
  204. (font-lock-string-face (:foreground soothe-prime-turquoise :background soothe-turquoise-2bg))
  205. (font-lock-type-face (:foreground soothe-red-2 :background soothe-red-1bg :bold nil))
  206. (font-lock-variable-name-face (:foreground soothe-prime-blue :background soothe-blue-1bg))
  207. (font-lock-warning-face (:foreground soothe-red-2 :background soothe-red-2bg))
  208. (fringe (:foreground soothe-turquoise-2 :background soothe-gray-3bg))
  209. (git-gutter:added (:foreground soothe-prime-green :background soothe-green-2bg))
  210. (git-gutter:deleted (:foreground soothe-prime-red :background soothe-red-1bg))
  211. (git-gutter:modified (:foreground soothe-prime-purple :background soothe-purple-1bg))
  212. (git-gutter:unchanged (:background soothe-yellow-1bg))
  213. (header-line (:foreground soothe-prime-orange :background soothe-background))
  214. (helm-action (:underline t))
  215. (helm-candidate-number (:foreground soothe-orange-2))
  216. (helm-candidate-number-suspended (:foreground soothe-turquoise-0))
  217. (helm-eob-line (:inherit 'default))
  218. (helm-grep-cmd-line (:inherit 'font-lock-type-face))
  219. (helm-grep-file (:foreground soothe-prime-purple :underline t))
  220. (helm-grep-finish (:inherit 'success))
  221. (helm-grep-lineno (:foreground soothe-orange-2))
  222. (helm-grep-match (:inherit 'match))
  223. (helm-header (:inherit 'header-line))
  224. (helm-header-line-left-margin (:foreground soothe-background-dark-0 :background soothe-orange-2))
  225. (helm-helper (:inherit 'helm-header))
  226. (helm-mark-prefix (:inherit 'default))
  227. (helm-match (:inherit 'match))
  228. (helm-match-item (:inherit 'isearch))
  229. (helm-minibuffer-prompt (:inherit 'minibuffer-prompt))
  230. (helm-prefarg (:foreground soothe-turquoise-0))
  231. (helm-selection (:inherit 'region))
  232. (helm-selection-line (:inherit 'highlight))
  233. (helm-separator (:inherit 'ivy-separator))
  234. (helm-source-header (:inherit 'variable-pitch :foreground soothe-foreground :background soothe-turquoise-2bg :height 1.1))
  235. (helm-swoop-line-number-face (:foreground soothe-prime-purple))
  236. (helm-swoop-target-line-block-face (:foreground soothe-foreground-2 :background soothe-turquoise-1))
  237. (helm-swoop-target-line-face (:foreground soothe-foreground-3 :background soothe-bg-blue))
  238. (helm-swoop-target-word-face (:foreground soothe-overexposed-purple :background soothe-low-purple))
  239. (helm-visible-mark (:foreground soothe-foreground-3 :background soothe-low-purple))
  240. (highlight (:background soothe-blue-5bg))
  241. (highlight-indentation-current-column-face (:background soothe-gray-5))
  242. (highlight-indentation-face (:background soothe-background-dark))
  243. (hl-line (:background soothe-bg-turquoise))
  244. (hl-sexp-face (:background soothe-turquoise-2bg))
  245. (ido-first-match (:foreground soothe-prime-orange :background soothe-orange-1bg))
  246. (ido-incomplete-regexp (:foreground soothe-prime-red :background soothe-orange-1bg))
  247. (ido-indicator (:foreground soothe-turquoise-1 :background soothe-turquoise-1bg))
  248. (ido-only-match (:foreground soothe-prime-green :background soothe-green-1bg))
  249. (ido-subdir (:foreground soothe-prime-purple :background soothe-purple-1bg))
  250. (ido-virtual (:foreground soothe-green-3 :background soothe-turquoise-1bg))
  251. (iedit-occurrence (:inherit 'match :foreground soothe-prime-purple))
  252. (iedit-read-only-occurrence (:inherit 'match :foreground soothe-prime-red))
  253. (isearch (:foreground soothe-orange-2 :background soothe-turquoise-3))
  254. (isearch-fail (:foreground soothe-foreground-0 :background soothe-red-3))
  255. (isearch-group-1 (:foreground soothe-prime-purple :background soothe-low-blue))
  256. (isearch-group-2 (:foreground soothe-prime-purple :background soothe-low-purple))
  257. (ivy-action (:inherit 'font-lock-builtin-face))
  258. (ivy-completions-annotations (:inherit 'completions-annotations))
  259. (ivy-confirm-face (:inherit 'minibuffer-prompt :foreground soothe-rainbow-delimiters-0))
  260. (ivy-current-match (:inherit 'match))
  261. (ivy-cursor (:foreground soothe-foreground-1 :background soothe-bg-turquoise))
  262. (ivy-grep-info (:inherit 'compilation-info))
  263. (ivy-grep-line-number (:inherit 'compilation-line-number))
  264. (ivy-highlight-face (:inherit 'highlight))
  265. (ivy-match-required-face (:inherit 'minibuffer-prompt :foreground soothe-red-3))
  266. (ivy-minibuffer-match-face-1 (:inherit 'match))
  267. (ivy-minibuffer-match-face-2 (:inherit 'highlight))
  268. (ivy-minibuffer-match-face-3 (:inherit 'secondary-selection))
  269. (ivy-minibuffer-match-face-4 (:inherit 'region))
  270. (ivy-minibuffer-match-highlight (:inherit 'highlight))
  271. (ivy-modified-buffer (:inherit 'default))
  272. (ivy-modified-outside-buffer (:inherit 'default))
  273. (ivy-org (:inherit 'org-level-4))
  274. (ivy-prompt-match (:inherit 'ivy-current-match))
  275. (ivy-remote (:inherit 'font-lock-builtin-face))
  276. (ivy-separator (:inherit 'font-lock-doc-face))
  277. (ivy-subdir (:inherit 'dired-directory))
  278. (ivy-virtual (:inherit 'font-lock-builtin-face))
  279. (ivy-yanked-word (:inherit 'highlight))
  280. (js3-error-face (:background soothe-red-1bg :underline (:color soothe-prime-red :style 'wave)))
  281. (js3-external-variable-face (:foreground soothe-prime-purple :background soothe-purple-1bg))
  282. (js3-function-param-face (:foreground soothe-prime-turquoise :background soothe-blue-3bg))
  283. (js3-instance-member-face (:foreground soothe-foreground-2 :background soothe-purple-1bg))
  284. (js3-jsdoc-html-tag-delimiter-face (:foreground soothe-blue-4 :background soothe-blue-2bg))
  285. (js3-jsdoc-html-tag-name-face (:foreground soothe-foreground-1 :background soothe-blue-3bg))
  286. (js3-jsdoc-tag-face (:foreground soothe-green-3 :background soothe-green-2bg))
  287. (js3-jsdoc-type-face (:foreground soothe-green-2 :background soothe-green-2bg))
  288. (js3-jsdoc-value-face (:foreground soothe-prime-green :background soothe-green-1bg))
  289. (js3-magic-paren-face (:foreground soothe-foreground-0 :background soothe-purple-1bg))
  290. (js3-private-function-call-face (:foreground soothe-prime-orange :background soothe-orange-1bg))
  291. (js3-private-member-face (:foreground soothe-orange-2 :background soothe-orange-1bg))
  292. (js3-warning-face (:background soothe-yellow-1bg :underline (:color soothe-prime-yellow :style 'wave)))
  293. (lazy-highlight (:foreground soothe-prime-purple :background soothe-bg-purple))
  294. (link (:foreground soothe-prime-blue :background soothe-blue-1bg))
  295. (link-visited (:foreground soothe-prime-turquoise :background soothe-blue-4bg))
  296. (linum (:foreground soothe-gray-6 :background soothe-alt-background))
  297. (magit-branch (:foreground soothe-prime-orange :background soothe-orange-2bg))
  298. (magit-branch-current (:foreground soothe-prime-purple :background soothe-purple-1bg :box (:line-width -1 :color soothe-low-purple)))
  299. (magit-branch-local (:foreground soothe-prime-purple :background soothe-purple-1bg))
  300. (magit-branch-remote (:foreground soothe-prime-orange :background soothe-orange-2bg))
  301. (magit-diff-added (:foreground soothe-foreground-1 :background soothe-bg-green))
  302. (magit-diff-added-highlight (:foreground soothe-foreground-1 :background soothe-dark-green))
  303. (magit-diff-base (:foreground soothe-foreground :background soothe-rainbow-delimiters-0))
  304. (magit-diff-base-highlight (:foreground soothe-foreground-0 :background soothe-rainbow-delimiters-0))
  305. (magit-diff-conflict-heading (:inherit 'magit-diff-hunk-heading))
  306. (magit-diff-context (:background soothe-background))
  307. (magit-diff-context-highlight (:background soothe-alt-background))
  308. (magit-diff-file-heading (:weight 'bold))
  309. (magit-diff-file-heading-highlight (:inherit 'magit-section-highlight))
  310. (magit-diff-file-heading-selection (:inherit 'magit-diff-file-heading-highlight :foreground soothe-prime-yellow))
  311. (magit-diff-hunk-heading (:foreground soothe-foreground :background soothe-low-purple))
  312. (magit-diff-hunk-heading-highlight (:foreground soothe-foreground :background soothe-low-purple))
  313. (magit-diff-hunk-heading-selection (:foreground soothe-prime-yellow :inherit 'magit-diff-hunk-heading-highlight))
  314. (magit-diff-hunk-region (:inherit 'bold))
  315. (magit-diff-lines-boundary (:inherit 'magit-diff-lines-heading))
  316. (magit-diff-lines-heading (:inherit 'magit-diff-hunk-heading-highlight :foreground soothe-foreground-3 :background soothe-red-2))
  317. (magit-diff-merge-current (:foreground soothe-prime-blue))
  318. (magit-diff-merge-proposed (:foreground soothe-foreground-1))
  319. (magit-diff-merge-separator (:foreground soothe-blue-2))
  320. (magit-diff-our (:inherit 'magit-diff-removed))
  321. (magit-diff-our-highlight (:inherit 'magit-diff-removed-highlight))
  322. (magit-diff-removed (:foreground soothe-foreground-1 :background soothe-bg-red))
  323. (magit-diff-removed-highlight (:foreground soothe-foreground-1 :background soothe-dark-red))
  324. (magit-diff-revision-summary (:inherit 'magit-diff-hunk-heading))
  325. (magit-diff-revision-summary-highlight (:inherit 'magit-diff-hunk-heading-highlight))
  326. (magit-diff-their (:inherit 'magit-diff-added))
  327. (magit-diff-their-highlight (:inherit 'magit-diff-added-highlight))
  328. (magit-diff-whitespace-warning (:inherit 'trailing-whitespace))
  329. (magit-diffstat-added (:foreground soothe-overexposed-green))
  330. (magit-diffstat-removed (:foreground soothe-overexposed-red))
  331. (magit-hash (:foreground soothe-prime-purple :background soothe-purple-1bg))
  332. (magit-header (:foreground soothe-prime-orange :background soothe-orange-1bg))
  333. (magit-item-highlight (:background soothe-purple-3bg))
  334. (magit-item-mark (:foreground soothe-prime-green))
  335. (magit-log-author (:foreground soothe-prime-purple :background soothe-purple-1bg))
  336. (magit-log-author (:foreground soothe-prime-purple :background soothe-purple-1bg))
  337. (magit-log-date (:foreground soothe-blue-4 :background soothe-background))
  338. (magit-log-graph (:foreground soothe-blue-2 :background soothe-blue-2bg))
  339. (magit-log-head-label-bisect-bad (:foreground soothe-prime-red :background soothe-red-1bg))
  340. (magit-log-head-label-bisect-good (:foreground soothe-turquoise-1 :background soothe-turquoise-1bg))
  341. (magit-log-head-label-default (:foreground soothe-foreground-1 :background soothe-turquoise-1bg))
  342. (magit-log-head-label-local (:foreground soothe-foreground-1 :background soothe-turquoise-1bg))
  343. (magit-log-head-label-patches (:foreground soothe-blue-2 :background soothe-blue-1bg))
  344. (magit-log-head-label-remote (:foreground soothe-foreground-1 :background soothe-purple-2bg))
  345. (magit-log-head-label-tags (:foreground soothe-prime-orange :background soothe-orange-1bg))
  346. (magit-log-message (:foreground soothe-foreground-2 :background soothe-background))
  347. (magit-log-sha1 (:foreground soothe-turquoise-1 :background soothe-turquoise-1bg))
  348. (magit-reflog-rebase (:foreground soothe-prime-turquoise :background soothe-turquoise-1bg))
  349. (magit-reflog-other (:foreground soothe-prime-turquoise :background soothe-turquoise-1bg))
  350. (magit-reflog-remote (:foreground soothe-prime-turquoise :background soothe-turquoise-1bg))
  351. (magit-section-heading (:foreground soothe-prime-orange :background soothe-purple-1bg))
  352. (magit-section-highlight (:foreground soothe-prime-purple :background soothe-purple-1bg))
  353. (magit-section-highlight-selection (:foreground soothe-prime-purple :background soothe-purple-1bg))
  354. (magit-section-title (:foreground soothe-prime-purple :background soothe-purple-1bg))
  355. (magit-tag (:foreground soothe-prime-orange :background soothe-orange-1bg))
  356. (magit-whitespace-warning-face (:foreground soothe-red-3 :background soothe-red-1bg))
  357. (markdown-header-face-1 (:inherit 'variable-pitch :foreground soothe-overexposed-purple :height 1.9))
  358. (markdown-header-face-2 (:inherit 'variable-pitch :foreground soothe-overexposed-blue :height 1.8))
  359. (markdown-header-face-3 (:inherit 'variable-pitch :foreground soothe-overexposed-green :height 1.6))
  360. (markdown-header-face-4 (:inherit 'variable-pitch :foreground soothe-overexposed-orange :height 1.5))
  361. (markdown-header-face-5 (:inherit 'variable-pitch :foreground soothe-overexposed-purple :height 1.4))
  362. (markdown-header-face-6 (:inherit 'variable-pitch :foreground soothe-overexposed-blue :height 1.3))
  363. (match (:foreground soothe-prime-turquoise :background soothe-dark-purple))
  364. (minibuffer-prompt (:foreground soothe-prime-orange :background soothe-orange-1bg))
  365. (mode-line (:foreground soothe-prime-turquoise :background soothe-bg-turquoise :height 1.0))
  366. (mode-line-inactive (:foreground soothe-faded-purple :background soothe-dark-purple :inherit 'mode-line :height 1.0))
  367. (mode-line-highlight (:foreground soothe-prime-red))
  368. (mode-line-buffer-id (:foreground soothe-prime-orange))
  369. (mode-line-emphasis (:bold))
  370. (lambda-line-active (:inherit 'mode-line))
  371. (lambda-line-inactive (:inherit 'mode-line-inactive))
  372. (lambda-line-hspace-active (:inherit 'mode-line))
  373. (lambda-line-hspace-inactive (:inherit 'mode-line-inactive))
  374. (lambda-line-active-name (:inherit 'mode-line))
  375. (lambda-line-inactive-name (:inherit 'mode-line-inactive))
  376. (lambda-line-active-primary (:inherit 'mode-line))
  377. (lambda-line-inactive-primary (:inherit 'mode-line-inactive))
  378. (lambda-line-active-secondary (:inherit 'mode-line))
  379. (lambda-line-inactive-secondary (:inherit 'mode-line-inactive))
  380. (lambda-line-active-tertiary (:inherit 'mode-line))
  381. (lambda-line-inactive-tertiary (:inherit 'mode-line-inactive))
  382. (lambda-line-active-status-RO (:inherit 'mode-line))
  383. (lambda-line-inactive-status-RO (:inherit 'mode-line-inactive))
  384. (lambda-line-active-status-RW (:inherit 'mode-line :foreground soothe-prime-turquoise))
  385. (lambda-line-inactive-status-RW (:inherit 'mode-line-inactive :foreground soothe-faded-purple))
  386. (lambda-line-active-status-MD (:inherit 'mode-line :foreground soothe-prime-turquoise))
  387. (lambda-line-inactive-status-MD (:inherit 'mode-line-inactive :foreground soothe-turquoise-2))
  388. (lambda-line-visual-bell (:background soothe-turquoise-2))
  389. (orderless-match-face-0 (:inherit 'match :foreground soothe-prime-turquoise))
  390. (orderless-match-face-1 (:inherit 'highlight :foreground soothe-prime-purple))
  391. (orderless-match-face-2 (:inherit 'lazy-highlight :foreground soothe-prime-orange))
  392. (orderless-match-face-3 (:inherit 'secondary-selection :foreground soothe-prime-blue))
  393. (org-date (:foreground soothe-prime-purple :background soothe-purple-1bg))
  394. (org-done (:foreground soothe-prime-green :background soothe-green-1bg))
  395. (org-hide (:foreground soothe-gray-3 :background soothe-gray-1bg))
  396. (org-link (:foreground soothe-prime-blue :background soothe-blue-1bg))
  397. (org-todo (:foreground soothe-prime-red :background soothe-red-1bg))
  398. (popup-tip-face (:foreground soothe-foreground-2 :background soothe-background-2))
  399. (popup-isearch-match (:background soothe-bg-turquoise :inherit 'default))
  400. (rainbow-delimiters-depth-1-face (:foreground soothe-rainbow-delimiters-0))
  401. (rainbow-delimiters-depth-2-face (:foreground soothe-rainbow-delimiters-1))
  402. (rainbow-delimiters-depth-3-face (:foreground soothe-rainbow-delimiters-2))
  403. (rainbow-delimiters-depth-4-face (:foreground soothe-rainbow-delimiters-3))
  404. (rainbow-delimiters-depth-5-face (:foreground soothe-rainbow-delimiters-4))
  405. (rainbow-delimiters-depth-6-face (:foreground soothe-rainbow-delimiters-5))
  406. (rainbow-delimiters-depth-7-face (:foreground soothe-rainbow-delimiters-6))
  407. (rainbow-delimiters-depth-8-face (:foreground soothe-rainbow-delimiters-7))
  408. (rainbow-delimiters-depth-9-face (:foreground soothe-rainbow-delimiters-8))
  409. (rainbow-delimiters-unmatched-face (:foreground soothe-rainbow-delimiters-9))
  410. (reb-regexp-grouping-backslash (:foreground soothe-prime-turquoise))
  411. (reb-regexp-grouping-construct (:foreground soothe-prime-orange))
  412. (reb-match-0 (:foreground soothe-prime-turquoise :background soothe-turquoise-2bg))
  413. (reb-match-1 (:foreground soothe-faded-purple :background soothe-turquoise-2bg))
  414. (reb-match-2 (:foreground soothe-prime-turquoise :background soothe-bg-purple))
  415. (reb-match-3 (:foreground soothe-prime-orange :background soothe-bg-purple))
  416. (region (:background soothe-blue-5bg))
  417. (secondary-selection (:background soothe-bg-turquoise))
  418. (show-paren-match (:foreground soothe-foreground-1 :background soothe-orange-1bg))
  419. (show-paren-mismatch (:foreground soothe-prime-orange :background soothe-red-2bg))
  420. (smerge-base (:inherit 'diff-context))
  421. (smerge-lower (:background soothe-turquoise-1bg))
  422. (smerge-markers (:foreground soothe-prime-purple :background soothe-purple-1bg))
  423. (smerge-refined-added (:inherit 'diff-added))
  424. (smerge-refined-changed (:inherit 'diff-changed))
  425. (smerge-refined-removed (:inherit 'diff-removed))
  426. (smerge-upper (:background soothe-blue-1bg))
  427. (success (:foreground soothe-prime-turquoise))
  428. (swiper-background-match-face-1 (:inherit 'swiper-match-face-1))
  429. (swiper-background-match-face-2 (:inherit 'swiper-match-face-2))
  430. (swiper-background-match-face-3 (:inherit 'swiper-match-face-3))
  431. (swiper-background-match-face-4 (:inherit 'swiper-match-face-4))
  432. (swiper-line-face (:inherit 'match))
  433. (swiper-match-face-1 (:inherit 'lazy-highlight))
  434. (swiper-match-face-2 (:inherit 'isearch))
  435. (swiper-match-face-3 (:inherit 'match))
  436. (swiper-match-face-4 (:inherit 'isearch-fail))
  437. (tooltip (:foreground soothe-background-2 :background soothe-foreground-2))
  438. (vertical-border (:foreground soothe-gray-4 :background soothe-background))
  439. (vertico-posframe (:background soothe-background-dark))
  440. (vertico-posframe-border (:background soothe-background-dark-0))
  441. (vertico-posframe-border-2 (:background soothe-alt-background))
  442. (vertico-posframe-border-3 (:background soothe-background-2))
  443. (vertico-posframe-border-4 (:background soothe-background-3))
  444. (warning (:foreground soothe-orange-2 :weight 'bold))
  445. (web-mode-doctype-face (:foreground soothe-foreground-2 :weight 'bold))
  446. (web-mode-html-attr-equal-face (:inherit 'default))
  447. (web-mode-html-attr-name-face (:inherit 'font-lock-keyword-face))
  448. (web-mode-html-tag-bracket-face (:inherit 'default))
  449. (web-mode-html-tag-face (:inherit 'font-lock-builtin-face))
  450. (which-func (:foreground soothe-prime-blue))
  451. (which-key-command-description-face (:inherit 'font-lock-function-name-face))
  452. (which-key-group-description-face (:inherit 'font-lock-keyword-face))
  453. (which-key-highlighted-command-face (:inherit 'which-key-command-description-face :underline t))
  454. (which-key-key-face (:inherit 'font-lock-constant-face))
  455. (which-key-local-map-description-face (:inherit 'which-key-command-description-face))
  456. (which-key-note-face (:inherit 'which-key-separator-face))
  457. (which-key-separator-face (:inherit 'font-lock-comment-face))
  458. (which-key-special-key-face (:inherit 'which-key-key-face :weight 'bold :inverse-video t))
  459. (whitespace-empty (:foreground soothe-prime-yellow :background soothe-turquoise-2bg))
  460. (whitespace-hspace (:foreground soothe-turquoise-2 :background soothe-turquoise-2bg))
  461. (whitespace-indentation (:foreground soothe-turquoise-2 :background soothe-turquoise-2bg))
  462. (whitespace-line (:foreground soothe-prime-orange :background soothe-turquoise-2bg))
  463. (whitespace-newline (:foreground soothe-turquoise-2 :background soothe-turquoise-2bg))
  464. (whitespace-space (:foreground soothe-turquoise-2 :background soothe-turquoise-2bg))
  465. (whitespace-space-after-tab (:foreground soothe-turquoise-2 :background soothe-turquoise-2bg))
  466. (whitespace-tab (:foreground soothe-turquoise-2 :background soothe-turquoise-2bg))
  467. (whitespace-trailing (:foreground soothe-prime-red :background soothe-turquoise-2bg))
  468. (window-divider-first-pixel (:foreground soothe-background-dark-0))
  469. (window-divider-last-pixel (:foreground soothe-background-dark-0))
  470. (window-divider (:foreground soothe-background-dark-0)))
  471. ,@body))
  472. ;;;###autoload
  473. (and load-file-name
  474. (boundp 'custom-theme-load-path)
  475. (add-to-list 'custom-theme-load-path
  476. (file-name-as-directory
  477. (file-name-directory load-file-name))))
  478. ;; For dev.
  479. (defun soothe-tva--dev-reload (prefix)
  480. "Reload dev soothe-theme. non-nil PREFIX keep complilation window open."
  481. (interactive "P")
  482. (let* ((theme-file-name (or (let* ((f "soothe-theme.el")
  483. (i (- 0 (length f))))
  484. (--find
  485. (string= f (substring it i))
  486. (directory-files default-directory t)))
  487. (read-file-name "Locate sooth-theme.el: " nil nil t nil)))
  488. (tva-file-name (format "%ssoothe-tva.el" (file-name-directory theme-file-name))))
  489. (dolist (it (list 'soothe 'soothe-theme 'soothe-tva))
  490. (when (featurep it) (unload-feature it t)))
  491. (dolist (it (list tva-file-name theme-file-name))
  492. (byte-compile-file it)
  493. (load-file it)
  494. (load-file
  495. (replace-regexp-in-string
  496. "[.]el" ".elc" it)))
  497. (unless prefix
  498. (let ((compilation-buffer (get-buffer "*Compile-Log*")))
  499. (when compilation-buffer (kill-buffer compilation-buffer))))
  500. (disable-theme 'soothe)
  501. (enable-theme 'soothe)))
  502. ;;; Formatting:
  503. ;;
  504. ;; The first two attribute pairs in the spec list should be column aligned for
  505. ;; visibility. Subsequent specs should be single spaced to keep them over to the left side. e.g.
  506. ;;
  507. ;; (:foreground soothe-prime-red :background soothe-background-3)
  508. ;; (:foreground soothe-turquoise-2 :background soothe-background-0 :box ( ... ) :underline t)
  509. ;; (:foreground soothe-foreground-2 :background soothe-background-3 :underline soothe-prime-red)
  510. ;; (:inhert 'default :foreground soothe-foreground-1 :background soothe-background-3)
  511. ;;
  512. ;; Inherit should always appear first.
  513. (provide 'soothe-tva)
  514. ;;; soothe-tva.el ends here