diff --git a/.emacs.d/themes/dracula-theme.el b/.emacs.d/themes/dracula-theme.el new file mode 100755 index 0000000..b580e8b --- /dev/null +++ b/.emacs.d/themes/dracula-theme.el @@ -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