summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Mota <jose@josemota.net>2016-06-07 19:25:13 +0100
committerJosé Mota <jose@josemota.net>2016-06-07 19:25:13 +0100
commit93f96d311ad8b1975d12b2d145237a2ff1a1fa9c (patch)
tree257421dbdb53597c545840a6308385444c1a4ec7
Initial commit.
-rw-r--r--README.md8
-rwxr-xr-xscreenshot.pngbin0 -> 69461 bytes
-rw-r--r--thomas-theme.el455
-rw-r--r--thomas.vim306
-rw-r--r--thomas.yml18
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
new file mode 100755
index 0000000..37c7f85
--- /dev/null
+++ b/screenshot.png
Binary files differ
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"