diff options
-rw-r--r-- | tubthumping-theme.el | 310 |
1 files changed, 310 insertions, 0 deletions
diff --git a/tubthumping-theme.el b/tubthumping-theme.el new file mode 100644 index 0000000..bec53b0 --- /dev/null +++ b/tubthumping-theme.el @@ -0,0 +1,310 @@ +;;; tubthumping-theme.el --- Monochrome theme -*- lexical-binding: t; -*- + +;; By noa, <noa@gaiwan.org> +;; +;; Version: 1.0.2 +;; Author: noa, <noa@gaiwan.org> +;; URL: https://noa.pub/404 + +;; This file is not part of Emacs. + +;;; Commentary: + +;; This is a monochrome theme for emacs. I've only themed packages i've used as i've come across colours in them. + +;; The name is an homage to the classic song, as well as to the monochrome emacs tao theme. + +;;; Code: + +(deftheme tubthumping) + +(defgroup tubthumping-theme nil + "Customization options for the tubthumping theme family." + :group 'tubthumping + :group 'faces) + +(defcustom tubthumping-bg "#ffffff" + "The background colour for the tubthumping theme." + :type 'color + :group 'tubthumping-theme) + +(defcustom tubthumping-fg "#000000" + "The foreground colour for the tubthumping theme." + :type 'color + :group 'tubthumping-theme) + +(defcustom tubthumping-hl "#cdcdcd" + "The alternative background colour for highlighted elements in the tubthumping theme." + :type 'color + :group 'tubthumping-theme) + +(custom-theme-set-faces + 'tubthumping + `(default ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(fringe ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(region ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + `(cursor ((t (:background ,tubthumping-foreground-colour)))) + `(highlight ((t (:background "#ff0000" :foreground ,tubthumping-fg)))) + + ;; default font lock. make comments and strings italic and everything else look the same + `(font-lock-bracket-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-builtin-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-comment-delimiter-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(font-lock-comment-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(font-lock-constant-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-delimiter-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-doc-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(font-lock-doc-markup-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-escape-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-function-call-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-function-name-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-keyword-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-misc-punctuation-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-negation-char-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-number-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-operator-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-preprocessor-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-property-name-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-property-use-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-punctuation-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-regexp-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-regexp-grouping-backslash ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-regexp-grouping-construct ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-string-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(font-lock-type-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-variable-name-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-variable-use-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(font-lock-warning-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + `(show-paren-match ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + `(show-paren-mismatch ((t (:background ,tubthumping-fg :foreground ,tubthumping-bg)))) + + + `(isearch ((t (:background ,tubthumping-fg :foreground ,tubthumping-bg)))) + `(lazy-highlight ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + + ;; replace + `(match ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + + ;; faces + `(shadow ((t (:strikethrough t)))) + + ;; minibuffer + `(minibuffer-prompt ((t (:weight bold :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(minibuffer-depth-indicator ((t (:weight bold :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; link + `(link ((t (:underline t)))) + + ;; `(header-line ((t (:underline (:position t))))) + ;; `(header-line ((t (:box (:line-width (0 . 1)))))) + + ;; MODES + + ;; calendar + ;; `(holiday ((t (:box t)))) + `(holiday ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(calendar-today ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; compile + `(compilation-line-number ((t (:underline t :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(compilation-column-number ((t (:underline t :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(compilation-info ((t (:underline t :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; completions + `(completions-common-part ((t ( :weight bold)))) + `(completions-annotations ((t ( :slant italic)))) + + ;; consult + `(consult-line-number-prefix ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; custom + `(custom-group-tag ((t (:weight bold :height 1.2)))) + `(custom-variable-tag ((t (:weight bold)))) + `(custom-state ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(custom-visibility ((t (:underline t)))) + `(custom-button ((t (:inherit link)))) + `(custom-button ((t (:box t)))) + + ;; diary + `(diary ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; dired + `(dired-flagged ((t (:strikethrough t)))) + `(dired-mark ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(dired-marked ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(dired-header ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-set-id ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-ignored ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-special ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-symlink ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-warning ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-directory ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-perm-write ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dired-broken-symlink ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; elastic indent + `(elastic-indent ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; embark + `(embark-keybinding ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; eshell + `(eshell-prompt ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-backup ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-archive ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-clutter ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-missing ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-product ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-special ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-symlink ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-readonly ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-directory ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-executable ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eshell-ls-unreadable ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; eww + `(eww-valid-certificate ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(eww-invalid-certificate ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(eww-form-submit ((t (:underline t :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(eww-form-text ((t (:box t)))) + + ;; dictionary + `(dictionary-reference-face ((t (:underline t :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(dictionary-word-definition-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; gnus + `(gnus-header-name ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(gnus-header-content ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(gnus-header-from ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(gnus-header-subject ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; howm + `(howm-mode-keyword-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(howm-mode-title-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(howm-reminder-schedule-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(howm-view-empty-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(howm-view-hilit-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(howm-view-name-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; deft + `(deft-summary-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; help + `(help-argument-name ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(help-key-binding ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; info + `(info-header-node ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(info-menu-star ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(info-node ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(Info-quoted ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(info-xref-visited ((t (:underline t :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; jabber + `(jabber-activity-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(jabber-activity-personal-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(jabber-chat-prompt-local ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(jabber-chat-prompt-foreign ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(jabber-chat-prompt-system ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(jabber-rare-time-face ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(jabber-roster-user-online ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(jabber-roster-user-away ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; line number + `(line-number ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; marginalia + `(marginalia-archive ((t (:foreground ,tubthumping-fg)))) + `(marginalia-char ((t (:foreground ,tubthumping-fg)))) + `(marginalia-date ((t (:foreground ,tubthumping-fg)))) + `(marginalia-documentation ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-name ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-owner ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-dir ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-exec ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-link ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-no ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-other ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-rare ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-read ((t (:foreground ,tubthumping-fg)))) + `(marginalia-file-priv-write ((t (:foreground ,tubthumping-fg)))) + `(marginalia-function ((t (:foreground ,tubthumping-fg)))) + `(marginalia-installed ((t (:foreground ,tubthumping-fg)))) + `(marginalia-key ((t (:foreground ,tubthumping-fg)))) + `(marginalia-lighter ((t (:foreground ,tubthumping-fg)))) + `(marginalia-list ((t (:foreground ,tubthumping-fg)))) + `(marginalia-mode ((t (:foreground ,tubthumping-fg)))) + `(marginalia-modified ((t (:foreground ,tubthumping-fg)))) + `(marginalia-null ((t (:foreground ,tubthumping-fg)))) + `(marginalia-number ((t (:foreground ,tubthumping-fg)))) + `(marginalia-off ((t (:foreground ,tubthumping-fg)))) + `(marginalia-on ((t (:foreground ,tubthumping-fg)))) + `(marginalia-size ((t (:foreground ,tubthumping-fg)))) + `(marginalia-string ((t (:foreground ,tubthumping-fg)))) + `(marginalia-symbol ((t (:foreground ,tubthumping-fg)))) + `(marginalia-true ((t (:foreground ,tubthumping-fg)))) + `(marginalia-type ((t (:foreground ,tubthumping-fg)))) + `(marginalia-version ((t (:foreground ,tubthumping-fg)))) + + ;; message + `(message-cited-text-1 ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-cited-text-2 ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-cited-text-3 ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-cited-text-4 ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-header-name ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-header-to ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-header-cc ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-header-other ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-header-subject ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-header-xheader ((t (:underline t :background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(message-separator ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; orderless + `(orderless-match-face-0 ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + `(orderless-match-face-1 ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + `(orderless-match-face-2 ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + `(orderless-match-face-3 ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + + ;; markdown + `(markdown-markup-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; rmail + `(rmail-highlight ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; tab bar + ;; `(tab-bar ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + ;; `(tab-bar ((t (:underline (:position t))))) + + ;; variable pitch + `(variable-pitch ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(variable-pitch-text ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; vertico + `(vertico-current ((t (:background ,tubthumping-hl :foreground ,tubthumping-fg)))) + `(vertico-group-title ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + + ;; widgets + `(widget-field ((t ( :box t)))) + `(widget-inactive ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; window divider + ;; `(window-divider ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + + ;; `(ffap ((t (:foreground ,tubthumping-foreground-colour)))) + + `(warning ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(ac-completion-face ((t (:underline t )))) + `(info-quoted-name ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(info-string ((t (:weight bold :foreground ,tubthumping-fg :background ,tubthumping-bg)))) + `(icompletep-determined ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(slime-repl-inputed-output-face ((t (:background ,tubthumping-bg :foreground ,tubthumping-fg)))) + `(trailing-whitespace ((t (:inherit highlight))))) + +;;;###autoload +(when load-file-name + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide-theme 'tubthumping) +;;; tubthumping-theme.el ends here |