|
| 1 | +;;; seti-theme.el --- A dark colored theme, inspired by Seti Atom Theme |
| 2 | +;; |
| 3 | +;; |
| 4 | +;; Author: Vlad Piersec <vlad.piersec@gmail.com> |
| 5 | +;; Version: 0.1 |
| 6 | +;; Keywords: themes |
| 7 | +;; URL: https://github.com/caisah/seti-theme |
| 8 | +;; |
| 9 | +;; This file is not part of GNU Emacs. |
| 10 | +;; |
| 11 | +;; Licenese: |
| 12 | +;; |
| 13 | +;; This is free software; you can redistribute it and/or modify it under |
| 14 | +;; the terms of the GNU General Public License as published by the Free |
| 15 | +;; Software Foundation; either version 2, or (at your option) any later |
| 16 | +;; version. |
| 17 | +;; |
| 18 | +;; This is distributed in the hope that it will be useful, but WITHOUT |
| 19 | +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| 20 | +;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| 21 | +;; for more details. |
| 22 | +;; |
| 23 | +;; You should have received a copy of the GNU General Public License |
| 24 | +;; along with this file. If not, see <http://www.gnu.org/licenses/>. |
| 25 | +;; |
| 26 | +;;; Commentary |
| 27 | +;; |
| 28 | +;; Dark theme inspired by Atom's Seti |
| 29 | +;; |
| 30 | +;; Tries to reproduce the feel of https://github.com/jesseweed/seti-ui |
| 31 | +;;; Code |
| 32 | + |
| 33 | +(deftheme seti |
| 34 | + "Seti - A theme inspired by Seti Atom Theme") |
| 35 | + |
| 36 | +(let ((blue "#55B5DB") |
| 37 | + (green "#9FCA56") |
| 38 | + (yellow "#DCCD69") |
| 39 | + (red "#CE4045") |
| 40 | + (purple "#A074C4") |
| 41 | + (background "#151718") |
| 42 | + (background-2 "#1E2326") |
| 43 | + (background-3 "#0D1011") |
| 44 | + (background-4 "#101112") |
| 45 | + (text "#D4D7D6") |
| 46 | + (text-2 "#858D8A") |
| 47 | + (text-3 "#41535B") |
| 48 | + (text-4 "#2F3C42") |
| 49 | + (text-highlight "#FFFFFF") |
| 50 | + (text-region "#434546") |
| 51 | + (text-dired "#A0A0A0") |
| 52 | + (input-text "#CCCCCC") |
| 53 | + (light-blue "#75E5F4") |
| 54 | + (dark-blue "#4F99D3") |
| 55 | + (intense-green "#8BE03C")) |
| 56 | + |
| 57 | + (custom-theme-set-faces |
| 58 | + 'seti |
| 59 | + |
| 60 | + ;; Basics |
| 61 | + `(default ((t (:background ,background :foreground ,text)))) |
| 62 | + `(cursor ((t (:background ,input-text :foreground ,background)))) |
| 63 | + `(highlight ((t (:background ,text-highlight)))) |
| 64 | + `(minibuffer-prompt ((t (:foreground ,dark-blue :weight bold)))) |
| 65 | + `(region ((t (:background ,text-region)))) |
| 66 | + `(error ((t (:foreground ,red :weight bold :underline (:color ,red :style line))))) |
| 67 | + |
| 68 | + `(isearch ((t (:background ,background :foreground ,text :box (:line-width 1 :color ,dark-blue) :weight bold)))) |
| 69 | + `(lazy-highlight ((t (:background ,background :foreground ,text-2 :box (:line-width 1 :color ,dark-blue))))) |
| 70 | + `(mode-line ((t (:foreground ,text :background ,background-3 :underline (:color ,dark-blue :style line))))) |
| 71 | + `(mode-line-buffer-id ((t (:weight bold :foreground ,yellow)))) |
| 72 | + `(mode-line-emphasis ((t (:weight bold)))) |
| 73 | + `(mode-line-highlight ((t (:box (:line-width 3 :color ,dark-blue))))) |
| 74 | + `(mode-line-inactive ((t (:weight light :foreground ,text :background ,background-2)))) |
| 75 | + `(secondary-selection ((t (:background ,background-2)))) |
| 76 | + `(trailing-whitespace ((t (:background ,background-3)))) |
| 77 | + `(match ((t (:weight bold :foreground ,background :background ,intense-green)))) |
| 78 | + `(next-error ((t (:inherit (region))))) |
| 79 | + `(query-replace ((t (:inherit (isearch))))) |
| 80 | + |
| 81 | + ;; Font Lock |
| 82 | + `(font-lock-builtin-face ((t (:foreground ,purple)))) |
| 83 | + `(font-lock-comment-delimiter-face ((t (:inherit (font-lock-comment-face))))) |
| 84 | + `(font-lock-comment-face ((t (:foreground ,text-3)))) |
| 85 | + `(font-lock-constant-face ((t (:foreground ,red)))) |
| 86 | + `(font-lock-doc-face ((t (:foreground ,blue)))) |
| 87 | + `(font-lock-function-name-face ((t (:foreground ,blue)))) |
| 88 | + `(font-lock-keyword-face ((t (:foreground ,green)))) |
| 89 | + `(font-lock-negation-char-face ((t nil))) |
| 90 | + `(font-lock-preprocessor-face ((t (:inherit (font-lock-builtin-face))))) |
| 91 | + `(font-lock-regexp-grouping-backslash ((t (:inherit (bold))))) |
| 92 | + `(font-lock-regexp-grouping-construct ((t (:inherit (bold))))) |
| 93 | + `(font-lock-string-face ((t (:foreground ,blue)))) |
| 94 | + `(font-lock-type-face ((t (:foreground ,yellow)))) |
| 95 | + `(font-lock-variable-name-face ((t (:foreground ,blue)))) |
| 96 | + `(font-lock-warning-face ((t (:weight bold :inherit (error))))) |
| 97 | + |
| 98 | + ;; Parens |
| 99 | + `(show-paren-match ((t (:foreground ,text-2 :underline (:color ,dark-blue :style line))))) |
| 100 | + `(show-paren-mismatch ((t (:foreground ,text-2 :underline (:color ,red :style line))))) |
| 101 | + |
| 102 | + ;; Dired |
| 103 | + `(dired-directory ((t (:foreground ,text :weight extrabold)))) |
| 104 | + `(dired-header ((t (:foreground "white" :background ,blue :weight bold)))) |
| 105 | + `(dired-ignored ((t (:foreground ,text-3)))) |
| 106 | + `(dired-flagged ((t (:foreground ,red :weight bold)))) |
| 107 | + `(dired-marked ((t (:background ,blue :foreground "white" :weight normal)))) |
| 108 | + `(dired-perm-write ((t (:foreground ,yellow :weight ultra-bold)))) |
| 109 | + `(dired-symlink ((t (:foreground ,light-blue :weight normal)))) |
| 110 | + `(dired-warning ((t (:inherit (font-lock-warning-face))))) |
| 111 | + |
| 112 | + ;; Lines |
| 113 | + `(linum ((t (:foreground ,text-4 :weight light :height 0.9)))) |
| 114 | + `(fringe ((t (:background ,background-3 :foreground ,text-4)))) |
| 115 | + `(left-margin ((t (nil)))) |
| 116 | + `(hl-line ((t (:background ,background-4))))) |
| 117 | + |
| 118 | + |
| 119 | +(custom-theme-set-variables |
| 120 | + 'seti |
| 121 | + |
| 122 | + `(cursor-type 'bar) |
| 123 | + `(ansi-color-names-vector [ ,background ,red ,green ,yellow ,blue ,purple ,blue ,text]) |
| 124 | + `(ansi-term-color-vector [unspecified ,background ,red ,green ,yellow ,blue ,purple ,blue ,text]))) |
| 125 | + |
| 126 | + |
| 127 | +;;;###autoload |
| 128 | +(and load-file-name |
| 129 | + (boundp 'custom-theme-load-path) |
| 130 | + (add-to-list 'custom-theme-load-path |
| 131 | + (file-name-as-directory (file-name-directory load-file-name)))) |
| 132 | + |
| 133 | +(provide-theme 'seti) |
| 134 | + |
| 135 | +;;; seti-theme.el ends here |
0 commit comments