From cf5e3c0d48ec10a7bec5d61c3029798e93232b9a Mon Sep 17 00:00:00 2001 From: noa@gaiwan.org Date: Wed, 12 Jun 2024 20:28:28 +0000 Subject: Add initial version of tubthumping theme to repository --- emacs/site-lisp/tubthumping-theme.el | 262 +++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 emacs/site-lisp/tubthumping-theme.el (limited to 'emacs/site-lisp/tubthumping-theme.el') diff --git a/emacs/site-lisp/tubthumping-theme.el b/emacs/site-lisp/tubthumping-theme.el new file mode 100644 index 0000000..a1ebc75 --- /dev/null +++ b/emacs/site-lisp/tubthumping-theme.el @@ -0,0 +1,262 @@ +;;; 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 -- cgit 1.4.1-2-gfad0