summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--emacs/site-lisp/tubthumping-theme.el262
1 files changed, 262 insertions, 0 deletions
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, <noa@gaiwan.org>
+;;
+;; Version: 1.0.0
+;; 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)
+
+;; 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