doom rose-pine

This commit is contained in:
Michael Chalupiak 2024-11-20 15:26:21 -05:00
parent d0c2f9551f
commit 838809f377
7 changed files with 767 additions and 18 deletions

View File

@ -25,7 +25,7 @@
;; There are two ways to load a theme. Both assume the theme is installed and ;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the ;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default: ;; `load-theme' function. This is the default:
(setq doom-theme 'doom-gruvbox) (setq doom-theme 'doom-rose-pine)
;; If you use `org' and don't want your org files in the default location below, ;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads! ;; change `org-directory'. It must be set before org loads!
@ -148,3 +148,4 @@
(set-frame-parameter nil 'alpha-background 80) ; For current frame (set-frame-parameter nil 'alpha-background 80) ; For current frame
(add-to-list 'default-frame-alist '(alpha-background . 80)) ; For all new frames henceforth (add-to-list 'default-frame-alist '(alpha-background . 80)) ; For all new frames henceforth
(setq inhibit-x-resources t)

21
config/.doom.d/custom.el Normal file
View File

@ -0,0 +1,21 @@
;;; custom.el --- -*- lexical-binding: t; -*-
;; Copyright (C) 2023 Michael Chalupiak
;; Author: Michael Chalupiak <mikecchalupiak@outlook.com>
;; Keywords:
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-safe-themes
'("09e98c608045c7778c67d5671161cfbb741cc25350abe61e3eb2ce798bb88209" "691d671429fa6c6d73098fc6ff05d4a14a323ea0a18787daeb93fde0e48ab18b" "e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "8c7e832be864674c220f9a9361c851917a93f921fedb7717b1b5ece47690c098" "e4a702e262c3e3501dfe25091621fe12cd63c7845221687e36a79e17cf3a67e0" "f5f80dd6588e59cfc3ce2f11568ff8296717a938edd448a947f9823a4e282b66" default))
'(magit-todos-insert-after '(bottom) nil nil "Changed by setter of obsolete option `magit-todos-insert-at'")
'(package-selected-packages '(lsp-ui)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ts-fold-replacement-face ((t (:foreground unspecified :box nil :inherit font-lock-comment-face :weight light)))))

View File

@ -117,8 +117,8 @@
;;agda ; types of types of types of types... ;;agda ; types of types of types of types...
;;beancount ; mind the GAAP ;;beancount ; mind the GAAP
(cc +lsp +tree-sitter) ; C > C++ == 1 (cc +lsp +tree-sitter) ; C > C++ == 1
;;clojure ; java with a lisp (clojure +tree-sitter +lsp) ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs ;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c ;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans ;;csharp ; unity, .NET, and mono shenanigans
@ -167,7 +167,7 @@
(ruby +lsp +tree-sitter +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} (ruby +lsp +tree-sitter +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +lsp +tree-sitter) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() (rust +lsp +tree-sitter) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good ;;scala ; java, but good
;;(scheme +chez) ; a fully conniving family of lisps (scheme +chicken) ; a fully conniving family of lisps
(sh +fish +powershell +lsp +tree-sitter) ; she sells {ba,z,fi}sh shells on the C xor (sh +fish +powershell +lsp +tree-sitter) ; she sells {ba,z,fi}sh shells on the C xor
;;sml ;;sml
;;solidity ; do you need a blockchain? No. ;;solidity ; do you need a blockchain? No.

View File

