diff --git a/init.el b/init.el index f6d7c2a..6270884 100644 --- a/init.el +++ b/init.el @@ -52,8 +52,9 @@ ;; Theme -------------------------------------------------------------------- + (add-to-list 'load-path "~/.emacs.d/themes/") (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") - (load-theme 'havoc t) ;; Load personal theme + (load-theme 'havoc-dark t) ;; Load personal theme ;; -------------------------------------------------------------------------- ;; Change file in which custom variable changes are saved. diff --git a/modules/editing.el b/modules/editing.el index 749d3a5..86000e8 100644 --- a/modules/editing.el +++ b/modules/editing.el @@ -17,7 +17,8 @@ (setq init-packages/editing-packages - '(rainbow-delimiters + '(rainbow-mode + rainbow-delimiters highlight-parentheses whole-line-or-region) diff --git a/themes/havoc-common.el b/themes/havoc-common.el new file mode 100644 index 0000000..9b9f726 --- /dev/null +++ b/themes/havoc-common.el @@ -0,0 +1,287 @@ +;;; havoc-common.el --- definition of `Havoc' themes. + +;; Copyright (C) 2017 Wojciech Kozlowski + +;; Author: Wojciech Kozlowski +;; Keywords: faces +;; Compatibility: 24.1 +;; Version: 0.0.1 + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; havoc-dark - an adaptation of the underwater theme by Jon-Michael Deldin, a +;; gentle deep blue theme. + +;; havoc-light - an adaptation of the default Emacs theme. + +;;; Code: + +(defun create-havoc-theme (variant theme-name) ;; ** DARK ** ** LIGHT ** + (let ((*active-line-bg* (if (eq variant 'dark) "#003355" "#5BA0EB")) + (*bg-1* (if (eq variant 'dark) "#102235" "#FFFFFF")) + (*bg-2* (if (eq variant 'dark) "#233445" "#EBEBEB")) + (*bg-3* (if (eq variant 'dark) "#364555" "#D6D6D6")) + (*bg-4* (if (eq variant 'dark) "#495765" "#C2C2C2")) + (*comments* (if (eq variant 'dark) "#4E6F91" "#B22222")) + (*comments-bg* (if (eq variant 'dark) "#102235" "#FFFFFF")) + (*constant* (if (eq variant 'dark) "#A45BAD" "#5F9EA0")) + (*current-line* (if (eq variant 'dark) "#18374F" "#B4EEB4")) + (*cursor-block* (if (eq variant 'dark) "#6785C5" "#000000")) + (*cursor-underscore* (if (eq variant 'dark) "#FFFAAA" "#B22222")) + (*fg-standout* (if (eq variant 'dark) "#FFEC99" "#551A8B")) + (*fringe* (if (eq variant 'dark) "#0A1721" "#F2F2F2")) + (*keywords* (if (eq variant 'dark) "#8AC6F2" "#A020F0")) + (*light-purple* (if (eq variant 'dark) "#FFCCFF" "#FFCCFF")) + (*line-number* (if (eq variant 'dark) "#2F577C" "#B3B3B3")) + (*line-number-bg* (if (eq variant 'dark) "#0A1721" "#DFEFF6")) + (*mb-prompt* (if (eq variant 'dark) "#8AC6F2" "#0000FF")) + (*method-declaration* (if (eq variant 'dark) "#AF81F4" "#0000FF")) + (*mode-line-bg* (if (eq variant 'dark) "#0A1721" "#DFEFF6")) + (*mode-line-fg* (if (eq variant 'dark) "#8EAFD1" "#333333")) + (*normal* (if (eq variant 'dark) "#DFEFF6" "#000000")) + (*number* (if (eq variant 'dark) "#96DEFA" "#AF81F4")) + (*operators* (if (eq variant 'dark) "#3E71A1" "#DA70D6")) + (*regexp* (if (eq variant 'dark) "#EF7760" "#EF7760")) + (*regexp-alternate* (if (eq variant 'dark) "#FFFF00" "#FFFF00")) + (*regexp-alternate-2* (if (eq variant 'dark) "#B18A3D" "#B18A3D")) + (*search-fg* (if (eq variant 'dark) "#E2DAEF" "#333333")) + (*search-bg* (if (eq variant 'dark) "#AF81F4" "#AF81F4")) + (*string* (if (eq variant 'dark) "#89E14B" "#BC8F8F")) + (*success* (if (eq variant 'dark) "#86DC2F" "#40E0D0")) + (*ttip* (if (eq variant 'dark) "#E1E1E0" "#000000")) + (*ttip-sl* (if (eq variant 'dark) "#005577" "#AF81F4")) + (*ttip-bg* (if (eq variant 'dark) "#495765" "#E2DAEF")) + (*type* (if (eq variant 'dark) "#5BA0EB" "#228B22")) + (*variable* (if (eq variant 'dark) "#8AC6F2" "#B8860B")) + (*vertical-border* (if (eq variant 'dark) "#0A1721" "#C2C2C2")) + (*visual-selection* (if (eq variant 'dark) "#262D51" "#8AC6F2")) + (*warning* (if (eq variant 'dark) "#C62626" "#C62626")) + (*whitespace-fg* (if (eq variant 'dark) "#4E6F91" "#D3D3D3")) + + ;; Rainbow delimiters + (*rdd-1* (if (eq variant 'dark) "#8AC6F2" "#0000FF")) + (*rdd-2* (if (eq variant 'dark) "#AF81F4" "#A020F0")) + (*rdd-3* (if (eq variant 'dark) "#89E14B" "#00BB00")) + (*rdd-4* (if (eq variant 'dark) "#40E0D0" "#00BBBB")) + (*rdd-5* (if (eq variant 'dark) "#FFEC99" "#551A8B")) + (*rdd-6* (if (eq variant 'dark) "#8AC6F2" "#0000FF")) + (*rdd-7* (if (eq variant 'dark) "#AF81F4" "#A020F0")) + (*rdd-8* (if (eq variant 'dark) "#89E14B" "#00BB00")) + (*rdd-9* (if (eq variant 'dark) "#40E0D0" "#00BBBB")) + + ;; Diff colors + (*diff-added-bg* (if (eq variant 'dark) "#336622" "#DDFFDD")) + (*diff-added-fg* (if (eq variant 'dark) "#DDFFDD" "#22AA22")) + (*diff-added-hl-bg* (if (eq variant 'dark) "#337733" "#CCEECC")) + (*diff-added-hl-fg* (if (eq variant 'dark) "#CCEECC" "#22AA22")) + (*diff-base-bg* (if (eq variant 'dark) "#666622" "#FFFFCC")) + (*diff-base-fg* (if (eq variant 'dark) "#FFFFCC" "#AAAA11")) + (*diff-base-hl-bg* (if (eq variant 'dark) "#777722" "#EEEEBB")) + (*diff-base-hl-fg* (if (eq variant 'dark) "#EEEEBB" "#AAAA11")) + (*diff-rmvd-bg* (if (eq variant 'dark) "#663333" "#FFDDDD")) + (*diff-rmvd-fg* (if (eq variant 'dark) "#FFDDDD" "#AA2222")) + (*diff-rmvd-hl-bg* (if (eq variant 'dark) "#773333" "#EECCCC")) + (*diff-rmvd-hl-fg* (if (eq variant 'dark) "#EECCCC" "#AA2222")) + (*diffstat-added* (if (eq variant 'dark) "#89E14B" "#22AA22")) + (*diffstat-rmvd* (if (eq variant 'dark) "#C62626" "#AA2222")) + (*hash* (if (eq variant 'dark) "#8AC6F2" "#A020F0")) + (*diff-hdr-bg* (if (eq variant 'dark) "#495765" "#E2DAEF")) + (*diff-file-hdr-fg* (if (eq variant 'dark) "#DFEFF6" "#551A8B")) + (*diff-hunk-hdr-bg* (if (eq variant 'dark) "#364555" "#E2DAEF")) + (*diff-hunk-hdr-fg* (if (eq variant 'dark) "#E1E1E0" "#000000")) + + ;; Base colors + (*aqua* (if (eq variant 'dark) "#2D9574" "#2D9574")) + (*aqua-bg* (if (eq variant 'dark) "#293235" "#293235")) + (*green* (if (eq variant 'dark) "#00FF00" "#00FF00")) + (*green-bg* (if (eq variant 'dark) "#293235" "#293235")) + (*green-bg-s* (if (eq variant 'dark) "#29422D" "#29422D")) + (*cyan* (if (eq variant 'dark) "#00FFFF" "#00FFFF")) + (*red* (if (eq variant 'dark) "#FF0000" "#FF0000")) + (*red-bg* (if (eq variant 'dark) "#3C2A2C" "#3C2A2C")) + (*red-bg-s* (if (eq variant 'dark) "#512E31" "#512E31")) + (*blue* (if (eq variant 'dark) "#4F97D7" "#4F97D7")) + (*blue-bg* (if (eq variant 'dark) "#293239" "#293239")) + (*magenta* (if (eq variant 'dark) "#FF00FF" "#FF00FF")) + (*yellow* (if (eq variant 'dark) "#FFFF00" "#FFFF00")) + (*yellow-bg* (if (eq variant 'dark) "#32322C" "#32322C"))) + + (custom-theme-set-faces + theme-name + + `(bold ((t (:bold t)))) + `(button ((t (:foreground, *keywords* :underline t)))) + `(default ((t (:background, *bg-1* :foreground, *normal*)))) + `(header-line ((t (:background, *mode-line-bg* :foreground, *normal*)))) ;; info header + `(highlight ((t (:background, *current-line*)))) + `(highlight-face ((t (:background, *current-line*)))) + `(hl-line ((t (:background, *current-line* :underline t)))) + `(info-xref ((t (:foreground, *keywords* :underline t)))) + `(Info-quoted ((t (:foreground, *keywords*)))) + `(region ((t (:background, *visual-selection*)))) + `(underline ((nil (:underline t)))) + + ;; font-lock + `(font-lock-builtin-face ((t (:foreground, *operators*)))) + `(font-lock-comment-delimiter-face ((t (:foreground, *comments*)))) + `(font-lock-comment-face ((t (:foreground, *comments*)))) + `(font-lock-constant-face ((t (:foreground, *constant*)))) + `(font-lock-doc-face ((t (:foreground, *string*)))) + `(font-lock-doc-string-face ((t (:foreground, *string*)))) + `(font-lock-function-name-face ((t (:foreground, *method-declaration* :inherit bold)))) + `(font-lock-keyword-face ((t (:inherit bold :foreground, *keywords*)))) + `(font-lock-negation-char-face ((t (:foreground, *warning*)))) + `(font-lock-preprocessor-face ((t (:foreground, *keywords*)))) + `(font-lock-reference-face ((t (:foreground, *constant*)))) + `(font-lock-regexp-grouping-backslash ((t (:foreground, *regexp*)))) + `(font-lock-regexp-grouping-construct ((t (:foreground, *regexp*)))) + `(font-lock-string-face ((t (:foreground, *string*)))) + `(font-lock-type-face ((t (:foreground, *type* :inherit bold)))) + `(font-lock-variable-name-face ((t (:foreground, *variable*)))) + `(font-lock-warning-face ((t (:foreground, *warning*)))) + + ;; whitespace + `(whitespace-space ((t (:foreground ,*whitespace-fg*)))) + `(whitespace-indentation ((t (:foreground ,*whitespace-fg*)))) + `(whitespace-trailing ((t (:background ,*keywords* :foreground ,*whitespace-fg*)))) + + ;; GUI + `(fringe ((t (:foreground, *normal* :background, *bg-1*)))) + `(header-line ((t (:background, *fringe* :foreground, *normal*)))) ;; info header + `(linum ((t (:foreground, *line-number* :background, *line-number-bg* :underline nil :bold nil :italic nil)))) + `(minibuffer-prompt ((t (:inherit bold :foreground, *mb-prompt*)))) + `(mode-line ((t (:background, *active-line-bg* :foreground, *normal*)))) + `(mode-line-inactive ((t (:background, *mode-line-bg* :foreground, *mode-line-fg*)))) + `(cursor ((t (:background, *cursor-block*)))) + `(text-cursor ((t (:background, *cursor-underscore*)))) + `(vertical-border ((t (:foreground, *vertical-border*)))) ;; between splits + + ;; search + `(isearch ((t (:background, *search-bg* :foreground, *search-fg*)))) + `(isearch-fail ((t (:background, *warning*)))) + `(lazy-highlight ((t (:background, *operators* :foreground, *search-fg*)))) + + ;; erb/rhtml-mode + `(erb-out-delim-face ((t (:foreground, *regexp*)))) + + ;; enh-ruby-mode + `(enh-ruby-op-face ((t (:foreground, *operators*)))) + `(enh-ruby-regexp-delimiter-face ((t (:foreground, *regexp*)))) + `(enh-ruby-string-delimiter-face ((t (:foreground, *normal*)))) + + ;; org-mode + `(org-date ((t (:foreground, *light-purple* :underline t)))) + `(org-level-1 ((t (:foreground, *string*)))) + `(org-special-keyword ((t (:foreground, *variable*)))) + `(org-link ((t (:foreground, *keywords* :underline t)))) + `(org-checkbox ((t (:foreground, *keywords* :background, *bg-1* :bold t)))) + `(org-clock-overlay ((t (:foreground, *mode-line-bg* :background, *string*)))) + + ;; show-paren + `(show-paren-mismatch ((t (:foreground, *warning* :weight ultra-bold :underline t)))) + `(show-paren-match ((t (:foreground, *success* :weight ultra-bold :underline t)))) + + ;; highlight-parentheses + `(hl-paren-face ((t (:weight ultra-bold)))) + + ;; rainbow delimiters mode + `(rainbow-delimiters-depth-1-face ((t (:foreground ,*rdd-1*)))) + `(rainbow-delimiters-depth-2-face ((t (:foreground ,*rdd-2*)))) + `(rainbow-delimiters-depth-3-face ((t (:foreground ,*rdd-3*)))) + `(rainbow-delimiters-depth-4-face ((t (:foreground ,*rdd-4*)))) + `(rainbow-delimiters-depth-5-face ((t (:foreground ,*rdd-5*)))) + `(rainbow-delimiters-depth-6-face ((t (:foreground ,*rdd-6*)))) + `(rainbow-delimiters-depth-7-face ((t (:foreground ,*rdd-7*)))) + `(rainbow-delimiters-depth-8-face ((t (:foreground ,*rdd-8*)))) + `(rainbow-delimiters-depth-9-face ((t (:foreground ,*rdd-9*)))) + + ;;;;; diff + `(diff-header ((t (:background ,*diff-hdr-bg*)))) + `(diff-file-header ((t (:foreground ,*diff-file-hdr-fg*)))) + `(diff-hunk-header ((t (:background ,*diff-hunk-hdr-bg* :foreground ,*diff-hunk-hdr-fg*)))) + `(diff-added ((t (:background ,*diff-added-bg* :foreground ,*diff-added-fg*)))) + `(diff-removed ((t (:background ,*diff-rmvd-bg* :foreground ,*diff-rmvd-fg*)))) + + ;;;;; magit + `(magit-blame-culprit ((t :background ,*active-line-bg* :foreground ,*fg-standout*))) + `(magit-blame-date ((t :background ,*active-line-bg* :foreground ,*string*))) + `(magit-blame-hash ((t :background ,*active-line-bg* :foreground ,*method-declaration*))) + `(magit-blame-header ((t :background ,*active-line-bg* :foreground ,*string*))) + `(magit-blame-heading ((t :background ,*active-line-bg* :foreground ,*string*))) + `(magit-blame-name ((t :background ,*active-line-bg* :foreground ,*fg-standout*))) + `(magit-blame-sha1 ((t :background ,*active-line-bg* :foreground ,*method-declaration*))) + `(magit-blame-subject ((t :background ,*active-line-bg* :foreground ,*fg-standout*))) + `(magit-blame-summary ((t :background ,*active-line-bg* :foreground ,*fg-standout*))) + `(magit-blame-time ((t :background ,*active-line-bg* :foreground ,*string*))) + `(magit-branch ((t (:foreground ,*constant* :inherit bold)))) + `(magit-branch-current ((t (:foreground ,*blue* :inherit bold :box t)))) + `(magit-branch-local ((t (:foreground ,*blue* :inherit bold)))) + `(magit-branch-remote ((t (:foreground ,*aqua* :inherit bold)))) + `(magit-diff-context-highlight ((t (:background ,*bg-2* :foreground ,*normal*)))) + `(magit-diff-file-header ((t (:foreground ,*keywords*)))) + `(magit-diff-file-heading ((t (:foreground ,*keywords*)))) + `(magit-diff-file-heading-highlight ((t (:foreground ,*keywords*)))) + `(magit-diff-hunk-header ((t (:background ,*ttip-bg* :foreground ,*ttip*)))) + `(magit-diff-hunk-heading ((t (:background ,*ttip-bg* :foreground ,*ttip*)))) + `(magit-diff-hunk-heading-highlight ((t (:background ,*ttip-bg* :foreground ,*ttip*)))) + `(magit-diff-added ((t (:background ,*diff-added-bg* :foreground ,*diff-added-fg*)))) + `(magit-diff-added-highlight ((t (:background ,*diff-added-hl-bg* :foreground ,*diff-added-hl-fg*)))) + `(magit-diff-base ((t (:background ,*diff-base-bg* :foreground ,*diff-base-fg*)))) + `(magit-diff-base-highlight ((t (:background ,*diff-base-hl-bg* :foreground ,*diff-base-hl-fg*)))) + `(magit-diff-removed ((t (:background ,*diff-rmvd-bg* :foreground ,*diff-rmvd-fg*)))) + `(magit-diff-removed-highlight ((t (:background ,*diff-rmvd-hl-bg* :foreground ,*diff-rmvd-hl-fg*)))) + `(magit-diffstat-added ((t (:foreground ,*diffstat-added*)))) + `(magit-diffstat-removed ((t (:foreground ,*diffstat-rmvd*)))) + `(magit-hash ((t (:foreground ,*hash*)))) + `(magit-hunk-heading ((t (:background ,*bg-3*)))) + `(magit-hunk-heading-highlight ((t (:background ,*bg-3*)))) + `(magit-item-highlight ((t :background ,*bg-2*))) + `(magit-log-author ((t (:foreground ,*method-declaration*)))) + `(magit-log-head-label-head ((t (:background ,*fg-standout* :foreground ,*bg-1* :inherit bold)))) + `(magit-log-head-label-local ((t (:background ,*keywords* :foreground ,*bg-1* :inherit bold)))) + `(magit-log-head-label-remote ((t (:background ,*success* :foreground ,*bg-1* :inherit bold)))) + `(magit-log-head-label-tags ((t (:background ,*magenta* :foreground ,*bg-1* :inherit bold)))) + `(magit-log-head-label-wip ((t (:background ,*cyan* :foreground ,*bg-1* :inherit bold)))) + `(magit-log-sha1 ((t (:foreground ,*string*)))) + `(magit-process-ng ((t (:foreground ,*warning* :inherit bold)))) + `(magit-process-ok ((t (:foreground ,*method-declaration* :inherit bold)))) + `(magit-reflog-amend ((t (:foreground ,*magenta*)))) + `(magit-reflog-checkout ((t (:foreground ,*blue*)))) + `(magit-reflog-cherry-pick ((t (:foreground ,*string*)))) + `(magit-reflog-commit ((t (:foreground ,*string*)))) + `(magit-reflog-merge ((t (:foreground ,*string*)))) + `(magit-reflog-other ((t (:foreground ,*cyan*)))) + `(magit-reflog-rebase ((t (:foreground ,*magenta*)))) + `(magit-reflog-remote ((t (:foreground ,*cyan*)))) + `(magit-reflog-reset ((t (:foreground ,*red*)))) + `(magit-section-heading ((t (:foreground ,*keywords* :inherit bold)))) + `(magit-section-highlight ((t (:background ,*bg-2*)))) + `(magit-section-title ((t (:background ,*bg-1* :foreground ,*keywords* :inherit bold))))) + + )) + +;;;###autoload +(when (and (boundp 'custom-theme-load-path) load-file-name) + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide 'havoc-common) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; havoc-common.el ends here diff --git a/themes/havoc-dark-theme.el b/themes/havoc-dark-theme.el new file mode 100644 index 0000000..02bdeca --- /dev/null +++ b/themes/havoc-dark-theme.el @@ -0,0 +1,7 @@ +(require 'havoc-common) + +(deftheme havoc-dark "Adaptation of underwater Emacs theme.") + +(create-havoc-theme 'dark 'havoc-dark) + +(provide-theme 'havoc-dark) diff --git a/themes/havoc-light-theme.el b/themes/havoc-light-theme.el new file mode 100644 index 0000000..807a91b --- /dev/null +++ b/themes/havoc-light-theme.el @@ -0,0 +1,7 @@ +(require 'havoc-common) + +(deftheme havoc-light "Adaptation of default Emacs theme.") + +(create-havoc-theme 'light 'havoc-light) + +(provide-theme 'havoc-light) diff --git a/themes/havoc-theme.el b/themes/havoc-theme.el deleted file mode 100644 index 1c25ee4..0000000 --- a/themes/havoc-theme.el +++ /dev/null @@ -1,276 +0,0 @@ -;;; havoc-theme.el --- A gentle, deep blue color theme - -;; Copyright (C) 2017 Wojciech Kozlowski - -;; Author: Wojciech Kozlowski -;; Keywords: faces -;; Compatibility: 24.1 -;; Version: 0.0.1 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or (at -;; your option) any later version. - -;; This program is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;;; Commentary: - -;; This an adaptation of the underwater theme by Jon-Michael Deldin - -;;; Code: - -(deftheme havoc "Adaptation of underwater Emacs theme.") - -(let ((*bg-1* "#102235") - (*bg-2* "#233445") - (*bg-3* "#364555") - (*bg-4* "#495765") - (*brown* "#E64") - (*comments* "#4E6F91") - (*comments-bg* "#102235") - (*constant* "#A45BAD") - (*current-line* "#18374f") - (*cursor-block* "#6785c5") - (*cursor-underscore* "#FFFAAA") - (*fg-standout* "#FFEC99") - (*fringe* "#0A1721") - (*keywords* "#8AC6F2") - (*light-purple* "#FFCCFF") - (*line-number* "#2F577C") - (*method-declaration* "#AF81F4") - (*mode-line-bg* "#0A1721") - (*mode-line-fg* "#8EAFD1") - (*mode-line-inactive* "#4E6F91") - (*normal* "#DFEFF6") - (*number* "#96DEFA") - (*operators* "#3E71A1") - (*parens* "magenta") - (*red-light* "#FFB6B0") - (*regexp* "#EF7760") - (*regexp-alternate* "#FF0") - (*regexp-alternate-2* "#B18A3D") - (*search-fg* "#E2DAEF") - (*search-bg* "#AF81F4") - (*string* "#89E14B") - (*success* "#86DC2F") - (*ttip* "#e1e1e0") - (*ttip-sl* "#005577") - (*ttip-bg* "#495765") - (*type* "#5BA0EB") - (*variable* "#8AC6F2") - (*vertical-border* "#0A1721") - (*visual-selection* "#262D51") - (*warning* "#C62626") - - ;; Rainbow delimiters - (*rdd-1* "#8AC6F2") - (*rdd-2* "#AF81F4") - (*rdd-3* "#89E14B") - (*rdd-4* "turquoise") - (*rdd-5* "#FFEC99") - (*rdd-6* "#8AC6F2") - (*rdd-7* "#AF81F4") - (*rdd-8* "#89E14B") - (*rdd-9* "turquoise") - - ;; Magit colors - (*diff-added-bg* "#336622") - (*diff-added-fg* "#ddffdd") - (*diff-added-hl-bg* "#337733") - (*diff-added-hl-fg* "#cceecc") - (*diff-base-bg* "#666622") - (*diff-base-fg* "#ffffcc") - (*diff-base-hl-bg* "#777722") - (*diff-base-hl-fg* "#eeeebb") - (*diff-rmvd-bg* "#663333") - (*diff-rmvd-fg* "#ffdddd") - (*diff-rmvd-hl-bg* "#773333") - (*diff-rmvd-hl-fg* "#eecccc") - - ;; Base colors - (*aqua* "#2d9574") - (*aqua-bg* "#293235") - (*green* "green") - (*green-bg* "#293235") - (*green-bg-s* "#29422d") - (*cyan* "cyan") - (*cyan-bg* "#003355") - (*red* "red") - (*red-bg* "#3c2a2c") - (*red-bg-s* "#512e31") - (*blue* "#4f97d7") - (*blue-bg* "#293239") - (*magenta* "magenta") - (*yellow* "yellow") - (*yellow-bg* "#32322c")) - - (custom-theme-set-faces - 'havoc - - `(bold ((t (:bold t)))) - `(button ((t (:foreground, *keywords* :underline t)))) - `(default ((t (:background, *bg-1* :foreground, *normal*)))) - `(header-line ((t (:background, *mode-line-bg* :foreground, *normal*)))) ;; info header - `(highlight ((t (:background, *current-line*)))) - `(highlight-face ((t (:background, *current-line*)))) - `(hl-line ((t (:background, *current-line* :underline t)))) - `(info-xref ((t (:foreground, *keywords* :underline t)))) - `(Info-quoted ((t (:foreground, *keywords*)))) - `(region ((t (:background, *visual-selection*)))) - `(underline ((nil (:underline t)))) - - ;; font-lock - `(font-lock-builtin-face ((t (:foreground, *operators*)))) - `(font-lock-comment-delimiter-face ((t (:foreground, *comments*)))) - `(font-lock-comment-face ((t (:foreground, *comments*)))) - `(font-lock-constant-face ((t (:foreground, *constant*)))) - `(font-lock-doc-face ((t (:foreground, *string*)))) - `(font-lock-doc-string-face ((t (:foreground, *string*)))) - `(font-lock-function-name-face ((t (:foreground, *method-declaration* :inherit bold)))) - `(font-lock-keyword-face ((t (:inherit bold :foreground, *keywords*)))) - `(font-lock-negation-char-face ((t (:foreground, *warning*)))) - `(font-lock-preprocessor-face ((t (:foreground, *keywords*)))) - `(font-lock-reference-face ((t (:foreground, *constant*)))) - `(font-lock-regexp-grouping-backslash ((t (:foreground, *regexp*)))) - `(font-lock-regexp-grouping-construct ((t (:foreground, *regexp*)))) - `(font-lock-string-face ((t (:foreground, *string*)))) - `(font-lock-type-face ((t (:foreground, *type* :inherit bold)))) - `(font-lock-variable-name-face ((t (:foreground, *variable*)))) - `(font-lock-warning-face ((t (:foreground, *warning*)))) - - ;; whitespace - `(whitespace-space ((t (:foreground ,*fg-standout*)))) - - ;; GUI - `(fringe ((t (:foreground, *normal* :background, *bg-1*)))) - `(header-line ((t (:background, *fringe* :foreground, *normal*)))) ;; info header - `(linum ((t (:foreground, *line-number* :background, *vertical-border* :underline nil :bold nil :italic nil)))) - `(minibuffer-prompt ((t (:inherit bold :foreground, *variable*)))) - `(mode-line ((t (:background, *cyan-bg* :foreground, *normal*)))) - `(mode-line-inactive ((t (:background, *mode-line-bg* :foreground, *mode-line-fg*)))) - `(cursor ((t (:background, *cursor-block*)))) - `(text-cursor ((t (:background, *cursor-underscore*)))) - `(vertical-border ((t (:foreground, *vertical-border*)))) ;; between splits - - ;; search - `(isearch ((t (:background, *search-bg* :foreground, *search-fg*)))) - `(isearch-fail ((t (:background, *warning*)))) - `(lazy-highlight ((t (:background, *operators* :foreground, *search-fg*)))) - - ;; erb/rhtml-mode - `(erb-out-delim-face ((t (:foreground, *regexp*)))) - - ;; enh-ruby-mode - `(enh-ruby-op-face ((t (:foreground, *operators*)))) - `(enh-ruby-regexp-delimiter-face ((t (:foreground, *regexp*)))) - `(enh-ruby-string-delimiter-face ((t (:foreground, *normal*)))) - - ;; org-mode - `(org-date ((t (:foreground, *light-purple* :underline t)))) - `(org-level-1 ((t (:foreground, *string*)))) - `(org-special-keyword ((t (:foreground, *variable*)))) - `(org-link ((t (:foreground, *keywords* :underline t)))) - `(org-checkbox ((t (:foreground, *keywords* :background, *bg-1* :bold t)))) - `(org-clock-overlay ((t (:foreground, *mode-line-bg* :background, *string*)))) - - ;; show-paren - `(show-paren-mismatch ((t (:foreground, *warning* :weight ultra-bold :underline t)))) - `(show-paren-match ((t (:foreground, *success* :weight ultra-bold :underline t)))) - - ;; highlight-parentheses - `(hl-paren-face ((t (:weight ultra-bold)))) - - ;; rainbow delimiters mode - `(rainbow-delimiters-depth-1-face ((t (:foreground ,*rdd-1*)))) - `(rainbow-delimiters-depth-2-face ((t (:foreground ,*rdd-2*)))) - `(rainbow-delimiters-depth-3-face ((t (:foreground ,*rdd-3*)))) - `(rainbow-delimiters-depth-4-face ((t (:foreground ,*rdd-4*)))) - `(rainbow-delimiters-depth-5-face ((t (:foreground ,*rdd-5*)))) - `(rainbow-delimiters-depth-6-face ((t (:foreground ,*rdd-6*)))) - `(rainbow-delimiters-depth-7-face ((t (:foreground ,*rdd-7*)))) - `(rainbow-delimiters-depth-8-face ((t (:foreground ,*rdd-8*)))) - `(rainbow-delimiters-depth-9-face ((t (:foreground ,*rdd-9*)))) - - ;;;;; diff - `(diff-header ((t (:background ,*bg-4*)))) - `(diff-file-header ((t (:foreground ,*normal*)))) - `(diff-hunk-header ((t (:background ,*bg-3* :foreground ,*ttip*)))) - `(diff-added ((t (:background ,*diff-added-bg* :foreground ,*diff-added-fg*)))) - `(diff-removed ((t (:background ,*diff-rmvd-bg* :foreground ,*diff-rmvd-fg*)))) - - ;;;;; magit - `(magit-blame-culprit ((t :background ,*cyan-bg* :foreground ,*fg-standout*))) - `(magit-blame-date ((t :background ,*cyan-bg* :foreground ,*string*))) - `(magit-blame-hash ((t :background ,*cyan-bg* :foreground ,*method-declaration*))) - `(magit-blame-header ((t :background ,*cyan-bg* :foreground ,*string*))) - `(magit-blame-heading ((t :background ,*cyan-bg* :foreground ,*string*))) - `(magit-blame-name ((t :background ,*cyan-bg* :foreground ,*fg-standout*))) - `(magit-blame-sha1 ((t :background ,*cyan-bg* :foreground ,*method-declaration*))) - `(magit-blame-subject ((t :background ,*cyan-bg* :foreground ,*fg-standout*))) - `(magit-blame-summary ((t :background ,*cyan-bg* :foreground ,*fg-standout*))) - `(magit-blame-time ((t :background ,*cyan-bg* :foreground ,*string*))) - `(magit-branch ((t (:foreground ,*constant* :inherit bold)))) - `(magit-branch-current ((t (:foreground ,*blue* :inherit bold :box t)))) - `(magit-branch-local ((t (:foreground ,*blue* :inherit bold)))) - `(magit-branch-remote ((t (:foreground ,*aqua* :inherit bold)))) - `(magit-diff-context-highlight ((t (:background ,*bg-2* :foreground ,*normal*)))) - `(magit-diff-file-header ((t (:foreground ,*keywords*)))) - `(magit-diff-file-heading ((t (:foreground ,*keywords*)))) - `(magit-diff-file-heading-highlight ((t (:foreground ,*keywords*)))) - `(magit-diff-hunk-header ((t (:background ,*ttip-bg* :foreground ,*ttip*)))) - `(magit-diff-hunk-heading ((t (:background ,*ttip-bg* :foreground ,*ttip*)))) - `(magit-diff-hunk-heading-highlight ((t (:background ,*ttip-bg* :foreground ,*ttip*)))) - `(magit-diff-added ((t (:background ,*diff-added-bg* :foreground ,*diff-added-fg*)))) - `(magit-diff-added-highlight ((t (:background ,*diff-added-hl-bg* :foreground ,*diff-added-hl-fg*)))) - `(magit-diff-base ((t (:background ,*diff-base-bg* :foreground ,*diff-base-fg*)))) - `(magit-diff-base-highlight ((t (:background ,*diff-base-hl-bg* :foreground ,*diff-base-hl-fg*)))) - `(magit-diff-removed ((t (:background ,*diff-rmvd-bg* :foreground ,*diff-rmvd-fg*)))) - `(magit-diff-removed-highlight ((t (:background ,*diff-rmvd-hl-bg* :foreground ,*diff-rmvd-hl-fg*)))) - `(magit-diffstat-added ((t (:foreground ,*string*)))) - `(magit-diffstat-removed ((t (:foreground ,*warning*)))) - `(magit-hash ((t (:foreground ,*variable*)))) - `(magit-hunk-heading ((t (:background ,*bg-3*)))) - `(magit-hunk-heading-highlight ((t (:background ,*bg-3*)))) - `(magit-item-highlight ((t :background ,*bg-2*))) - `(magit-log-author ((t (:foreground ,*method-declaration*)))) - `(magit-log-head-label-head ((t (:background ,*fg-standout* :foreground ,*bg-1* :inherit bold)))) - `(magit-log-head-label-local ((t (:background ,*keywords* :foreground ,*bg-1* :inherit bold)))) - `(magit-log-head-label-remote ((t (:background ,*success* :foreground ,*bg-1* :inherit bold)))) - `(magit-log-head-label-tags ((t (:background ,*magenta* :foreground ,*bg-1* :inherit bold)))) - `(magit-log-head-label-wip ((t (:background ,*cyan* :foreground ,*bg-1* :inherit bold)))) - `(magit-log-sha1 ((t (:foreground ,*string*)))) - `(magit-process-ng ((t (:foreground ,*warning* :inherit bold)))) - `(magit-process-ok ((t (:foreground ,*method-declaration* :inherit bold)))) - `(magit-reflog-amend ((t (:foreground ,*magenta*)))) - `(magit-reflog-checkout ((t (:foreground ,*blue*)))) - `(magit-reflog-cherry-pick ((t (:foreground ,*string*)))) - `(magit-reflog-commit ((t (:foreground ,*string*)))) - `(magit-reflog-merge ((t (:foreground ,*string*)))) - `(magit-reflog-other ((t (:foreground ,*cyan*)))) - `(magit-reflog-rebase ((t (:foreground ,*magenta*)))) - `(magit-reflog-remote ((t (:foreground ,*cyan*)))) - `(magit-reflog-reset ((t (:foreground ,*red*)))) - `(magit-section-heading ((t (:foreground ,*keywords* :inherit bold)))) - `(magit-section-highlight ((t (:background ,*bg-2*)))) - `(magit-section-title ((t (:background ,*bg-1* :foreground ,*keywords* :inherit bold)))) - - )) - -;;;###autoload -(when (and (boundp 'custom-theme-load-path) load-file-name) - (add-to-list 'custom-theme-load-path - (file-name-as-directory (file-name-directory load-file-name)))) - -;; Local Variables: -;; no-byte-compile: t -;; End: - -(provide-theme 'havoc) -;;; havoc-theme.el ends here