diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-10-02 22:27:31 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-10-02 22:27:31 -0300 |
| commit | 6eef26aab54f11e280d6130e23969c395ee025dd (patch) | |
| tree | f9723dbf07f93e9b33e5e1f81a641ea6e4bbd700 /ntmacs/campbell-theme.el | |
| parent | 5f15257557164b5685dcd047cf3d66e944fdb270 (diff) | |
| download | MageMacs-6eef26aab54f11e280d6130e23969c395ee025dd.tar.gz MageMacs-6eef26aab54f11e280d6130e23969c395ee025dd.zip | |
Diffstat (limited to '')
| -rw-r--r-- | ntmacs/campbell-theme.el | 311 |
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 |
