;;; tubthumping-theme.el --- Monochrome theme -*- lexical-binding: t; -*- ;; By noa, ;; ;; Version: 1.0.0 ;; 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) ;; Original function by acdw (defvar tubthumping/inherit '((t ())) "Specification to clear a given face.") (defgroup tubthumping-theme nil "Customization options for the tubthumping theme family." :group 'tubthumping :group 'faces) (defcustom tubthumping-background-colour "#ffffff" "The background colour for the tubthumping theme." :type 'color :group 'tubthumping-theme) (defcustom tubthumping-foreground-colour "#000000" "The foreground colour for the tubthumping theme." :type 'color :group 'tubthumping-theme) (custom-theme-set-faces 'tubthumping `(default ((t (:background ,tubthumping-background-colour :foreground ,tubthumping-foreground-colour)))) ;; default font lock. make comments and strings italic and everything else look the same `(font-lock-bracket-face ,tubthumping/inherit) `(font-lock-builtin-face ,tubthumping/inherit) `(font-lock-constant-face ,tubthumping/inherit) `(font-lock-delimiter-face ,tubthumping/inherit) `(font-lock-doc-markup-face ,tubthumping/inherit) `(font-lock-escape-face ,tubthumping/inherit) `(font-lock-function-call-face ,tubthumping/inherit) `(font-lock-function-name-face ,tubthumping/inherit) `(font-lock-keyword-face ,tubthumping/inherit) `(font-lock-misc-punctuation-face ,tubthumping/inherit) `(font-lock-negation-char-face ,tubthumping/inherit) `(font-lock-number-face ,tubthumping/inherit) `(font-lock-operator-face ,tubthumping/inherit) `(font-lock-preprocessor-face ,tubthumping/inherit) `(font-lock-property-name-face ,tubthumping/inherit) `(font-lock-property-use-face ,tubthumping/inherit) `(font-lock-punctuation-face ,tubthumping/inherit) `(font-lock-regexp-face ,tubthumping/inherit) `(font-lock-regexp-grouping-backslash ,tubthumping/inherit) `(font-lock-regexp-grouping-construct ,tubthumping/inherit) `(font-lock-type-face ,tubthumping/inherit) `(font-lock-variable-name-face ,tubthumping/inherit) `(font-lock-variable-use-face ,tubthumping/inherit) `(font-lock-warning-face ,tubthumping/inherit) ;; make strings and comments bold `(font-lock-comment-delimiter-face ((t (:bold t)))) `(font-lock-comment-face ((t (:bold t)))) `(font-lock-string-face ((t (:bold t)))) `(region ((t ( :inverse-video t)))) `(highlight ((t ( :inverse-video t)))) `(fringe ,tubthumping/inherit) `(cursor ((t (:background ,tubthumping-foreground-colour)))) `(show-paren-match ((t (:inherit highlight)))) `(isearch ((t ( :box t)))) ;; replace `(match ((t (:box t)))) ;; faces `(shadow ,tubthumping/inherit) ;; mode line `(mode-line ((t ( :box t)))) `(mode-line-active ((t ( :box t)))) `(mode-line-inactive ((t ( :box t)))) ;; `(mode-line-buffer-id ,flear) ;; `(mode-line-highlight ((t ( :box nil :weight normal)))) ;; `(mode-line-emphasis ((t ( :weight bold)))) ;; vertical border in tuis `(vertical-border ,tubthumping/inherit) `(default-italic ((t (:italic t)))) ;; minibuffer `(minibuffer-prompt ((t (:normal t )))) `(minibuffer-depth-indicator ((t (:normal t )))) ;; link `(link ((t (:underline t)))) `(header-line ((t ( :box t)))) ;; vertico `(vertico-current ((t (:inherit highlight)))) ;; vertico-current ;; vertico-multiline ;; vertico-group-title ;; vertico-group-separator ;; marginalia ;; Custom `(custom-group-tag ((t (:weight bold :height 1.2)))) `(custom-variable-tag ((t (:weight bold)))) `(custom-state ,tubthumping/inherit) `(custom-visibility ((t (:underline t)))) `(custom-button ((t (:inherit link)))) ;; spell-fu `(spell-fu-incorrect-face ((t (:underline (:style wave))))) ;; widgets `(widget-field ((t ( :box t)))) ;; completions `(completions-common-part ((t ( :weight bold)))) `(completions-annotations ((t ( :slant italic)))) ;; orderless `(orderless-match-face-0 ((t ( :box t)))) `(orderless-match-face-1 ((t ( :box t)))) `(orderless-match-face-2 ((t ( :box t)))) `(orderless-match-face-3 ((t ( :box t)))) ;; org mode `(org-document-title ((t ( :weight bold :height 1.6)))) `(org-drawer ,tubthumping/inherit) `(org-code ((t ( :box t)))) ;; this one needs to be the background `(org-hide ((t (:foreground ,tubthumping-background-colour)))) ;; bigger fonts for headings `(org-level-1 ((t ( :weight bold :height 1.4)))) `(org-level-2 ((t ( :weight bold :height 1.3)))) `(org-level-3 ((t ( :weight bold :height 1.2)))) `(org-level-4 ((t ( :weight bold :height 1.1)))) `(org-date ((t (:underline t)))) `(org-table ,tubthumping/inherit) `(org-footnote ((t (:underline t )))) `(org-link ((t (:underline t )))) `(org-special-keyword ,tubthumping/inherit) `(org-block ,tubthumping/inherit) `(org-quote ((t (:inherit org-block :slant italic)))) `(org-verse ((t (:inherit org-block :slant italic)))) `(org-todo ((t (:box (:line-width 1 :color ,tubthumping-foreground-colour) :bold t)))) `(org-done ((t (:box (:line-width 1 :color ,tubthumping-background-colour) :bold t :foreground ,tubthumping-background-colour)))) `(org-warning ((t (:inherit highlight)))) `(org-agenda-structure ((t (:weight bold :box (:color ,tubthumping-foreground-colour) :background ,tubthumping-background-colour)))) `(org-agenda-date ((t ( :height 1.1 )))) `(org-agenda-date-weekend ((t (:weight bold )))) `(org-agenda-date-today ((t (:weight bold :height 1.4)))) `(org-agenda-done ((t (:foreground ,tubthumping-background-colour)))) `(org-scheduled ,tubthumping/inherit) `(org-scheduled-today ((t ( :weight bold :height 1.2)))) `(org-ellipsis ((t ( :box nil)))) `(org-verbatim ,tubthumping/inherit) `(org-document-info-keyword ,tubthumping/inherit) `(org-sexp-date ,tubthumping/inherit) ;; tab bar `(tab-bar ((t (:inherit highlight)))) ;; variable pitch `(variable-pitch ,tubthumping/inherit) `(variable-pitch-text ,tubthumping/inherit) ;; nano modeline `(nano-modeline-status ((t (:inherit highlight)))) `(nano-modeline-active ((t ( :box t)))) ;; window divider `(window-divider ,tubthumping/inherit) `(font-latex-bold-face ((t (:bold t)))) `(font-latex-italic-face ((t ( :italic t)))) `(font-latex-string-face ((t (:bold t)))) `(font-latex-match-reference-keywords ,tubthumping/inherit) `(font-latex-match-variable-keywords ,tubthumping/inherit) ;; Eww `(eww-valid-certificate ((t (:bold t)))) `(eww-invalid-certificate ((t (:inherit highlight :bold t)))) ;; Jabber `(jabber-activity-face ,tubthumping/inherit) `(jabber-chat-prompt-local ((t (:bold t)))) `(jabber-chat-prompt-foreign ((t (:bold t)))) `(jabber-chat-prompt-system ((t (:bold t)))) `(jabber-rare-time-face ((t (:bold t)))) ;; mu4e `(mu4e-highlight-face ((t (:inherit highlight)))) `(mu4e-header-title-face ((t (:inherit mu4e-header-face)))) `(mu4e-header-highlight-face ((t (:inherit highlight)))) `(mu4e-title-face ((t (:inherit mu4e-header-face)))) `(mu4e-replied-face ((t (:inherit mu4e-header-face :foreground unspecified)))) `(mu4e-header-key-face ((t (:inherit mu4e-header-face)))) `(mu4e-header-marks-face ,tubthumping/inherit) ;; message `(message-header-name ,tubthumping/inherit) `(message-header-to ,tubthumping/inherit) `(message-header-cc ,tubthumping/inherit) `(message-header-other ,tubthumping/inherit) `(message-header-subject ,tubthumping/inherit) `(message-separator ,tubthumping/inherit) ;; gnus `(gnus-header-name ((t (:weight bold)))) `(gnus-header-content ,tubthumping/inherit) `(gnus-header-from ,tubthumping/inherit) `(gnus-header-subject ,tubthumping/inherit) ;; `(ffap ((t (:foreground ,tubthumping-foreground-colour)))) `(warning ((t (:inherit highlight)))) `(ac-completion-face ((t (:underline t )))) `(info-quoted-name ,tubthumping/inherit) `(info-string ((t (:bold t)))) `(icompletep-determined ,tubthumping/inherit) `(slime-repl-inputed-output-face ,tubthumping/inherit) `(trailing-whitespace ((t (:inherit highlight)))) `(lazy-highlight ((t (:box t)))) ;; compile `(compilation-line-number ((t (:underline t)))) `(compilation-column-number ((t (:underline t)))) `(compilation-info ((t (:underline t)))) ;; dired `(dired-flagged ((t (:strike-through t :bold t)))) ) ;;;###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) (provide 'tubthumping-theme) ;;; tubthumping-theme.el ends here