aboutsummaryrefslogtreecommitdiffstats
path: root/ntmacs/campbell-theme.el
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-10-02 22:27:31 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-10-02 22:27:31 -0300
commit6eef26aab54f11e280d6130e23969c395ee025dd (patch)
treef9723dbf07f93e9b33e5e1f81a641ea6e4bbd700 /ntmacs/campbell-theme.el
parent5f15257557164b5685dcd047cf3d66e944fdb270 (diff)
downloadMageMacs-6eef26aab54f11e280d6130e23969c395ee025dd.tar.gz
MageMacs-6eef26aab54f11e280d6130e23969c395ee025dd.zip
campbell theme mirroring windows shellHEADmaster
Diffstat (limited to '')
-rw-r--r--ntmacs/campbell-theme.el311
1 files changed, 311 insertions, 0 deletions
diff --git a/ntmacs/campbell-theme.el b/ntmacs/campbell-theme.el
new file mode 100644
index 0000000..f85b609
--- /dev/null
+++ b/ntmacs/campbell-theme.el
@@ -0,0 +1,311 @@
+;;; campbell-theme.el --- Classic blue PowerShell theme -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2026
+
+;; Author: ntmacs contributors
+;; Version: 1.0.0
+;; Package-Requires: ((emacs "27.1"))
+;; Keywords: faces, theme
+
+;;; Commentary:
+
+;; An Emacs theme with the classic Windows PowerShell blue background and
+;; white foreground. The Campbell terminal palette is preserved verbatim for
+;; ANSI output; brighter variants are used where editor text needs contrast.
+
+;;; Code:
+
+(deftheme campbell
+ "Classic blue PowerShell with the Windows Campbell terminal palette.")
+
+(let ((background "#012456")
+ (foreground "#FFFFFF")
+ (cursor "#FFFFFF")
+ (selection "#FFFFFF")
+ (black "#0C0C0C")
+ (blue "#0037DA")
+ (cyan "#3A96DD")
+ (green "#8CBD8C")
+ (purple "#881798")
+ (red "#C50F1F")
+ (white "#CCCCCC")
+ (yellow "#C19C00")
+ (bright-black "#767676")
+ (bright-blue "#3B78FF")
+ (bright-cyan "#61D6D6")
+ (bright-green "#16C60C")
+ (bright-purple "#B4009E")
+ (bright-red "#E74856")
+ (bright-white "#F2F2F2")
+ (bright-yellow "#F9F1A5"))
+ (custom-theme-set-faces
+ 'campbell
+
+ ;; Core Emacs UI
+ `(default ((t (:background ,background :foreground ,foreground))))
+ `(cursor ((t (:background ,cursor))))
+ `(fringe ((t (:background ,background :foreground ,bright-black))))
+ `(highlight ((t (:background ,bright-black :foreground ,bright-white))))
+ `(region ((t (:background ,selection :foreground ,black :extend t))))
+ `(secondary-selection ((t (:background ,cyan :foreground ,black :extend t))))
+ `(shadow ((t (:foreground ,bright-black))))
+ `(vertical-border ((t (:foreground ,bright-black))))
+ `(window-divider ((t (:foreground ,bright-black))))
+ `(window-divider-first-pixel ((t (:foreground ,background))))
+ `(window-divider-last-pixel ((t (:foreground ,bright-black))))
+ `(minibuffer-prompt ((t (:foreground ,bright-cyan :weight bold))))
+ `(link ((t (:foreground ,bright-cyan :underline t))))
+ `(link-visited ((t (:foreground ,bright-purple :underline t))))
+ `(button ((t (:foreground ,bright-cyan :underline t))))
+ `(escape-glyph ((t (:foreground ,bright-yellow))))
+ `(homoglyph ((t (:foreground ,bright-yellow))))
+ `(error ((t (:foreground ,bright-red :weight bold))))
+ `(warning ((t (:foreground ,bright-yellow :weight bold))))
+ `(success ((t (:foreground ,bright-green :weight bold))))
+ `(tooltip ((t (:background ,bright-white :foreground ,black))))
+ `(child-frame-border ((t (:background ,bright-blue))))
+
+ ;; Mode lines, tabs, and line numbers
+ `(mode-line ((t (:background ,bright-white :foreground ,black
+ :box (:line-width -1 :color ,white) :weight bold))))
+ `(mode-line-inactive ((t (:background ,background :foreground ,bright-black
+ :box (:line-width -1 :color ,bright-black)))))
+ `(mode-line-buffer-id ((t (:weight bold))))
+ `(header-line ((t (:background ,background :foreground ,bright-cyan
+ :box (:line-width -1 :color ,bright-black)))))
+ `(tab-bar ((t (:background ,background :foreground ,foreground))))
+ `(tab-bar-tab ((t (:background ,bright-white :foreground ,black
+ :box (:line-width -1 :color ,bright-white) :weight bold))))
+ `(tab-bar-tab-inactive ((t (:background ,background :foreground ,bright-black
+ :box (:line-width -1 :color ,bright-black)))))
+ `(tab-line ((t (:background ,background :foreground ,bright-black))))
+ `(tab-line-tab ((t (:background ,bright-white :foreground ,black))))
+ `(tab-line-tab-current ((t (:background ,bright-blue :foreground ,bright-white
+ :weight bold))))
+ `(tab-line-tab-inactive ((t (:background ,background :foreground ,bright-black))))
+ `(line-number ((t (:background ,background :foreground ,bright-black))))
+ `(line-number-current-line ((t (:background ,background :foreground ,bright-yellow
+ :weight bold))))
+ `(fill-column-indicator ((t (:foreground ,bright-black))))
+
+ ;; Searching, matching, and editing feedback
+ `(isearch ((t (:background ,bright-blue :foreground ,bright-white :weight bold))))
+ `(isearch-fail ((t (:background ,bright-red :foreground ,black :weight bold))))
+ `(lazy-highlight ((t (:background ,yellow :foreground ,black))))
+ `(match ((t (:background ,bright-yellow :foreground ,black :weight bold))))
+ `(query-replace ((t (:inherit isearch))))
+ `(show-paren-match ((t (:background ,bright-green :foreground ,black :weight bold))))
+ `(show-paren-mismatch ((t (:background ,bright-red :foreground ,black :weight bold))))
+ `(trailing-whitespace ((t (:background ,red))))
+ `(hl-line ((t (:underline (:color ,bright-black :style line)))))
+ `(pulse-highlight-start-face ((t (:background ,yellow :foreground ,black))))
+
+ ;; Syntax highlighting
+ `(font-lock-builtin-face ((t (:foreground ,bright-purple))))
+ `(font-lock-comment-face ((t (:foreground ,bright-black :slant italic))))
+ `(font-lock-comment-delimiter-face ((t (:foreground ,bright-black))))
+ `(font-lock-constant-face ((t (:foreground ,bright-purple))))
+ `(font-lock-doc-face ((t (:foreground ,green :slant italic))))
+ `(font-lock-doc-markup-face ((t (:foreground ,bright-green))))
+ `(font-lock-function-call-face ((t (:foreground ,bright-cyan))))
+ `(font-lock-function-name-face ((t (:foreground ,bright-cyan :weight bold))))
+ `(font-lock-keyword-face ((t (:foreground ,bright-blue :weight bold))))
+ `(font-lock-negation-char-face ((t (:foreground ,bright-red :weight bold))))
+ `(font-lock-number-face ((t (:foreground ,bright-purple))))
+ `(font-lock-operator-face ((t (:foreground ,bright-white))))
+ `(font-lock-preprocessor-face ((t (:foreground ,bright-purple))))
+ `(font-lock-property-name-face ((t (:foreground ,cyan))))
+ `(font-lock-property-use-face ((t (:foreground ,cyan))))
+ `(font-lock-punctuation-face ((t (:foreground ,white))))
+ `(font-lock-regexp-grouping-backslash ((t (:foreground ,bright-yellow :weight bold))))
+ `(font-lock-regexp-grouping-construct ((t (:foreground ,bright-purple :weight bold))))
+ `(font-lock-string-face ((t (:foreground ,bright-yellow))))
+ `(font-lock-type-face ((t (:foreground ,bright-green))))
+ `(font-lock-variable-name-face ((t (:foreground ,cyan))))
+ `(font-lock-variable-use-face ((t (:foreground ,cyan))))
+ `(font-lock-warning-face ((t (:foreground ,bright-red :weight bold))))
+
+ ;; Completion and minibuffer interfaces
+ `(completions-annotations ((t (:foreground ,bright-black :slant italic))))
+ `(completions-common-part ((t (:foreground ,bright-cyan :weight bold))))
+ `(completions-first-difference ((t (:foreground ,bright-yellow :weight bold))))
+ `(icomplete-first-match ((t (:foreground ,bright-green :weight bold))))
+ `(vertico-current ((t (:background ,bright-black :foreground ,bright-white))))
+ `(orderless-match-face-0 ((t (:foreground ,bright-cyan :weight bold))))
+ `(orderless-match-face-1 ((t (:foreground ,bright-yellow :weight bold))))
+ `(orderless-match-face-2 ((t (:foreground ,bright-green :weight bold))))
+ `(orderless-match-face-3 ((t (:foreground ,bright-purple :weight bold))))
+ `(company-tooltip ((t (:background ,background :foreground ,foreground))))
+ `(company-tooltip-selection ((t (:background ,bright-black :foreground ,bright-white))))
+ `(company-tooltip-common ((t (:foreground ,bright-cyan :weight bold))))
+ `(company-scrollbar-bg ((t (:background ,background))))
+ `(company-scrollbar-fg ((t (:background ,bright-black))))
+ `(company-preview-common ((t (:foreground ,bright-cyan))))
+ `(corfu-default ((t (:background ,background :foreground ,foreground))))
+ `(corfu-current ((t (:background ,bright-black :foreground ,bright-white))))
+ `(corfu-bar ((t (:background ,bright-black))))
+ `(corfu-border ((t (:background ,bright-blue))))
+
+ ;; Diagnostics and compilation
+ `(flymake-error ((t (:underline (:style wave :color ,bright-red)))))
+ `(flymake-warning ((t (:underline (:style wave :color ,bright-yellow)))))
+ `(flymake-note ((t (:underline (:style wave :color ,bright-cyan)))))
+ `(flycheck-error ((t (:underline (:style wave :color ,bright-red)))))
+ `(flycheck-warning ((t (:underline (:style wave :color ,bright-yellow)))))
+ `(flycheck-info ((t (:underline (:style wave :color ,bright-cyan)))))
+ `(compilation-error ((t (:foreground ,bright-red :weight bold))))
+ `(compilation-warning ((t (:foreground ,bright-yellow :weight bold))))
+ `(compilation-info ((t (:foreground ,bright-green))))
+ `(compilation-mode-line-exit ((t (:foreground ,bright-green :weight bold))))
+ `(compilation-mode-line-fail ((t (:foreground ,bright-red :weight bold))))
+ `(compilation-mode-line-run ((t (:foreground ,bright-yellow :weight bold))))
+
+ ;; Diff and version-control interfaces
+ `(diff-added ((t (:foreground ,bright-green))))
+ `(diff-removed ((t (:foreground ,bright-red))))
+ `(diff-changed ((t (:foreground ,bright-yellow))))
+ `(diff-refine-added ((t (:background ,green :foreground ,black))))
+ `(diff-refine-removed ((t (:background ,red :foreground ,bright-white))))
+ `(diff-refine-changed ((t (:background ,yellow :foreground ,black))))
+ `(diff-header ((t (:foreground ,bright-cyan))))
+ `(diff-file-header ((t (:foreground ,bright-white :weight bold))))
+ `(diff-hunk-header ((t (:foreground ,bright-purple))))
+ `(diff-context ((t (:foreground ,bright-black))))
+ `(magit-section-heading ((t (:foreground ,bright-yellow :weight bold))))
+ `(magit-section-highlight ((t (:background ,background))))
+ `(magit-branch-local ((t (:foreground ,bright-cyan))))
+ `(magit-branch-remote ((t (:foreground ,bright-green))))
+ `(magit-hash ((t (:foreground ,bright-black))))
+ `(magit-diff-added ((t (:foreground ,bright-green))))
+ `(magit-diff-added-highlight ((t (:background ,green :foreground ,black))))
+ `(magit-diff-removed ((t (:foreground ,bright-red))))
+ `(magit-diff-removed-highlight ((t (:background ,red :foreground ,bright-white))))
+ `(magit-diff-context-highlight ((t (:background ,background :foreground ,foreground))))
+ `(magit-diff-hunk-heading ((t (:background ,background :foreground ,bright-purple))))
+ `(magit-diff-hunk-heading-highlight ((t (:background ,bright-black :foreground ,bright-white))))
+ `(magit-diff-file-heading ((t (:foreground ,bright-white :weight bold))))
+ `(magit-diff-file-heading-highlight ((t (:background ,background :foreground ,bright-cyan
+ :weight bold))))
+ `(git-gutter:added ((t (:foreground ,bright-green :weight bold))))
+ `(git-gutter:deleted ((t (:foreground ,bright-red :weight bold))))
+ `(git-gutter:modified ((t (:foreground ,bright-yellow :weight bold))))
+
+ ;; Org and outline
+ `(outline-1 ((t (:foreground ,bright-cyan :weight bold))))
+ `(outline-2 ((t (:foreground ,bright-green :weight bold))))
+ `(outline-3 ((t (:foreground ,bright-blue :weight bold))))
+ `(outline-4 ((t (:foreground ,bright-yellow :weight bold))))
+ `(outline-5 ((t (:foreground ,bright-purple :weight bold))))
+ `(outline-6 ((t (:foreground ,cyan :weight bold))))
+ `(outline-7 ((t (:foreground ,green :weight bold))))
+ `(outline-8 ((t (:foreground ,yellow :weight bold))))
+ `(org-document-title ((t (:foreground ,bright-white :weight bold :height 1.3))))
+ `(org-document-info ((t (:foreground ,bright-cyan))))
+ `(org-document-info-keyword ((t (:foreground ,bright-black))))
+ `(org-level-1 ((t (:inherit outline-1 :height 1.2))))
+ `(org-level-2 ((t (:inherit outline-2 :height 1.1))))
+ `(org-level-3 ((t (:inherit outline-3))))
+ `(org-level-4 ((t (:inherit outline-4))))
+ `(org-level-5 ((t (:inherit outline-5))))
+ `(org-level-6 ((t (:inherit outline-6))))
+ `(org-level-7 ((t (:inherit outline-7))))
+ `(org-level-8 ((t (:inherit outline-8))))
+ `(org-block ((t (:foreground ,white))))
+ `(org-block-begin-line ((t (:foreground ,bright-black :slant italic))))
+ `(org-block-end-line ((t (:inherit org-block-begin-line))))
+ `(org-code ((t (:foreground ,bright-yellow))))
+ `(org-verbatim ((t (:foreground ,bright-green))))
+ `(org-quote ((t (:foreground ,bright-white :slant italic))))
+ `(org-table ((t (:foreground ,bright-cyan))))
+ `(org-date ((t (:foreground ,bright-blue :underline t))))
+ `(org-link ((t (:inherit link))))
+ `(org-tag ((t (:foreground ,bright-purple :weight bold))))
+ `(org-todo ((t (:foreground ,bright-red :weight bold))))
+ `(org-done ((t (:foreground ,bright-green :weight bold))))
+ `(org-headline-done ((t (:foreground ,bright-black))))
+ `(org-checkbox ((t (:foreground ,bright-cyan :weight bold))))
+ `(org-special-keyword ((t (:foreground ,bright-black))))
+
+ ;; Markdown
+ `(markdown-header-face-1 ((t (:inherit outline-1 :height 1.2))))
+ `(markdown-header-face-2 ((t (:inherit outline-2 :height 1.1))))
+ `(markdown-header-face-3 ((t (:inherit outline-3))))
+ `(markdown-header-face-4 ((t (:inherit outline-4))))
+ `(markdown-header-face-5 ((t (:inherit outline-5))))
+ `(markdown-header-face-6 ((t (:inherit outline-6))))
+ `(markdown-code-face ((t (:foreground ,bright-yellow))))
+ `(markdown-inline-code-face ((t (:foreground ,bright-yellow))))
+ `(markdown-link-face ((t (:foreground ,bright-cyan))))
+ `(markdown-url-face ((t (:foreground ,bright-blue :underline t))))
+ `(markdown-blockquote-face ((t (:foreground ,bright-black :slant italic))))
+
+ ;; Dired, calendar, and miscellaneous built-ins
+ `(dired-directory ((t (:foreground ,bright-blue :weight bold))))
+ `(dired-symlink ((t (:foreground ,bright-cyan))))
+ `(dired-mark ((t (:foreground ,bright-yellow :weight bold))))
+ `(dired-marked ((t (:foreground ,bright-purple :weight bold))))
+ `(dired-flagged ((t (:foreground ,bright-red :weight bold))))
+ `(dired-header ((t (:foreground ,bright-cyan :weight bold))))
+ `(calendar-today ((t (:background ,bright-white :foreground ,black :weight bold))))
+ `(holiday ((t (:foreground ,bright-red))))
+ `(diary ((t (:foreground ,bright-yellow))))
+ `(help-key-binding ((t (:background ,bright-black :foreground ,bright-white
+ :box (:line-width -1 :color ,bright-black)))))
+ `(custom-variable-tag ((t (:foreground ,bright-cyan :weight bold))))
+ `(custom-group-tag ((t (:foreground ,bright-blue :weight bold :height 1.1))))
+ `(custom-button ((t (:background ,bright-white :foreground ,black
+ :box (:line-width 1 :style released-button)))))
+ `(custom-button-mouse ((t (:background ,bright-cyan :foreground ,black))))
+ `(custom-button-pressed ((t (:background ,bright-blue :foreground ,bright-white
+ :box (:line-width 1 :style pressed-button)))))
+ `(which-key-key-face ((t (:foreground ,bright-cyan :weight bold))))
+ `(which-key-command-description-face ((t (:foreground ,foreground))))
+ `(which-key-group-description-face ((t (:foreground ,bright-purple))))
+ `(which-key-note-face ((t (:foreground ,bright-yellow))))
+ `(transient-heading ((t (:foreground ,bright-yellow :weight bold))))
+ `(transient-key ((t (:foreground ,bright-cyan :weight bold))))
+ `(transient-argument ((t (:foreground ,bright-green))))
+ `(transient-inactive-value ((t (:foreground ,bright-black))))
+
+ ;; Shells and ANSI colors
+ `(comint-highlight-prompt ((t (:foreground ,bright-cyan :weight bold))))
+ `(comint-highlight-input ((t (:foreground ,bright-white :weight bold))))
+ `(eshell-prompt ((t (:foreground ,bright-cyan :weight bold))))
+ `(ansi-color-black ((t (:foreground ,black :background ,black))))
+ `(ansi-color-red ((t (:foreground ,red :background ,red))))
+ `(ansi-color-green ((t (:foreground ,green :background ,green))))
+ `(ansi-color-yellow ((t (:foreground ,yellow :background ,yellow))))
+ `(ansi-color-blue ((t (:foreground ,blue :background ,blue))))
+ `(ansi-color-magenta ((t (:foreground ,purple :background ,purple))))
+ `(ansi-color-cyan ((t (:foreground ,cyan :background ,cyan))))
+ `(ansi-color-white ((t (:foreground ,white :background ,white))))
+ `(ansi-color-bright-black ((t (:foreground ,bright-black :background ,bright-black))))
+ `(ansi-color-bright-red ((t (:foreground ,bright-red :background ,bright-red))))
+ `(ansi-color-bright-green ((t (:foreground ,bright-green :background ,bright-green))))
+ `(ansi-color-bright-yellow ((t (:foreground ,bright-yellow :background ,bright-yellow))))
+ `(ansi-color-bright-blue ((t (:foreground ,bright-blue :background ,bright-blue))))
+ `(ansi-color-bright-magenta ((t (:foreground ,bright-purple :background ,bright-purple))))
+ `(ansi-color-bright-cyan ((t (:foreground ,bright-cyan :background ,bright-cyan))))
+ `(ansi-color-bright-white ((t (:foreground ,bright-white :background ,bright-white))))
+ `(term-color-black ((t (:foreground ,black :background ,black))))
+ `(term-color-red ((t (:foreground ,red :background ,red))))
+ `(term-color-green ((t (:foreground ,green :background ,green))))
+ `(term-color-yellow ((t (:foreground ,yellow :background ,yellow))))
+ `(term-color-blue ((t (:foreground ,blue :background ,blue))))
+ `(term-color-magenta ((t (:foreground ,purple :background ,purple))))
+ `(term-color-cyan ((t (:foreground ,cyan :background ,cyan))))
+ `(term-color-white ((t (:foreground ,white :background ,white)))))
+
+ (custom-theme-set-variables
+ 'campbell
+ `(ansi-color-names-vector
+ [,black ,red ,green ,yellow ,blue ,purple ,cyan ,white])))
+
+;;;###theme-autoload
+(when load-file-name
+ (add-to-list 'custom-theme-load-path
+ (file-name-as-directory (file-name-directory load-file-name))))
+
+(provide-theme 'campbell)
+
+;;; campbell-theme.el ends here