/ carp-theme.el
carp-theme.el
  1  ;;; carp-theme.el --- Carp theme -*- lexical-binding: t; -*-
  2  
  3  ;; Copyright (C) 2024 David Goudou
  4  
  5  ;; Author: David Goudou <david.goudou@gmail.com>
  6  ;; Version: 0.0.3
  7  ;; Package-Requires: ((emacs "29.1"))
  8  ;; Homepage: https://codeberg.org/seahorse/carp-theme
  9  
 10  ;; This file is not part of GNU Emacs.
 11  
 12  ;; This program is free software: you can redistribute it and/or modify
 13  ;; it under the terms of the GNU General Public License as published by
 14  ;; the Free Software Foundation, either version 3 of the License, or
 15  ;; (at your option) any later version.
 16  
 17  ;; This program is distributed in the hope that it will be useful,
 18  ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 19  ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 20  ;; GNU General Public License for more details.
 21  
 22  ;; You should have received a copy of the GNU General Public License
 23  ;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
 24  
 25  ;;; Commentary:
 26  ;; Carp is a dark, multicoloured theme for GNU Emacs
 27  
 28  ;;; Code:
 29  
 30  (deftheme carp "Carp theme.")
 31  
 32  (let* ((fg "#d6deeb")
 33         (bg "#1b191b")
 34         (shadow "#958b81")
 35         (region "#363B5e")
 36         (cursor "#b05080")
 37         (hl-line "#476f6c")
 38         (blue-0 "#78b0d3")
 39         (blue-1 "#6172c6")
 40         (green-0 "#97ef9f")
 41         (green-1 "#85eac3")
 42         (green-2 "#1f7500")
 43         (grey-0 "#BDC3C7")
 44         (grey-1 "#8B8B8B")
 45         (grey-2 "#6C757D")
 46         (orange-0 "#f9c686")
 47         (orange-1 "#d8893a")
 48         (purple-0 "#aa89d6")
 49         (pink-0 "#db538e")
 50         (red-0 "#d14051")
 51         (red-1 "#f44649")
 52         (red-2 "#ad034d")
 53         (red-3 "#bf466c")
 54         (yellow-0 "#fcfa6c"))
 55  
 56    (custom-theme-set-faces
 57     'carp
 58     `(default ((t (:foreground ,fg :background ,bg))))
 59     `(display-time-date-and-time ((t (:foreground ,grey-2))))
 60     `(diredp-date-time ((t (:foreground ,fg))))
 61     `(dired-directory ((t (:foreground ,blue-0))))
 62     `(diredp-deletion ((t (:foreground ,red-0 :background ,bg))))
 63     `(diredp-dir-heading ((t (:foreground ,yellow-0 :background ,bg))))
 64     `(diredp-dir-name ((t (:foreground ,green-1 :background ,bg))))
 65     `(diredp-dir-priv ((t (:foreground ,green-1 :background ,bg))))
 66     `(diredp-exec-priv ((t (:foreground ,fg :background ,bg))))
 67     `(diredp-file-name ((t (:foreground ,fg))))
 68     `(diredp-file-suffix ((t (:foreground ,fg))))
 69     `(diredp-link-priv ((t (:foreground ,fg))))
 70     `(diredp-number ((t (:foreground ,fg))))
 71     `(diredp-no-priv ((t (:foreground ,fg :background ,bg))))
 72     `(diredp-rare-priv ((t (:foreground ,red-0 :background ,bg))))
 73     `(diredp-read-priv ((t (:foreground ,fg :background ,bg))))
 74     `(diredp-symlink ((t (:foreground ,red-3))))
 75     `(diredp-write-priv ((t (:foreground ,fg :background ,bg))))
 76     `(font-lock-builtin-face ((t (:foreground ,blue-1))))
 77     `(font-lock-comment-face ((t (:foreground ,grey-0 :slant italic))))
 78     `(font-lock-constant-face ((t (:foreground ,orange-1))))
 79     `(font-lock-doc-face ((t (:foreground ,green-0))))
 80     `(font-lock-function-name-face ((t (:foreground ,fg))))
 81     `(font-lock-keyword-face ((t (:foreground ,yellow-0 :slant italic))))
 82     `(font-lock-preprocessor-face ((t (:foreground ,green-1))))
 83     `(font-lock-string-face ((t (:foreground ,pink-0))))
 84     `(font-lock-type-face ((t (:foreground ,orange-0))))
 85     `(font-lock-variable-name-face ((t (:foreground ,fg))))
 86     `(font-lock-warning-face ((t (:foreground ,red-1))))
 87     `(font-lock-regexp-grouping-construct ((t (:foreground ,yellow-0 :bold t))))
 88     `(font-lock-regexp-grouping-backslash ((t (:foreground ,red-0 :bold t))))
 89     `(fringe ((t (:foreground ,fg :background ,bg))))
 90     `(parenthesis ((t (:foreground ,grey-2))))
 91     `(header-line ((t (:foreground ,fg))))
 92     `(highlight ((t (:foreground ,red-1))))
 93     `(highlight-indentation-face ((t (:background ,grey-1))))
 94     `(highlight-indentation-current-column-face ((t (:background ,grey-1))))
 95     `(hl-line ((t (:foreground ,hl-line))))
 96     `(isearch ((t (:foreground ,fg :background ,red-1))))
 97     `(isearch-fail ((t (:background ,red-1))))
 98     `(lazy-highlight ((t (:foreground ,red-1 :background unspecified))))
 99     `(match ((t (:background ,red-1))))
100     `(minibuffer-prompt ((t (:foreground ,fg))))
101     `(mode-line ((t (:background unspecified :box unspecified :overline ,shadow))))
102     `(mode-line-inactive ((t (:foreground ,shadow :background unspecified :box unspecified :overline ,shadow))))
103     `(org-ellipsis ((t (:foreground ,blue-1 :underline nil))))
104     `(org-block-begin-line ((t (:slant italic))))
105     `(org-checkbox ((t (:foreground ,green-1))))
106     `(org-date ((t (:foreground ,grey-0))))
107     `(org-document-info-keyword ((t (:foreground ,green-1))))
108     `(org-document-title ((t (:foreground ,green-1))))
109     `(org-verbatim ((t (:foreground ,blue-0))))
110     `(org-code ((t (:foreground ,purple-0))))
111     `(org-done ((t (:foreground ,green-2))))
112     `(org-level-1 ((t (:foreground ,blue-0))))
113     `(org-level-2 ((t (:foreground ,green-0))))
114     `(org-level-3 ((t (:foreground ,orange-0))))
115     `(org-level-4 ((t (:foreground ,purple-0))))
116     `(org-level-5 ((t (:foreground ,red-0))))
117     `(org-level-6 ((t (:foreground ,yellow-0))))
118     `(org-link ((t (:foreground ,blue-0))))
119     `(org-meta-line ((t (:foreground ,grey-0))))
120     `(org-special-keyword ((t (:foreground ,purple-0))))
121     `(org-todo ((t (:foreground ,red-3))))
122     `(region ((t (:foreground unspecified :background ,region))))
123     `(trailing-whitespace ((t (:background ,red-1))))
124     `(vertical-border ((t (:foreground ,shadow :background ,shadow))))
125     `(warning ((t (:foreground ,orange-0))))
126     `(whitespace-trailing ((t (:background ,red-1))))
127     `(cursor ((t (:foreground unspecified :background ,cursor))))
128     `(show-paren-match ((t (:foreground unspecified :background unspecified :underline t :bold t))))
129     `(rcirc-prompt ((t (:foreground ,fg))))
130     `(rcirc-server ((t (:foreground ,grey-0 :slant italic))))
131     `(rcirc-url ((t (:foreground ,blue-0))))
132     `(rcirc-my-nick ((t (:foreground ,purple-0))))
133     `(rcirc-nick-in-message ((t (:foreground ,purple-0))))
134     `(rcirc-nick-in-message-full-line ((t (:foreground ,purple-0))))
135     `(rcirc-other-nick ((t (:foreground ,blue-1))))))
136  
137  ;;;###autoload
138  (when load-file-name
139    (add-to-list 'custom-theme-load-path
140                 (file-name-as-directory (file-name-directory (or load-file-name buffer-file-name)))))
141  
142  (provide-theme 'carp)
143  
144  ;;; carp-theme.el ends here