@ -7,44 +7,48 @@
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: ;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package) ;(package! some-package)
;; To install a package directly from a remote git repo, you must specify a ;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here: ;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/radian-software/straight.el#the-recipe-format ;; https://github.com/radian-software/straight.el#the-recipe-format
;(package! another-package ;(package! another-package
; :recipe (:host github :repo "username/repo")) ; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el ;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify ;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe': ;; `:files' in the `:recipe':
;(package! this-package ;(package! this-package
; :recipe (:host github :repo "username/repo" ; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el"))) ; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here ;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property: ;; with the `:disable' property:
;(package! builtin-package :disable t) ;(package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify ;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe ;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror: ;; from Doom or MELPA/ELPA/Emacsmirror:
;(package! builtin-package :recipe (:nonrecursive t)) ;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package")) ;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag. ;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which ;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see radian-software/straight.el#279) ;; our package manager can't deal with; see radian-software/straight.el#279)
;(package! builtin-package :recipe (:branch "develop")) ;(package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install. ;; Use `:pin' to specify a particular commit to install.
;(package! builtin-package :pin "1a2b3c4d5e") ;(package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to ;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages... ;; release. The `unpin!' macro allows you to unpin single packages...
;(unpin! pinned-package) ;(unpin! pinned-package)
;; ...or multiple packages ;; ...or multiple packages
;(unpin! pinned-package another-pinned-package) ;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t) ;(unpin! t)
(package! rose-pine-doom-emacs
:recipe (:host github :repo "donniebreve/rose-pine-doom-emacs"
:files ("doom-rose-pine-theme.el" "doom-rose-pine-moon-theme.el" "doom-rose-pine-dawn-theme.el")
:pre-build ("make" "install")))

View File

@ -0,0 +1,237 @@
;;; doom-rose-pine-dawn-theme.el --- A light port of Rose Piné Dawn theme -*- lexical-binding: t; no-byte-compile: t; -*-
;;
;; Author: mvllow
;; Ported by: donniebreve
;; Keywords: custom themes, faces
;; Homepage: https://github.com/donniebreve/rose-pine-doom-emacs
;; Package-Requires: ((emacs "25.1") (cl-lib "0.5") (doom-themes "2.2.1"))
;;
;;; Commentary:
;;
;; Thanks to mvllow (https://github.com/rose-pine)
;; Thanks to hlissner (https://github.com/doomemacs/themes)
;;
;;; Code:
(require 'doom-themes)
;;; Variables
(defgroup doom-rose-pine-dawn-theme nil
"Options for the `doom-rose-pine-dawn' theme."
:group 'doom-themes)
(defcustom doom-rose-pine-dawn-brighter-modeline nil
"If non-nil, more vivid colors will be used to style the mode-line."
:group 'doom-rose-pine-dawn-theme
:type 'boolean)
(defcustom doom-rose-pine-dawn-brighter-comments nil
"If non-nil, comments will be highlighted in more vivid colors."
:group 'doom-rose-pine-dawn-theme
:type 'boolean)
(defcustom doom-rose-pine-dawn-padded-modeline doom-themes-padded-modeline
"If non-nil, adds a 4px padding to the mode-line. Can be an integer to determine the exact padding."
:group 'doom-rose-pine-dawn-theme
:type '(choice integer boolean))
;;; Theme definition
(def-doom-theme doom-rose-pine-dawn
"A light port of Rosé Pine Dawn theme"
;; Main theme colors
(
;; name default 256 16
(base '("#faf4ed" "#faf4ed" "black" ))
(surface '("#fffaf3" "#fffaf3" "brightblack" ))
(overlay '("#f2e9de" "#f2e9de" "brightblack" ))
(muted '("#9893a5" "#9893a5" "brightblack" ))
(subtle '("#797593" "#797593" "brightblack" ))
(text '("#575279" "#575279" "brightblack" ))
(love '("#b4637a" "#b4637a" "red" ))
(gold '("#ea9d34" "#ea9d34" "white" ))
(rose '("#d7827e" "#d7827e" "white" ))
(pine '("#286983" "#286983" "white" ))
(foam '("#56949f" "#56949f" "white" ))
(iris '("#907aa9" "#907aa9" "white" ))
(highlightL '("#f4ede8" "#f4ede8" "grey" ))
(highlightM '("#dfdad9" "#dfdad9" "grey" ))
(highlightH '("#cecacd" "#cecacd" "grey" ))
;; Variables required by doom theme
(bg base)
(fg text)
;; These are off-color variants of bg/fg, used primarily for `solaire-mode',
;; but can also be useful as a basis for subtle highlights (e.g. for hl-line
;; or region), especially when paired with the `doom-darken', `doom-lighten',
;; and `doom-blend' helper functions.
(bg-alt surface)
(fg-alt text)
;; These should represent a spectrum from bg to fg, where base0 is a starker
;; bg and base8 is a starker fg. For example, if bg is light grey and fg is
;; dark grey, base0 should be white and base8 should be black.
(base0 surface)
(base1 base)
(base2 highlightL)
(base3 overlay)
(base4 highlightM)
(base5 highlightH)
(base6 muted)
(base7 subtle)
(base8 text)
(grey muted)
(red love)
(orange gold)
(green pine)
(teal pine)
(yellow rose)
(blue pine)
(dark-blue pine)
(magenta iris)
(violet iris)
(cyan foam)
(dark-cyan foam)
;; Variables required by doom theme ends here
;; Required face categories for syntax highlighting
(highlight subtle) ; cursor
(selection base) ; can't figure out where this is used
(region overlay) ; visual selection
(vertical-bar surface) ; window split
(comments (if doom-rose-pine-dawn-brighter-comments subtle muted))
(doc-comments (if doom-rose-pine-dawn-brighter-comments subtle muted))
(builtin pine)
(constants iris)
(functions pine)
(keywords pine)
(methods foam)
(numbers rose)
(operators gold)
(strings gold)
(type rose)
(variables iris)
(error love)
(success foam)
(warning gold)
(vc-added foam)
(vc-deleted love)
(vc-modified gold)
;; Other categories
;; Modeline
(modeline-bg (if doom-rose-pine-dawn-brighter-modeline overlay surface))
(modeline-fg text)
(modeline-bg-alt (if doom-rose-pine-dawn-brighter-modeline muted overlay))
(modeline-fg-alt text) ; should this be darker or lighter?
(modeline-bg-inactive base)
(modeline-fg-inactive subtle)
(modeline-bg-inactive-alt base)
(modeline-fg-inactive-alt subtle)
(modeline-pad
(when doom-rose-pine-dawn-padded-modeline
if (integerp doom-rose-pine-dawn-padded-modeline) doom-rose-pine-padded-modeline 4)))
;; Base theme face overrides
(
;; Font
((font-lock-comment-face &override)
:slant 'italic
:background (if doom-rose-pine-dawn-brighter-comments (doom-blend teal base 0.07)))
((font-lock-type-face &override) :slant 'italic)
((font-lock-builtin-face &override) :slant 'italic)
((font-lock-function-name-face &override) :foreground type)
((font-lock-keyword-face &override) :weight 'bold)
((font-lock-constant-face &override) :weight 'bold)
;; Highlight line
(hl-line
:background highlightL)
;; Line numbers
((line-number &override) :foreground muted)
((line-number-current-line &override) :foreground text)
;; Mode line
(mode-line
:background modeline-bg
:foreground modeline-fg
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg)))
(mode-line-inactive
:background modeline-bg-inactive
:foreground modeline-fg-inactive
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-inactive)))
(mode-line-emphasis
:foreground (if doom-rose-pine-dawn-brighter-modeline text subtle))
;; Company
(company-tooltip-selection :background blue :foreground muted)
;; CSS mode <built-in> / scss-mode
(css-proprietary-property :foreground orange)
(css-property :foreground green)
(css-selector :foreground green)
;; Doom mode line
(doom-modeline-bar :background green) ; The line to the left
(doom-modeline-evil-emacs-state :foreground magenta) ; The dot color when in emacs mode
(doom-modeline-evil-normal-state :foreground green) ; The dot color when in normal mode
(doom-modeline-evil-visual-state :foreground magenta) ; The dot color when in visual mode
(doom-modeline-evil-insert-state :foreground orange) ; The dot color when in insert mode
;; Helm
(helm-selection :foreground base :weight 'bold :background blue)
;; Ivy
(ivy-current-match :background highlightL :distant-foreground fg)
(ivy-minibuffer-match-face-1 :foreground pine :background nil :weight 'bold)
(ivy-minibuffer-match-face-2 :foreground iris :background nil :weight 'bold)
(ivy-minibuffer-match-face-3 :foreground gold :background nil :weight 'bold)
(ivy-minibuffer-match-face-4 :foreground rose :background nil :weight 'bold)
(ivy-minibuffer-match-highlight :foreground magenta :weight 'bold)
(ivy-posframe :background modeline-bg-alt)
;; Markdown mode
(markdown-markup-face :foreground text)
(markdown-header-face :inherit 'bold :foreground red)
((markdown-code-face &override) :background surface)
;; org <built-in>
(org-block :background (doom-blend yellow bg 0.04) :extend t)
(org-block-background :background (doom-blend yellow bg 0.04))
(org-block-begin-line :background (doom-blend yellow bg 0.08) :foreground comments :extend t)
(org-block-end-line :background (doom-blend yellow bg 0.08) :foreground comments :extend t)
(org-level-1 :foreground gold)
(org-level-2 :foreground rose)
(org-level-3 :foreground pine)
(org-level-4 :foreground iris)
(org-level-5 :foreground gold)
(org-level-6 :foreground rose)
(org-level-7 :foreground pine)
(org-level-8 :foreground iris)
;; Solaire mode line
(solaire-mode-line-face
:inherit 'mode-line
:background modeline-bg-alt
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-alt)))
(solaire-mode-line-inactive-face
:inherit 'mode-line-inactive
:background modeline-bg-inactive-alt
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-inactive-alt)))
;; Widget
(widget-field :foreground fg :background muted)
(widget-single-line-field :foreground fg :background muted)
;; Swiper
(swiper-line-face :background highlightM)
(swiper-match-face-1 :inherit 'ivy-minibuffer-match-face-1)
(swiper-match-face-2 :inherit 'ivy-minibuffer-match-face-2)
(swiper-match-face-3 :inherit 'ivy-minibuffer-match-face-3)
(swiper-match-face-4 :inherit 'ivy-minibuffer-match-face-4)))
;;; doom-rose-pine-dawn-theme.el ends here

View File

@ -0,0 +1,244 @@
;;; doom-rose-pine-moon-theme.el --- A medium port of Rosé Pine Moon theme -*- lexical-binding: t; no-byte-compile: t; -*-
;;
;; Author: mvllow
;; Ported by: donniebreve
;; Keywords: custom themes, faces
;; Homepage: https://github.com/donniebreve/rose-pine-doom-emacs
;; Package-Requires: ((emacs "25.1") (cl-lib "0.5") (doom-themes "2.2.1"))
;;
;;; Commentary:
;;
;; Thanks to mvllow (https://github.com/rose-pine)
;; Thanks to hlissner (https://github.com/doomemacs/themes)
;;
;;; Code:
(require 'doom-themes)
;;; Variables
(defgroup doom-rose-pine-moon-theme nil
"Options for the `doom-rose-pine-moon' theme."
:group 'doom-themes)
(defcustom doom-rose-pine-moon-brighter-modeline nil
"If non-nil, more vivid colors will be used to style the mode-line."
:group 'doom-rose-pine-moon-theme
:type 'boolean)
(defcustom doom-rose-pine-moon-brighter-comments nil
"If non-nil, comments will be highlighted in more vivid colors."
:group 'doom-rose-pine-moon-theme
:type 'boolean)
(defcustom doom-rose-pine-moon-brighter-text nil
"If non-nil, default text will be brighter."
:group 'doom-rose-pine-moon-theme
:type 'boolean)
(defcustom doom-rose-pine-moon-padded-modeline doom-themes-padded-modeline
"If non-nil, adds a 4px padding to the mode-line. Can be an integer to determine the exact padding."
:group 'doom-rose-pine-moon-theme
:type '(choice integer boolean))
;;; Theme definition
(def-doom-theme doom-rose-pine-moon
"A medium port of Rosé Pine Moon theme"
;; Main theme colors
(
;; name default 256 16
(base '("#232136" "#232136" "black" ))
(surface '("#2a273f" "#2a273f" "brightblack" ))
(overlay '("#393552" "#393552" "brightblack" ))
(muted '("#6e6a86" "#6e6a86" "brightblack" ))
(subtle '("#908caa" "#908caa" "brightblack" ))
(text '("#e0def4" "#e0def4" "brightblack" ))
(love '("#eb6f92" "#eb6f92" "red" ))
(gold '("#f6c177" "#f6c177" "white" ))
(rose '("#ea9a97" "#ea9a97" "white" ))
(pine '("#3e8fb0" "#3e8fb0" "white" ))
(foam '("#9ccfd8" "#9ccfd8" "white" ))
(iris '("#c4a7e7" "#c4a7e7" "white" ))
(highlightL '("#2a283e" "#2a283e" "white" ))
(highlightM '("#44415a" "#44415a" "white" ))
(highlightH '("#56526e" "#56526e" "white" ))
;; Variables required by doom theme
;; These are required by doom theme and used in various places
(bg base)
(fg text)
;; These are off-color variants of bg/fg, used primarily for `solaire-mode',
;; but can also be useful as a basis for subtle highlights (e.g. for hl-line
;; or region), especially when paired with the `doom-darken', `doom-lighten',
;; and `doom-blend' helper functions.
(bg-alt surface)
(fg-alt text)
;; These should represent a spectrum from bg to fg, where base0 is a starker
;; bg and base8 is a starker fg. For example, if bg is light grey and fg is
;; dark grey, base0 should be white and base8 should be black.
(base0 base)
(base1 surface)
(base2 highlightL)
(base3 overlay)
(base4 highlightM)
(base5 highlightH)
(base6 muted)
(base7 subtle)
(base8 text)
(grey muted)
(red love)
(orange gold)
(green pine)
(teal foam)
(yellow rose)
(pink rose)
(blue pine)
(dark-blue pine)
(magenta iris)
(violet iris)
(cyan foam)
(dark-cyan pine)
;; Variables required by doom theme ends here
;; Required face categories for syntax highlighting
(highlight subtle) ; cursor
(selection base) ; can't figure out where this is used
(region overlay) ; visual selection
(vertical-bar surface) ; window split
(comments (if doom-rose-pine-moon-brighter-comments subtle muted))
(doc-comments (if doom-rose-pine-moon-brighter-comments subtle muted))
(builtin pine)
(constants iris)
(functions pine)
(keywords pine)
(methods foam)
(numbers rose)
(operators gold)
(strings gold)
(type rose)
(variables iris)
(error love)
(success foam)
(warning gold)
(vc-added foam)
(vc-deleted love)
(vc-modified gold)
;; Other categories
;; Modeline
(modeline-bg (if doom-rose-pine-moon-brighter-modeline overlay surface))
(modeline-fg text)
(modeline-bg-alt (if doom-rose-pine-moon-brighter-modeline muted overlay))
(modeline-fg-alt text) ; should this be darker or lighter?
(modeline-bg-inactive base)
(modeline-fg-inactive subtle)
(modeline-bg-inactive-alt base)
(modeline-fg-inactive-alt subtle)
(modeline-pad
(when doom-rose-pine-moon-padded-modeline
if (integerp doom-rose-pine-moon-padded-modeline) doom-rose-pine-padded-modeline 4)))
;; Base theme face overrides
(
;; Font
((font-lock-comment-face &override)
:slant 'italic
:background (if doom-rose-pine-moon-brighter-comments (doom-blend teal base 0.07)))
((font-lock-type-face &override) :slant 'italic)
((font-lock-builtin-face &override) :slant 'italic)
((font-lock-function-name-face &override) :foreground type)
((font-lock-keyword-face &override) :weight 'bold)
((font-lock-constant-face &override) :weight 'bold)
;; Highlight line
(hl-line
:background surface)
;; Line numbers
((line-number &override) :foreground muted)
((line-number-current-line &override) :foreground text)
;; Mode line
(mode-line
:background modeline-bg
:foreground modeline-fg
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg)))
(mode-line-inactive
:background modeline-bg-inactive
:foreground modeline-fg-inactive
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-inactive)))
(mode-line-emphasis
:foreground (if doom-rose-pine-moon-brighter-modeline text subtle))
;; Company
(company-tooltip-selection :background blue :foreground muted)
;; CSS mode <built-in> / scss-mode
(css-proprietary-property :foreground orange)
(css-property :foreground green)
(css-selector :foreground green)
;; Doom mode line
(doom-modeline-bar :background green) ; The line to the left
(doom-modeline-evil-emacs-state :foreground magenta) ; The dot color when in emacs mode
(doom-modeline-evil-normal-state :foreground green) ; The dot color when in normal mode
(doom-modeline-evil-visual-state :foreground magenta) ; The dot color when in visual mode
(doom-modeline-evil-insert-state :foreground orange) ; The dot color when in insert mode
;; Helm
(helm-selection :foreground base :weight 'bold :background blue)
;; Ivy
(ivy-current-match :background overlay :distant-foreground fg)
(ivy-minibuffer-match-face-1 :foreground pine :background nil :weight 'bold)
(ivy-minibuffer-match-face-2 :foreground iris :background nil :weight 'bold)
(ivy-minibuffer-match-face-3 :foreground gold :background nil :weight 'bold)
(ivy-minibuffer-match-face-4 :foreground rose :background nil :weight 'bold)
(ivy-minibuffer-match-highlight :foreground magenta :weight 'bold)
(ivy-posframe :background modeline-bg-alt)
;; Markdown mode
(markdown-markup-face :foreground text)
(markdown-header-face :inherit 'bold :foreground red)
((markdown-code-face &override) :background surface)
;; org <built-in>
(org-block :background (doom-blend yellow bg 0.04) :extend t)
(org-block-background :background (doom-blend yellow bg 0.04))
(org-block-begin-line :background (doom-blend yellow bg 0.08) :foreground comments :extend t)
(org-block-end-line :background (doom-blend yellow bg 0.08) :foreground comments :extend t)
(org-level-1 :foreground gold)
(org-level-2 :foreground rose)
(org-level-3 :foreground pine)
(org-level-4 :foreground iris)
(org-level-5 :foreground gold)
(org-level-6 :foreground rose)
(org-level-7 :foreground pine)
(org-level-8 :foreground iris)
;; Solaire mode line
(solaire-mode-line-face
:inherit 'mode-line
:background modeline-bg-alt
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-alt)))
(solaire-mode-line-inactive-face
:inherit 'mode-line-inactive
:background modeline-bg-inactive-alt
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-inactive-alt)))
;; Widget
(widget-field :foreground fg :background muted)
(widget-single-line-field :foreground fg :background muted)
;; Swiper
(swiper-line-face :background highlightM)
(swiper-match-face-1 :inherit 'ivy-minibuffer-match-face-1)
(swiper-match-face-2 :inherit 'ivy-minibuffer-match-face-2)
(swiper-match-face-3 :inherit 'ivy-minibuffer-match-face-3)
(swiper-match-face-4 :inherit 'ivy-minibuffer-match-face-4)))
;;; doom-rose-pine-moon-theme.el ends here

View File

@ -0,0 +1,242 @@
;;; doom-rose-pine-theme.el --- A dark port of Rosé Pine theme -*- lexical-binding: t; no-byte-compile: t; -*-
;;
;; Author: mvllow
;; Ported by: donniebreve
;; Keywords: custom themes, faces
;; Homepage: https://github.com/donniebreve/rose-pine-doom-emacs
;; Package-Requires: ((emacs "25.1") (cl-lib "0.5") (doom-themes "2.2.1"))
;;
;;; Commentary:
;;
;; Thanks to mvllow (https://github.com/rose-pine)
;; Thanks to hlissner (https://github.com/doomemacs/themes)
;;
;;; Code:
(require 'doom-themes)
;;; Variables
(defgroup doom-rose-pine-theme nil
"Options for the `doom-rose-pine' theme."
:group 'doom-themes)
(defcustom doom-rose-pine-brighter-modeline nil
"If non-nil, more vivid colors will be used to style the mode-line."
:group 'doom-rose-pine-theme
:type 'boolean)
(defcustom doom-rose-pine-brighter-comments nil
"If non-nil, comments will be highlighted in more vivid colors."
:group 'doom-rose-pine-theme
:type 'boolean)
(defcustom doom-rose-pine-brighter-text nil
"If non-nil, default text will be brighter."
:group 'doom-rose-pine-theme
:type 'boolean)
(defcustom doom-rose-pine-padded-modeline doom-themes-padded-modeline
"If non-nil, adds a 4px padding to the mode-line. Can be an integer to determine the exact padding."
:group 'doom-rose-pine-theme
:type '(choice integer boolean))
;;; Theme definition
(def-doom-theme doom-rose-pine
"A dark port of Rosé Pine theme"
;; Main theme colors
(
;; name default 256 16
(base '("#191724" "#191724" "black" ))
(surface '("#1f1d2e" "#1f1d2e" "brightblack" ))
(overlay '("#26233a" "#26233a" "brightblack" ))
(muted '("#6e6a86" "#6e6a86" "brightblack" ))
(subtle '("#908caa" "#908caa" "brightblack" ))
(text '("#e0def4" "#e0def4" "brightblack" ))
(love '("#eb6f92" "#eb6f92" "red" ))
(gold '("#f6c177" "#f6c177" "white" ))
(rose '("#ebbcba" "#ebbcba" "white" ))
(pine '("#31748f" "#31748f" "white" ))
(foam '("#9ccfd8" "#9ccfd8" "white" ))
(iris '("#c4a7e7" "#c4a7e7" "white" ))
(highlightL '("#21202e" "#21202e" "grey" ))
(highlightM '("#403d52" "#403d52" "grey" ))
(highlightH '("#524f67" "#524f67" "grey" ))
;; Variables required by doom theme
;; These are required by doom theme and used in various places
(bg base)
(fg text)
;; These are off-color variants of bg/fg, used primarily for `solaire-mode',
;; but can also be useful as a basis for subtle highlights (e.g. for hl-line
;; or region), especially when paired with the `doom-darken', `doom-lighten',
;; and `doom-blend' helper functions.
(bg-alt surface)
(fg-alt text)
;; These should represent a spectrum from bg to fg, where base0 is a starker
;; bg and base8 is a starker fg. For example, if bg is light grey and fg is
;; dark grey, base0 should be white and base8 should be black.
(base0 base)
(base1 surface)
(base2 highlightL)
(base3 overlay)
(base4 highlightM)
(base5 highlightH)
(base6 muted)
(base7 subtle)
(base8 text)
(grey muted)
(red love)
(orange gold)
(green pine)
(teal pine)
(yellow rose)
(blue pine)
(dark-blue pine)
(magenta iris)
(violet iris)
(cyan foam)
(dark-cyan foam)
;; Variables required by doom theme ends here
;; Required face categories for syntax highlighting
(highlight subtle) ; cursor
(selection base) ; can't figure out where this is used
(region overlay) ; visual selection
(vertical-bar surface) ; window split
(comments (if doom-rose-pine-brighter-comments subtle muted))
(doc-comments (if doom-rose-pine-brighter-comments subtle muted))
(builtin pine)
(constants iris)
(functions pine)
(keywords pine)
(methods foam)
(numbers rose)
(operators gold)
(strings gold)
(type rose)
(variables iris)
(error love)
(success foam)
(warning gold)
(vc-added foam)
(vc-deleted love)
(vc-modified gold)
;; Other categories
;; Modeline
(modeline-bg (if doom-rose-pine-brighter-modeline overlay surface))
(modeline-fg text)
(modeline-bg-alt (if doom-rose-pine-brighter-modeline muted overlay))
(modeline-fg-alt text) ; should this be darker or lighter?
(modeline-bg-inactive base)
(modeline-fg-inactive subtle)
(modeline-bg-inactive-alt base)
(modeline-fg-inactive-alt subtle)
(modeline-pad
(when doom-rose-pine-padded-modeline
if (integerp doom-rose-pine-padded-modeline) doom-rose-pine-padded-modeline 4)))
;; Base theme face overrides
(
;; Font
((font-lock-comment-face &override)
:slant 'italic
:background (if doom-rose-pine-brighter-comments (doom-blend teal base 0.07)))
((font-lock-type-face &override) :slant 'italic)
((font-lock-builtin-face &override) :slant 'italic)
((font-lock-function-name-face &override) :foreground type)
((font-lock-keyword-face &override) :weight 'bold)
((font-lock-constant-face &override) :weight 'bold)
;; Highlight line
(hl-line
:background surface)
;; Line numbers
((line-number &override) :foreground muted)
((line-number-current-line &override) :foreground text)
;; Mode line
(mode-line
:background modeline-bg
:foreground modeline-fg
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg)))
(mode-line-inactive
:background modeline-bg-inactive
:foreground modeline-fg-inactive
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-inactive)))
(mode-line-emphasis
:foreground (if doom-rose-pine-brighter-modeline text subtle))
;; Company
(company-tooltip-selection :background blue :foreground muted)
;; CSS mode <built-in> / scss-mode
(css-proprietary-property :foreground orange)
(css-property :foreground green)
(css-selector :foreground green)
;; Doom mode line
(doom-modeline-bar :background green) ; The line to the left
(doom-modeline-evil-emacs-state :foreground magenta) ; The dot color when in emacs mode
(doom-modeline-evil-normal-state :foreground green) ; The dot color when in normal mode
(doom-modeline-evil-visual-state :foreground magenta) ; The dot color when in visual mode
(doom-modeline-evil-insert-state :foreground orange) ; The dot color when in insert mode
;; Helm
(helm-selection :foreground base :weight 'bold :background blue)
;; Ivy
(ivy-current-match :background overlay :distant-foreground fg)
(ivy-minibuffer-match-face-1 :foreground pine :background nil :weight 'bold)
(ivy-minibuffer-match-face-2 :foreground iris :background nil :weight 'bold)
(ivy-minibuffer-match-face-3 :foreground gold :background nil :weight 'bold)
(ivy-minibuffer-match-face-4 :foreground rose :background nil :weight 'bold)
(ivy-minibuffer-match-highlight :foreground magenta :weight 'bold)
(ivy-posframe :background modeline-bg-alt)
;; Markdown mode
(markdown-markup-face :foreground text)
(markdown-header-face :inherit 'bold :foreground red)
((markdown-code-face &override) :background surface)
;; org <built-in>
(org-block :background (doom-blend yellow bg 0.04) :extend t)
(org-block-background :background (doom-blend yellow bg 0.04))
(org-block-begin-line :background (doom-blend yellow bg 0.08) :foreground comments :extend t)
(org-block-end-line :background (doom-blend yellow bg 0.08) :foreground comments :extend t)
(org-level-1 :foreground gold)
(org-level-2 :foreground rose)
(org-level-3 :foreground pine)
(org-level-4 :foreground iris)
(org-level-5 :foreground gold)
(org-level-6 :foreground rose)
(org-level-7 :foreground pine)
(org-level-8 :foreground iris)
;; Solaire mode line
(solaire-mode-line-face
:inherit 'mode-line
:background modeline-bg-alt
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-alt)))
(solaire-mode-line-inactive-face
:inherit 'mode-line-inactive
:background modeline-bg-inactive-alt
:box (if modeline-pad `(:line-width ,modeline-pad :color ,modeline-bg-inactive-alt)))
;; Widget
(widget-field :foreground fg :background muted)
(widget-single-line-field :foreground fg :background muted)
;; Swiper
(swiper-match-face-1 :inherit 'ivy-minibuffer-match-face-1)
(swiper-match-face-2 :inherit 'ivy-minibuffer-match-face-2)
(swiper-match-face-3 :inherit 'ivy-minibuffer-match-face-3)
(swiper-match-face-4 :inherit 'ivy-minibuffer-match-face-4)))
;;; doom-rose-pine-theme.el ends here