2020-01-21 00:22:54 +00:00
|
|
|
;;; doom-horizon-theme.el --- Inspired by VSCode Horizon -*- no-byte-compile: t; -*-
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
;;; This theme was inspired by the port of Horizon to Emacs
|
|
|
|
;;; see: https://github.com/aodhneine/horizon-theme.el
|
|
|
|
|
|
|
|
(require 'doom-themes)
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
(defgroup doom-horizon-theme nil
|
|
|
|
"Options for doom-themes"
|
|
|
|
:group 'doom-themes)
|
|
|
|
|
|
|
|
(defcustom doom-horizon-brighter-modeline nil
|
|
|
|
"If non-nil, more vivid colors will be used to style the mode-line."
|
|
|
|
:group 'doom-horizon-theme
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
|
|
(defcustom doom-horizon-brighter-comments nil
|
|
|
|
"If non-nil, comments will be highlighted in more vivid colors."
|
|
|
|
:group 'doom-horizon-theme
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
|
|
(defcustom doom-horizon-comment-bg doom-horizon-brighter-comments
|
|
|
|
"If non-nil, comments will have a subtle, darker background. Enhancing their legibility."
|
|
|
|
:group 'doom-horizon-theme
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
|
|
(defcustom doom-horizon-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-horizon-theme
|
|
|
|
:type '(choice integer boolean))
|
|
|
|
|
|
|
|
;;
|
|
|
|
(def-doom-theme doom-horizon
|
|
|
|
"A port of the port of the Visual Studio Code theme Horizon"
|
|
|
|
|
|
|
|
;; name default 256 16
|
2020-02-10 16:22:21 +00:00
|
|
|
( (bg '("#1c1e26" "#232530" nil ))
|
|
|
|
(bg-alt '("#232530" "#1c1e26" nil ))
|
2020-01-21 00:22:54 +00:00
|
|
|
(base0 '("#16161c" "#16161c" "black" ))
|
|
|
|
(base1 '("#1a1c23" "#1a1c23" "brightblack" ))
|
2020-02-10 16:22:21 +00:00
|
|
|
(base2 '("#1d1f27" "#1c1e26" "brightblack" ))
|
2020-01-21 00:22:54 +00:00
|
|
|
(base3 '("#232530" "#232530" "brightblack" ))
|
|
|
|
(base4 '("#6a6a6a" "#6a6a6a" "brightblack" ))
|
|
|
|
(base5 '("#f9cec3" "#f9cec3" "brightblack" ))
|
|
|
|
(base6 '("#f9cbbe" "#f9cbbe" "brightblack" ))
|
|
|
|
(base7 '("#fadad1" "#fadad1" "brightblack" ))
|
|
|
|
(base8 '("#fdf0ed" "#fdf0ed" "white" ))
|
|
|
|
(fg-alt '("#fdf0ed" "#fdf0ed" "brightwhite" ))
|
|
|
|
(fg '("#c7c9cb" "#c7c9cb" "white" ))
|
|
|
|
|
|
|
|
(grey base4)
|
|
|
|
(red '("#e95678" "#e95678" "red" ))
|
|
|
|
(orange '("#f09383" "#f09383" "brightred" ))
|
|
|
|
(green '("#09f7a0" "#09f7a0" "green" ))
|
|
|
|
(teal '("#21bfc2" "#21bfc2" "brightgreen" ))
|
|
|
|
(yellow '("#fab795" "#fab795" "yellow" ))
|
|
|
|
(blue '("#21bfc2" "#21bfc2" "brightblue" ))
|
|
|
|
(dark-blue '("#25b2bc" "#25b2bc" "blue" ))
|
|
|
|
(magenta '("#6c6f93" "#6c6f93" "magenta" ))
|
|
|
|
(violet '("#b877db" "#b877db" "brightmagenta"))
|
|
|
|
(cyan '("#59e3e3" "#59e3e3" "brightcyan" ))
|
|
|
|
(dark-cyan '("#27d797" "#27d797" "cyan" ))
|
|
|
|
|
|
|
|
;; additional highlighting colours for horizon
|
|
|
|
(hor-highlight (doom-lighten base3 0.05))
|
2020-01-25 14:43:57 +00:00
|
|
|
(hor-highlight-selected (doom-lighten base3 0.1))
|
|
|
|
(hor-highlight-bright (doom-lighten base3 0.2))
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
;; face categories -- required for all themes
|
2020-02-10 16:22:21 +00:00
|
|
|
(highlight red)
|
2020-01-21 00:22:54 +00:00
|
|
|
(vertical-bar base0)
|
|
|
|
(selection violet)
|
|
|
|
(builtin violet)
|
2020-06-14 17:07:14 +00:00
|
|
|
(comments (if doom-horizon-brighter-comments magenta hor-highlight-bright))
|
2020-01-21 00:22:54 +00:00
|
|
|
(doc-comments yellow)
|
2020-02-10 16:22:21 +00:00
|
|
|
(constants orange)
|
2020-01-21 00:22:54 +00:00
|
|
|
(functions teal)
|
|
|
|
(keywords violet)
|
|
|
|
(methods magenta)
|
|
|
|
(operators teal)
|
|
|
|
(type teal)
|
|
|
|
(strings yellow)
|
|
|
|
(variables red)
|
|
|
|
(numbers orange)
|
2020-01-21 12:36:36 +00:00
|
|
|
(region hor-highlight)
|
2020-01-21 00:22:54 +00:00
|
|
|
(error red)
|
|
|
|
(warning dark-cyan)
|
|
|
|
(success green)
|
|
|
|
(vc-modified orange)
|
|
|
|
(vc-added green)
|
|
|
|
(vc-deleted red)
|
|
|
|
|
|
|
|
|
|
|
|
;; custom categories
|
|
|
|
(hidden `(,(car bg) "black" "black"))
|
|
|
|
(-modeline-bright doom-horizon-brighter-modeline)
|
|
|
|
(-modeline-pad
|
|
|
|
(when doom-horizon-padded-modeline
|
|
|
|
(if (integerp doom-horizon-padded-modeline) doom-horizon-padded-modeline 4)))
|
|
|
|
|
2020-02-17 04:57:16 +00:00
|
|
|
(modeline-fg (doom-darken fg 0.2))
|
|
|
|
(modeline-fg-alt (doom-lighten bg 0.2))
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
(modeline-bg
|
|
|
|
(if -modeline-bright
|
|
|
|
base4
|
|
|
|
`(,(car base1), (cdr fg-alt))))
|
|
|
|
(modeline-bg-l
|
|
|
|
(if -modeline-bright
|
|
|
|
base4
|
|
|
|
`(,(car base1), (cdr fg))))
|
2020-02-14 00:26:14 +00:00
|
|
|
(modeline-bg-inactive base1)
|
|
|
|
(modeline-bg-inactive-l base1))
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
;; --- extra faces ------------------------
|
2020-03-20 12:47:04 +00:00
|
|
|
((elscreen-tab-other-screen-face :background "#353a42" :foreground "#1e2022")
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
;; ((line-number &override) :foreground (doom-lighten bg 0.05))
|
2020-01-25 14:43:57 +00:00
|
|
|
((line-number &override) :foreground hor-highlight-selected)
|
|
|
|
((line-number-current-line &override) :foreground hor-highlight-bright)
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
(font-lock-comment-face
|
|
|
|
:inherit 'italic
|
|
|
|
:foreground comments
|
2020-06-14 17:07:14 +00:00
|
|
|
:background (if doom-horizon-comment-bg (doom-lighten bg 0.03)))
|
2020-01-21 00:22:54 +00:00
|
|
|
(font-lock-doc-face
|
|
|
|
:inherit 'font-lock-comment-face
|
|
|
|
:foreground doc-comments)
|
|
|
|
|
|
|
|
(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-alt
|
|
|
|
:box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive)))
|
|
|
|
(mode-line-emphasis
|
|
|
|
:foreground (if -modeline-bright base8 highlight))
|
|
|
|
(header-line :inherit 'mode-line :background fg-alt)
|
|
|
|
(mode-line-highlight :background base1 :foreground fg)
|
|
|
|
|
|
|
|
;; modeline
|
|
|
|
(doom-modeline-bar :background (if -modeline-bright modeline-bg highlight))
|
|
|
|
(doom-modeline-highlight :foreground (doom-lighten bg 0.3))
|
|
|
|
(doom-modeline-project-dir :foreground red :inherit 'bold )
|
|
|
|
(doom-modeline-buffer-path :foreground red)
|
|
|
|
(doom-modeline-buffer-file :foreground fg)
|
|
|
|
(doom-modeline-buffer-modified :foreground violet)
|
|
|
|
(doom-modeline-panel :background base1)
|
|
|
|
(doom-modeline-urgent :foreground modeline-fg)
|
2020-03-24 16:57:17 +00:00
|
|
|
(doom-modeline-info :foreground cyan)
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
(solaire-mode-line-face
|
|
|
|
:inherit 'mode-line
|
|
|
|
:background modeline-bg-l
|
|
|
|
:box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-l)))
|
|
|
|
(solaire-mode-line-inactive-face
|
|
|
|
:inherit 'mode-line-inactive
|
|
|
|
:background modeline-bg-inactive-l
|
|
|
|
:box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-l)))
|
|
|
|
|
|
|
|
;; --- major-mode faces -------------------
|
|
|
|
;; NOTE: there are lots of tweaks here to mimic the VSCode theme
|
|
|
|
|
|
|
|
;; css-mode / scss-mode
|
|
|
|
(css-proprietary-property :foreground violet)
|
|
|
|
(css-property :foreground fg)
|
|
|
|
(css-selector :foreground red)
|
|
|
|
|
2020-03-20 12:47:04 +00:00
|
|
|
;; mic-paren
|
|
|
|
(paren-face-match :foreground green :background base0 :weight 'ultra-bold)
|
|
|
|
(paren-face-mismatch :foreground yellow :background base0 :weight 'ultra-bold)
|
|
|
|
(paren-face-no-match :inherit 'paren-face-mismatch :weight 'ultra-bold)
|
|
|
|
|
2020-01-21 00:22:54 +00:00
|
|
|
;; markdown-mode
|
|
|
|
(markdown-markup-face :foreground cyan)
|
|
|
|
(markdown-link-face :foreground orange)
|
|
|
|
(markdown-link-title-face :foreground yellow)
|
|
|
|
(markdown-header-face :foreground red :inherit 'bold)
|
|
|
|
(markdown-header-delimiter-face :foreground red :inherit 'bold)
|
|
|
|
(markdown-language-keyword-face :foreground orange)
|
|
|
|
(markdown-markup-face :foreground fg)
|
|
|
|
(markdown-bold-face :foreground violet)
|
|
|
|
(markdown-table-face :foreground fg :background base1)
|
|
|
|
((markdown-code-face &override) :foreground orange :background base1)
|
|
|
|
|
|
|
|
;; outline (affects org-mode)
|
|
|
|
((outline-1 &override) :foreground blue :background nil)
|
|
|
|
|
|
|
|
;; org-mode
|
|
|
|
((org-block &override) :background base1)
|
|
|
|
((org-block-begin-line &override) :background base1 :foreground comments)
|
|
|
|
(org-hide :foreground hidden)
|
|
|
|
(org-link :inherit 'underline :foreground yellow)
|
|
|
|
(org-agenda-done :foreground cyan)
|
2020-02-10 16:22:21 +00:00
|
|
|
(solaire-header-line-face :background bg-alt :foreground fg)
|
2020-01-25 14:50:59 +00:00
|
|
|
(header-line :background base2 :foreground fg)
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
;; tooltip
|
|
|
|
(tooltip :background base0 :foreground fg)
|
|
|
|
|
|
|
|
;; haskell
|
|
|
|
(haskell-type-face :foreground violet)
|
|
|
|
(haskell-constructor-face :foreground yellow)
|
|
|
|
(haskell-operator-face :foreground fg)
|
|
|
|
(haskell-literate-comment-face :foreground hor-highlight-selected)
|
|
|
|
|
|
|
|
;; magit
|
|
|
|
(magit-section-heading :foreground red)
|
|
|
|
(magit-branch-remote :foreground orange)
|
|
|
|
|
|
|
|
;; --- extra variables ---------------------
|
|
|
|
;; basics
|
|
|
|
(link :foreground yellow :inherit 'underline)
|
2020-03-23 13:13:04 +00:00
|
|
|
(fringe :background bg)
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
;; evil
|
|
|
|
(evil-ex-search :background hor-highlight-selected :foreground fg)
|
|
|
|
(evil-ex-lazy-highlight :background hor-highlight :foreground fg)
|
|
|
|
|
|
|
|
;; ivy
|
2020-01-21 12:36:36 +00:00
|
|
|
(ivy-current-match :background hor-highlight :distant-foreground nil)
|
2020-01-21 00:22:54 +00:00
|
|
|
(ivy-posframe-cursor :background red :foreground base0)
|
2020-02-10 16:22:21 +00:00
|
|
|
(ivy-minibuffer-match-face-2 :foreground red :weight 'bold)
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
;; company
|
2020-01-21 12:36:36 +00:00
|
|
|
(company-box-background :background base0 :foreground fg)
|
2020-02-10 16:22:21 +00:00
|
|
|
(company-tooltip-common :foreground red :weight 'bold)
|
2020-01-21 12:36:36 +00:00
|
|
|
(company-tooltip-selection :background hor-highlight :foreground fg)
|
2020-05-31 00:03:51 +00:00
|
|
|
|
2020-02-10 16:22:21 +00:00
|
|
|
;; treemacs
|
|
|
|
(treemacs-root-face :foreground fg :weight 'bold :height 1.2)
|
|
|
|
(doom-themes-treemacs-root-face :foreground fg :weight 'ultra-bold :height 1.2)
|
|
|
|
(doom-themes-treemacs-file-face :foreground fg)
|
|
|
|
(treemacs-directory-face :foreground fg)
|
|
|
|
(treemacs-git-modified-face :foreground green)
|
|
|
|
|
|
|
|
;; js2-mode
|
2020-02-14 00:26:14 +00:00
|
|
|
(js2-object-property :foreground red)
|
2020-05-31 00:03:51 +00:00
|
|
|
|
2020-02-10 16:22:21 +00:00
|
|
|
;; rjsx-mode
|
|
|
|
(rjsx-tag :foreground red)
|
|
|
|
(rjsx-tag-bracket-face :foreground red)
|
|
|
|
(rjsx-attr :foreground cyan :slant 'italic :weight 'medium)
|
2020-05-31 00:03:51 +00:00
|
|
|
|
|
|
|
;; web-mode
|
|
|
|
(web-mode-html-tag-bracket-face :foreground red)
|
|
|
|
(web-mode-html-tag-face :foreground red)
|
|
|
|
(web-mode-html-attr-name-face :foreground orange)
|
2020-01-21 12:36:36 +00:00
|
|
|
))
|
|
|
|
|
2020-01-21 00:22:54 +00:00
|
|
|
|
|
|
|
;;; doom-horizon-theme.el ends here
|