;;; tubthumping-theme.el --- Monochrome theme -*- lexical-binding: t; -*- ;; By noa, ;; ;; Version: 1.0.2 ;; Author: noa, ;; 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-fg)))) `(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