diff options
-rw-r--r-- | README.md | 8 | ||||
-rwxr-xr-x | screenshot.png | bin | 0 -> 69461 bytes | |||
-rw-r--r-- | thomas-theme.el | 455 | ||||
-rw-r--r-- | thomas.vim | 306 | ||||
-rw-r--r-- | thomas.yml | 18 |
5 files changed, 787 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..15c716d --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Thomas + +A dark colorscheme. Easy on the eye, with moderate contrast. A hommage to a +friend. + +## Screenshot + +![Screenshot of the theme](screenshot.png) diff --git a/screenshot.png b/screenshot.png Binary files differnew file mode 100755 index 0000000..37c7f85 --- /dev/null +++ b/screenshot.png diff --git a/thomas-theme.el b/thomas-theme.el new file mode 100644 index 0000000..c7909c8 --- /dev/null +++ b/thomas-theme.el @@ -0,0 +1,455 @@ +;; Base16 Thomas (https://github.com/chriskempson/base16) +;; Scheme: José Mota (http://github.com/josemotanet) + +;;; base16-thomas-dark-theme.el + +;;; Code: + +(deftheme thomas) + +(let ((base00 "#142229") + (base01 "#2d3a42") + (base02 "#47535b") + (base03 "#606b74") + (base04 "#79838d") + (base05 "#929ba6") + (base06 "#acb4bf") + (base07 "#c5ccd8") + (base08 "#e65b65") + (base09 "#f38c4f") + (base0A "#f4bf75") + (base0B "#8ebe8c") + (base0C "#54abad") + (base0D "#6295ca") + (base0E "#ab76a6") + (base0F "#8f5536")) + + (custom-theme-set-faces + 'thomas + + ;; Built-in stuff (Emacs 23) + `(border ((t (:background ,base01)))) + `(border-glyph ((t (nil)))) + `(cursor ((t (:background ,base08)))) + `(default ((t (:background ,base00 :foreground ,base07)))) + `(fringe ((t (:background ,base00)))) + `(gui-element ((t (:background ,base03 :foreground ,base06)))) + `(highlight ((t (:background ,base01)))) + `(link ((t (:foreground ,base0D)))) + `(link-visited ((t (:foreground ,base0E)))) + `(minibuffer-prompt ((t (:foreground ,base0D)))) + `(mode-line ((t (:background ,base02 :foreground ,base04 :box nil)))) + `(mode-line-buffer-id ((t (:foreground ,base0E :background nil)))) + `(mode-line-emphasis ((t (:foreground ,base06 :slant italic)))) + `(mode-line-highlight ((t (:foreground ,base0E :box nil :weight bold)))) + `(mode-line-inactive ((t (:background ,base01 :foreground ,base03 :box nil)))) + `(region ((t (:background ,base02)))) + `(secondary-selection ((t (:background ,base03)))) + `(error ((t (:foreground ,base08 :weight bold)))) + `(warning ((t (:foreground ,base09 :weight bold)))) + `(success ((t (:foreground ,base0B :weight bold)))) + + `(header-line ((t (:inherit mode-line :foreground ,base0E :background nil)))) + + ;; Font-lock stuff + `(font-lock-builtin-face ((t (:foreground ,base0C)))) + `(font-lock-comment-delimiter-face ((t (:foreground ,base02)))) + `(font-lock-comment-face ((t (:foreground ,base02)))) + `(font-lock-constant-face ((t (:foreground ,base09)))) + `(font-lock-doc-face ((t (:foreground ,base04)))) + `(font-lock-doc-string-face ((t (:foreground ,base03)))) + `(font-lock-function-name-face ((t (:foreground ,base0D)))) + `(font-lock-keyword-face ((t (:foreground ,base08)))) + `(font-lock-negation-char-face ((t (:foreground ,base0B)))) + `(font-lock-preprocessor-face ((t (:foreground ,base0D)))) + `(font-lock-regexp-grouping-backslash ((t (:foreground ,base0A)))) + `(font-lock-regexp-grouping-construct ((t (:foreground ,base0E)))) + `(font-lock-string-face ((t (:foreground ,base0B)))) + `(font-lock-type-face ((t (:foreground ,base0A)))) + `(font-lock-variable-name-face ((t (:foreground ,base0C)))) + `(font-lock-warning-face ((t (:foreground ,base08)))) + + ;; linum-mode + `(linum ((t (:background ,base01 :foreground ,base03)))) + + ;; Search + `(match ((t (:foreground ,base0D :background ,base01 :inverse-video t)))) + `(isearch ((t (:foreground ,base0A :background ,base01 :inverse-video t)))) + `(isearch-lazy-highlight-face ((t (:foreground ,base0C :background ,base01 :inverse-video t)))) + `(isearch-fail ((t (:background ,base01 :inherit font-lock-warning-face :inverse-video t)))) + + ;; Flymake + `(flymake-warnline ((t (:underline ,base09 :background ,base01)))) + `(flymake-errline ((t (:underline ,base08 :background ,base01)))) + + ;; Clojure errors + `(clojure-test-failure-face ((t (:background nil :inherit flymake-warnline)))) + `(clojure-test-error-face ((t (:background nil :inherit flymake-errline)))) + `(clojure-test-success-face ((t (:background nil :foreground nil :underline ,base0B)))) + + ;; For Brian Carper's extended clojure syntax table + `(clojure-keyword ((t (:foreground ,base0A)))) + `(clojure-parens ((t (:foreground ,base06)))) + `(clojure-braces ((t (:foreground ,base0B)))) + `(clojure-brackets ((t (:foreground ,base0A)))) + `(clojure-double-quote ((t (:foreground ,base0C :background nil)))) + `(clojure-special ((t (:foreground ,base0D)))) + `(clojure-java-call ((t (:foreground ,base0E)))) + + ;; MMM-mode + `(mmm-code-submode-face ((t (:background ,base03)))) + `(mmm-comment-submode-face ((t (:inherit font-lock-comment-face)))) + `(mmm-output-submode-face ((t (:background ,base03)))) + + ;; rainbow-delimiters + `(rainbow-delimiters-depth-1-face ((t (:foreground ,base0E)))) + `(rainbow-delimiters-depth-2-face ((t (:foreground ,base0D)))) + `(rainbow-delimiters-depth-3-face ((t (:foreground ,base0C)))) + `(rainbow-delimiters-depth-4-face ((t (:foreground ,base0B)))) + `(rainbow-delimiters-depth-5-face ((t (:foreground ,base0A)))) + `(rainbow-delimiters-depth-6-face ((t (:foreground ,base09)))) + `(rainbow-delimiters-depth-7-face ((t (:foreground ,base08)))) + `(rainbow-delimiters-depth-8-face ((t (:foreground ,base03)))) + `(rainbow-delimiters-depth-9-face ((t (:foreground ,base05)))) + + ;; IDO + `(ido-subdir ((t (:foreground ,base04)))) + `(ido-first-match ((t (:foreground ,base09 :weight bold)))) + `(ido-only-match ((t (:foreground ,base08 :weight bold)))) + `(ido-indicator ((t (:foreground ,base08 :background ,base01)))) + `(ido-virtual ((t (:foreground ,base04)))) + + ;; which-function + `(which-func ((t (:foreground ,base0D :background nil :weight bold)))) + + `(trailing-whitespace ((t (:background ,base0C :foreground ,base0A)))) + `(whitespace-empty ((t (:foreground ,base08 :background ,base0A)))) + `(whitespace-hspace ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-indentation ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-line ((t (:background ,base01 :foreground ,base0F)))) + `(whitespace-newline ((t (:foreground ,base03)))) + `(whitespace-space ((t (:background ,base01 :foreground ,base04)))) + `(whitespace-space-after-tab ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-space-before-tab ((t (:background ,base09 :foreground ,base08)))) + `(whitespace-tab ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-trailing ((t (:background ,base08 :foreground ,base0A)))) + + ;; Parenthesis matching (built-in) + `(show-paren-match ((t (:background ,base02 :foreground ,base04)))) + `(show-paren-mismatch ((t (:background ,base09 :foreground ,base03)))) + + ;; Parenthesis matching (mic-paren) + `(paren-face-match ((t (:foreground nil :background nil :inherit show-paren-match)))) + `(paren-face-mismatch ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + `(paren-face-no-match ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + + ;; Parenthesis dimming (parenface) + `(paren-face ((t (:foreground ,base04 :background nil)))) + + `(sh-heredoc ((t (:foreground nil :inherit font-lock-string-face :weight normal)))) + `(sh-quoted-exec ((t (:foreground nil :inherit font-lock-preprocessor-face)))) + `(slime-highlight-edits-face ((t (:weight bold)))) + `(slime-repl-input-face ((t (:weight normal :underline nil)))) + `(slime-repl-prompt-face ((t (:underline nil :weight bold :foreground ,base0E)))) + `(slime-repl-result-face ((t (:foreground ,base0B)))) + `(slime-repl-output-face ((t (:foreground ,base0D :background ,base01)))) + + `(csv-separator-face ((t (:foreground ,base09)))) + + `(diff-added ((t (:foreground ,base0B)))) + `(diff-changed ((t (:foreground ,base0A)))) + `(diff-removed ((t (:foreground ,base08)))) + `(diff-header ((t (:background ,base01)))) + `(diff-file-header ((t (:background ,base02)))) + `(diff-hunk-header ((t (:background ,base01 :foreground ,base0E)))) + + `(ediff-even-diff-A ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-even-diff-B ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-odd-diff-A ((t (:foreground ,base04 :background nil :inverse-video t)))) + `(ediff-odd-diff-B ((t (:foreground ,base04 :background nil :inverse-video t)))) + + `(eldoc-highlight-function-argument ((t (:foreground ,base0B :weight bold)))) + + ;; undo-tree + `(undo-tree-visualizer-default-face ((t (:foreground ,base06)))) + `(undo-tree-visualizer-current-face ((t (:foreground ,base0B :weight bold)))) + `(undo-tree-visualizer-active-branch-face ((t (:foreground ,base08)))) + `(undo-tree-visualizer-register-face ((t (:foreground ,base0A)))) + + ;; auctex + `(font-latex-bold-face ((t (:foreground ,base0B)))) + `(font-latex-doctex-documentation-face ((t (:background ,base03)))) + `(font-latex-italic-face ((t (:foreground ,base0B)))) + `(font-latex-math-face ((t (:foreground ,base09)))) + `(font-latex-sectioning-0-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-1-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-2-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-3-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-4-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-5-face ((t (:foreground ,base0A)))) + `(font-latex-sedate-face ((t (:foreground ,base0C)))) + `(font-latex-string-face ((t (:foreground ,base0A)))) + `(font-latex-verbatim-face ((t (:foreground ,base09)))) + `(font-latex-warning-face ((t (:foreground ,base08)))) + + ;; dired+ + `(diredp-compressed-file-suffix ((t (:foreground ,base0D)))) + `(diredp-dir-heading ((t (:foreground nil :background nil :inherit heading)))) + `(diredp-dir-priv ((t (:foreground ,base0C :background nil)))) + `(diredp-exec-priv ((t (:foreground ,base0D :background nil)))) + `(diredp-executable-tag ((t (:foreground ,base08 :background nil)))) + `(diredp-file-name ((t (:foreground ,base0A)))) + `(diredp-file-suffix ((t (:foreground ,base0B)))) + `(diredp-flag-mark-line ((t (:background nil :inherit highlight)))) + `(diredp-ignored-file-name ((t (:foreground ,base04)))) + `(diredp-link-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-mode-line-flagged ((t (:foreground ,base08)))) + `(diredp-mode-line-marked ((t (:foreground ,base0B)))) + `(diredp-no-priv ((t (:background nil)))) + `(diredp-number ((t (:foreground ,base0A)))) + `(diredp-other-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-rare-priv ((t (:foreground ,base08 :background nil)))) + `(diredp-read-priv ((t (:foreground ,base0B :background nil)))) + `(diredp-symlink ((t (:foreground ,base0E)))) + `(diredp-write-priv ((t (:foreground ,base0A :background nil)))) + + ;; term and ansi-term + `(term-color-black ((t (:foreground ,base02 :background ,base00)))) + `(term-color-white ((t (:foreground ,base05 :background ,base07)))) + `(term-color-red ((t (:foreground ,base08 :background ,base08)))) + `(term-color-yellow ((t (:foreground ,base0A :background ,base0A)))) + `(term-color-green ((t (:foreground ,base0B :background ,base0B)))) + `(term-color-cyan ((t (:foreground ,base0C :background ,base0C)))) + `(term-color-blue ((t (:foreground ,base0D :background ,base0D)))) + `(term-color-magenta ((t (:foreground ,base0E :background ,base0E)))) + + ;; Magit (a patch is pending in magit to make these standard upstream) + `(magit-branch ((t (:foreground ,base0B)))) + `(magit-header ((t (:inherit nil :weight bold)))) + `(magit-item-highlight ((t (:inherit highlight :background nil)))) + `(magit-log-graph ((t (:foreground ,base04)))) + `(magit-log-sha1 ((t (:foreground ,base0E)))) + `(magit-log-head-label-bisect-bad ((t (:foreground ,base08)))) + `(magit-log-head-label-bisect-good ((t (:foreground ,base0B)))) + `(magit-log-head-label-default ((t (:foreground ,base0A :box nil :weight bold)))) + `(magit-log-head-label-local ((t (:foreground ,base0D)))) + `(magit-log-head-label-remote ((t (:foreground ,base0B)))) + `(magit-log-head-label-tags ((t (:foreground ,base0C :box nil :weight bold)))) + `(magit-section-title ((t (:inherit diff-hunk-header)))) + + `(link ((t (:foreground nil :underline t)))) + `(widget-button ((t (:underline t)))) + `(widget-field ((t (:background ,base03 :box (:line-width 1 :color ,base06))))) + + ;; Compilation (most faces politely inherit from 'success, 'error, 'warning etc.) + `(compilation-column-number ((t (:foreground ,base0A)))) + `(compilation-line-number ((t (:foreground ,base0A)))) + `(compilation-message-face ((t (:foreground ,base0D)))) + `(compilation-mode-line-exit ((t (:foreground ,base0B)))) + `(compilation-mode-line-fail ((t (:foreground ,base08)))) + `(compilation-mode-line-run ((t (:foreground ,base0D)))) + + ;; Grep + `(grep-context-face ((t (:foreground ,base04)))) + `(grep-error-face ((t (:foreground ,base08 :weight bold :underline t)))) + `(grep-hit-face ((t (:foreground ,base0D)))) + `(grep-match-face ((t (:foreground nil :background nil :inherit match)))) + + `(regex-tool-matched-face ((t (:foreground nil :background nil :inherit match)))) + + ;; mark-multiple + `(mm/master-face ((t (:inherit region :foreground nil :background nil)))) + `(mm/mirror-face ((t (:inherit region :foreground nil :background nil)))) + + ;; org-mode + `(org-agenda-structure ((t (:foreground ,base0E)))) + `(org-agenda-date ((t (:foreground ,base0D :underline nil)))) + `(org-agenda-done ((t (:foreground ,base0B)))) + `(org-agenda-dimmed-todo-face ((t (:foreground ,base04)))) + `(org-block ((t (:foreground ,base09)))) + `(org-code ((t (:foreground ,base0A)))) + `(org-column ((t (:background ,base03)))) + `(org-column-title ((t (:inherit org-column :weight bold :underline t)))) + `(org-date ((t (:foreground ,base0E :underline t)))) + `(org-document-info ((t (:foreground ,base0C)))) + `(org-document-info-keyword ((t (:foreground ,base0B)))) + `(org-document-title ((t (:weight bold :foreground ,base09 :height 1.44)))) + `(org-done ((t (:foreground ,base0B)))) + `(org-ellipsis ((t (:foreground ,base04)))) + `(org-footnote ((t (:foreground ,base0C)))) + `(org-formula ((t (:foreground ,base08)))) + `(org-hide ((t (:foreground ,base03)))) + `(org-link ((t (:foreground ,base0D)))) + `(org-scheduled ((t (:foreground ,base0B)))) + `(org-scheduled-previously ((t (:foreground ,base09)))) + `(org-scheduled-today ((t (:foreground ,base0B)))) + `(org-special-keyword ((t (:foreground ,base09)))) + `(org-table ((t (:foreground ,base0E)))) + `(org-todo ((t (:foreground ,base08)))) + `(org-upcoming-deadline ((t (:foreground ,base09)))) + `(org-warning ((t (:weight bold :foreground ,base08)))) + + `(markdown-url-face ((t (:inherit link)))) + `(markdown-link-face ((t (:foreground ,base0D :underline t)))) + + `(hl-sexp-face ((t (:background ,base03)))) + `(highlight-80+ ((t (:background ,base03)))) + + ;; Python-specific overrides + `(py-builtins-face ((t (:foreground ,base09 :weight normal)))) + + ;; js2-mode + `(js2-warning-face ((t (:underline ,base09)))) + `(js2-error-face ((t (:foreground nil :underline ,base08)))) + `(js2-external-variable-face ((t (:foreground ,base0E)))) + `(js2-function-param-face ((t (:foreground ,base0D)))) + `(js2-instance-member-face ((t (:foreground ,base0D)))) + `(js2-private-function-call-face ((t (:foreground ,base08)))) + + ;; js3-mode + `(js3-warning-face ((t (:underline ,base09)))) + `(js3-error-face ((t (:foreground nil :underline ,base08)))) + `(js3-external-variable-face ((t (:foreground ,base0E)))) + `(js3-function-param-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-tag-face ((t (:foreground ,base09)))) + `(js3-jsdoc-type-face ((t (:foreground ,base0C)))) + `(js3-jsdoc-value-face ((t (:foreground ,base0A)))) + `(js3-jsdoc-html-tag-name-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-html-tag-delimiter-face ((t (:foreground ,base0B)))) + `(js3-instance-member-face ((t (:foreground ,base0D)))) + `(js3-private-function-call-face ((t (:foreground ,base08)))) + + ;; nxml + `(nxml-name-face ((t (:foreground unspecified :inherit font-lock-constant-face)))) + `(nxml-attribute-local-name-face ((t (:foreground unspecified :inherit font-lock-variable-name-face)))) + `(nxml-ref-face ((t (:foreground unspecified :inherit font-lock-preprocessor-face)))) + `(nxml-delimiter-face ((t (:foreground unspecified :inherit font-lock-keyword-face)))) + `(nxml-delimited-data-face ((t (:foreground unspecified :inherit font-lock-string-face)))) + `(rng-error-face ((t (:underline ,base08)))) + + ;; RHTML + `(erb-delim-face ((t (:background ,base03)))) + `(erb-exec-face ((t (:background ,base03 :weight bold)))) + `(erb-exec-delim-face ((t (:background ,base03)))) + `(erb-out-face ((t (:background ,base03 :weight bold)))) + `(erb-out-delim-face ((t (:background ,base03)))) + `(erb-comment-face ((t (:background ,base03 :weight bold :slant italic)))) + `(erb-comment-delim-face ((t (:background ,base03)))) + + ;; Message-mode + `(message-header-other ((t (:foreground nil :background nil :weight normal)))) + `(message-header-subject ((t (:inherit message-header-other :weight bold :foreground ,base0A)))) + `(message-header-to ((t (:inherit message-header-other :weight bold :foreground ,base09)))) + `(message-header-cc ((t (:inherit message-header-to :foreground nil)))) + `(message-header-name ((t (:foreground ,base0D :background nil)))) + `(message-header-newsgroups ((t (:foreground ,base0C :background nil :slant normal)))) + `(message-separator ((t (:foreground ,base0E)))) + + ;; Jabber + `(jabber-chat-prompt-local ((t (:foreground ,base0A)))) + `(jabber-chat-prompt-foreign ((t (:foreground ,base09)))) + `(jabber-chat-prompt-system ((t (:foreground ,base0A :weight bold)))) + `(jabber-chat-text-local ((t (:foreground ,base0A)))) + `(jabber-chat-text-foreign ((t (:foreground ,base09)))) + `(jabber-chat-text-error ((t (:foreground ,base08)))) + + `(jabber-roster-user-online ((t (:foreground ,base0B)))) + `(jabber-roster-user-xa ((t :foreground ,base04))) + `(jabber-roster-user-dnd ((t :foreground ,base0A))) + `(jabber-roster-user-away ((t (:foreground ,base09)))) + `(jabber-roster-user-chatty ((t (:foreground ,base0E)))) + `(jabber-roster-user-error ((t (:foreground ,base08)))) + `(jabber-roster-user-offline ((t (:foreground ,base04)))) + + `(jabber-rare-time-face ((t (:foreground ,base04)))) + `(jabber-activity-face ((t (:foreground ,base0E)))) + `(jabber-activity-personal-face ((t (:foreground ,base0C)))) + + ;; Gnus + `(gnus-cite-1 ((t (:inherit outline-1 :foreground nil)))) + `(gnus-cite-2 ((t (:inherit outline-2 :foreground nil)))) + `(gnus-cite-3 ((t (:inherit outline-3 :foreground nil)))) + `(gnus-cite-4 ((t (:inherit outline-4 :foreground nil)))) + `(gnus-cite-5 ((t (:inherit outline-5 :foreground nil)))) + `(gnus-cite-6 ((t (:inherit outline-6 :foreground nil)))) + `(gnus-cite-7 ((t (:inherit outline-7 :foreground nil)))) + `(gnus-cite-8 ((t (:inherit outline-8 :foreground nil)))) + ;; there are several more -cite- faces... + `(gnus-header-content ((t (:inherit message-header-other)))) + `(gnus-header-subject ((t (:inherit message-header-subject)))) + `(gnus-header-from ((t (:inherit message-header-other-face :weight bold :foreground ,base09)))) + `(gnus-header-name ((t (:inherit message-header-name)))) + `(gnus-button ((t (:inherit link :foreground nil)))) + `(gnus-signature ((t (:inherit font-lock-comment-face)))) + + `(gnus-summary-normal-unread ((t (:foreground ,base0D :weight normal)))) + `(gnus-summary-normal-read ((t (:foreground ,base06 :weight normal)))) + `(gnus-summary-normal-ancient ((t (:foreground ,base0C :weight normal)))) + `(gnus-summary-normal-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-low-unread ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-read ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-ancient ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-high-unread ((t (:foreground ,base0A :weight normal)))) + `(gnus-summary-high-read ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ancient ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-cancelled ((t (:foreground ,base08 :background nil :weight normal)))) + + `(gnus-group-mail-low ((t (:foreground ,base04)))) + `(gnus-group-mail-low-empty ((t (:foreground ,base04)))) + `(gnus-group-mail-1 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-mail-2 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-mail-3 ((t (:foreground nil :weight normal :inherit outline-3)))) + `(gnus-group-mail-4 ((t (:foreground nil :weight normal :inherit outline-4)))) + `(gnus-group-mail-5 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-mail-6 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-mail-1-empty ((t (:inherit gnus-group-mail-1 :foreground ,base04)))) + `(gnus-group-mail-2-empty ((t (:inherit gnus-group-mail-2 :foreground ,base04)))) + `(gnus-group-mail-3-empty ((t (:inherit gnus-group-mail-3 :foreground ,base04)))) + `(gnus-group-mail-4-empty ((t (:inherit gnus-group-mail-4 :foreground ,base04)))) + `(gnus-group-mail-5-empty ((t (:inherit gnus-group-mail-5 :foreground ,base04)))) + `(gnus-group-mail-6-empty ((t (:inherit gnus-group-mail-6 :foreground ,base04)))) + `(gnus-group-news-1 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-news-2 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-news-3 ((t (:foreground nil :weight normal :inherit outline-7)))) + `(gnus-group-news-4 ((t (:foreground nil :weight normal :inherit outline-8)))) + `(gnus-group-news-5 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-news-6 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-news-1-empty ((t (:inherit gnus-group-news-1 :foreground ,base04)))) + `(gnus-group-news-2-empty ((t (:inherit gnus-group-news-2 :foreground ,base04)))) + `(gnus-group-news-3-empty ((t (:inherit gnus-group-news-3 :foreground ,base04)))) + `(gnus-group-news-4-empty ((t (:inherit gnus-group-news-4 :foreground ,base04)))) + `(gnus-group-news-5-empty ((t (:inherit gnus-group-news-5 :foreground ,base04)))) + `(gnus-group-news-6-empty ((t (:inherit gnus-group-news-6 :foreground ,base04)))) + + `(erc-direct-msg-face ((t (:foreground ,base09)))) + `(erc-error-face ((t (:foreground ,base08)))) + `(erc-header-face ((t (:foreground ,base06 :background ,base04)))) + `(erc-input-face ((t (:foreground ,base0B)))) + `(erc-keyword-face ((t (:foreground ,base0A)))) + `(erc-current-nick-face ((t (:foreground ,base0B)))) + `(erc-my-nick-face ((t (:foreground ,base0B)))) + `(erc-nick-default-face ((t (:weight normal :foreground ,base0E)))) + `(erc-nick-msg-face ((t (:weight normal :foreground ,base0A)))) + `(erc-notice-face ((t (:foreground ,base04)))) + `(erc-pal-face ((t (:foreground ,base09)))) + `(erc-prompt-face ((t (:foreground ,base0D)))) + `(erc-timestamp-face ((t (:foreground ,base0C)))) + + `(custom-variable-tag ((t (:foreground ,base0D)))) + `(custom-group-tag ((t (:foreground ,base0D)))) + `(custom-state ((t (:foreground ,base0B))))) + + (custom-theme-set-variables + 'thomas + + `(ansi-color-names-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]) + `(ansi-term-color-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [unspecified ,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]))) + +(provide-theme 'thomas) + +;;; thomas-theme.el ends here diff --git a/thomas.vim b/thomas.vim new file mode 100644 index 0000000..92670bd --- /dev/null +++ b/thomas.vim @@ -0,0 +1,306 @@ +if !has('gui_running') + if exists("g:base16_shell_path") + execute "silent !/bin/sh ".g:base16_shell_path."/base16-thomas.".&background.".sh" + endif +endif + +" GUI color definitions +let s:gui00 = "142229" +let s:gui01 = "2d3a42" +let s:gui02 = "47535b" +let s:gui03 = "606b74" +let s:gui04 = "79838d" +let s:gui05 = "929ba6" +let s:gui06 = "acb4bf" +let s:gui07 = "c5ccd8" +let s:gui08 = "e65b65" +let s:gui09 = "f38c4f" +let s:gui0A = "f4bf75" +let s:gui0B = "8ebe8c" +let s:gui0C = "54abad" +let s:gui0D = "6295ca" +let s:gui0E = "ab76a6" +let s:gui0F = "8f5536" + +" Terminal color definitions +let s:cterm00 = "00" +let s:cterm03 = "08" +let s:cterm05 = "07" +let s:cterm07 = "15" +let s:cterm08 = "01" +let s:cterm0A = "03" +let s:cterm0B = "02" +let s:cterm0C = "06" +let s:cterm0D = "04" +let s:cterm0E = "05" +if exists('base16colorspace') && base16colorspace == "256" + let s:cterm01 = "18" + let s:cterm02 = "19" + let s:cterm04 = "20" + let s:cterm06 = "21" + let s:cterm09 = "16" + let s:cterm0F = "17" +else + let s:cterm01 = "10" + let s:cterm02 = "11" + let s:cterm04 = "12" + let s:cterm06 = "13" + let s:cterm09 = "09" + let s:cterm0F = "14" +endif + +" Theme setup +hi clear +syntax reset +let g:colors_name = "base16-thomas" + +" Highlighting function +fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr) + if a:guifg != "" + exec "hi " . a:group . " guifg=#" . s:gui(a:guifg) + endif + if a:guibg != "" + exec "hi " . a:group . " guibg=#" . s:gui(a:guibg) + endif + if a:ctermfg != "" + exec "hi " . a:group . " ctermfg=" . s:cterm(a:ctermfg) + endif + if a:ctermbg != "" + exec "hi " . a:group . " ctermbg=" . s:cterm(a:ctermbg) + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif +endfun + +" Return GUI color for light/dark variants +fun s:gui(color) + if &background == "dark" + return a:color + endif + + if a:color == s:gui00 + return s:gui07 + elseif a:color == s:gui01 + return s:gui06 + elseif a:color == s:gui02 + return s:gui05 + elseif a:color == s:gui03 + return s:gui04 + elseif a:color == s:gui04 + return s:gui03 + elseif a:color == s:gui05 + return s:gui02 + elseif a:color == s:gui06 + return s:gui01 + elseif a:color == s:gui07 + return s:gui00 + endif + + return a:color +endfun + +" Return terminal color for light/dark variants +fun s:cterm(color) + if &background == "dark" + return a:color + endif + + if a:color == s:cterm00 + return s:cterm07 + elseif a:color == s:cterm01 + return s:cterm06 + elseif a:color == s:cterm02 + return s:cterm05 + elseif a:color == s:cterm03 + return s:cterm04 + elseif a:color == s:cterm04 + return s:cterm03 + elseif a:color == s:cterm05 + return s:cterm02 + elseif a:color == s:cterm06 + return s:cterm01 + elseif a:color == s:cterm07 + return s:cterm00 + endif + + return a:color +endfun + +" Vim editor colors +call <sid>hi("Bold", "", "", "", "", "bold") +call <sid>hi("Debug", s:gui08, "", s:cterm08, "", "") +call <sid>hi("Directory", s:gui0D, "", s:cterm0D, "", "") +call <sid>hi("ErrorMsg", s:gui08, s:gui00, s:cterm08, s:cterm00, "") +call <sid>hi("Exception", s:gui08, "", s:cterm08, "", "") +call <sid>hi("FoldColumn", "", s:gui01, "", s:cterm01, "") +call <sid>hi("Folded", s:gui03, s:gui01, s:cterm03, s:cterm01, "") +call <sid>hi("IncSearch", s:gui01, s:gui09, s:cterm01, s:cterm09, "none") +call <sid>hi("Italic", "", "", "", "", "none") +call <sid>hi("Macro", s:gui08, "", s:cterm08, "", "") +call <sid>hi("MatchParen", s:gui00, s:gui03, s:cterm00, s:cterm03, "") +call <sid>hi("ModeMsg", s:gui0B, "", s:cterm0B, "", "") +call <sid>hi("MoreMsg", s:gui0B, "", s:cterm0B, "", "") +call <sid>hi("Question", s:gui0D, "", s:cterm0D, "", "") +call <sid>hi("Search", s:gui03, s:gui0A, s:cterm03, s:cterm0A, "") +call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "") +call <sid>hi("TooLong", s:gui08, "", s:cterm08, "", "") +call <sid>hi("Underlined", s:gui08, "", s:cterm08, "", "") +call <sid>hi("Visual", "", s:gui02, "", s:cterm02, "") +call <sid>hi("VisualNOS", s:gui08, "", s:cterm08, "", "") +call <sid>hi("WarningMsg", s:gui08, "", s:cterm08, "", "") +call <sid>hi("WildMenu", s:gui08, "", s:cterm08, "", "") +call <sid>hi("Title", s:gui0D, "", s:cterm0D, "", "none") +call <sid>hi("Conceal", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "") +call <sid>hi("Cursor", s:gui00, s:gui05, s:cterm00, s:cterm05, "") +call <sid>hi("NonText", s:gui03, "", s:cterm03, "", "") +call <sid>hi("Normal", s:gui05, s:gui00, s:cterm05, s:cterm00, "") +call <sid>hi("LineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "") +call <sid>hi("SignColumn", s:gui03, s:gui01, s:cterm03, s:cterm01, "") +call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "") +call <sid>hi("StatusLine", s:gui04, s:gui02, s:cterm04, s:cterm02, "none") +call <sid>hi("StatusLineNC", s:gui03, s:gui01, s:cterm03, s:cterm01, "none") +call <sid>hi("VertSplit", s:gui02, s:gui02, s:cterm02, s:cterm02, "none") +call <sid>hi("ColorColumn", "", s:gui01, "", s:cterm01, "none") +call <sid>hi("CursorColumn", "", s:gui01, "", s:cterm01, "none") +call <sid>hi("CursorLine", "", s:gui01, "", s:cterm01, "none") +call <sid>hi("CursorLineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "") +call <sid>hi("PMenu", s:gui04, s:gui01, s:cterm04, s:cterm01, "none") +call <sid>hi("PMenuSel", s:gui01, s:gui04, s:cterm01, s:cterm04, "") +call <sid>hi("TabLine", s:gui03, s:gui01, s:cterm03, s:cterm01, "none") +call <sid>hi("TabLineFill", s:gui03, s:gui01, s:cterm03, s:cterm01, "none") +call <sid>hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "none") + +" Standard syntax highlighting +call <sid>hi("Boolean", s:gui09, "", s:cterm09, "", "") +call <sid>hi("Character", s:gui08, "", s:cterm08, "", "") +call <sid>hi("Comment", s:gui03, "", s:cterm03, "", "") +call <sid>hi("Conditional", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("Constant", s:gui09, "", s:cterm09, "", "") +call <sid>hi("Define", s:gui0E, "", s:cterm0E, "", "none") +call <sid>hi("Delimiter", s:gui0F, "", s:cterm0F, "", "") +call <sid>hi("Float", s:gui09, "", s:cterm09, "", "") +call <sid>hi("Function", s:gui0D, "", s:cterm0D, "", "") +call <sid>hi("Identifier", s:gui08, "", s:cterm08, "", "none") +call <sid>hi("Include", s:gui0D, "", s:cterm0D, "", "") +call <sid>hi("Keyword", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("Label", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("Number", s:gui09, "", s:cterm09, "", "") +call <sid>hi("Operator", s:gui05, "", s:cterm05, "", "none") +call <sid>hi("PreProc", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("Repeat", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("Special", s:gui0C, "", s:cterm0C, "", "") +call <sid>hi("SpecialChar", s:gui0F, "", s:cterm0F, "", "") +call <sid>hi("Statement", s:gui08, "", s:cterm08, "", "") +call <sid>hi("StorageClass", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("String", s:gui0B, "", s:cterm0B, "", "") +call <sid>hi("Structure", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("Tag", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("Todo", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "") +call <sid>hi("Type", s:gui0A, "", s:cterm0A, "", "none") +call <sid>hi("Typedef", s:gui0A, "", s:cterm0A, "", "") + +" C highlighting +call <sid>hi("cOperator", s:gui0C, "", s:cterm0C, "", "") +call <sid>hi("cPreCondit", s:gui0E, "", s:cterm0E, "", "") + +" C# highlighting +call <sid>hi("csClass", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("csAttribute", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("csModifier", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("csType", s:gui08, "", s:cterm08, "", "") +call <sid>hi("csUnspecifiedStatement", s:gui0D, "", s:cterm0D, "", "") +call <sid>hi("csContextualStatement", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("csNewDecleration", s:gui08, "", s:cterm08, "", "") + +" CSS highlighting +call <sid>hi("cssBraces", s:gui05, "", s:cterm05, "", "") +call <sid>hi("cssClassName", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("cssColor", s:gui0C, "", s:cterm0C, "", "") + +" Diff highlighting +call <sid>hi("DiffAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "") +call <sid>hi("DiffChange", s:gui03, s:gui01, s:cterm03, s:cterm01, "") +call <sid>hi("DiffDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "") +call <sid>hi("DiffText", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "") +call <sid>hi("DiffAdded", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "") +call <sid>hi("DiffFile", s:gui08, s:gui00, s:cterm08, s:cterm00, "") +call <sid>hi("DiffNewFile", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "") +call <sid>hi("DiffLine", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "") +call <sid>hi("DiffRemoved", s:gui08, s:gui00, s:cterm08, s:cterm00, "") + +" Git highlighting +call <sid>hi("gitCommitOverflow", s:gui08, "", s:cterm08, "", "") +call <sid>hi("gitCommitSummary", s:gui0B, "", s:cterm0B, "", "") + +" GitGutter highlighting +call <sid>hi("GitGutterAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "") +call <sid>hi("GitGutterChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "") +call <sid>hi("GitGutterDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "") +call <sid>hi("GitGutterChangeDelete", s:gui0E, s:gui01, s:cterm0E, s:cterm01, "") + +" HTML highlighting +call <sid>hi("htmlBold", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("htmlItalic", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("htmlEndTag", s:gui05, "", s:cterm05, "", "") +call <sid>hi("htmlTag", s:gui05, "", s:cterm05, "", "") + +" JavaScript highlighting +call <sid>hi("javaScript", s:gui05, "", s:cterm05, "", "") +call <sid>hi("javaScriptBraces", s:gui05, "", s:cterm05, "", "") +call <sid>hi("javaScriptNumber", s:gui09, "", s:cterm09, "", "") + +" Markdown highlighting +call <sid>hi("markdownCode", s:gui0B, "", s:cterm0B, "", "") +call <sid>hi("markdownError", s:gui05, s:gui00, s:cterm05, s:cterm00, "") +call <sid>hi("markdownCodeBlock", s:gui0B, "", s:cterm0B, "", "") +call <sid>hi("markdownHeadingDelimiter", s:gui0D, "", s:cterm0D, "", "") + +" NERDTree highlighting +call <sid>hi("NERDTreeDirSlash", s:gui0D, "", s:cterm0D, "", "") +call <sid>hi("NERDTreeExecFile", s:gui05, "", s:cterm05, "", "") + +" PHP highlighting +call <sid>hi("phpMemberSelector", s:gui05, "", s:cterm05, "", "") +call <sid>hi("phpComparison", s:gui05, "", s:cterm05, "", "") +call <sid>hi("phpParent", s:gui05, "", s:cterm05, "", "") + +" Python highlighting +call <sid>hi("pythonOperator", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("pythonRepeat", s:gui0E, "", s:cterm0E, "", "") + +" Ruby highlighting +call <sid>hi("rubyAttribute", s:gui0D, "", s:cterm0D, "", "") +call <sid>hi("rubyConstant", s:gui0A, "", s:cterm0A, "", "") +call <sid>hi("rubyInterpolation", s:gui0B, "", s:cterm0B, "", "") +call <sid>hi("rubyInterpolationDelimiter", s:gui0F, "", s:cterm0F, "", "") +call <sid>hi("rubyRegexp", s:gui0C, "", s:cterm0C, "", "") +call <sid>hi("rubySymbol", s:gui0B, "", s:cterm0B, "", "") +call <sid>hi("rubyStringDelimiter", s:gui0B, "", s:cterm0B, "", "") + +" SASS highlighting +call <sid>hi("sassidChar", s:gui08, "", s:cterm08, "", "") +call <sid>hi("sassClassChar", s:gui09, "", s:cterm09, "", "") +call <sid>hi("sassInclude", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("sassMixing", s:gui0E, "", s:cterm0E, "", "") +call <sid>hi("sassMixinName", s:gui0D, "", s:cterm0D, "", "") + +" Signify highlighting +call <sid>hi("SignifySignAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "") +call <sid>hi("SignifySignChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "") +call <sid>hi("SignifySignDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "") + +" Spelling highlighting +call <sid>hi("SpellBad", "", s:gui00, "", s:cterm00, "undercurl") +call <sid>hi("SpellLocal", "", s:gui00, "", s:cterm00, "undercurl") +call <sid>hi("SpellCap", "", s:gui00, "", s:cterm00, "undercurl") +call <sid>hi("SpellRare", "", s:gui00, "", s:cterm00, "undercurl") + +" Remove functions +delf <sid>hi +delf <sid>gui +delf <sid>cterm + +" Remove color variables +unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F +unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F diff --git a/thomas.yml b/thomas.yml new file mode 100644 index 0000000..2846849 --- /dev/null +++ b/thomas.yml @@ -0,0 +1,18 @@ +scheme: "Thomas" +author: "José Mota (http://github.com/josemotanet)" +base00: "142229" +base01: "2d3a42" +base02: "47535b" +base03: "606b74" +base04: "79838d" +base05: "929ba6" +base06: "acb4bf" +base07: "c5ccd8" +base08: "e65b65" +base09: "f38c4f" +base0A: "f4bf75" +base0B: "8ebe8c" +base0C: "54abad" +base0D: "6295ca" +base0E: "ab76a6" +base0F: "8f5536" |