├── LICENSE ├── README.md ├── doom-moonfly-theme.el └── img ├── git.png └── splash.png /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016-2021 Henrik Lissner. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Doom Moonfly theme 2 | 3 | This is a port of 4 | [vim-moonfly-colors](https://github.com/bluz71/vim-moonfly-colors) for [Doom 5 | Emacs](https://github.com/hlissner/doom-emacs). 6 | 7 | NOTE: it's still a work in progress. Screenshots are outdated. Will change them 8 | soon. 9 | 10 | ## screenshots 11 | 12 | ![](./img/splash.png) 13 | 14 | ![](./img/git.png) 15 | 16 | ## Manual Installation 17 | 18 | Drop `doom-moonfly-theme.el` in your `~/.doom.d/themes/` directory. 19 | 20 | ## Using `package!` 21 | 22 | Add the following to your `~/.doom.d/packages.el` 23 | 24 | ```lisp 25 | (package! doom-moonfly-theme 26 | :recipe (:host github 27 | :repo "stackmystack/doom-moonfly-theme")) 28 | ``` 29 | 30 | ## Set 31 | 32 | ```lisp 33 | (setq doom-theme 'doom-moonfly) 34 | ``` 35 | -------------------------------------------------------------------------------- /doom-moonfly-theme.el: -------------------------------------------------------------------------------- 1 | ;;; moonfly.el --- inspired by Atom One Dark -*- lexical-binding: t; no-byte-compile: t; -*- 2 | ;; 3 | ;; Copyright (C) Firas al-Khalil 4 | ;; 5 | ;; Author: Firas al-Khalil 6 | ;; Created: April 18, 2022 7 | ;; Version: 1.0.0 8 | ;; Keywords: custom themes, faces 9 | ;; Homepage: 10 | ;; Package-Requires: ((emacs "25.1") (cl-lib "0.5") (doom-themes "2.2.1")) 11 | ;; 12 | ;;; Commentary: 13 | ;; 14 | ;; A copycat of vim-moonfly theme. 15 | ;; 16 | ;;; Code: 17 | 18 | (require 'doom-themes) 19 | 20 | 21 | ;; 22 | ;;; Variables 23 | 24 | (defgroup doom-moonfly-theme nil 25 | "Options for the `moonfly' theme." 26 | :group 'doom-themes) 27 | 28 | (defcustom doom-moonfly-theme-brighter-modeline nil 29 | "If non-nil, more vivid colors will be used to style the mode-line." 30 | :group 'doom-moonfly-theme 31 | :type 'boolean) 32 | 33 | (defcustom doom-moonfly-theme-brighter-comments nil 34 | "If non-nil, comments will be highlighted in more vivid colors." 35 | :group 'doom-moonfly-theme 36 | :type 'boolean) 37 | 38 | (defcustom doom-moonfly-theme-padded-modeline doom-themes-padded-modeline 39 | "If non-nil, adds a 4px padding to the mode-line. 40 | Can be an integer to determine the exact padding." 41 | :group 'doom-moonfly-theme 42 | :type '(choice integer boolean)) 43 | 44 | 45 | ;; 46 | ;;; Theme definition 47 | 48 | (def-doom-theme doom-moonfly 49 | "A dark theme inspired by vim-moonfly." 50 | 51 | ;; name default 256 16 52 | ((bg '("#080808" "black" "black" )) 53 | (fg '("#dcdcdc" "#dcdcdc" "brightwhite" )) 54 | 55 | ;; These are off-color variants of bg/fg, used primarily for `solaire-mode', 56 | ;; but can also be useful as a basis for subtle highlights (e.g. for hl-line 57 | ;; or region), especially when paired with the `doom-darken', `doom-lighten', 58 | ;; and `doom-blend' helper functions. 59 | (bg-alt '("#080808" "black" "black" )) 60 | (fg-alt '("#dcdcdc" "#dcdcdc" "white" )) 61 | 62 | ;; These should represent a spectrum from bg to fg, where base0 is a starker 63 | ;; bg and base8 is a starker fg. For example, if bg is light grey and fg is 64 | ;; dark grey, base0 should be white and base8 should be black. 65 | (base0 '("#080808" "black" "black" )) 66 | (base1 '("#242424" "#242424" "brightblack" )) 67 | (base2 '("#414141" "#414141" "brightblack" )) 68 | (base3 '("#5d5d5d" "#5d5d5d" "brightblack" )) 69 | (base4 '("#6b6b6b" "#6b6b6b" "brightblack" )) 70 | (base5 '("#797979" "#797979" "brightblack" )) 71 | (base6 '("#878787" "#878787" "brightblack" )) 72 | (base7 '("#969696" "#969696" "brightblack" )) 73 | (base8 '("#dcdcdc" "#dcdcdc" "white" )) 74 | 75 | (blue '("#80a0ff" "#80a0ff" "blue" )) 76 | (bright-blue '("#74b2ff" "#74b2ff" "brightblue" )) 77 | (bright-cyan '("#85dc85" "#85dc85" "brightcyan" )) 78 | (bright-green '("#36c692" "#36c692" "brightgreen" )) 79 | (bright-purple '("#ae81ff" "#ae81ff" "brightmagenta")) 80 | (bright-red '("#ff5189" "#ff5189" "brightred" )) 81 | (bright-orange '("#f09479" "#f09479" "brightorange" )) 82 | (bright-yellow '("#c2c292" "#c2c292" "brightyellow" )) 83 | (cursor '("#9e9e9e" "#9e9e9e" "grey" )) 84 | (cursor-text '("#080808" "#080808" "black" )) 85 | (cyan '("#79dac8" "#79dac8" "cyan" )) 86 | (dark-blue '("#80a0ff" "#80a0ff" "blue" )) 87 | (dark-cyan '("#79dac8" "#79dac8" "cyan" )) 88 | (green '("#8cc85f" "#8cc85f" "green" )) 89 | (grey base4 ) 90 | (magenta '("#d183e8" "#d183e8" "magenta" )) 91 | (orange '("#ff7051" "#ff7051" "orange" )) 92 | (purple '("#d183e8" "#d183e8" "magenta" )) 93 | (red '("#ff5454" "#ff5454" "red" )) 94 | (selection '("#b2ceee" "#b2ceee" "blue" )) 95 | (teal '("#85dc85" "#85dc85" "brightcyan" )) 96 | (violet '("#ae81ff" "#ae81ff" "brightmagenta")) 97 | (yellow '("#e3c78a" "#e3c78a" "yellow" )) 98 | 99 | ;; These are the "universal syntax classes" that doom-themes establishes. 100 | ;; These *must* be included in every doom themes, or your theme will throw an 101 | ;; error, as they are used in the base theme defined in doom-themes-base. 102 | (highlight cursor) 103 | (vertical-bar (doom-darken base1 0.1)) 104 | (selection cursor) 105 | (builtin purple) 106 | (comments (if doom-moonfly-theme-brighter-comments cyan base5)) 107 | (doc-comments (doom-lighten (if doom-moonfly-theme-brighter-comments cyan base5) 0.25)) 108 | (constants bright-purple) 109 | (functions bright-blue) 110 | (keywords purple) 111 | (methods bright-blue) 112 | (operators bright-blue) 113 | (type bright-green) 114 | (strings bright-yellow) 115 | (variables cyan) 116 | (numbers yellow) 117 | (region `(,(doom-lighten (car bg-alt) 0.15) ,@(doom-lighten (cdr base1) 0.35))) 118 | (error bright-red) 119 | (warning yellow) 120 | (success green) 121 | (vc-modified bright-orange) 122 | (vc-added green) 123 | (vc-deleted red) 124 | 125 | ;; These are extra color variables used only in this theme; i.e. they aren't 126 | ;; mandatory for derived themes. 127 | (modeline-fg fg) 128 | (modeline-fg-alt base5) 129 | (modeline-bg (if doom-moonfly-theme-brighter-modeline 130 | (doom-darken bright-blue 0.45) 131 | (doom-darken bg-alt 0.1))) 132 | (modeline-bg-alt (if doom-moonfly-theme-brighter-modeline 133 | (doom-darken bright-blue 0.475) 134 | `(,(doom-darken (car bg-alt) 0.15) ,@(cdr bg)))) 135 | (modeline-bg-inactive `(,(car bg-alt) ,@(cdr base1))) 136 | (modeline-bg-inactive-alt `(,(doom-darken (car bg-alt) 0.1) ,@(cdr bg))) 137 | 138 | (-modeline-pad 139 | (when doom-moonfly-theme-padded-modeline 140 | (if (integerp doom-moonfly-theme-padded-modeline) doom-moonfly-theme-padded-modeline 4)))) 141 | 142 | ;;;; Base theme face overrides 143 | (((line-number &override) :foreground base2) 144 | ((line-number-current-line &override) :foreground fg) 145 | ((font-lock-comment-face &override) 146 | :background (if doom-moonfly-theme-brighter-comments (doom-lighten bg 0.05))) 147 | (mode-line 148 | :background modeline-bg :foreground modeline-fg 149 | :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) 150 | (mode-line-inactive 151 | :background modeline-bg-inactive :foreground modeline-fg-alt 152 | :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive))) 153 | (mode-line-emphasis :foreground (if doom-moonfly-theme-brighter-modeline base8 highlight)) 154 | 155 | ;;;; company 156 | (company-tooltip :foreground fg :background bg) 157 | (company-tooltip-scrollbar-thumb :background base5) 158 | (company-tooltip-scrollbar-track :background base1) 159 | (company-tooltip-search-selection :background purple :foreground fg) 160 | (company-tooltip-selection :background bright-blue :foreground bg) 161 | ;;;; highlight 162 | (cursor :background blue :foreground bg) 163 | (evil-ex-lazy-highlight :foreground bg :background bright-orange) 164 | (evil-snipe-first-match-face :foreground bg :background bright-orange) 165 | (evil-snipe-matches-face :foreground bg :background bright-blue ) 166 | (lazy-highlight :foreground bg :background bright-orange) 167 | (lsp-face-highlight-read :foreground bg :background bright-orange) 168 | (lsp-face-highlight-textual :foreground bg :background bright-orange) 169 | (lsp-face-highlight-write :foreground bg :background bright-orange) 170 | (lsp-ui-peek-highlight :foreground bg :background bright-orange) 171 | (markdown-highlight-face :background purple :foreground bg) 172 | (flycheck-error-list-highligh :backgground bright-red :foreground bg) 173 | (highlight-thing :foreground bg :background bright-orange) 174 | (company-tootlip-search :foreground bg :background bright-orange) 175 | (company-tootlip-search-selection :foreground bg :background bright-orange) 176 | (nav-flash-face :background bright-blue :foreground bg) 177 | (solaire-hl-line-face :backgroud bright-blue :foreground bg) 178 | ;;;; css-mode / scss-mode 179 | (css-proprietary-property :foreground bright-yellow) 180 | (css-property :foreground bright-green) 181 | (css-selector :foreground bright-blue) 182 | ;;;; doom-modeline 183 | (doom-modeline-bar :background (if doom-moonfly-theme-brighter-modeline modeline-bg highlight)) 184 | (doom-modeline-buffer-file :inherit 'mode-line-buffer-id :weight 'bold) 185 | (doom-modeline-buffer-path :inherit 'mode-line-emphasis :weight 'bold) 186 | (doom-modeline-buffer-project-root :foreground bright-blue :weight 'bold) 187 | (doom-modeline-project-dir :foreground bright-blue :weight 'bold) 188 | ;;;; elscreen 189 | (elscreen-tab-other-screen-face :background "#353a42" :foreground "#1e2022") 190 | ;;;; ivy 191 | (ivy-current-match :background blue :distant-foreground base0 :weight 'normal) 192 | ;;;; LaTeX-mode 193 | (font-latex-math-face :foreground green) 194 | ;;;; markdown-mode 195 | ((markdown-code-face &override) :background bg) 196 | (markdown-bold-face :forground purple :weight 'bold) 197 | (markdown-header-face :inherit 'bold :foreground bright-blue) 198 | (markdown-highlight-face :foreground fg :background purple) 199 | (markdown-list-face :foreground bright-orange) 200 | (markdown-markup-face :foreground base5) 201 | ;;;; rjsx-mode 202 | (rjsx-tag :foreground bright-red) 203 | (rjsx-attr :foreground bright-orange) 204 | ;; (tree-sitter-hl-face:punctuation.bracket :foreground comments) 205 | ;; (tree-sitter-hl-face:attribute :foreground blue) 206 | ;; (tree-sitter-hl-face:function\.call :foreground white) 207 | 208 | ;;;; solaire-mode 209 | (solaire-mode-line-face 210 | :inherit 'mode-line 211 | :background modeline-bg-alt 212 | :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt))) 213 | (solaire-mode-line-inactive-face 214 | :inherit 'mode-line-inactive 215 | :background modeline-bg-inactive-alt 216 | :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-alt))) 217 | (hl-line :background base1) 218 | (solaire-hl-line-face :inherit 'hl-line :background base4) 219 | ;;;; org 220 | ((org-block &override) :background bg) 221 | ((org-block-background &override) :background bg) 222 | ((org-block-begin-line &override) :background bg) 223 | ;;;; org-pomodoro 224 | (org-pomodoro-mode-line :inherit 'mode-line-emphasis) ; unreadable otherwise 225 | (org-pomodoro-mode-line-break :inherit 'org-pomodoro-mode-line) 226 | (org-pomodoro-mode-line-overtime :inherit 'org-pomodoro-mode-line) 227 | ;;;; Rainbow-delimiters 228 | (rainbow-delimiters-depth-1-face :foreground bright-purple) 229 | (rainbow-delimiters-depth-2-face :foreground bright-orange) 230 | (rainbow-delimiters-depth-3-face :foreground green) 231 | (rainbow-delimiters-depth-4-face :foreground purple) 232 | (rainbow-delimiters-depth-5-face :foreground bright-cyan) 233 | (rainbow-delimiters-depth-6-face :foreground yellow) 234 | (rainbow-delimiters-depth-7-face :foreground bright-blue) 235 | (rainbow-delimiters-depth-8-face :foreground bright-green) 236 | (rainbow-delimiters-depth-9-face :foreground cyan) 237 | ;;;; treemacs 238 | (treemacs-directory-face :foreground base8) 239 | (treemacs-file-face :foreground fg) 240 | (treemacs-git-added-face :foreground bright-green) 241 | (treemacs-git-modified-face :foreground bright-orange) 242 | (treemacs-git-untracked-face :foreground bright-purple) 243 | (treemacs-root-face :foreground bright-blue :weight 'bold) 244 | ;;;; magit 245 | (diff-refine-added :background bright-green :foreground bg) 246 | (diff-refine-removed :background bright-red :foreground bg) 247 | (magit-bisect-bad :background bg :foreground bright-red) 248 | (magit-bisect-good :background bg :foreground bright-green) 249 | (magit-bisect-skip :background bg :foreground fg) 250 | (magit-blame-culprit :background base1 :foreground bright-red :weight 'bold) 251 | (magit-blame-date :background base1 :foreground purple :weight 'bold) 252 | (magit-blame-hash :background base1 :foreground bright-yellow :weight 'bold) 253 | (magit-blame-header :background base1 :foreground fg :weight 'bold) 254 | (magit-blame-heading :background base1 :foreground fg :weight 'bold) 255 | (magit-blame-name :background base1 :foreground green :weight 'bold) 256 | (magit-blame-sha1 :background base1 :foreground bright-yellow :weight 'bold) 257 | (magit-blame-subject :background base1 :foreground bright-blue :weight 'bold) 258 | (magit-blame-summary :background base1 :foreground bright-blue :weight 'bold) 259 | (magit-blame-time :background base1 :foreground purple :weight 'bold) 260 | (magit-branch-current :background bg :foreground bright-blue :box 't) 261 | (magit-branch-local :background bg :foreground bright-purple) 262 | (magit-diff-added :background bg :foreground bright-green) 263 | (magit-diff-added-highlight :background bg :foreground bright-green) 264 | (magit-diff-base :foreground fg :weight 'light) 265 | (magit-diff-base-highlight :foreground fg :weight 'bold) 266 | (magit-diff-conflict-heading :foreground fg) 267 | (magit-diff-context :foreground fg :weight 'light) 268 | (magit-diff-context-highlight :foreground fg :weight 'bold) 269 | (magit-diff-file-header :foreground yellow) 270 | (magit-diff-file-heading :foreground bright-blue :weight 'light) 271 | (magit-diff-file-heading-highlight :foreground bright-blue :weight 'bold) 272 | (magit-diff-file-heading-selection :foreground bright-blue :weight 'bold :background bg) 273 | (magit-diff-hunk-heading :foreground yellow :weight 'light) 274 | (magit-diff-hunk-heading-highlight :foreground yellow :weight 'bold) 275 | (magit-diff-hunk-heading-selection :foreground yellow :background bg :weight 'bold) 276 | (magit-diff-lines-boundary :background fg :foreground base2) 277 | (magit-diff-lines-heading :background fg :foreground base2) 278 | (magit-diff-our :background bg :foreground bright-blue) 279 | (magit-diff-our-highlight :background bg :foreground bright-blue) 280 | (magit-diff-removed :background bg :foreground bright-red) 281 | (magit-diff-removed-highlight :background bg :foreground bright-red) 282 | (magit-diff-their :background bg :foreground bright-cyan) 283 | (magit-diff-their-highlight :background bg :foreground bright-cyan) 284 | (magit-diff-whitespace-warning :background red :foreground bg) 285 | (magit-diffstat-added :background bg :foreground bright-green) 286 | (magit-diffstat-removed :background bg :foreground bright-red) 287 | (magit-filename :background bg :foreground bright-orange) 288 | (magit-hash :foreground bright-yellow) 289 | (magit-head :background bg :foreground bright-purple :box 't) 290 | (magit-header-line :background bright-purple :foreground bg :weight 'bold) 291 | (magit-log-author :foreground green :weight 'bold) 292 | (magit-log-date :foreground purple) 293 | (magit-log-graph :foreground fg) 294 | (magit-log-head-label-head :background bright-blue :foreground bg :weight 'bold) 295 | (magit-log-head-label-local :background bright-purple :foreground bg :weight 'bold) 296 | (magit-log-head-label-remote :background bright-cyan :foreground bg :weight 'bold) 297 | (magit-log-head-label-tags :background bright-orange :foreground bg :weight 'bold) 298 | (magit-log-head-label-wip :background yellow :foreground bg :weight 'bold) 299 | (magit-log-sha1 :foreground bright-yellow) 300 | (magit-process-ng :foreground bright-orange :weight 'bold) 301 | (magit-process-ok :foreground bright-cyan :weight 'bold) 302 | (magit-section-heading :foreground bright-purple) 303 | (magit-section-heading-selection :foreground bright-blue :weight 'bold) 304 | (magit-section-highlight :weight 'bold) 305 | (magit-section-title :background bg :foreground bright-purple :weight 'bold) 306 | (magit-tag :background bg :foreground bright-cyan :box 't) 307 | ;;;; display-fill-column-indicator-mode 308 | (fill-column-indicator :height 1 :background vertical-bar :foreground vertical-bar )) 309 | ;;;; Base theme variable overrides- 310 | ()) 311 | 312 | ;;;###autoload 313 | (when (and (boundp 'custom-theme-load-path) load-file-name) 314 | (let ((base (file-name-directory load-file-name))) 315 | (add-to-list 'custom-theme-load-path base))) 316 | 317 | (provide 'doom-moonfly-theme) 318 | ;;; moonfly.el ends here 319 | -------------------------------------------------------------------------------- /img/git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stackmystack/doom-moonfly-theme/2db10808f8f941cf934b69626699e621ac72c8c8/img/git.png -------------------------------------------------------------------------------- /img/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stackmystack/doom-moonfly-theme/2db10808f8f941cf934b69626699e621ac72c8c8/img/splash.png --------------------------------------------------------------------------------