Adding emacs dracula color theme.

This commit is contained in:
Derek Taylor 2019-10-09 11:07:37 -05:00
parent 49a0bf0807
commit c0fb072a8b
1 changed files with 449 additions and 0 deletions

449
.emacs.d/themes/dracula-theme.el Executable file
View File

@ -0,0 +1,449 @@
;;; dracula-theme.el --- Dracula Theme
;; Copyright 2015-present, All rights reserved
;;
;; Code licensed under the MIT license
;; Author: film42
;; Version: 1.5.1
;; Package-Requires: ((emacs "24"))
;; URL: https://github.com/dracula/emacs
;;; Commentary:
;; A dark color theme available for a number of editors.
;;; Code:
(require 'cl-lib)
(deftheme dracula)
(let ((colors '((fg1 "#f8f8f2") ; Assigment form: VARIABLE COLOR [TTY-COLOR]
(fg2 "#e2e2dc")
(fg3 "#ccccc7")
(fg4 "#b6b6b2")
(bg1 "#282a36" "#000000")
(bg2 "#373844")
(bg3 "#464752")
(bg4 "#565761")
(bg5 "#44475a")
(bg6 "#b45bcf")
(key2 "#0189cc")
(key3 "#ff79c6")
(builtin "#ffb86c")
(keyword "#ff79c6")
(const "#8be9fd")
(comment "#6272a4")
(func "#50fa7b")
(str "#f1fa8c")
(type "#bd93f9")
(var "#f8f8f2")
(warning "#ffb86c")
(rainbow-1 "#f8f8f2")
(rainbow-2 "#8be9fd")
(rainbow-3 "#bd93f9")
(rainbow-4 "#ff79c6")
(rainbow-5 "#ffb86c")
(rainbow-6 "#50fa7b")
(rainbow-7 "#f1fa8c")
(rainbow-8 "#0189cc")
(rainbow-9 "#ff5555")
(rainbow-10 "#a0522d")
(eph-verbatim "#f1fa8c")
(eph-code "#ff79c6")))
(faces '(;; default
(cursor :background ,fg3)
(default :background ,bg1 :foreground ,fg1)
(default-italic :italic t)
(ffap :foreground ,fg4)
(fringe :background ,bg1 :foreground ,fg4)
(highlight :foreground ,fg3 :background ,bg3)
(hl-line :background ,bg5)
(info-quoted-name :foreground ,builtin)
(info-string :foreground ,str)
(lazy-highlight :foreground ,fg2 :background ,bg3)
(link :foreground ,const :underline t)
(linum :slant italic :foreground ,bg4 :background ,bg1)
(minibuffer-prompt :bold t :foreground ,keyword)
(region :background ,str :foreground ,bg1)
(show-paren-match-face :background ,warning)
(trailing-whitespace :foreground nil :background ,warning)
(vertical-border :foreground ,bg2)
(warning :foreground ,warning)
(whitespace-trailing :inherit trailing-whitespace)
(header-line :background ,bg1)
;; syntax
(font-lock-builtin-face :foreground ,builtin)
(font-lock-comment-face :foreground ,comment)
(font-lock-constant-face :foreground ,const)
(font-lock-doc-face :foreground ,comment)
(font-lock-function-name-face :foreground ,func :bold t)
(font-lock-keyword-face :bold t :foreground ,keyword)
(font-lock-negation-char-face :foreground ,const)
(font-lock-reference-face :foreground ,const)
(font-lock-string-face :foreground ,str)
(font-lock-type-face :foreground ,type )
(font-lock-variable-name-face :foreground ,var)
(font-lock-warning-face :foreground ,warning :background ,bg2)
;; auto-complete
(ac-completion-face :underline t :foreground ,keyword)
;; company
(company-echo-common :foreground ,bg1 :background ,fg1)
(company-preview :background ,bg1 :foreground ,key2)
(company-preview-common :foreground ,bg2 :foreground ,fg3)
(company-preview-search :foreground ,type :background ,bg1)
(company-scrollbar-bg :background ,bg3)
(company-scrollbar-fg :foreground ,keyword)
(company-template-field :inherit region)
(company-tooltip :foreground ,fg2 :background ,bg1 :bold t)
(company-tooltip-annotation :foreground ,const)
(company-tooltip-common :foreground ,fg3)
(company-tooltip-common-selection :foreground ,str)
(company-tooltip-mouse :inherit highlight)
(company-tooltip-selection :background ,bg3 :foreground ,fg3)
;; diff-hl
(diff-hl-change :foreground ,rainbow-5 :background ,rainbow-5)
(diff-hl-delete :foreground ,rainbow-9 :background ,rainbow-9)
(diff-hl-insert :foreground ,rainbow-6 :background ,rainbow-6)
;; enh-ruby
(enh-ruby-heredoc-delimiter-face :foreground ,str)
(enh-ruby-op-face :foreground ,keyword)
(enh-ruby-regexp-delimiter-face :foreground ,str)
(enh-ruby-string-delimiter-face :foreground ,str)
;; font-latex
(font-latex-bold-face :foreground ,type)
(font-latex-italic-face :foreground ,key3 :italic t)
(font-latex-match-reference-keywords :foreground ,const)
(font-latex-match-variable-keywords :foreground ,var)
(font-latex-string-face :foreground ,str)
;; gnus-group
(gnus-group-mail-1 :foreground ,keyword :bold t)
(gnus-group-mail-1-empty :inherit gnus-group-mail-1 :bold nil)
(gnus-group-mail-2 :foreground ,const :bold t)
(gnus-group-mail-2-empty :inherit gnus-group-mail-2 :bold nil)
(gnus-group-mail-3 :foreground ,comment :bold t)
(gnus-group-mail-3-empty :inherit gnus-group-mail-3 :bold nil)
(gnus-group-mail-low :foreground ,bg5 :bold t)
(gnus-group-mail-low-empty :inherit gnus-group-mail-low :bold nil)
(gnus-group-news-1 :foreground ,keyword :bold t)
(gnus-group-news-1-empty :inherit gnus-group-news-1 :bold nil)
(gnus-group-news-2 :foreground ,const :bold t)
(gnus-group-news-2-empty :inherit gnus-group-news-2 :bold nil)
(gnus-group-news-3 :foreground ,comment :bold t)
(gnus-group-news-3-empty :inherit gnus-group-news-3 :bold nil)
(gnus-group-news-4 :inherit gnus-group-news-low)
(gnus-group-news-4-empty :inherit gnus-group-news-low-empty)
(gnus-group-news-5 :inherit gnus-group-news-low)
(gnus-group-news-5-empty :inherit gnus-group-news-low-empty)
(gnus-group-news-6 :inherit gnus-group-news-low)
(gnus-group-news-6-empty :inherit gnus-group-news-low-empty)
(gnus-group-news-low :foreground ,bg5 :bold t)
(gnus-group-news-low-empty :inherit gnus-group-news-low :bold nil)
(gnus-header-content :foreground ,keyword)
(gnus-header-from :foreground ,var)
(gnus-header-name :foreground ,type)
(gnus-header-subject :foreground ,func :bold t)
(gnus-summary-markup-face :foreground ,const)
(gnus-summary-normal-ancient :inherit gnus-summary-normal-read)
(gnus-summary-normal-read :foreground ,bg5 :weight normal)
(gnus-summary-normal-ticked :foreground ,keyword :weight light)
(gnus-summary-normal-unread :foreground ,comment :weight normal)
(gnus-summary-selected :inverse-video t)
;; helm
(helm-bookmark-w3m :foreground ,type)
(helm-buffer-not-saved :foreground ,type :background ,bg1)
(helm-buffer-process :foreground ,builtin :background ,bg1)
(helm-buffer-saved-out :foreground ,fg1 :background ,bg1)
(helm-buffer-size :foreground ,fg1 :background ,bg1)
(helm-candidate-number :foreground ,bg1 :background ,fg1)
(helm-ff-directory :foreground ,func :background ,bg1 :weight bold)
(helm-ff-executable :foreground ,key2 :background ,bg1 :weight normal)
(helm-ff-file :foreground ,fg1 :background ,bg1 :weight normal)
(helm-ff-invalid-symlink :foreground ,key3 :background ,bg1 :weight bold)
(helm-ff-prefix :foreground ,bg1 :background ,keyword :weight normal)
(helm-ff-symlink :foreground ,keyword :background ,bg1 :weight bold)
(helm-grep-cmd-line :foreground ,fg1 :background ,bg1)
(helm-grep-file :foreground ,fg1 :background ,bg1)
(helm-grep-finish :foreground ,fg2 :background ,bg1)
(helm-grep-lineno :foreground ,fg1 :background ,bg1)
(helm-grep-match :foreground nil :background nil :inherit helm-match)
(helm-grep-running :foreground ,func :background ,bg1)
(helm-header :foreground ,fg2 :background ,bg1 :underline nil :box nil)
(helm-moccur-buffer :foreground ,func :background ,bg1)
(helm-selection :background ,bg2 :underline nil)
(helm-selection-line :background ,bg2)
(helm-separator :foreground ,type :background ,bg1)
(helm-source-go-package-godoc-description :foreground ,str)
(helm-source-header :foreground ,keyword :background ,bg1 :underline nil :weight bold)
(helm-time-zone-current :foreground ,builtin :background ,bg1)
(helm-time-zone-home :foreground ,type :background ,bg1)
(helm-visible-mark :foreground ,bg1 :background ,bg3)
;; highlight-indentation minor mode
(highlight-indentation-face :background ,bg2)
;; icomplete
(icompletep-determined :foreground ,builtin)
;; ido
(ido-first-match :foreground ,keyword :bold t)
(ido-only-match :foreground ,warning)
(ido-subdir :foreground ,builtin)
;; isearch
(isearch :bold t :foreground ,warning :background ,bg3)
(isearch-fail :foreground ,bg1 :background ,warning)
;; jde-java
(jde-java-font-lock-constant-face :foreground ,const)
(jde-java-font-lock-modifier-face :foreground ,key3)
(jde-java-font-lock-number-face :foreground ,var)
(jde-java-font-lock-package-face :foreground ,var)
(jde-java-font-lock-private-face :foreground ,keyword)
(jde-java-font-lock-public-face :foreground ,keyword)
;; js2-mode
(js2-external-variable :foreground ,type )
(js2-function-param :foreground ,const)
(js2-jsdoc-html-tag-delimiter :foreground ,str)
(js2-jsdoc-html-tag-name :foreground ,key2)
(js2-jsdoc-value :foreground ,str)
(js2-private-function-call :foreground ,const)
(js2-private-member :foreground ,fg3)
;; js3-mode
(js3-error-face :underline ,warning)
(js3-external-variable-face :foreground ,var)
(js3-function-param-face :foreground ,key3)
(js3-instance-member-face :foreground ,const)
(js3-jsdoc-tag-face :foreground ,keyword)
(js3-warning-face :underline ,keyword)
;; magit
(magit-branch :foreground ,const :weight bold)
(magit-diff-context-highlight :background ,bg3 :foreground ,fg3)
(magit-diff-file-header :foreground ,fg2 :background ,bg3)
(magit-diffstat-added :foreground ,type)
(magit-diffstat-removed :foreground ,var)
(magit-hash :foreground ,fg2)
(magit-hunk-heading :background ,bg3)
(magit-hunk-heading-highlight :background ,bg3)
(magit-item-highlight :background ,bg3)
(magit-log-author :foreground ,fg3)
(magit-process-ng :foreground ,warning :weight bold)
(magit-process-ok :foreground ,func :weight bold)
(magit-section-heading :foreground ,keyword :weight bold)
(magit-section-highlight :background ,bg2)
;; mode-line
(mode-line :foreground nil :background ,bg5 :box ,bg5)
(mode-line-inactive :foreground ,fg1 :background ,bg2 :box ,bg2)
;; mu4e
(mu4e-cited-1-face :foreground ,fg2)
(mu4e-cited-7-face :foreground ,fg3)
(mu4e-header-marks-face :foreground ,type)
(mu4e-view-url-number-face :foreground ,type)
;; org
(org-agenda-date :foreground ,rainbow-2 :underline nil)
(org-agenda-dimmed-todo-face :foreground ,comment)
(org-agenda-done :foreground ,rainbow-6)
(org-agenda-structure :foreground ,rainbow-3)
(org-block :foreground ,rainbow-5)
(org-code :foreground ,rainbow-7)
(org-column :background ,bg4)
(org-column-title :inherit org-column :weight bold :underline t)
(org-date :foreground ,rainbow-2 :underline t)
(org-document-info :foreground ,rainbow-8)
(org-document-info-keyword :foreground ,comment)
(org-document-title :weight bold :foreground ,rainbow-5 :height 1.44)
(org-done :foreground ,rainbow-6)
(org-ellipsis :foreground ,comment)
(org-footnote :foreground ,rainbow-8)
(org-formula :foreground ,rainbow-4)
(org-headline-done :foreground ,comment :bold nil :strike-through t)
(org-hide :foreground ,bg1 :background ,bg1)
(org-level-1 :inherit bold :foreground ,rainbow-4 :height 1.3)
(org-level-2 :inherit bold :foreground ,rainbow-3 :height 1.1)
(org-level-3 :bold nil :foreground ,rainbow-6 :height 1.0)
(org-level-4 :bold nil :foreground ,rainbow-7)
(org-level-5 :bold nil :foreground ,rainbow-2)
(org-level-6 :bold nil :foreground ,rainbow-5)
(org-level-7 :bold nil :foreground ,rainbow-8)
(org-level-8 :bold nil :foreground ,rainbow-1)
(org-link :foreground ,rainbow-2 :underline t)
(org-priority :foreground ,rainbow-2)
(org-scheduled :foreground ,rainbow-6)
(org-scheduled-previously :foreground ,rainbow-7)
(org-scheduled-today :foreground ,rainbow-6)
(org-sexp-date :foreground ,fg4)
(org-special-keyword :foreground ,rainbow-7)
(org-table :foreground ,rainbow-3)
(org-tag :foreground ,rainbow-4 :bold t :background ,bg2)
(org-todo :foreground ,rainbow-5 :bold t :background ,bg2)
(org-upcoming-deadline :foreground ,rainbow-7)
(org-warning :weight bold :foreground ,rainbow-4)
;; outline
(outline-1 :foreground ,rainbow-6)
(outline-2 :foreground ,rainbow-3)
(outline-3 :foreground ,rainbow-2)
(outline-4 :foreground ,rainbow-5)
(outline-5 :foreground ,rainbow-5)
(outline-6 :foreground ,rainbow-8)
;; powerline
(powerline-evil-base-face :foreground ,bg2)
(powerline-evil-emacs-face :inherit powerline-evil-base-face :background ,rainbow-7)
(powerline-evil-insert-face :inherit powerline-evil-base-face :background ,rainbow-2)
(powerline-evil-motion-face :inherit powerline-evil-base-face :background ,rainbow-3)
(powerline-evil-normal-face :inherit powerline-evil-base-face :background ,rainbow-6)
(powerline-evil-operator-face :inherit powerline-evil-base-face :background ,rainbow-4)
(powerline-evil-replace-face :inherit powerline-evil-base-face :background ,rainbow-9)
(powerline-evil-visual-face :inherit powerline-evil-base-face :background ,rainbow-5)
(powerline-active1 :background ,bg6 :foreground ,fg1)
(powerline-active2 :background ,bg6 :foreground ,fg1)
(powerline-inactive2 :background ,bg3 :foreground ,fg1)
(powerline-inactive2 :background ,bg3 :foreground ,fg1)
;; rainbow-delimiters
(rainbow-delimiters-depth-1-face :foreground ,rainbow-1)
(rainbow-delimiters-depth-2-face :foreground ,rainbow-2)
(rainbow-delimiters-depth-3-face :foreground ,rainbow-3)
(rainbow-delimiters-depth-4-face :foreground ,rainbow-4)
(rainbow-delimiters-depth-5-face :foreground ,rainbow-5)
(rainbow-delimiters-depth-6-face :foreground ,rainbow-6)
(rainbow-delimiters-depth-7-face :foreground ,rainbow-7)
(rainbow-delimiters-depth-8-face :foreground ,rainbow-8)
(rainbow-delimiters-unmatched-face :foreground ,warning)
;; rpm-spec
(rpm-spec-dir-face :foreground ,rainbow-6)
(rpm-spec-doc-face :foreground ,rainbow-4)
(rpm-spec-ghost-face :foreground ,rainbow-3)
(rpm-spec-macro-face :foreground ,rainbow-7)
(rpm-spec-obsolete-tag-face :inherit font-lock-warning-face)
(rpm-spec-package-face :foreground ,rainbow-3)
(rpm-spec-section-face :foreground ,rainbow-7)
(rpm-spec-tag-face :foreground ,rainbow-2)
(rpm-spec-var-face :foreground ,rainbow-10)
;; slime
(slime-repl-inputed-output-face :foreground ,type)
;; spam
(spam :inherit gnus-summary-normal-read :foreground ,warning :strike-through t :slant oblique)
;; term
(term :foreground ,fg1 :background ,bg1)
(term-color-black :foreground ,bg3 :background ,bg3)
(term-color-blue :foreground ,func :background ,func)
(term-color-cyan :foreground ,str :background ,str)
(term-color-green :foreground ,type :background ,bg3)
(term-color-magenta :foreground ,builtin :background ,builtin)
(term-color-red :foreground ,keyword :background ,bg3)
(term-color-white :foreground ,fg2 :background ,fg2)
(term-color-yellow :foreground ,var :background ,var)
;; undo-tree
(undo-tree-visualizer-current-face :foreground ,builtin)
(undo-tree-visualizer-default-face :foreground ,fg2)
(undo-tree-visualizer-register-face :foreground ,type)
(undo-tree-visualizer-unmodified-face :foreground ,var)
;; web-mode
(web-mode-builtin-face :inherit ,font-lock-builtin-face)
(web-mode-comment-face :inherit ,font-lock-comment-face)
(web-mode-constant-face :inherit ,font-lock-constant-face)
(web-mode-doctype-face :inherit ,font-lock-comment-face)
(web-mode-function-name-face :inherit ,font-lock-function-name-face)
(web-mode-html-attr-name-face :foreground ,type)
(web-mode-html-attr-value-face :foreground ,func)
(web-mode-html-tag-face :foreground ,keyword :bold t)
(web-mode-keyword-face :foreground ,keyword)
(web-mode-string-face :foreground ,str)
(web-mode-type-face :inherit ,font-lock-type-face)
(web-mode-warning-face :inherit ,font-lock-warning-face)
;; which-func
(which-func :inherit ,font-lock-function-name-face)
(dired-directory :foreground ,func :weight normal)
(dired-flagged :foreground ,keyword)
(dired-header :foreground ,fg3 :background ,bg1)
(dired-ignored :inherit shadow)
(dired-mark :foreground ,var :weight bold)
(dired-marked :foreground ,builtin :weight bold)
(dired-perm-write :foreground ,fg3 :underline t)
(dired-symlink :foreground ,str :weight normal :slant italic)
(dired-warning :foreground ,warning :underline t)
(diredp-compressed-file-name :foreground ,fg3)
(diredp-compressed-file-suffix :foreground ,fg4)
(diredp-date-time :foreground ,var)
(diredp-deletion-file-name :foreground ,keyword :background ,bg5)
(diredp-deletion :foreground ,keyword :weight bold)
(diredp-dir-heading :foreground ,fg2 :background ,bg4)
(diredp-dir-name :inherit dired-directory)
(diredp-dir-priv :inherit dired-directory)
(diredp-executable-tag :foreground ,builtin)
(diredp-file-name :foreground ,fg1)
(diredp-file-suffix :foreground ,fg4)
(diredp-flag-mark-line :foreground ,fg2 :slant italic :background ,bg5)
(diredp-flag-mark :foreground ,fg2 :weight bold :background ,bg5)
(diredp-ignored-file-name :foreground ,fg1)
(diredp-mode-line-flagged :foreground ,warning)
(diredp-mode-line-marked :foreground ,warning)
(diredp-no-priv :foreground ,fg1)
(diredp-number :foreground ,const)
(diredp-other-priv :foreground ,builtin)
(diredp-rare-priv :foreground ,builtin)
(diredp-read-priv :foreground ,type)
(diredp-write-priv :foreground ,keyword)
(diredp-exec-priv :foreground ,str)
(diredp-symlink :foreground ,warning)
(diredp-link-priv :foreground ,warning)
(diredp-autofile-name :foreground ,str)
(diredp-tagged-autofile-name :foreground ,str)
(icicle-whitespace-highlight :background ,var)
(icicle-special-candidate :foreground ,fg2)
(icicle-extra-candidate :foreground ,fg2)
(icicle-search-main-regexp-others :foreground ,var)
(icicle-search-current-input :foreground ,keyword)
(icicle-search-context-level-8 :foreground ,warning)
(icicle-search-context-level-7 :foreground ,warning)
(icicle-search-context-level-6 :foreground ,warning)
(icicle-search-context-level-5 :foreground ,warning)
(icicle-search-context-level-4 :foreground ,warning)
(icicle-search-context-level-3 :foreground ,warning)
(icicle-search-context-level-2 :foreground ,warning)
(icicle-search-context-level-1 :foreground ,warning)
(icicle-search-main-regexp-current :foreground ,fg1)
(icicle-saved-candidate :foreground ,fg1)
(icicle-proxy-candidate :foreground ,fg1)
(icicle-mustmatch-completion :foreground ,type)
(icicle-multi-command-completion :foreground ,fg2 :background ,bg2)
(icicle-msg-emphasis :foreground ,func)
(icicle-mode-line-help :foreground ,fg4)
(icicle-match-highlight-minibuffer :foreground ,builtin)
(icicle-match-highlight-Completions :foreground ,func)
(icicle-key-complete-menu-local :foreground ,fg1)
(icicle-key-complete-menu :foreground ,fg1)
(icicle-input-completion-fail-lax :foreground ,keyword)
(icicle-input-completion-fail :foreground ,keyword)
(icicle-historical-candidate-other :foreground ,fg1)
(icicle-historical-candidate :foreground ,fg1)
(icicle-current-candidate-highlight :foreground ,warning :background ,bg3)
(icicle-Completions-instruction-2 :foreground ,fg4)
(icicle-Completions-instruction-1 :foreground ,fg4)
(icicle-completion :foreground ,var)
(icicle-complete-input :foreground ,builtin)
(icicle-common-match-highlight-Completions :foreground ,type)
(icicle-candidate-part :foreground ,var)
(icicle-annotation :foreground ,fg4))))
(apply #'custom-theme-set-faces
'dracula
(let ((color-names (mapcar #'car colors))
(graphic-colors (mapcar #'cadr colors))
(tty-colors (mapcar #'car (mapcar #'last colors))))
(cl-flet* ((expand-for-tty (spec) (cl-progv color-names tty-colors
(eval `(backquote ,spec))))
(expand-for-graphic (spec) (cl-progv color-names graphic-colors
(eval `(backquote ,spec)))))
(cl-loop for (face . spec) in faces
collect `(,face
((((min-colors 16777216))
,(expand-for-graphic spec))
(t
,(expand-for-tty spec)))))))))
;;;###autoload
(when load-file-name
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
(provide-theme 'dracula)
;; Local Variables:
;; no-byte-compile: t
;; End:
;;; dracula-theme.el ends here