-
Notifications
You must be signed in to change notification settings - Fork 1
/
evangelion-theme.el
150 lines (139 loc) · 5.25 KB
/
evangelion-theme.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
;;; evangelion-theme.el --- A dark colour scheme inspired by Neon Genesis Evangelion -*- lexical-binding: t; -*-
;;; Version: 0.01
;; Copyright (C) 2024 Andrew Jose, xero harrison
;; SPDX-License-Identifier: GPL-3.0-or-later
;; Author: Andrew Jose <[email protected]>
;; Maintainer: Andrew Jose <[email protected]>
;; URL: https://github.com/crmsnbleyd/evangelion-theme
;; Package-Requires: ((emacs "27.1"))
;; Keywords: faces, theme
;; This file is not part of GNU Emacs.
;;; Commentary:
;;
;; evangelion is a dark color scheme that pays homage to the anime
;; "Neon Genesis Evangelion".
;;; Code:
(deftheme evangelion
"Purple colour scheme inspired by neon genesis evangelion."
:kind 'color-scheme
:background-mode 'dark)
(defcustom evangelion-comment-background-enabled t
"Whether to display a background behind comment lines and blocks"
:type 'boolean
:group 'evangelion)
(let*
((class '((class color) (min-colors 256)))
(bg "#201430")
(fg "#E1D6F8")
(green "#87FF5F")
(green2 "#9CDA7C")
(teal "#20453E")
(black "#222222")
(hl "#39274D")
(fade "#A1A0AD")
(lavender "#AB92FC")
(purple "#B968FC")
(red "#5B2B41")
(orange "#E6BB85")
(orange2 "#D99145"))
(custom-theme-set-faces
'evangelion
`(default
((,class (:background ,bg :foreground ,fg))))
`(highlight ((,class (:background ,hl))))
`(link ((,class (:foreground ,green2 :underline t))))
`(region ((,class (:background ,teal))))
`(error ((,class (:foreground "red"))))
;;; font lock default faces
`(font-lock-builtin-face ((,class (:foreground ,green2))))
`(font-lock-comment-face
((,class (:foreground ,fade :background ,(if evangelion-comment-background-enabled hl nil)))))
`(font-lock-constant-face ((,class (:foreground ,orange2))))
`(font-lock-doc-string-face ((,class (:foreground ,lavender))))
`(font-lock-function-name-face ((,class (:foreground ,green2))))
`(font-lock-keyword-face ((,class (:bold t :foreground ,green))))
`(font-lock-preprocessor-face ((,class (:foreground ,green))))
`(font-lock-reference-face ((,class (:foreground ,purple))))
`(font-lock-string-face ((,class (:foreground ,lavender))))
`(font-lock-type-face ((,class (:foreground ,green2))))
`(font-lock-variable-name-face ((,class (:foreground ,purple))))
`(font-lock-warning-face ((,class (:bold t :foreground ,orange))))
;;; isearch
`(isearch ((,class (:background ,purple))))
;;; line number
`(line-number-current-line
((,class (:inherit line-number :foreground ,green))))
;;; magit
`(magit-branch-local
((t (:foreground ,orange))))
`(magit-branch-remote
((t (:foreground ,lavender))))
`(git-commit-summary
((t (:foreground ,green))))
`(git-commit-overlong-summary
((t (:foreground ,red :weight semi-bold))))
`(magit-dimmed
((t (:foreground ,fade))))
`(magit-blame-dimmed
((t (:foreground ,fade))))
`(magit-header-line
((t (:foreground ,fg
:background ,hl))))
`(magit-header-line-log-select
((t (:foreground ,fg
:background ,hl))))
`(magit-section-heading
((t (:foreground ,fade :height 1.2))))
`(magit-section-highlight
((t (:background ,hl :extend t))))
;;; mode-line
`(mode-line-active
((t (:background ,teal :foreground ,fg))))
`(mode-line-inactive
((t (:background ,black))))
;;; org mode
`(org-block
((t (:background ,hl))))
`(org-block-begin-line
((t (:foreground ,fade :background ,bg :extend nil))))
`(org-code ((t (:foreground ,orange2))))
`(org-level-1 ((t (:foreground ,green))))
`(org-level-3 ((t (:foreground ,green2))))
;;; paren
`(show-paren-match
((,class (:foreground ,purple :background ,hl :bold t))))
;;; rainbow delimiters
`(rainbow-delimiters-depth-1-face
((t (:foreground ,lavender))))
`(rainbow-delimiters-depth-2-face
((t (:foreground ,orange))))
`(rainbow-delimiters-depth-3-face
((t (:foreground ,purple))))
`(rainbow-delimiters-depth-4-face
((t (:foreground ,orange2))))
`(rainbow-delimiters-depth-5-face
((t (:foreground ,teal))))
`(rainbow-delimiters-depth-6-face
((t (:foreground ,green))))
`(rainbow-delimiters-depth-7-face
((t (:inherit rainbow-delimiters-depth-1-face))))
`(rainbow-delimiters-depth-8-face
((t (:inherit rainbow-delimiters-depth-2-face))))
`(rainbow-delimiters-depth-9-face
((t (:inherit rainbow-delimiters-depth-3-face))))
`(rainbow-delimiters-depth-10-face
((t (:inherit rainbow-delimiters-depth-4-face))))
`(rainbow-delimiters-depth-11-face
((t (:inherit rainbow-delimiters-depth-5-face))))
`(rainbow-delimiters-depth-12-face
((t (:inherit rainbow-delimiters-depth-6-face))))
`(rainbow-delimiters-unmatched-face
((t (:background ,red
:weight bold))))))
(and load-file-name
(boundp 'custom-theme-load-path)
(add-to-list 'custom-theme-load-path
(file-name-as-directory
(file-name-directory load-file-name))))
(provide-theme 'evangelion)
;;; evangelion-theme.el ends here