]> git.earman.xyz Git - emacsinit.git/commitdiff
Define and use the eng-paper theme
authorrearman <rearman@r717.net>
Wed, 22 Apr 2026 16:06:28 +0000 (12:06 -0400)
committerrearman <rearman@r717.net>
Wed, 22 Apr 2026 16:06:28 +0000 (12:06 -0400)
A theme loosely based on Birren and DuPont's color conditioning scheme for
factories and offices.

init.el
re/eng-paper-theme.el [new file with mode: 0644]
re/re-org.el

diff --git a/init.el b/init.el
index de1b3c318adce4133eeb83de624f838724cb9c76..ac52c31ec33b79498191fcd71b3ea3e70eb40e0c 100644 (file)
--- a/init.el
+++ b/init.el
 \f
 ;; GUI Settings
 (require 'acme-theme)
-(load-theme 'acme t)
-
+(require 'eng-paper-theme)
+;; (load-theme 'acme t)
+(load-theme 'eng-paper t)
 (menu-bar-mode -1)
 (tool-bar-mode -1)
 (set-scroll-bar-mode 'left)
diff --git a/re/eng-paper-theme.el b/re/eng-paper-theme.el
new file mode 100644 (file)
index 0000000..6047b0f
--- /dev/null
@@ -0,0 +1,181 @@
+;;; eng-paper-theme.el --- -*- lexical-binding: t; -*-
+
+;;; Code:
+
+(deftheme eng-paper
+  "Color theme to look like engineering paper,
+ with elements from Birren/DuPont's Color conditioning system")
+
+(let ((class '((class color) (min-colors 89)))
+      (text "#000000")
+      (light-green "#b5dabf")
+      (light-gray "#c0cfd1")
+      (precaution-blue "#315e9a")
+      (hi-vis-yellow "#eec801")
+      (alert-orange "#e85400")
+      (fire-prot-red "#e41b00")
+      (safety-green "#00883a")
+      (traffic-white "#f0f0f0"))
+  (custom-theme-set-faces
+   'eng-paper
+;;;; Special faces.
+   `(default
+     ((,class (:foreground ,text :background ,light-green))))
+   `(error
+     ((,class (:foreground ,fire-prot-red))))
+   `(warning
+     ((,class (:inherit default :weight bold))))
+   `(success
+     ((,class (:inherit default :weight bold))))
+;;;; font-lock.
+   `(font-lock-comment-face
+     ((,class (:slant italic :weight light :foreground ,safety-green))))
+   `(font-lock-string-face
+     ((,class (:inherit default))))
+   `(font-lock-builtin-face
+     ((,class (:inherit default))))
+   `(font-lock-type-face
+     ((,class (:inherit default))))
+   `(font-lock-constant-face
+     ((,class (:inherit default))))
+   `(font-lock-function-name-face
+     ((,class (:inherit default))))
+   `(font-lock-variable-name-face
+     ((,class (:inherit default))))
+   `(font-lock-keyword-face
+     ((,class (:inherit default))))
+   `(font-lock-number-face
+     ((,class (:inherit default))))
+;;;; Decorations.
+   `(vertical-border
+     ((,class (:background ,text))))
+   `(scroll-bar
+     ((,class (:background ,light-gray))))
+   `(region
+     ((,class (:background ,hi-vis-yellow :extend t))))
+   `(shadow
+     ((,class (:foreground ,text :weight light))))
+   `(match
+     ((,class (:background ,hi-vis-yellow))))
+   `(highlight
+     ((,class (:background ,hi-vis-yellow))))
+   `(link
+     ((,class (:foreground ,precaution-blue :underline t))))
+   `(secondary-selection
+     ((,class (:background ,alert-orange :extend t))))
+   `(lazy-highlight
+     ((,class (:background ,alert-orange))))
+   `(isearch
+     ((,class (:foreground ,text :background ,hi-vis-yellow))))
+   `(fringe
+     ((,class (:inherit default))))
+   `(line-number
+     ((,class (:inherit default))))
+   `(line-number-current-line
+     ((,class (:foreground ,text :background ,alert-orange :weight bold))))
+   `(mode-line
+     ((,class (:inherit default :box (:color ,traffic-white :line-width (2 . 2))))))
+   `(mode-line-inactive
+     ((,class (:inherit mode-line))))
+   `(mode-line-highlight
+     ((,class (:inherit mode-line :background ,alert-orange))))
+   `(header-line
+     ((,class (:inherit mode-line))))
+;;; Org
+   `(org-document-title
+     ((,class (:foreground ,text :weight bold))))
+   `(org-level-1
+     ((,class (:inherit default))))
+   `(org-level-2
+     ((,class (:inherit default))))
+   `(org-level-3
+     ((,class (:inherit default))))
+   `(org-level-4
+     ((,class (:inherit default))))
+   `(org-level-5
+     ((,class (:inherit default))))
+   `(org-level-6
+     ((,class (:inherit default))))
+   `(org-level-7
+     ((,class (:inherit default))))
+   `(org-level-8
+     ((,class (:inherit default))))
+   `(org-todo
+     ((,class (:foreground ,fire-prot-red :bold t))))
+   `(org-headline-todo
+     ((,class (:foreground ,fire-prot-red))))
+   `(org-done
+     ((,class (:foreground ,safety-green :italic t))))
+   `(org-headline-done
+     ((,class (:foreground ,safety-green))))
+
+   `(org-ellipsis
+     ((,class (:inherit default))))
+   `(org-table
+     ((,class (:inherit default))))
+   `(org-formula
+     ((,class (:inherit default))))
+   `(org-drawer
+     ((,class (:inherit default))))
+   `(org-footnote
+     ((,class (:inherit default))))
+   `(org-date
+     ((,class (:inherit default))))
+;;; Org Agenda
+   `(header-line
+     ((,class (:inherit default))))
+   `(org-agenda-structure
+     ((,class (:inherit default))))
+   `(org-column
+     ((,class (:inherit default))))
+   `(org-agenda-done
+     ((,class (:foreground ,text :italic t))))
+   `(org-time-grid
+     ((,class (:inherit default))))
+   `(org-agenda-date-weekend
+     ((,class (:inherit org-agenda-date :weight bold))))
+   `(org-agenda-date-today
+     ((,class (:inherit org-agenda-date :weight bold :slant italic))))
+   `(org-upcoming-deadline
+     ((,class (:inherit default))))
+   `(org-scheduled
+     ((,class (:inherit default))))
+   `(org-scheduled-today
+     ((,class (:inherit default))))
+   `(org-scheduled-previously
+     ((,class (:inherit default))))
+;;; HOWM
+   `(howm-reminder-deadline-face
+     ((,class (:foreground ,fire-prot-red))))
+   `(howm-reminder-todo-face
+     ((,class (:foreground ,alert-orange))))
+   `(howm-reminder-late-deadline-face
+     ((,class (:foreground ,text :background ,fire-prot-red))))
+   `(howm-reminder-schedule-face
+     ((,class (:foreground ,safety-green))))
+   `(howm-reminder-normal-face
+     ((,class (:foreground ,precaution-blue))))
+   `(howm-reminder-done-face
+     ((,class (:inherit default))))
+   `(howm-reminder-today-face
+     ((,class (:foreground ,text :background ,alert-orange))))
+   `(howm-mode-title-face
+     ((,class (:foreground ,precaution-blue))))
+   `(howm-mode-ref-face
+     ((,class (:foreground ,precaution-blue))))
+   `(howm-mode-keyword-face
+     ((,class (:foreground ,traffic-white :background ,precaution-blue))))
+;;; Misc. other packages
+   `(corfu-default
+     ((,class (:inherit default))))
+   `(corfu-current
+     ((,class (:foreground ,text :background ,hi-vis-yellow :extend 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 'eng-paper)
+(provide 'eng-paper-theme)
+;;; eng-paper-theme.el ends here
index 949c064bc172273fe9a815eb48073092bc02968e..acb45a46d0ec3a3a1e930f414d2e1e9c56d2d166 100644 (file)
@@ -35,9 +35,9 @@
 
 (add-hook 'org-agenda-mode-hook #'hl-line-mode)
 
-(setq org-todo-keyword-faces '(("WAITING" :foreground "orange" :weight bold)
+(setq org-todo-keyword-faces '(("WAITING" :foreground "#e15400" :weight bold)
                               ("UNDERTAKEN" :foreground "magenta" :weight bold)
-                              ("MEETING" :foreground "blue" :weight bold)))
+                              ("MEETING" :foreground "#315e9a" :weight bold)))
 \f
 ;; Time Clocking
 (org-clock-persistence-insinuate)
 (setq org-agenda-custom-commands
       '(("d" "Done items" todo "DONE|BELAYED|GIVEN|MET" ((org-agenda-skip-function
                                                          '(org-agenda-skip-entry-if 'notregexp "^\\*\\* "))
-                                                        (org-agenda-overriding-header "DONE - MAYBE ARCHIVE:")))
+                                                        (org-agenda-overriding-header "DONE - MAYBE KEEP:")))
        ("f" "Maybe Someday" tags "someday" ((org-agenda-skip-function
                                              '(org-agenda-skip-entry-if 'regexp "^\\* someday"))
                                             (org-agenda-overriding-header "SOMEDAY:")))
 (advice-add 'org-refile :after (lambda (&rest _) (re/org-save-all)))
 \f
 ;; Archiving (use re/org-archive-all periodically)
-(setq org-archive-location (concat "~/org/old.org_archive::datetree/")
+(setq org-archive-location (concat "~/org/old.org_keep::datetree/")
       org-agenda-text-search-extra-files '(agenda-archives))
 
-(add-to-list 'auto-mode-alist '("\\.org_archive\\'" . org-mode))
+(add-to-list 'auto-mode-alist '("\\.org_keep\\'" . org-mode))
 
 (provide 're-org)
 ;;; re-org.el ends here