[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/modus-operandi-theme d5b6321 028/153: Initial implement
From: |
Stefan Monnier |
Subject: |
[elpa] externals/modus-operandi-theme d5b6321 028/153: Initial implementation of reviewed headings option |
Date: |
Thu, 18 Mar 2021 13:47:32 -0400 (EDT) |
branch: externals/modus-operandi-theme
commit d5b6321a9fc38277e98e03787db9e32b41ecd6af
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Initial implementation of reviewed headings option
The idea is to consolidate boolean options into a single alist. It
shall allow users to control the styles of headings with greater
precision.
Given this opportunity, we also re-imagine the overall end-user
experience and expand the array of options, such as headings with normal
weight fonts, or just an overline.
Some complementary faces, such as Org's "TODO" keywords are reconsidered
as well.
THIS IS A WORK IN PROGRESS. For an ongoing discussion see issue 81:
https://gitlab.com/protesilaos/modus-themes/-/issues/81. Thanks to Adam
Spiers for the valuable feedback thus far!
---
modus-operandi-theme.el | 260 +++++++++++++++++++++++++++++-------------------
modus-vivendi-theme.el | 260 +++++++++++++++++++++++++++++-------------------
2 files changed, 312 insertions(+), 208 deletions(-)
diff --git a/modus-operandi-theme.el b/modus-operandi-theme.el
index 6a04412..42c4064 100644
--- a/modus-operandi-theme.el
+++ b/modus-operandi-theme.el
@@ -42,8 +42,7 @@
;; modus-operandi-theme-slanted-constructs (boolean)
;; modus-operandi-theme-bold-constructs (boolean)
;; modus-operandi-theme-variable-pitch-headings (boolean)
-;; modus-operandi-theme-rainbow-headings (boolean)
-;; modus-operandi-theme-section-headings (boolean)
+;; modus-operandi-theme-headings (alist)
;; modus-operandi-theme-scale-headings (boolean)
;; modus-operandi-theme-fringes (choice)
;; modus-operandi-theme-org-blocks (choice)
@@ -444,14 +443,44 @@ between foreground and background is >= 7:1)."
"Use proportional fonts (variable-pitch) in headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-operandi-theme-rainbow-headings
+ 'modus-operandi-theme-headings "`modus-operandi-theme' 0.13.0")
+
(defcustom modus-operandi-theme-rainbow-headings nil
"Use more saturated colours for headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-operandi-theme-section-headings
+ 'modus-operandi-theme-headings "`modus-operandi-theme' 0.13.0")
+
(defcustom modus-operandi-theme-section-headings nil
"Use a background and an overline in headings."
:type 'boolean)
+(defcustom modus-operandi-theme-headings
+ '((t . nil))
+ "Alist of styles for headings."
+ :type
+ '(alist
+ :key-type symbol
+ :value-type
+ (choice (const :tag "Fairly desaturated foreground with bold weight
(default)" nil)
+ (const :tag "Like `nil' without bold weight" no-bold)
+ (const :tag "Like `nil' plus overline" line)
+ (const :tag "Like `line' without bold weight" line-no-bold)
+ (const :tag "Like `nil' but with saturated foreground" rainbow)
+ (const :tag "Like `rainbow' plus overline" rainbow-line)
+ (const :tag "Like `rainbow' without bold weight" rainbow-no-bold)
+ (const :tag "Like `rainbow-line' without bold weight"
rainbow-line-no-bold)
+ (const :tag "Like `nil' plus subtle background" highlight)
+ (const :tag "Like `highlight' without bold weight"
highlight-no-bold)
+ (const :tag "Like `highlight' with saturated foreground"
rainbow-highlight)
+ (const :tag "Like `rainbow-highlight' without bold weight"
rainbow-highlight-no-bold)
+ (const :tag "Like `highlight' plus overline" section)
+ (const :tag "Like `section' without bold weight" section-no-bold)
+ (const :tag "Like `section' with saturated foreground"
rainbow-section)
+ (const :tag "Like `rainbow-section' without bold weight"
rainbow-section-no-bold))))
+
(defcustom modus-operandi-theme-scale-headings nil
"Use font scaling for headings."
:type 'boolean)
@@ -732,29 +761,68 @@ FAINT is the less saturated colour."
(list :foreground faint)
(list :foreground normal)))
-(defun modus-operandi-theme-heading-foreground (subtle rainbow)
- "Apply foreground value to headings.
-SUBTLE is the default aesthetic. RAINBOW is the saturated one."
- (if modus-operandi-theme-rainbow-headings
- (list :foreground rainbow)
- (list :foreground subtle)))
+(defun modus-operandi-theme-heading-p (key)
+ "Query style of KEY in `modus-operandi-theme-headings'."
+ (cdr (assoc key modus-operandi-theme-headings)))
-(defun modus-operandi-theme-heading-block (bg fg)
- "Conditionally extend heading styles.
-Apply BG to background and FG to overline."
- (if modus-operandi-theme-section-headings
- (append
- (and (>= emacs-major-version 27) '(:extend t))
- (list :background bg :overline fg))
- (list :background nil :overline nil)))
+(defun modus-operandi-theme-heading (level fg fg-alt bg border)
+ "Conditional styles for `modus-operandi-theme-headings'.
+
+LEVEL is the heading's position in their order. FG is the
+default text colour. FG-ALT is an accented, more saturated value
+than the default. BG is a nuanced, typically accented,
+background that can work well with either of the foreground
+values. BORDER is a colour value that combines well with the
+background and alternative foreground.
-(defun modus-operandi-theme-org-todo-block (bgbox fgbox fg)
- "Conditionally extend the styles of Org keywords.
-BGBOX applies to the background. FGBOX applies to the foreground
-and the border. FG is used when no block style is in effect."
- (if modus-operandi-theme-section-headings
- (list :background bgbox :foreground fgbox :box (list :color fgbox))
- (list :foreground fg)))
+Optional STYLE is one of the possible choices defined in
+`modus-operandi-theme-headings'."
+ (let* ((key (modus-operandi-theme-heading-p `,level))
+ (style (if key key (modus-operandi-theme-heading-p t)))
+ (var (if modus-operandi-theme-variable-pitch-headings
+ 'variable-pitch
+ 'default)))
+ (pcase style
+ ('no-bold
+ (list :inherit `,var :foreground fg))
+ ('line
+ (list :inherit `(bold ,var) :foreground fg :overline t))
+ ('line-no-bold
+ (list :inherit `,var :foreground fg :overline t))
+ ('rainbow
+ (list :inherit `(bold ,var) :foreground fg-alt))
+ ('rainbow-no-bold
+ (list :inherit `,var :foreground fg-alt))
+ ('rainbow-line
+ (list :inherit `(bold ,var) :foreground fg-alt :overline t))
+ ('rainbow-line-no-bold
+ (list :inherit `,var :foreground fg-alt :overline t))
+ ('highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg))
+ ('highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg))
+ ('rainbow-highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt))
+ ('rainbow-highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg-alt))
+ ('section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg :overline
t)))
+ ('section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg :overline t)))
+ ('rainbow-section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt
:overline border)))
+ ('rainbow-section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg-alt :overline
border)))
+ (_
+ (list :inherit `(bold ,var) :foreground fg)))))
(defun modus-operandi-theme-org-block (bgblk)
"Conditionally set the background of Org blocks.
@@ -3262,18 +3330,18 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-agenda-clocking ((,class :inherit modus-theme-special-cold)))
`(org-agenda-column-dateline ((,class :background ,bg-alt)))
`(org-agenda-current-time ((,class :inherit modus-theme-subtle-cyan)))
- `(org-agenda-date ((,class :inherit ,modus-theme-variable-pitch :foreground
,cyan-alt-other
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
cyan-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date ((,class ,@(modus-operandi-theme-heading
+ 1 cyan-alt-other cyan-alt-other
cyan-nuanced-bg cyan-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
`(org-agenda-date-today ((,class :inherit (bold ,modus-theme-variable-pitch)
:background ,cyan-intense-bg :foreground
,fg-main
,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
- `(org-agenda-date-weekend ((,class :inherit ,modus-theme-variable-pitch
:foreground ,cyan
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
blue-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date-weekend ((,class ,@(modus-operandi-theme-heading
+ 1 cyan cyan blue-nuanced-bg
cyan-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
`(org-agenda-diary ((,class :foreground ,fg-main)))
`(org-agenda-dimmed-todo-face ((,class :inherit
modus-theme-subtle-neutral)))
- `(org-agenda-done ((,class ,@(modus-operandi-theme-org-todo-block
green-nuanced-bg green-nuanced green))))
+ `(org-agenda-done ((,class :foreground ,green-alt)))
`(org-agenda-filter-category ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-effort ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-regexp ((,class :inherit bold :foreground
,magenta-active)))
@@ -3292,12 +3360,12 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-block-end-line ((,class :inherit org-block-begin-line)))
`(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
:background ,bg-inactive :foreground ,fg-active)))
- `(org-checkbox-statistics-done ((,class :foreground ,green
-
,@(modus-operandi-theme-heading-block
- green-nuanced-bg
green-nuanced))))
- `(org-checkbox-statistics-todo ((,class
,@(modus-operandi-theme-heading-foreground red-alt red)
-
,@(modus-operandi-theme-heading-block
- red-nuanced-bg red-nuanced))))
+ `(org-checkbox-statistics-done ((,class :box ,bg-region :background
,green-nuanced-bg
+ :foreground ,green
+ :inherit
,modus-theme-variable-pitch)))
+ `(org-checkbox-statistics-todo ((,class :box ,bg-region :background
,red-nuanced-bg
+ :foreground ,red-alt
+ :inherit
,modus-theme-variable-pitch)))
`(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
`(org-code ((,class :inherit fixed-pitch :foreground ,magenta)))
`(org-column ((,class :background ,bg-alt)))
@@ -3309,8 +3377,10 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-document-info-keyword ((,class :inherit fixed-pitch :foreground
,fg-alt)))
`(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch)
:foreground ,fg-special-cold
,@(modus-operandi-theme-scale
modus-operandi-theme-scale-5))))
- `(org-done ((,class ,@(modus-operandi-theme-org-todo-block green-nuanced-bg
green-nuanced green))))
- `(org-drawer ((,class :foreground ,cyan-alt)))
+ `(org-done ((,class :box ,bg-region :background ,green-nuanced-bg
:foreground ,green
+ :inherit ,modus-theme-variable-pitch)))
+ `(org-drawer ((,class :box ,bg-region :background ,bg-dim :foreground
,cyan-alt
+ :inherit ,modus-theme-variable-pitch)))
`(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's
colour
`(org-footnote ((,class :foreground ,blue-alt :underline t)))
`(org-formula ((,class :inherit fixed-pitch :foreground ,red-alt)))
@@ -3322,48 +3392,38 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
`(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
`(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
- `(org-headline-done ((,class :foreground ,green-nuanced
- ,@(modus-operandi-theme-heading-block
- green-nuanced-bg green-nuanced))))
+ `(org-headline-done ((,class :inherit ,modus-theme-variable-pitch
:foreground ,green-nuanced)))
`(org-hide ((,class :foreground ,bg-main)))
`(org-indent ((,class :inherit (fixed-pitch org-hide))))
`(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
- `(org-level-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(org-level-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2)
- ,@(modus-operandi-theme-heading-block
blue-nuanced-bg blue-nuanced))))
- `(org-level-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1)
- ,@(modus-operandi-theme-heading-block
cyan-nuanced-bg cyan-nuanced))))
- `(org-level-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-operandi-theme-heading-block
green-nuanced-bg green-nuanced))))
- `(org-level-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-operandi-theme-heading-block
yellow-nuanced-bg yellow-nuanced))))
- `(org-level-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
red-nuanced red-alt)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-operandi-theme-heading-block bg-alt
fg-alt))))
+ `(org-level-1 ((,class ,@(modus-operandi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
magenta-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
+ `(org-level-2 ((,class ,@(modus-operandi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
red-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3))))
+ `(org-level-3 ((,class ,@(modus-operandi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg
blue-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2))))
+ `(org-level-4 ((,class ,@(modus-operandi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg
cyan-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1))))
+ `(org-level-5 ((,class ,@(modus-operandi-theme-heading
+ 5 fg-special-calm green-alt-other
green-nuanced-bg green-nuanced))))
+ `(org-level-6 ((,class ,@(modus-operandi-theme-heading
+ 6 yellow-nuanced yellow-alt-other
yellow-nuanced-bg yellow-nuanced))))
+ `(org-level-7 ((,class ,@(modus-operandi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg
red-nuanced))))
+ `(org-level-8 ((,class ,@(modus-operandi-theme-heading
+ 8 fg-dim magenta bg-alt fg-alt))))
`(org-link ((,class :inherit link)))
`(org-list-dt ((,class :inherit bold)))
`(org-macro ((,class :inherit org-latex-and-related)))
`(org-meta-line ((,class :inherit fixed-pitch :background ,cyan-nuanced-bg
:foreground ,cyan-nuanced)))
`(org-mode-line-clock ((,class :foreground ,fg-main)))
`(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
- `(org-priority ((,class ,@(modus-operandi-theme-org-todo-block
magenta-nuanced-bg magenta-nuanced magenta)
- ,@(modus-operandi-theme-heading-foreground magenta
magenta-alt-other))))
+ `(org-priority ((,class :box ,bg-region :background ,magenta-nuanced-bg
:foreground ,magenta
+ :inherit ,modus-theme-variable-pitch)))
`(org-quote ((,class ,@(if modus-operandi-theme-org-blocks
(append
(and (>= emacs-major-version 27) '(:extend t))
@@ -3374,14 +3434,15 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
`(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
`(org-sexp-date ((,class :inherit org-date)))
- `(org-special-keyword ((,class ,@(modus-operandi-theme-org-todo-block
cyan-nuanced-bg cyan-nuanced cyan-alt))))
+ `(org-special-keyword ((,class :box ,bg-region :background ,bg-dim
:foreground ,cyan
+ :inherit ,modus-theme-variable-pitch)))
`(org-table ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
`(org-tag ((,class ,@(modus-operandi-theme-bold-weight) :foreground
,magenta-nuanced)))
`(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
`(org-target ((,class :underline t)))
`(org-time-grid ((,class :foreground ,fg-unfocused)))
- `(org-todo ((,class ,@(modus-operandi-theme-org-todo-block red-nuanced-bg
red-nuanced red-alt)
- ,@(modus-operandi-theme-heading-foreground red-alt
red))))
+ `(org-todo ((,class :box ,bg-region :background ,red-nuanced-bg :foreground
,red-alt
+ :inherit ,modus-theme-variable-pitch)))
`(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
`(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
`(org-verbatim ((,class :inherit fixed-pitch :background ,bg-alt
:foreground ,fg-special-calm)))
@@ -3415,37 +3476,28 @@ Also bind `class' to ((class color) (min-colors 89))."
`(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim
:box t)))
`(origami-fold-replacement-face ((,class :background ,bg-alt :foreground
,fg-alt)))
;;;;; outline-mode
- `(outline-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(outline-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2)
- ,@(modus-operandi-theme-heading-block blue-nuanced-bg
blue-nuanced))))
- `(outline-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1)
- ,@(modus-operandi-theme-heading-block cyan-nuanced-bg
cyan-nuanced))))
- `(outline-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-operandi-theme-heading-block green-nuanced-bg
green-nuanced))))
- `(outline-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-operandi-theme-heading-block
yellow-nuanced-bg yellow-nuanced))))
- `(outline-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground red-nuanced
red-alt)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-operandi-theme-heading-block bg-alt fg-alt))))
+ `(outline-1 ((,class ,@(modus-operandi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
magenta-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
+ `(outline-2 ((,class ,@(modus-operandi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
red-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3))))
+ `(outline-3 ((,class ,@(modus-operandi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg blue-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2))))
+ `(outline-4 ((,class ,@(modus-operandi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg cyan-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1))))
+ `(outline-5 ((,class ,@(modus-operandi-theme-heading
+ 5 fg-special-calm green-alt-other green-nuanced-bg
green-nuanced))))
+ `(outline-6 ((,class ,@(modus-operandi-theme-heading
+ 6 yellow-nuanced yellow-alt-other yellow-nuanced-bg
yellow-nuanced))))
+ `(outline-7 ((,class ,@(modus-operandi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg red-nuanced))))
+ `(outline-8 ((,class ,@(modus-operandi-theme-heading
+ 8 fg-dim magenta bg-alt fg-alt))))
;;;;; outline-minor-faces
- `(outline-minor-0 ((,class ,@(unless modus-operandi-theme-section-headings
- (list :background cyan-nuanced-bg)))))
+ `(outline-minor-0 ((,class nil)))
;;;;; package (M-x list-packages)
`(package-description ((,class :foreground ,fg-special-cold)))
`(package-help-section-name ((,class :inherit bold :foreground
,magenta-alt-other)))
diff --git a/modus-vivendi-theme.el b/modus-vivendi-theme.el
index e6651a3..186a490 100644
--- a/modus-vivendi-theme.el
+++ b/modus-vivendi-theme.el
@@ -42,8 +42,7 @@
;; modus-vivendi-theme-slanted-constructs (boolean)
;; modus-vivendi-theme-bold-constructs (boolean)
;; modus-vivendi-theme-variable-pitch-headings (boolean)
-;; modus-vivendi-theme-rainbow-headings (boolean)
-;; modus-vivendi-theme-section-headings (boolean)
+;; modus-vivendi-theme-headings (alist)
;; modus-vivendi-theme-scale-headings (boolean)
;; modus-vivendi-theme-fringes (choice)
;; modus-vivendi-theme-org-blocks (choice)
@@ -444,14 +443,44 @@ between foreground and background is >= 7:1)."
"Use proportional fonts (variable-pitch) in headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-vivendi-theme-rainbow-headings
+ 'modus-vivendi-theme-headings "`modus-vivendi-theme' 0.13.0")
+
(defcustom modus-vivendi-theme-rainbow-headings nil
"Use more saturated colours for headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-vivendi-theme-section-headings
+ 'modus-vivendi-theme-headings "`modus-vivendi-theme' 0.13.0")
+
(defcustom modus-vivendi-theme-section-headings nil
"Use a background and an overline in headings."
:type 'boolean)
+(defcustom modus-vivendi-theme-headings
+ '((t . nil))
+ "Alist of styles for headings."
+ :type
+ '(alist
+ :key-type symbol
+ :value-type
+ (choice (const :tag "Fairly desaturated foreground with bold weight
(default)" nil)
+ (const :tag "Like `nil' without bold weight" no-bold)
+ (const :tag "Like `nil' plus overline" line)
+ (const :tag "Like `line' without bold weight" line-no-bold)
+ (const :tag "Like `nil' but with saturated foreground" rainbow)
+ (const :tag "Like `rainbow' plus overline" rainbow-line)
+ (const :tag "Like `rainbow' without bold weight" rainbow-no-bold)
+ (const :tag "Like `rainbow-line' without bold weight"
rainbow-line-no-bold)
+ (const :tag "Like `nil' plus subtle background" highlight)
+ (const :tag "Like `highlight' without bold weight"
highlight-no-bold)
+ (const :tag "Like `highlight' with saturated foreground"
rainbow-highlight)
+ (const :tag "Like `rainbow-highlight' without bold weight"
rainbow-highlight-no-bold)
+ (const :tag "Like `highlight' plus overline" section)
+ (const :tag "Like `section' without bold weight" section-no-bold)
+ (const :tag "Like `section' with saturated foreground"
rainbow-section)
+ (const :tag "Like `rainbow-section' without bold weight"
rainbow-section-no-bold))))
+
(defcustom modus-vivendi-theme-scale-headings nil
"Use font scaling for headings."
:type 'boolean)
@@ -732,29 +761,68 @@ FAINT is the less saturated colour."
(list :foreground faint)
(list :foreground normal)))
-(defun modus-vivendi-theme-heading-foreground (subtle rainbow)
- "Apply foreground value to headings.
-SUBTLE is the default aesthetic. RAINBOW is the saturated one."
- (if modus-vivendi-theme-rainbow-headings
- (list :foreground rainbow)
- (list :foreground subtle)))
+(defun modus-vivendi-theme-heading-p (key)
+ "Query style of KEY in `modus-vivendi-theme-headings'."
+ (cdr (assoc key modus-vivendi-theme-headings)))
-(defun modus-vivendi-theme-heading-block (bg fg)
- "Conditionally extend heading styles.
-Apply BG to background and FG to overline."
- (if modus-vivendi-theme-section-headings
- (append
- (and (>= emacs-major-version 27) '(:extend t))
- (list :background bg :overline fg))
- (list :background nil :overline nil)))
+(defun modus-vivendi-theme-heading (level fg fg-alt bg border)
+ "Conditional styles for `modus-vivendi-theme-headings'.
+
+LEVEL is the heading's position in their order. FG is the
+default text colour. FG-ALT is an accented, more saturated value
+than the default. BG is a nuanced, typically accented,
+background that can work well with either of the foreground
+values. BORDER is a colour value that combines well with the
+background and alternative foreground.
-(defun modus-vivendi-theme-org-todo-block (bgbox fgbox fg)
- "Conditionally extend the styles of Org keywords.
-BGBOX applies to the background. FGBOX applies to the foreground
-and the border. FG is used when no block style is in effect."
- (if modus-vivendi-theme-section-headings
- (list :background bgbox :foreground fgbox :box (list :color fgbox))
- (list :foreground fg)))
+Optional STYLE is one of the possible choices defined in
+`modus-vivendi-theme-headings'."
+ (let* ((key (modus-vivendi-theme-heading-p `,level))
+ (style (if key key (modus-vivendi-theme-heading-p t)))
+ (var (if modus-vivendi-theme-variable-pitch-headings
+ 'variable-pitch
+ 'default)))
+ (pcase style
+ ('no-bold
+ (list :inherit `,var :foreground fg))
+ ('line
+ (list :inherit `(bold ,var) :foreground fg :overline t))
+ ('line-no-bold
+ (list :inherit `,var :foreground fg :overline t))
+ ('rainbow
+ (list :inherit `(bold ,var) :foreground fg-alt))
+ ('rainbow-no-bold
+ (list :inherit `,var :foreground fg-alt))
+ ('rainbow-line
+ (list :inherit `(bold ,var) :foreground fg-alt :overline t))
+ ('rainbow-line-no-bold
+ (list :inherit `,var :foreground fg-alt :overline t))
+ ('highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg))
+ ('highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg))
+ ('rainbow-highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt))
+ ('rainbow-highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg-alt))
+ ('section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg :overline
t)))
+ ('section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg :overline t)))
+ ('rainbow-section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt
:overline border)))
+ ('rainbow-section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg-alt :overline
border)))
+ (_
+ (list :inherit `(bold ,var) :foreground fg)))))
(defun modus-vivendi-theme-org-block (bgblk)
"Conditionally set the background of Org blocks.
@@ -3262,18 +3330,18 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-agenda-clocking ((,class :inherit modus-theme-special-cold)))
`(org-agenda-column-dateline ((,class :background ,bg-alt)))
`(org-agenda-current-time ((,class :inherit modus-theme-subtle-cyan)))
- `(org-agenda-date ((,class :inherit ,modus-theme-variable-pitch :foreground
,cyan-alt-other
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
cyan-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date ((,class ,@(modus-vivendi-theme-heading
+ 1 cyan-alt-other cyan-alt-other
cyan-nuanced-bg cyan-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
`(org-agenda-date-today ((,class :inherit (bold ,modus-theme-variable-pitch)
:background ,cyan-intense-bg :foreground
,fg-main
,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
- `(org-agenda-date-weekend ((,class :inherit ,modus-theme-variable-pitch
:foreground ,cyan
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
blue-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date-weekend ((,class ,@(modus-vivendi-theme-heading
+ 1 cyan cyan blue-nuanced-bg
cyan-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
`(org-agenda-diary ((,class :foreground ,fg-main)))
`(org-agenda-dimmed-todo-face ((,class :inherit
modus-theme-subtle-neutral)))
- `(org-agenda-done ((,class ,@(modus-vivendi-theme-org-todo-block
green-nuanced-bg green-nuanced green))))
+ `(org-agenda-done ((,class :foreground ,green-alt)))
`(org-agenda-filter-category ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-effort ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-regexp ((,class :inherit bold :foreground
,magenta-active)))
@@ -3292,12 +3360,12 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-block-end-line ((,class :inherit org-block-begin-line)))
`(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
:background ,bg-inactive :foreground ,fg-active)))
- `(org-checkbox-statistics-done ((,class :foreground ,green
- ,@(modus-vivendi-theme-heading-block
- green-nuanced-bg
green-nuanced))))
- `(org-checkbox-statistics-todo ((,class
,@(modus-vivendi-theme-heading-foreground red-alt red)
- ,@(modus-vivendi-theme-heading-block
- red-nuanced-bg red-nuanced))))
+ `(org-checkbox-statistics-done ((,class :box ,bg-region :background
,green-nuanced-bg
+ :foreground ,green
+ :inherit
,modus-theme-variable-pitch)))
+ `(org-checkbox-statistics-todo ((,class :box ,bg-region :background
,red-nuanced-bg
+ :foreground ,red-alt
+ :inherit
,modus-theme-variable-pitch)))
`(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
`(org-code ((,class :inherit fixed-pitch :foreground ,magenta)))
`(org-column ((,class :background ,bg-alt)))
@@ -3309,8 +3377,10 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-document-info-keyword ((,class :inherit fixed-pitch :foreground
,fg-alt)))
`(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch)
:foreground ,fg-special-cold
,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-5))))
- `(org-done ((,class ,@(modus-vivendi-theme-org-todo-block green-nuanced-bg
green-nuanced green))))
- `(org-drawer ((,class :foreground ,cyan-alt)))
+ `(org-done ((,class :box ,bg-region :background ,green-nuanced-bg
:foreground ,green
+ :inherit ,modus-theme-variable-pitch)))
+ `(org-drawer ((,class :box ,bg-region :background ,bg-dim :foreground
,cyan-alt
+ :inherit ,modus-theme-variable-pitch)))
`(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's
colour
`(org-footnote ((,class :foreground ,blue-alt :underline t)))
`(org-formula ((,class :inherit fixed-pitch :foreground ,red-alt)))
@@ -3322,48 +3392,38 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
`(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
`(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
- `(org-headline-done ((,class :foreground ,green-nuanced
- ,@(modus-vivendi-theme-heading-block
- green-nuanced-bg green-nuanced))))
+ `(org-headline-done ((,class :inherit ,modus-theme-variable-pitch
:foreground ,green-nuanced)))
`(org-hide ((,class :foreground ,bg-main)))
`(org-indent ((,class :inherit (fixed-pitch org-hide))))
`(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
- `(org-level-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(org-level-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2)
- ,@(modus-vivendi-theme-heading-block blue-nuanced-bg
blue-nuanced))))
- `(org-level-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1)
- ,@(modus-vivendi-theme-heading-block cyan-nuanced-bg
cyan-nuanced))))
- `(org-level-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-vivendi-theme-heading-block
green-nuanced-bg green-nuanced))))
- `(org-level-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-vivendi-theme-heading-block
yellow-nuanced-bg yellow-nuanced))))
- `(org-level-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
red-nuanced red-alt)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-vivendi-theme-heading-block bg-alt
fg-alt))))
+ `(org-level-1 ((,class ,@(modus-vivendi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
magenta-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
+ `(org-level-2 ((,class ,@(modus-vivendi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
red-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3))))
+ `(org-level-3 ((,class ,@(modus-vivendi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg
blue-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2))))
+ `(org-level-4 ((,class ,@(modus-vivendi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg
cyan-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1))))
+ `(org-level-5 ((,class ,@(modus-vivendi-theme-heading
+ 5 fg-special-calm green-alt-other
green-nuanced-bg green-nuanced))))
+ `(org-level-6 ((,class ,@(modus-vivendi-theme-heading
+ 6 yellow-nuanced yellow-alt-other
yellow-nuanced-bg yellow-nuanced))))
+ `(org-level-7 ((,class ,@(modus-vivendi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg
red-nuanced))))
+ `(org-level-8 ((,class ,@(modus-vivendi-theme-heading
+ 8 fg-dim magenta bg-alt fg-alt))))
`(org-link ((,class :inherit link)))
`(org-list-dt ((,class :inherit bold)))
`(org-macro ((,class :inherit org-latex-and-related)))
`(org-meta-line ((,class :inherit fixed-pitch :background ,cyan-nuanced-bg
:foreground ,cyan-nuanced)))
`(org-mode-line-clock ((,class :foreground ,fg-main)))
`(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
- `(org-priority ((,class ,@(modus-vivendi-theme-org-todo-block
magenta-nuanced-bg magenta-nuanced magenta)
- ,@(modus-vivendi-theme-heading-foreground magenta
magenta-alt-other))))
+ `(org-priority ((,class :box ,bg-region :background ,magenta-nuanced-bg
:foreground ,magenta
+ :inherit ,modus-theme-variable-pitch)))
`(org-quote ((,class ,@(if modus-vivendi-theme-org-blocks
(append
(and (>= emacs-major-version 27) '(:extend t))
@@ -3374,14 +3434,15 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
`(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
`(org-sexp-date ((,class :inherit org-date)))
- `(org-special-keyword ((,class ,@(modus-vivendi-theme-org-todo-block
cyan-nuanced-bg cyan-nuanced cyan-alt))))
+ `(org-special-keyword ((,class :box ,bg-region :background ,bg-dim
:foreground ,cyan
+ :inherit ,modus-theme-variable-pitch)))
`(org-table ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
`(org-tag ((,class ,@(modus-vivendi-theme-bold-weight) :foreground
,magenta-nuanced)))
`(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
`(org-target ((,class :underline t)))
`(org-time-grid ((,class :foreground ,fg-unfocused)))
- `(org-todo ((,class ,@(modus-vivendi-theme-org-todo-block red-nuanced-bg
red-nuanced red-alt)
- ,@(modus-vivendi-theme-heading-foreground red-alt
red))))
+ `(org-todo ((,class :box ,bg-region :background ,red-nuanced-bg :foreground
,red-alt
+ :inherit ,modus-theme-variable-pitch)))
`(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
`(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
`(org-verbatim ((,class :inherit fixed-pitch :background ,bg-alt
:foreground ,fg-special-calm)))
@@ -3415,37 +3476,28 @@ Also bind `class' to ((class color) (min-colors 89))."
`(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim
:box t)))
`(origami-fold-replacement-face ((,class :background ,bg-alt :foreground
,fg-alt)))
;;;;; outline-mode
- `(outline-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(outline-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2)
- ,@(modus-vivendi-theme-heading-block blue-nuanced-bg
blue-nuanced))))
- `(outline-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1)
- ,@(modus-vivendi-theme-heading-block cyan-nuanced-bg
cyan-nuanced))))
- `(outline-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-vivendi-theme-heading-block green-nuanced-bg
green-nuanced))))
- `(outline-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-vivendi-theme-heading-block yellow-nuanced-bg
yellow-nuanced))))
- `(outline-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground red-nuanced
red-alt)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-vivendi-theme-heading-block bg-alt fg-alt))))
+ `(outline-1 ((,class ,@(modus-vivendi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
magenta-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
+ `(outline-2 ((,class ,@(modus-vivendi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
red-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3))))
+ `(outline-3 ((,class ,@(modus-vivendi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg blue-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2))))
+ `(outline-4 ((,class ,@(modus-vivendi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg cyan-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1))))
+ `(outline-5 ((,class ,@(modus-vivendi-theme-heading
+ 5 fg-special-calm green-alt-other green-nuanced-bg
green-nuanced))))
+ `(outline-6 ((,class ,@(modus-vivendi-theme-heading
+ 6 yellow-nuanced yellow-alt-other yellow-nuanced-bg
yellow-nuanced))))
+ `(outline-7 ((,class ,@(modus-vivendi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg red-nuanced))))
+ `(outline-8 ((,class ,@(modus-vivendi-theme-heading
+ 8 fg-dim magenta bg-alt fg-alt))))
;;;;; outline-minor-faces
- `(outline-minor-0 ((,class ,@(unless modus-vivendi-theme-section-headings
- (list :background cyan-nuanced-bg)))))
+ `(outline-minor-0 ((,class nil)))
;;;;; package (M-x list-packages)
`(package-description ((,class :foreground ,fg-special-cold)))
`(package-help-section-name ((,class :inherit bold :foreground
,magenta-alt-other)))
- [elpa] externals/modus-operandi-theme 53606c6 011/153: Remove support for obsolete objed-extend face, (continued)
- [elpa] externals/modus-operandi-theme 53606c6 011/153: Remove support for obsolete objed-extend face, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 9fed8eb 033/153: Update the manual's example to include new option, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme d9fa0ff 021/153: Add missing metadata to info manual, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme e596487 025/153: Add README in markdown format, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 619e48b 045/153: Tweak custom fonts section in the manual, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 113ab25 032/153: Simplify style of org-special-keyword, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 00f8a28 044/153: Update README to note that the manual is available, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 72c0714 038/153: Add support for eshell-syntax-highlighting, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 0633c2a 047/153: Recompile manual (cover 619e48bbc and decf274f4), Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme d09be79 030/153: Expand docstring of new headings' alist option, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme d5b6321 028/153: Initial implementation of reviewed headings option,
Stefan Monnier <=
- [elpa] externals/modus-operandi-theme 7789ae9 004/153: Clarify the version numbers that ship with Emacs, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 95ac8b4 020/153: Re-organise new doc files, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 49872b0 031/153: Expand manual with new heading styles alist option, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 3d00716 049/153: Use distinct colour for info-menu-star, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme a745281 053/153: Minor tweaks to custom modeline 'moody' option, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme decf274 046/153: Add manual entry on Org user faces (DIY), Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 0e45c0a 056/153: Reword manual's entry on Org user faces, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme ab61e17 029/153: Several refinements to new headings custom alist, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 6fee2d0 055/153: Make the README a bit more informative, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 306a64a 034/153: Let the README only provide useful links, Stefan Monnier, 2021/03/18