203 lines
10 KiB
EmacsLisp
203 lines
10 KiB
EmacsLisp
;;; aldricos-gruvbox-theme.el --- Aldrico's Gruvbox color theme
|
|
|
|
;; Based on "Aldrico's Gruvbox" VS Code theme
|
|
;; Ported to Emacs using fleury-theme.el as structural template
|
|
|
|
(deftheme aldricos-gruvbox "Aldrico's Gruvbox color theme")
|
|
|
|
(let ((bg "#000000")
|
|
(bg-soft "#1c1c1c")
|
|
(bg-hard "#32302f")
|
|
(bg-1 "#383432")
|
|
(bg-2 "#45403d")
|
|
(bg-3 "#504945")
|
|
(bg-4 "#5a524c")
|
|
|
|
(fg "#d4be98")
|
|
(fg-dim "#a89984")
|
|
(fg-dimmer "#928374")
|
|
(fg-faint "#7c6f64")
|
|
|
|
(red "#ea6962")
|
|
(red-dim "#b85651")
|
|
(orange "#e78a4e")
|
|
(yellow "#d8a657")
|
|
(green "#a9b665")
|
|
(green-dim "#8f9a52")
|
|
(aqua "#89b482")
|
|
(blue "#7daea3")
|
|
(purple "#d3869b")
|
|
(orange-dim "#c18f41")
|
|
(blue-dim "#68948a"))
|
|
|
|
(custom-theme-set-faces
|
|
'aldricos-gruvbox
|
|
|
|
;; UI Elements
|
|
`(default ((t (:background ,bg :foreground ,fg))))
|
|
`(cursor ((t (:background ,fg))))
|
|
`(region ((t (:background ,bg-3))))
|
|
`(highlight ((t (:background ,bg-1))))
|
|
`(hl-line ((t (:background ,bg-1))))
|
|
`(fringe ((t (:background ,bg :foreground ,fg-faint))))
|
|
`(vertical-border ((t (:foreground ,bg-4))))
|
|
`(minibuffer-prompt ((t (:foreground ,green :weight bold))))
|
|
`(link ((t (:foreground ,green :underline t))))
|
|
`(link-visited ((t (:foreground ,green-dim :underline t))))
|
|
`(trailing-whitespace ((t (:background ,red))))
|
|
`(secondary-selection ((t (:background ,bg-2))))
|
|
`(shadow ((t (:foreground ,fg-faint))))
|
|
`(tooltip ((t (:background ,bg-hard :foreground ,fg))))
|
|
|
|
;; Line Numbers
|
|
`(line-number ((t (:background ,bg :foreground ,fg-faint))))
|
|
`(line-number-current-line ((t (:background ,bg :foreground ,fg-dimmer))))
|
|
|
|
;; Mode Line
|
|
`(mode-line ((t (:background ,bg-2 :foreground ,fg-dim
|
|
:box (:line-width 1 :color ,bg-4 :style nil)))))
|
|
`(mode-line-inactive ((t (:background ,bg-1 :foreground ,fg-faint
|
|
:box (:line-width 1 :color ,bg-4 :style nil)))))
|
|
`(mode-line-buffer-id ((t (:foreground ,fg :weight bold))))
|
|
|
|
;; Font Lock Faces
|
|
`(font-lock-keyword-face ((t (:foreground ,red))))
|
|
`(font-lock-builtin-face ((t (:foreground ,aqua))))
|
|
`(font-lock-function-name-face ((t (:foreground ,green))))
|
|
`(font-lock-variable-name-face ((t (:foreground ,fg))))
|
|
`(font-lock-variable-use-face ((t (:foreground ,fg))))
|
|
`(font-lock-type-face ((t (:foreground ,blue))))
|
|
`(font-lock-constant-face ((t (:foreground ,purple))))
|
|
`(font-lock-number-face ((t (:foreground ,purple))))
|
|
`(font-lock-string-face ((t (:foreground ,yellow))))
|
|
`(font-lock-doc-face ((t (:foreground ,fg-dimmer :slant italic))))
|
|
`(font-lock-comment-face ((t (:foreground ,fg-dimmer :slant italic))))
|
|
`(font-lock-comment-delimiter-face ((t (:foreground ,fg-dimmer :slant italic))))
|
|
`(font-lock-preprocessor-face ((t (:foreground ,aqua))))
|
|
`(font-lock-warning-face ((t (:foreground ,orange-dim :weight bold))))
|
|
`(font-lock-operator-face ((t (:foreground ,orange))))
|
|
`(font-lock-negation-char-face ((t (:foreground ,orange))))
|
|
`(font-lock-regexp-grouping-backslash ((t (:foreground ,yellow))))
|
|
`(font-lock-regexp-grouping-construct ((t (:foreground ,yellow))))
|
|
|
|
;; Search
|
|
`(isearch ((t (:background ,orange-dim :foreground ,bg :weight bold))))
|
|
`(isearch-fail ((t (:background ,red-dim :foreground ,fg))))
|
|
`(lazy-highlight ((t (:background ,bg-3 :foreground ,green))))
|
|
|
|
;; Show Paren
|
|
`(show-paren-match ((t (:background ,bg-3 :foreground ,fg :weight bold))))
|
|
`(show-paren-mismatch ((t (:background ,red-dim :foreground ,fg :weight bold))))
|
|
|
|
;; Error / Warning / Success
|
|
`(error ((t (:foreground ,red :weight bold))))
|
|
`(warning ((t (:foreground ,orange-dim :weight bold))))
|
|
`(success ((t (:foreground ,green :weight bold))))
|
|
|
|
;; Compilation
|
|
`(compilation-error ((t (:foreground ,red))))
|
|
`(compilation-warning ((t (:foreground ,yellow :weight bold))))
|
|
`(compilation-info ((t (:foreground ,blue))))
|
|
`(compilation-line-number ((t (:foreground ,green))))
|
|
`(compilation-column-number ((t (:foreground ,aqua))))
|
|
`(compilation-mode-line-exit ((t (:foreground ,green :weight bold))))
|
|
`(compilation-mode-line-fail ((t (:foreground ,red :weight bold))))
|
|
`(compilation-mode-line-run ((t (:foreground ,yellow :weight bold))))
|
|
|
|
;; Flycheck
|
|
`(flycheck-error ((t (:underline (:color ,red :style wave)))))
|
|
`(flycheck-warning ((t (:underline (:color ,orange-dim :style wave)))))
|
|
`(flycheck-info ((t (:underline (:color ,blue-dim :style wave)))))
|
|
`(flycheck-fringe-error ((t (:foreground ,red))))
|
|
`(flycheck-fringe-warning ((t (:foreground ,orange-dim))))
|
|
`(flycheck-fringe-info ((t (:foreground ,blue-dim))))
|
|
|
|
;; Diff
|
|
`(diff-added ((t (:foreground ,green))))
|
|
`(diff-removed ((t (:foreground ,red))))
|
|
`(diff-changed ((t (:foreground ,blue))))
|
|
`(diff-header ((t (:foreground ,yellow))))
|
|
`(diff-file-header ((t (:foreground ,yellow :weight bold))))
|
|
`(diff-hunk-header ((t (:foreground ,orange))))
|
|
|
|
;; Dired
|
|
`(dired-directory ((t (:foreground ,blue :weight bold))))
|
|
`(dired-flagged ((t (:foreground ,red))))
|
|
`(dired-ignored ((t (:foreground ,fg-faint))))
|
|
`(dired-mark ((t (:foreground ,yellow))))
|
|
`(dired-marked ((t (:foreground ,orange :weight bold))))
|
|
`(dired-symlink ((t (:foreground ,aqua))))
|
|
`(dired-warning ((t (:foreground ,orange-dim))))
|
|
|
|
;; Org Mode
|
|
`(org-level-1 ((t (:foreground ,red :weight bold))))
|
|
`(org-level-2 ((t (:foreground ,orange :weight bold))))
|
|
`(org-level-3 ((t (:foreground ,yellow :weight bold))))
|
|
`(org-level-4 ((t (:foreground ,green :weight bold))))
|
|
`(org-level-5 ((t (:foreground ,blue :weight bold))))
|
|
`(org-level-6 ((t (:foreground ,purple :weight bold))))
|
|
`(org-level-7 ((t (:foreground ,aqua :weight bold))))
|
|
`(org-level-8 ((t (:foreground ,fg-dim :weight bold))))
|
|
`(org-block ((t (:foreground ,fg :background ,bg-hard))))
|
|
`(org-block-begin-line ((t (:foreground ,fg-faint :background ,bg-hard))))
|
|
`(org-block-end-line ((t (:foreground ,fg-faint :background ,bg-hard))))
|
|
`(org-code ((t (:foreground ,green))))
|
|
`(org-verbatim ((t (:foreground ,yellow))))
|
|
`(org-link ((t (:foreground ,green :underline t))))
|
|
`(org-todo ((t (:foreground ,red :weight bold))))
|
|
`(org-done ((t (:foreground ,aqua :weight bold))))
|
|
`(org-table ((t (:foreground ,blue))))
|
|
`(org-date ((t (:foreground ,blue :underline t))))
|
|
`(org-special-keyword ((t (:foreground ,fg-faint))))
|
|
`(org-tag ((t (:foreground ,fg-faint :weight bold))))
|
|
|
|
;; Markdown
|
|
`(markdown-header-face-1 ((t (:foreground ,red :weight bold))))
|
|
`(markdown-header-face-2 ((t (:foreground ,orange :weight bold))))
|
|
`(markdown-header-face-3 ((t (:foreground ,yellow :weight bold))))
|
|
`(markdown-header-face-4 ((t (:foreground ,green :weight bold))))
|
|
`(markdown-header-face-5 ((t (:foreground ,blue :weight bold))))
|
|
`(markdown-header-face-6 ((t (:foreground ,purple :weight bold))))
|
|
`(markdown-code-face ((t (:foreground ,green :background ,bg-hard))))
|
|
`(markdown-inline-code-face ((t (:foreground ,green))))
|
|
`(markdown-link-face ((t (:foreground ,purple))))
|
|
`(markdown-url-face ((t (:foreground ,green :underline t))))
|
|
`(markdown-list-face ((t (:foreground ,red))))
|
|
`(markdown-bold-face ((t (:weight bold))))
|
|
`(markdown-italic-face ((t (:slant italic))))
|
|
|
|
;; Term / ansi colors
|
|
`(term-color-black ((t (:foreground ,bg-1 :background ,bg-1))))
|
|
`(term-color-red ((t (:foreground ,red :background ,red))))
|
|
`(term-color-green ((t (:foreground ,green :background ,green))))
|
|
`(term-color-yellow ((t (:foreground ,yellow :background ,yellow))))
|
|
`(term-color-blue ((t (:foreground ,blue :background ,blue))))
|
|
`(term-color-magenta ((t (:foreground ,purple :background ,purple))))
|
|
`(term-color-cyan ((t (:foreground ,aqua :background ,aqua))))
|
|
`(term-color-white ((t (:foreground ,fg :background ,fg))))
|
|
|
|
;; Eshell
|
|
`(eshell-prompt ((t (:foreground ,green :weight bold))))
|
|
`(eshell-ls-directory ((t (:foreground ,blue :weight bold))))
|
|
`(eshell-ls-executable ((t (:foreground ,green))))
|
|
`(eshell-ls-symlink ((t (:foreground ,aqua))))
|
|
`(eshell-ls-missing ((t (:foreground ,red))))
|
|
`(eshell-ls-archive ((t (:foreground ,orange))))
|
|
`(eshell-ls-readonly ((t (:foreground ,orange-dim))))
|
|
`(eshell-ls-unreadable ((t (:foreground ,red-dim))))
|
|
|
|
;; Whitespace
|
|
`(whitespace-trailing ((t (:background ,red-dim :foreground ,fg))))
|
|
`(whitespace-space ((t (:background ,bg :foreground ,bg-2))))
|
|
`(whitespace-tab ((t (:background ,bg :foreground ,bg-2))))
|
|
`(whitespace-newline ((t (:foreground ,bg-2))))))
|
|
|
|
(custom-theme-set-variables
|
|
'aldricos-gruvbox
|
|
'(ansi-color-names-vector
|
|
["#383432" "#ea6962" "#a9b665" "#d8a657" "#7daea3" "#d3869b" "#89b482" "#d4be98"]))
|
|
|
|
(provide-theme 'aldricos-gruvbox)
|
|
|
|
;;; aldricos-gruvbox-theme.el ends here
|