emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/modus-operandi-theme ef898e7: Merge 'master' into elpa/


From: Stefan Monnier
Subject: [elpa] externals/modus-operandi-theme ef898e7: Merge 'master' into elpa/modus-operandi-theme
Date: Wed, 29 Apr 2020 21:41:06 -0400 (EDT)

branch: externals/modus-operandi-theme
commit ef898e7f828b908eeb0630fbe5c85d211ff0a7ff
Merge: 58836de 29078bd
Author: Protesilaos Stavrou <address@hidden>
Commit: Protesilaos Stavrou <address@hidden>

    Merge 'master' into elpa/modus-operandi-theme
---
 .gitignore              |   3 +
 CHANGELOG.org           | 169 +++++++++
 README.org              | 405 ++++++++++++++++++---
 modus-operandi-theme.el | 950 +++++++++++++++++++++++++++++++++++-------------
 4 files changed, 1220 insertions(+), 307 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cb62d01
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.elc
+*-autoloads.el
+*-pkg.el
diff --git a/CHANGELOG.org b/CHANGELOG.org
index 65a5067..40ff91f 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -6,6 +6,175 @@ This document contains the release notes that are included in 
each
 tagged commit on https://gitlab.com/protesilaos/modus-themes.  The
 newest release is at the top.
 
+* 0.8.0
+
+Modus Operandi and Modus Vivendi version 0.8.0
+
+By Protesilaos Stavrou <address@hidden> on 2020-04-28
+
+This entry records the changes since version 0.7.0 (2020-03-30).  The
+present release contains a little more than a hundred commits, covering
+one month of intense work.
+
+All changes are aligned with the primary objective of this project,
+which is conformance with the WCAG AAA accessibility standard for colour
+contrast.  This translates to a minimum contrast ratio of 7:1 between a
+given combination of foreground and background colours.
+
+All customisation options mentioned herein are off ('nil') by default.
+The project's policy is to offer such features on an "opt-in" basis,
+while always respecting the principle of least surprise.
+
+Refer to the README for further information.
+
+
+Four new customisation options
+------------------------------
+
+The options in outline, with their detailed description below:
+
++ Rainbow headings
++ Section headings
++ 3D modeline
++ Subtle diffs
+
+1. "Rainbow headings" will apply more vivid colours to headings in
+   'org-mode' and 'outline-mode'.  The gradation is similar to that of a
+   rainbow's colour spectrum.
+
+   The default is to use colour values that are closer to the grey
+   scale.
+
+2. "Section headings" also apply to 'org-mode' and 'outline-mode'.  They
+   will draw an overline over each heading and use a nuanced background
+   colour that is appropriate for each level.  For Org, this option has
+   some additional effects, where it will render keywords and priority
+   cookies in a box and add to them a subtle background.  This is to
+   make sure that everything feels consistent (to the extent possible).
+
+   The default is to not use overlines, backgrounds, boxes in any of the
+   relevant faces.  This is consistent with the standard austere
+   colouration of headings: to not deviate too much from a "plain text"
+   aesthetic.
+
+NOTE: "rainbow headings" and "section headings" can work on their own or
+be combined together.
+
+3. "3D modeline" will use a faux unpressed button style for the current
+   window's modeline (like the standard looks of 'emacs -Q').  The
+   colours used for the active and inactive modelines are tweaked
+   accordingly to maximise the effect while retaining the visual
+   distinction between them.
+
+   The default is to draw the modelines in a two-dimensional style, with
+   the active one having a more noticeable border around it.
+
+4. "Subtle diffs" will use colour-coded text for line-wise differences
+   without applying any appropriately-coded background value or, where
+   necessary, by using only a subtle greyscale background.  This affects
+   'diff-mode', 'magit', 'ediff', and 'smerge-mode'.  For Magit an extra
+   set of tweaks is implemented to account for the differentiation
+   between the focused and unfocused diff hunks.
+
+   Due to their unique requirements, word-wise or refined changes are
+   always drawn with a colour-coded background, though it is less
+   intense when this option is enabled.
+
+   The default is to use a colour-coded background and foreground
+   combination (e.g. light green text on a dark green backdrop) and to
+   make appropriate adjustments for refined diffs and modes of
+   interaction such as Magit's focused/unfocused diff states.
+
+
+Other major refinements
+-----------------------
+
++ Thoroughly revise the colours of 'ediff' and 'smerge-mode', so that
+  they are aligned with those of 'diff-mode' and 'magit'.  This is in
+  addition to the "subtle diffs" options mentioned in the previous
+  section.
+
++ Review the faces used by Flycheck and Flymake.  A wavy/curly underline
+  is now used in all terminals that support it.  The underlined text is
+  drawn with a more nuanced foreground than before.  The previous design
+  was exaggerating an already clear effect and could make things more
+  difficult under certain circumstances.
+
++ All language checkers, including the aforementioned linter front-ends,
+  now benefit from a new set of colours that are designed specifically
+  for this particular purpose.  Makes the affected faces feel more
+  different than their context.
+
++ Use dedicated colours for escape sequences, regular expression
+  constructs, and quoted characters.  The goal is to better
+  differentiate them from their surroundings.
+
++ Tweak the colours of 'hydra' to improve the distinction between its
+  various types of behaviour.
+
++ Reduce the overall luminance of the background colours used in the
+  fringes by the likes of 'flycheck', 'flymake', 'diff-hl', etc.  They
+  should now not stand out more than they should, while retaining their
+  intended role.
+
++ Implement more saturated colours in Elfeed.  The previous choices
+  could make it harder to differentiate the various parts of the
+  presentation.
+
++ Make better use of the customisation options for bold and slanted
+  constructs where that is allowed.  If a face is not tied to the
+  semantics of these styles then it is drawn without them, unless the
+  user specifically opts for the relevant customisation options.
+
+
+Added support for packages (A-Z)
+--------------------------------
+
++ ag
++ color-rg
++ ctrlf
++ debbugs
++ eglot
++ forge
++ helpful
++ highlight-symbol
++ ibuffer
++ icomplete
++ iflipb
++ magit-imerge
++ man
++ orderless
++ page-break-lines
++ parrot
++ phi-grep
++ phi-search
++ pomidor
++ rcirc
++ spell-fu
++ switch-window
++ swoop
++ tab-bar-mode
++ tab-line-mode
++ trashed
++ tomatinho
++ tuareg
++ vimish-fold
++ visible-mark
++ vterm
++ wcheck-mode
++ winum
++ woman
+
+
+Miscellaneous changes and concluding remarks
+--------------------------------------------
+
++ Rewrote large parts of the README to make the customisation options
+  easier to discover and understand.
+
++ Updated the screen shots and their description in the relevant Wiki
+  page: https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
+
 * 0.7.0
 
 Modus Operandi and Modus Vivendi version 0.7.0
diff --git a/README.org b/README.org
index de8ad81..b3efc45 100644
--- a/README.org
+++ b/README.org
@@ -16,9 +16,22 @@ The /Modus themes/ project consists of two standalone items, 
one where
 dark text is cast on a light backdrop (Modus Operandi) and another where
 light text is displayed against a dark background (Modus Vivendi).
 
-*Check the 
[[https://gitlab.com/protesilaos/modus-themes/wikis/Screenshots][Wiki page with 
the screen shots]].* Also note that I demo these
-themes in [[https://protesilaos.com/code-casts][my Emacs-related screen 
casts]] (though older videos contain
-earlier, "alpha" versions).
+The themes are *highly customisable* and can be made to look much
+different than their default austere aesthetic.  Make sure to read the
+section on the [[#h:d414ca47-6dce-4905-9f2e-de1465bf23bb][customisation 
options]].
+
+** Links with demo content
+   :PROPERTIES:
+   :CUSTOM_ID: h:3b1b8ad9-f08f-4329-b9ee-d817b610708f
+   :END:
+
+Check the 
[[https://gitlab.com/protesilaos/modus-themes/wikis/Screenshots][Wiki page with 
the screen shots]].  There are lots of scenaria
+on display that draw attention to details and important aspects in the
+design of the themes.  They also showcase the numerous customisation
+options.
+
+Also note that I use these themes in [[https://protesilaos.com/code-casts][my 
Emacs-related screen casts]]
+(although older videos contain earlier, "alpha" versions).
 
 * Install and auto-load
   :PROPERTIES:
@@ -49,13 +62,17 @@ To be clear, that sequence means:
 + type the name of the package
 + hit Return to confirm your choice
 
+*Remember to refresh your package lists* (=M-x package-refresh-contents= or
+=M-x list-packages=), in case Emacs complains that a package is no longer
+available.
+
 *** With `use-package'
     :PROPERTIES:
     :CUSTOM_ID: h:3ab0ac39-38fb-405b-8a15-771cbd843b6d
     :END:
 
 For a declarative approach with =use-package=, you can write something
-like this:
+like this (also see [[#h:d414ca47-6dce-4905-9f2e-de1465bf23bb][the 
customisation options]] for how to expand this):
 
 #+BEGIN_SRC emacs-lisp
 (use-package modus-operandi-theme
@@ -100,70 +117,247 @@ you might run into unexpected issues.
   :CUSTOM_ID: h:d414ca47-6dce-4905-9f2e-de1465bf23bb
   :END:
 
-Both of the Modus themes expose some variables that allow users to tweak
-the look of the theme.  By default, all variables are deactivated,
-meaning that *you need to explicitly opt in*.
+Both of the Modus themes expose variables that allow users to tweak how
+certain styles are configured.  Check the 
[[https://gitlab.com/protesilaos/modus-themes/wikis/Screenshots][Wiki with the 
screen shots]] to
+see how these will change things.
 
-This is what is available right now (use the ones appropriate to the
-theme of your choice):
+By default, all variables are deactivated (=nil=), meaning that *you need
+to explicitly opt in* like this:
 
-#+BEGIN_SRC emacs-lisp
-;; Choose to render more code constructs in slanted text (italics).  The
-;; default, shown below, is to not use italics, unless it is absolutely
-;; necessary.
-(setq modus-operandi-theme-slanted-constructs nil)
+#+begin_src emacs-lisp
+(setq CUSTOMISATION-OPTION-NAME t)
+
+;; example with "rainbow" headings for Modus Operandi:
+(setq modus-operandi-theme-rainbow-headings t)
+#+end_src
+
+Put the point (cursor) exactly to the right of the closing parenthesis
+and use =C-x C-e= to evaluate each =setq= form individually, or the entire
+expression that holds it (e.g. a function or =use-package= declaration).
 
-(setq modus-vivendi-theme-slanted-constructs nil)
+All customisation *options must be declared before loading the theme*,
+else they will not be parsed and have no immediate effect.  To [re-]load
+a theme, you can evaluate either of these:
 
-;; Opt to display some additional code constructs in bold.  The default,
-;; shown below, is to use bold weight only where necessary.
-(setq modus-operandi-theme-bold-constructs nil)
+#+begin_src emacs-lisp
+(load-theme 'modus-operandi t)
+(load-theme 'modus-vivendi t)
+#+end_src
 
-(setq modus-vivendi-theme-bold-constructs nil)
+Consult the section below with the 
[[#h:0e3b8a62-8d72-4439-be2d-cb12ed98f4cb][complete example configuration]] for 
a
+fully fledged =use-package= declaration.
 
-;; Use proportionately-spaced fonts (variable-pitch) for headings.  The
-;; default is to use whatever font the user has selected, typically a
-;; monospaced typeface.
-(setq modus-operandi-theme-proportional-fonts nil)
+** Option for distinct Org source blocks
+   :PROPERTIES:
+   :CUSTOM_ID: h:ca57a3af-6f79-4530-88c0-e35eda9d3bf7
+   :END:
 
-(setq modus-vivendi-theme-proportional-fonts nil)
++ =modus-operandi-theme-distinct-org-blocks=
++ =modus-vivendi-theme-distinct-org-blocks=
 
-;; Whether headings should be scaled or have the same height as body
-;; text.  The default is to keep everything the same as the base size.
-(setq modus-operandi-theme-scale-headings nil)
+Use a distinct background for Org's source blocks and extend their
+headings until the edge of the window (the "extend" part is for Emacs
+versions >= 27, whereas before they would extend regardless).  The
+default is to use the same background as the rest of the buffer for the
+contents of the block, while beginning and end lines do not extend to
+the end of the window (again, the "extend" is for Emacs 27 or higher).
 
-(setq modus-vivendi-theme-scale-headings nil)
+** Option for colourful "rainbow" headings
+   :PROPERTIES:
+   :CUSTOM_ID: h:1be42afb-bcd2-4425-b956-0ba93eb960c2
+   :END:
 
-;; Font scale that should apply to headings.  These are the default values.
-(setq modus-operandi-theme-scale-1 1.05)
-(setq modus-operandi-theme-scale-2 1.1)
-(setq modus-operandi-theme-scale-3 1.15)
-(setq modus-operandi-theme-scale-4 1.2)
++ =modus-operandi-theme-rainbow-headings=
++ =modus-vivendi-theme-rainbow-headings=
 
-(setq modus-vivendi-theme-scale-1 1.05)
-(setq modus-vivendi-theme-scale-2 1.1)
-(setq modus-vivendi-theme-scale-3 1.15)
-(setq modus-vivendi-theme-scale-4 1.2)
+Apply more saturated colours to headings in =org-mode= and =outline-mode=
+while retaining all other heading properties (such as a bold weight and
+the optional scaled height ---see relevant customisation toggle).  The
+colours follow the rainbow's spectrum.  In Org headings, some additional
+tweaks are made to adapt keywords (like "TODO") to the more vivid
+presentation.  The default uses a more frugal aesthetic for headings,
+letting their bold typography and the nuances between the various
+heading levels provide the elements of differentiation.
 
-;; Make the fringes visible.  This renders them in a different
-;; background than the main buffer.
-(setq modus-operandi-theme-visible-fringes nil)
+** Option for sectioned headings
+   :PROPERTIES:
+   :CUSTOM_ID: h:c1c9a380-7a05-4c0d-b714-2acac88f10ad
+   :END:
 
-(setq modus-vivendi-theme-visible-fringes nil)
++ =modus-operandi-theme-section-headings=
++ =modus-vivendi-theme-section-headings=
 
-;; Use a distinct background for Org's source blocks and extend their
-;; headings until the edge of the window (the "extend" part is for Emacs
-;; versions >= 27, whereas before they would extend anyhow).  The
-;; default is to use the same background as the rest of the buffer,
-;; while beginning and end lines do not extend to the end of the window
-;; (again, the extend is for Emacs 27 or higher).
-(setq modus-operandi-theme-distinct-org-blocks nil)
+The default is to use only a subtle foreground and a bold weight for
+headings, while no boxes or {under,over}-line effects are present.
 
-(setq modus-vivendi-theme-distinct-org-blocks nil)
-#+END_SRC
+Uses a background colour and an overline to mark section headings in
+=org-mode= and =outline-mode=.  These attributes are applied in addition to
+the existing foreground colour and the bold weight and can, therefore,
+be combined with the "rainbow" headings option (as well as all the other
+options pertaining to headings).  For Org several additional faces are
+configured accordingly, such as TODO keywords which gain a box style.
 
-*NOTE* that all customisation options must be declared /before/ loading
-the theme, else they will not be parsed and have no effect.
+** Option for scaled headings
+   :PROPERTIES:
+   :CUSTOM_ID: h:db0275ea-11c2-47c9-82a9-10b65d8df0f8
+   :END:
+
++ =modus-operandi-theme-scale-headings=
++ =modus-vivendi-theme-scale-headings=
+
+Make headings larger in size relative to the main text.  This is
+noticeable in modes like Org.  The default is to use the same size for
+headers and body copy.
+
+In addition to toggles for enabling scaled headings, users can also
+specify the exact multiplier relative to the base font size.  These are
+the variables in their default sizes, from the smallest to the largest
+(the numbers are very conservative, but you are free to increase them a
+bit, such as =1.2=, =1.4=, =1.6=, =1.8=):
+
+#+begin_src emacs-lisp
+(setq modus-operandi-theme-scale-1 1.05
+      modus-operandi-theme-scale-2 1.1
+      modus-operandi-theme-scale-3 1.15
+      modus-operandi-theme-scale-4 1.2)
+
+(setq modus-vivendi-theme-scale-1 1.05
+      modus-vivendi-theme-scale-2 1.1
+      modus-vivendi-theme-scale-3 1.15
+      modus-vivendi-theme-scale-4 1.2)
+#+end_src
+
+Note that in Org, scaling only increases the size of the heading, but
+not of keywords that are added to it, like "TODO".  This is outside the
+control of the themes and I am not aware of any way to make such
+keywords scale accordingly.
+
+** Option for visible fringes
+   :PROPERTIES:
+   :CUSTOM_ID: h:d989f116-7559-40bc-bf94-ef508d480960
+   :END:
+
++ =modus-operandi-theme-visible-fringe=
++ =modus-vivendi-theme-visible-fringe=
+
+When enabled, this will render the fringes in a subtle background
+colour.  The default is to use the same colour as that of the main
+background, meaning that the fringes are not obvious though they still
+occupy the space given to them by =fringe-mode=.
+
+** Option for more slanted constructs
+   :PROPERTIES:
+   :CUSTOM_ID: h:cb327797-b303-47c5-8171-4587a911ccc2
+   :END:
+
++ =modus-operandi-theme-slanted-constructs=
++ =modus-vivendi-theme-slanted-constructs=
+
+Choose to render more faces in slanted text (italics).  This typically
+affects documentation strings and code comments.  The default is to not
+use italics unless it is absolutely necessary.
+
+** Option for more bold constructs
+   :PROPERTIES:
+   :CUSTOM_ID: h:9a77e814-5eca-488f-9a67-119a95c2d28a
+   :END:
+
++ =modus-operandi-theme-bold-constructs=
++ =modus-vivendi-theme-bold-constructs=
+
+Display several constructs in bold weight.  This concerns keywords and
+other important aspects of code syntax.  It also affects certain mode
+line indicators.  The default is to only use a bold weight when it is
+necessary.
+
+** Option for three-dimensional focused mode line
+   :PROPERTIES:
+   :CUSTOM_ID: h:ce155208-fdd6-4ada-9e0c-54aab7e2aff8
+   :END:
+
++ =modus-operandi-theme-3d-modeline=
++ =modus-vivendi-theme-3d-modeline=
+
+Use a three-dimensional, "released button" effect for the focused
+window's mode line.  When enabled, this option will also affect the
+styles of any inactive mode lines, making them less intense overall in
+order to accommodate the added element of depth.  The default is to
+present the mode lines as rectangles with a border around them and with
+the active one having more intense colours than any inactive ones.
+
+** Option for subtle diffs
+   :PROPERTIES:
+   :CUSTOM_ID: h:e3933a53-cbd9-4e44-958a-1d6d133f0816
+   :END:
+
++ =modus-operandi-theme-subtle-diff=
++ =modus-vivendi-theme-subtle-diff=
+
+Display =diff-mode=, =ediff=, =smerge-mode=, =magit= diff buffers with fewer
+and/or less intense background colours or, where possible, with no
+background colours applied to the presentation of the added and removed
+lines.  Concerning =magit=, an extra set of tweaks are introduced for the
+effect of highlighting the current diff hunk, so as to remain consistent
+with the overall experience of that mode.  The default is to use
+colour-coded backgrounds for line-wise highlights.  "Refined" changes
+(word-wise highlights) always use a background value which is,
+nonetheless, more subtle with this option than with its default
+equivalent.
+
+** Option for proportional fonts
+   :PROPERTIES:
+   :CUSTOM_ID: h:33023fa6-6482-45d4-9b5e-3c73c945718f
+   :END:
+
++ =modus-operandi-theme-proportional-fonts=
++ =modus-vivendi-theme-proportional-fonts=
+
+Choose to apply a proportionately-spaced font to some faces.  Currently
+this only affects headings (e.g. in Org).  Contributions on how to make
+the use of proportional fonts more useful are highly appreciated (see
+[[#h:25ba8d6f-6604-4338-b774-bbe531d467f6][section on contributing]]).  The 
default is to use whatever the default
+typeface is, typically a monospaced family.
+
+** Complete example configuration
+   :PROPERTIES:
+   :CUSTOM_ID: h:0e3b8a62-8d72-4439-be2d-cb12ed98f4cb
+   :END:
+
+This is a complete =use-package= declaration with Modus Operandi as an
+example.  You can modify it to your preferences.  Here we enable all
+variables /before/ loading the theme.  You can also see a different form
+of =setq= that sets the value of multiple variables at once: use one =setq=
+expression for each variable, if in doubt.
+
+Do not forget to =M-x package-refresh-contents= to get your package list
+up-to-date, else the initial download may fail due to a newer version
+being available.
+
+#+begin_src emacs-lisp
+(use-package modus-operandi-theme
+  :ensure t
+  :init
+  (setq modus-operandi-theme-slanted-constructs t
+        modus-operandi-theme-bold-constructs t
+        modus-operandi-theme-visible-fringes t
+        modus-operandi-theme-3d-modeline t
+        modus-operandi-theme-subtle-diffs t
+        modus-operandi-theme-distinct-org-blocks t
+        modus-operandi-theme-proportional-fonts t
+        modus-operandi-theme-rainbow-headings t
+        modus-operandi-theme-section-headings t
+        modus-operandi-theme-scale-headings t
+        modus-operandi-theme-scale-1 1.05
+        modus-operandi-theme-scale-2 1.1
+        modus-operandi-theme-scale-3 1.15
+        modus-operandi-theme-scale-4 1.2)
+  :config
+  (load-theme 'modus-operandi t))
+#+end_src
+
+Need more ideas?  Check the 
[[https://protesilaos.com/dotemacs/#h:b7444e76-75d4-4ae6-a9d6-96ff9408efe6][Modus
 themes section of my dotemacs]] (though
+do not try to interpret the values of the variables, as I always test
+different combinations and scenaria).
 
 * Face coverage
   :PROPERTIES:
@@ -183,6 +377,7 @@ The items with an appended asterisk =*= tend to have lots 
of extensions, so
 the "full support" may not be 100% true…
 
 + ace-window
++ ag
 + alert
 + all-the-icons
 + annotate
@@ -201,6 +396,7 @@ the "full support" may not be 100% true…
 + centaur-tabs
 + change-log and log-view (=vc-print-log= and =vc-print-root-log=)
 + cider
++ color-rg
 + column-enforce-mode
 + company-mode*
 + company-posframe
@@ -211,10 +407,13 @@ the "full support" may not be 100% true…
 + counsel-notmuch
 + counsel-org-capture-string
 + cov
++ csv-mode
++ ctrlf
 + custom (=M-x customize=)
 + dap-mode
 + dashboard (emacs-dashboard)
 + deadgrep
++ debbugs
 + define-word
 + deft
 + diff-hl
@@ -234,6 +433,7 @@ the "full support" may not be 100% true…
 + easy-kill
 + ebdb
 + ediff
++ eglot
 + eldoc-box
 + elfeed
 + elfeed-score
@@ -256,11 +456,13 @@ the "full support" may not be 100% true…
 + flymake
 + flyspell
 + flyspell-correct
++ flx
 + freeze-it
 + frog-menu
 + focus
 + fold-this
 + font-lock (generic syntax highlighting)
++ forge
 + fountain (fountain-mode)
 + geiser
 + git
@@ -273,17 +475,23 @@ the "full support" may not be 100% true…
 + helm-ls-git
 + helm-switch-shell
 + helm-xref
++ helpful
 + highlight-blocks
 + highlight-defined
 + highlight-escape-sequences (=hes-mode=)
 + highlight-numbers
++ highlight-symbol
 + highlight-thing
 + hl-fill-column
 + hl-line-mode
 + hl-todo
 + hydra
++ ibuffer
++ icomplete
++ icomplete-vertical
 + ido-mode
 + iedit
++ iflipb
 + imenu-list
 + info
 + info-colors
@@ -302,6 +510,8 @@ the "full support" may not be 100% true…
 + lsp-mode
 + lsp-ui
 + magit
++ magit-imerge
++ man
 + markdown-mode
 + markup-faces (=adoc-mode=)
 + mentor
@@ -312,7 +522,9 @@ the "full support" may not be 100% true…
 + mu4e-conversation
 + multiple-cursors
 + neotree
++ no-emoji
 + num3-mode
++ orderless
 + org*
 + org-journal
 + org-noter
@@ -325,11 +537,16 @@ the "full support" may not be 100% true…
 + outline-mode
 + outline-minor-faces
 + package (=M-x list-packages=)
++ page-break-lines
 + paradox
 + paren-face
++ parrot
 + pass
 + persp-mode
 + perspective
++ phi-grep
++ phi-search
++ pomidor
 + powerline
 + powerline-evil
 + proced
@@ -337,6 +554,7 @@ the "full support" may not be 100% true…
 + rainbow-blocks
 + rainbow-identifiers
 + rainbow-delimiters
++ rcirc
 + regexp-builder (also known as =re-builder=)
 + rg (rg.el)
 + ripgrep
@@ -353,28 +571,40 @@ the "full support" may not be 100% true…
 + smartparens
 + smerge
 + speedbar
++ spell-fu
 + stripes
 + suggest
++ switch-window
 + swiper
++ swoop
 + sx
 + symbol-overlay
 + syslog-mode
 + telephone-line
 + term
++ tomatinho
 + transient (pop-up windows like Magit's)
++ trashed
 + treemacs
++ tuareg
 + undo-tree
 + vc (built-in mode line status for version control)
 + vc-annotate (=C-x v g=)
++ vimish-fold
++ visible-mark
 + visual-regexp
 + volatile-highlights
++ vterm
++ wcheck-mode
 + web-mode
 + wgrep
 + which-function-mode
 + which-key
 + whitespace-mode
 + window-divider-mode
++ winum
 + writegood-mode
++ woman
 + xah-elisp-mode
 + xref
 + xterm-color (and ansi-colors)
@@ -429,6 +659,67 @@ effect/: less intense colours (but still accessible) for 
supportive
 interfaces and the intended styles for the content you are actually
 working on.
 
+** Note about colour-coded ORG source blocks
+   :PROPERTIES:
+   :CUSTOM_ID: h:9ef7e899-63f4-4eb1-958c-1a1dd999fa35
+   :END:
+
+It is possible to apply unique coloured backgrounds to Org's source
+blocks on a per-language basis.  The customisation option is
+=org-src-block-faces=.
+
+Because this is an inherently subjective choice, it is impossible to
+reach a consensus of what colour should be assigned to each language.
+Furthermore, there are so many languages to choose from, making it
+impractical to apply a unique background to each of them without adding
+disproportionate complexity to the themes.
+
+The least we could do is provide a set of background values that have
+been tested with all colours that highlight code syntax.
+
+These approved colour variants are as follows:
+
+| Background | Modus Operandi | Modus Vivendi |
+|------------+----------------+---------------|
+| red        | #fef2f2        | #180505       |
+| yellow     | #fcf6f1        | #18140a       |
+| magenta    | #fff4fc        | #160616       |
+| green      | #f4faf4        | #061206       |
+| blue       | #f4f4ff        | #070722       |
+| cyan       | #f0f6fa        | #091620       |
+
+The differences between those colour values are subtle, but quite
+noticeable when applied to large, contiguous areas (such as code
+blocks).
+
+Pick the one you wish to use for your language of choice.  Here is an
+example:
+
+#+begin_src emacs-lisp
+;; Modus Operandi
+(setq org-src-block-faces '(("emacs-lisp" (:background "#fef2f2"))
+                            ("python" (:background "#f4f4ff"))))
+
+;; Modus Vivendi
+(setq org-src-block-faces '(("emacs-lisp" (:background "#180505"))
+                            ("python" (:background "#070722"))))
+#+end_src
+
+For versions of Emacs >= 27, also add the =:extend t= property, like this:
+
+#+begin_src emacs-lisp
+;; Modus Operandi
+(setq org-src-block-faces '(("emacs-lisp" (:background "#fef2f2" :extend t))
+                            ("python" (:background "#f4f4ff" :extend t))))
+
+;; Modus Vivendi
+(setq org-src-block-faces '(("emacs-lisp" (:background "#180505" :extend t))
+                            ("python" (:background "#070722" :extend t))))
+#+end_src
+
+Feel free to contribute any concrete proposals on how to improve support
+for this at the theme level (see 
[[#h:25ba8d6f-6604-4338-b774-bbe531d467f6][the "Contributing" section]]).
+
 ** Note for HELM users of grep or grep-like functions
    :PROPERTIES:
    :CUSTOM_ID: h:e4408911-e186-4825-bd4f-4d0ea55cd6d6
@@ -511,11 +802,11 @@ in the interest of the latter.
    :END:
 
 I accept code contributions as well (send merge requests!).  But for any
-major contribution (more than 15 lines, or so), you need to make a
-copyright assignment to the Free Software Foundation.  This is necessary
-because the themes are distributed through the official GNU ELPA
-repository and the FSF must be in a position to enforce the GNU General
-Public License.
+major contribution (more than 15 lines, or so, in aggregate), you need
+to make a copyright assignment to the Free Software Foundation.  This is
+necessary because the themes are distributed through the official GNU
+ELPA repository and the FSF must be in a position to enforce the GNU
+General Public License.
 
 Copyright assignment /is a simple process/ that I had to follow as well.
 Check the 
[[https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/Copyright/request-assign.future][request
 form]].  You must send an email to the address mentioned
diff --git a/modus-operandi-theme.el b/modus-operandi-theme.el
index 13b7963..e64a5f4 100644
--- a/modus-operandi-theme.el
+++ b/modus-operandi-theme.el
@@ -4,7 +4,7 @@
 
 ;; Author: Protesilaos Stavrou <address@hidden>
 ;; URL: https://gitlab.com/protesilaos/modus-themes
-;; Version: 0.7.0
+;; Version: 0.8.0
 ;; Package-Requires: ((emacs "26.1"))
 ;; Keywords: faces, theme, accessibility
 
@@ -42,9 +42,13 @@
 ;;     modus-operandi-theme-slanted-constructs
 ;;     modus-operandi-theme-bold-constructs
 ;;     modus-operandi-theme-proportional-fonts
+;;     modus-operandi-theme-rainbow-headings
+;;     modus-operandi-theme-section-headings
 ;;     modus-operandi-theme-scale-headings
 ;;     modus-operandi-theme-visible-fringes
 ;;     modus-operandi-theme-distinct-org-blocks
+;;     modus-operandi-theme-3d-modeline
+;;     modus-operandi-theme-subtle-diffs
 ;;
 ;; The default scale is as follows (it can be customised as well):
 ;;
@@ -59,6 +63,7 @@
 ;; notify me of any missing package or change you would like to see.
 ;;
 ;;     ace-window
+;;     ag
 ;;     alert
 ;;     all-the-icons
 ;;     annotate
@@ -77,6 +82,7 @@
 ;;     centaur-tabs
 ;;     change-log and log-view (`vc-print-log' and `vc-print-root-log')
 ;;     cider
+;;     color-rg
 ;;     column-enforce-mode
 ;;     company-mode
 ;;     company-posframe
@@ -88,10 +94,12 @@
 ;;     counsel-org-capture-string
 ;;     cov
 ;;     csv-mode
+;;     ctrlf
 ;;     custom (M-x customize)
 ;;     dap-mode
 ;;     dashboard (emacs-dashboard)
 ;;     deadgrep
+;;     debbugs
 ;;     define-word
 ;;     deft
 ;;     diff-hl
@@ -111,6 +119,7 @@
 ;;     easy-kill
 ;;     ebdb
 ;;     ediff
+;;     eglot
 ;;     eldoc-box
 ;;     elfeed
 ;;     elfeed-score
@@ -133,11 +142,13 @@
 ;;     flymake
 ;;     flyspell
 ;;     flyspell-correct
+;;     flx
 ;;     freeze-it
 ;;     frog-menu
 ;;     focus
 ;;     fold-this
 ;;     font-lock (generic syntax highlighting)
+;;     forge
 ;;     fountain (fountain-mode)
 ;;     geiser
 ;;     git
@@ -150,17 +161,22 @@
 ;;     helm-ls-git
 ;;     helm-switch-shell
 ;;     helm-xref
+;;     helpful
 ;;     highlight-blocks
 ;;     highlight-defined
 ;;     highlight-escape-sequences (`hes-mode')
 ;;     highlight-numbers
+;;     highlight-symbol
 ;;     highlight-thing
 ;;     hl-fill-column
 ;;     hl-line-mode
 ;;     hl-todo
 ;;     hydra
+;;     ibuffer
+;;     icomplete
 ;;     ido-mode
 ;;     iedit
+;;     iflipb
 ;;     imenu-list
 ;;     info
 ;;     info-colors
@@ -179,6 +195,8 @@
 ;;     lsp-mode
 ;;     lsp-ui
 ;;     magit
+;;     magit-imerge
+;;     man
 ;;     markdown-mode
 ;;     markup-faces (`adoc-mode')
 ;;     mentor
@@ -189,7 +207,9 @@
 ;;     mu4e-conversation
 ;;     multiple-cursors
 ;;     neotree
+;;     no-emoji
 ;;     num3-mode
+;;     orderless
 ;;     org
 ;;     org-journal
 ;;     org-noter
@@ -202,11 +222,16 @@
 ;;     outline-mode
 ;;     outline-minor-faces
 ;;     package (M-x list-packages)
+;;     page-break-lines
 ;;     paradox
 ;;     paren-face
+;;     parrot
 ;;     pass
 ;;     persp-mode
 ;;     perspective
+;;     phi-grep
+;;     phi-search
+;;     pomidor
 ;;     powerline
 ;;     powerline-evil
 ;;     proced
@@ -214,6 +239,7 @@
 ;;     rainbow-blocks
 ;;     rainbow-identifiers
 ;;     rainbow-delimiters
+;;     rcirc
 ;;     regexp-builder (also known as `re-builder')
 ;;     rg
 ;;     ripgrep
@@ -230,28 +256,42 @@
 ;;     smartparens
 ;;     smerge
 ;;     speedbar
+;;     spell-fu
 ;;     stripes
 ;;     suggest
+;;     switch-window
 ;;     swiper
+;;     swoop
 ;;     sx
 ;;     symbol-overlay
+;;     tab-bar-mode
+;;     tab-line-mode
 ;;     syslog-mode
+;;     trashed
 ;;     telephone-line
 ;;     term
+;;     tomatinho
 ;;     transient (pop-up windows like Magit's)
 ;;     treemacs
+;;     tuareg
 ;;     undo-tree
 ;;     vc (built-in mode line status for version control)
 ;;     vc-annotate (C-x v g)
+;;     vimish-fold
+;;     visible-mark
 ;;     visual-regexp
 ;;     volatile-highlights
+;;     vterm
+;;     wcheck-mode
 ;;     web-mode
 ;;     wgrep
 ;;     which-function-mode
 ;;     which-key
 ;;     whitespace-mode
 ;;     window-divider-mode
+;;     winum
 ;;     writegood-mode
+;;     woman
 ;;     xah-elisp-mode
 ;;     xref
 ;;     xterm-color (and ansi-colors)
@@ -260,6 +300,8 @@
 
 ;;; Code:
 
+
+
 (deftheme modus-operandi
   "Light theme that conforms with the highest accessibility
   standard for colour contrast between background and
@@ -340,6 +382,14 @@ between foreground and background is >= 7:1)."
   "Use proportional fonts (variable-pitch) in headings."
   :type 'boolean)
 
+(defcustom modus-operandi-theme-rainbow-headings nil
+  "Use more saturated colours for headings."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-section-headings nil
+  "Use a background and an overline in headings."
+  :type 'boolean)
+
 (defcustom modus-operandi-theme-scale-headings nil
   "Use font scaling for headings."
   :type 'boolean)
@@ -368,6 +418,89 @@ between foreground and background is >= 7:1)."
   "Use a distinct background for `org-mode' source blocks."
   :type 'boolean)
 
+(defcustom modus-operandi-theme-3d-modeline nil
+  "Use a three-dimensional style for the active mode line."
+  :type 'boolean)
+
+(defcustom modus-operandi-theme-subtle-diffs nil
+  "Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
+  :type 'boolean)
+
+;; Helper functions that are meant to ease the implementation of the
+;; above customisation options.
+(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-block (bg fg)
+  "Conditionally extend heading styles.
+Apply BG to background and FG to overline."
+  (if modus-operandi-theme-section-headings
+      (list :background bg :overline fg)
+    (list :background nil :overline nil)))
+
+(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)))
+
+(defun modus-operandi-theme-org-src-block (bgsrc bg)
+  "Conditionally set the styles of Org source blocks.
+BGSRC applies to a distinct background.  BG is used to keep
+blocks the same background as the rest of the buffer."
+  (if modus-operandi-theme-distinct-org-blocks
+      (list :background bgsrc :extend t)
+    (list :background bg)))
+
+(defun modus-operandi-theme-modeline-box (col3d col &optional btn int)
+  "Control the box properties of the mode line.
+COL3D is the border that is intended for the three-dimensional modeline.
+COL applies to the two-dimensional modeline.
+Optional BTN provides the 3d button style.
+Optional INT defines a border width."
+  (let* ((style (if btn 'released-button nil))
+         (int (if int int 1)))
+    (if modus-operandi-theme-3d-modeline
+        (list :line-width int :color col3d :style style)
+      (list :line-width 1 :color col :style nil))))
+
+(defun modus-operandi-theme-modeline-props (bg3d fg3d &optional bg fg)
+  "Control the background and foreground of the mode line.
+BG is the modeline's background.
+FG is the modeline's foreground.
+BG3D and FG3D apply to the three-dimensional modeline style."
+  (if modus-operandi-theme-3d-modeline
+      (list :background bg3d :foreground fg3d)
+    (list :background bg :foreground fg)))
+
+(defun modus-operandi-theme-diffs (subtle-bg subtle-fg intense-bg intense-fg)
+  "Colour combinations for `modus-operandi-theme-subtle-diffs'.
+
+SUBTLE-BG should be similar or the same as the main background
+SUBTLE-FG should be an appropriate accent value
+INTENSE-BG should be one of the dedicated backgrounds for diffs
+INTENSE-FG should be one of the dedicated foregrounds for diffs"
+  (if modus-operandi-theme-subtle-diffs
+      (list :background subtle-bg :foreground subtle-fg)
+    (list :background intense-bg :foreground intense-fg)))
+
+(defun modus-operandi-theme-scale (amount)
+  "Scale heading by AMOUNT.
+
+AMOUNT is a customisation option."
+  (when modus-operandi-theme-scale-headings
+    (list :height amount)))
+
+
+
 ;; Define colour palette.  Each colour must have a >= 7:1 contrast
 ;; ratio relative to the foreground/background colour it is rendered
 ;; against.
@@ -390,19 +523,19 @@ between foreground and background is >= 7:1)."
       ;; styles for the main constructs
       ;;
       ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
-      (red "#a80000") (green "#005200")
+      (red "#a80000") (green "#005f00")
       (yellow "#8b3800") (blue "#0030a6")
       (magenta "#721045") (cyan "#005589")
       ;; styles for common, but still specialised constructs
       ;;
       ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
-      (red-alt "#880000") (green-alt "#4a5700")
+      (red-alt "#972500") (green-alt "#305c00")
       (yellow-alt "#714900") (blue-alt "#223fbf")
       (magenta-alt "#8f0075") (cyan-alt "#185870")
       ;; same purpose as above, just slight differences
       ;;
       ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
-      (red-alt-other "#9d2020") (green-alt-other "#145a00")
+      (red-alt-other "#a0132f") (green-alt-other "#095f1c")
       (yellow-alt-other "#804000") (blue-alt-other "#0000bb")
       (magenta-alt-other "#5317ac") (cyan-alt-other "#005a68")
       ;; styles for elements that should be very subtle
@@ -411,6 +544,12 @@ between foreground and background is >= 7:1)."
       (red-nuanced "#4d0006") (green-nuanced "#003000")
       (yellow-nuanced "#3a2a00") (blue-nuanced "#001170")
       (magenta-nuanced "#381050") (cyan-nuanced "#003434")
+      ;; styles for slightly accented background
+      ;;
+      ;; must be combined with any of the above foreground values
+      (red-nuanced-bg "#fef2f2") (green-nuanced-bg "#f4faf4")
+      (yellow-nuanced-bg "#fcf6f1") (blue-nuanced-bg "#f4f4ff")
+      (magenta-nuanced-bg "#fff4fc") (cyan-nuanced-bg "#f0f6fa")
       ;; styles for elements that should draw attention to themselves
       ;;
       ;; must be combined with: `bg-main'
@@ -451,10 +590,10 @@ between foreground and background is >= 7:1)."
       ;; styles that are meant exclusively for the fringes
       ;;
       ;; must have a minimum contrast ratio of 1.5:1 with `bg-inactive'
-      ;; and be combined with `fg-main'
-      (red-fringe-bg "#ff7a7a") (green-fringe-bg "#70cc70")
-      (yellow-fringe-bg "#e0c000") (blue-fringe-bg "#7fafff")
-      (magenta-fringe-bg "#ffa0ff") (cyan-fringe-bg "#00d0f0")
+      ;; and be combined with `fg-main' or `fg-dim'
+      (red-fringe-bg "#ff9a9a") (green-fringe-bg "#86cf86")
+      (yellow-fringe-bg "#e0c050") (blue-fringe-bg "#82afff")
+      (magenta-fringe-bg "#f0a3ff") (cyan-fringe-bg "#00d6e0")
 
       ;; styles reserved for specific faces
       ;;
@@ -473,32 +612,60 @@ between foreground and background is >= 7:1)."
       ;; though only for styling special elements, such as underlining
       ;; the current tab
       ;;
+      ;; `fg-escape-char-construct' and `fg-escape-char-backslash' can
+      ;; be combined `bg-main', `bg-dim', `bg-alt'
+      ;;
+      ;; `fg-lang-error', `fg-lang-warning', `fg-lang-note' can be
+      ;; combined with `bg-main', `bg-dim', `bg-alt'
+      ;;
       ;; `fg-mark', `fg-mark-del', `fg-mark-other' can be combined with
       ;; `bg-main', `bg-dim', `bg-alt', `bg-hl-line'
       ;;
+      ;; `fg-unfocused' must be combined with `fg-main'
+      ;;
       ;; the window divider colours apply to faces with just an fg value
       ;;
       ;; all pairs are combinable with themselves
       (bg-hl-line "#f1f2f6")
       (bg-paren-match "#efcabf")
       (bg-region "#bcbcbc")
+
       (bg-tab-active "#ababab")
       (bg-tab-inactive "#dadada")
       (fg-tab-active "#000077")
+
+      (fg-escape-char-construct "#8b1030")
+      (fg-escape-char-backslash "#644f00")
+
+      (fg-lang-error "#9f004f")
+      (fg-lang-warning "#605000")
+      (fg-lang-note "#4040ae")
+
       (fg-window-divider-inner "#888888")
       (fg-window-divider-outer "#585858")
+
+      (fg-unfocused "#56576d")
+
       (fg-header "#2a2a2a") (bg-header "#e5e5e5")
       (fg-whitespace "#645060") (bg-whitespace "#fff8fc")
+
       (fg-diff-heading "#043355") (bg-diff-heading "#b7c2dd")
       (fg-diff-added "#004500") (bg-diff-added "#d4fad4")
       (fg-diff-changed "#524200") (bg-diff-changed "#fcefcf")
       (fg-diff-removed "#691616") (bg-diff-removed "#ffe8ef")
+
       (fg-diff-refine-added "#002a00") (bg-diff-refine-added "#94cf94")
       (fg-diff-refine-changed "#302010") (bg-diff-refine-changed "#cccf8f")
       (fg-diff-refine-removed "#400000") (bg-diff-refine-removed "#daa2b0")
+
       (fg-diff-focus-added "#002c00") (bg-diff-focus-added "#bbeabb")
       (fg-diff-focus-changed "#392900") (bg-diff-focus-changed "#ecdfbf")
       (fg-diff-focus-removed "#4a0000") (bg-diff-focus-removed "#efcbcf")
+
+      (fg-diff-neutral-0 "#040404") (bg-diff-neutral-0 "#979797")
+      (fg-diff-neutral-1 "#252525") (bg-diff-neutral-1 "#b0b0b0")
+      (fg-diff-neutral-2 "#3a3a3a") (bg-diff-neutral-2 "#cccccc")
+
       (fg-mark "#005040") (bg-mark "#a0f0cf")
       (fg-mark-del "#840040") (bg-mark-del "#ffccbb")
       (fg-mark-other "#782900") (bg-mark-other "#f5d88f")
@@ -556,12 +723,12 @@ between foreground and background is >= 7:1)."
    `(modus-theme-active-magenta ((,class (:background ,magenta-active 
:foreground ,bg-active))))
    `(modus-theme-active-cyan ((,class (:background ,cyan-active :foreground 
,bg-active))))
    ;;; for fringe indicators
-   `(modus-theme-fringe-red ((,class (:background ,red-fringe-bg :foreground 
,fg-main))))
-   `(modus-theme-fringe-green ((,class (:background ,green-fringe-bg 
:foreground ,fg-main))))
-   `(modus-theme-fringe-yellow ((,class (:background ,yellow-fringe-bg 
:foreground ,fg-main))))
-   `(modus-theme-fringe-blue ((,class (:background ,blue-fringe-bg :foreground 
,fg-main))))
-   `(modus-theme-fringe-magenta ((,class (:background ,magenta-fringe-bg 
:foreground ,fg-main))))
-   `(modus-theme-fringe-cyan ((,class (:background ,cyan-fringe-bg :foreground 
,fg-main))))
+   `(modus-theme-fringe-red ((,class (:background ,red-fringe-bg :foreground 
,fg-dim))))
+   `(modus-theme-fringe-green ((,class (:background ,green-fringe-bg 
:foreground ,fg-dim))))
+   `(modus-theme-fringe-yellow ((,class (:background ,yellow-fringe-bg 
:foreground ,fg-dim))))
+   `(modus-theme-fringe-blue ((,class (:background ,blue-fringe-bg :foreground 
,fg-dim))))
+   `(modus-theme-fringe-magenta ((,class (:background ,magenta-fringe-bg 
:foreground ,fg-dim))))
+   `(modus-theme-fringe-cyan ((,class (:background ,cyan-fringe-bg :foreground 
,fg-dim))))
    ;;; special base values that are closer to the grayscale than
    ;;; the accents defined above
    `(modus-theme-special-cold ((,class (:background ,bg-special-cold 
:foreground ,fg-special-cold))))
@@ -589,16 +756,16 @@ between foreground and background is >= 7:1)."
    `(fringe ((,class (:background
                       ,(if modus-operandi-theme-visible-fringes bg-inactive 
bg-main)
                       :foreground ,fg-main))))
+   `(vertical-border ((,class (:foreground ,fg-window-divider-inner))))
    ;;;; basic and/or ungrouped styles
    `(error ((,class (:foreground ,red :weight bold))))
-   `(escape-glyph ((,class (:inherit modus-theme-refine-blue :weight bold))))
+   `(escape-glyph ((,class (:foreground ,fg-escape-char-construct))))
    `(header-line ((,class (:background ,bg-header :foreground ,fg-header))))
-   `(homoglyph ((,class (:foreground ,yellow-alt-other))))
+   `(homoglyph ((,class (:foreground ,fg-escape-char-construct))))
    `(ibuffer-locked-buffer ((,class (:foreground ,yellow-alt-other))))
    `(italic ((,class (:foreground ,fg-special-cold :slant italic))))
-   `(no-emoji ((,class (:foreground ,fg-special-mild :weight bold))))
-   `(nobreak-hyphen ((,class (:inherit modus-theme-special-cold))))
-   `(nobreak-space ((,class (:inherit modus-theme-special-cold :underline t))))
+   `(nobreak-hyphen ((,class (:foreground ,fg-escape-char-construct))))
+   `(nobreak-space ((,class (:foreground ,fg-escape-char-construct :underline 
t))))
    `(minibuffer-prompt ((,class (:foreground ,cyan-alt))))
    `(mm-command-output ((,class (:foreground ,red-alt-other))))
    `(mm-uu-extract ((,class (:background ,bg-dim :foreground 
,fg-special-mild))))
@@ -607,6 +774,9 @@ between foreground and background is >= 7:1)."
    `(success ((,class (:foreground ,green :weight bold))))
    `(trailing-whitespace ((,class (:background ,red-intense-bg))))
    `(warning ((,class (:foreground ,yellow :weight bold))))
+   ;;;; ag
+   `(ag-hit-face ((,class (:foreground ,fg-special-cold))))
+   `(ag-match-face ((,class (:inherit modus-theme-special-calm))))
    ;;;; alert
    `(alert-high-face ((,class (:foreground ,red-alt :weight bold))))
    `(alert-low-face ((,class (:foreground ,fg-special-mild))))
@@ -677,10 +847,10 @@ between foreground and background is >= 7:1)."
    `(apt-sources-list-type ((,class (:foreground ,magenta))))
    `(apt-sources-list-uri ((,class (:foreground ,blue))))
    ;;;; artbollocks-mode
-   `(artbollocks-face ((,class (:background ,bg-alt :foreground 
,magenta-alt-other :underline t))))
-   `(artbollocks-lexical-illusions-face ((,class (:inherit 
modus-theme-refine-magenta :underline t))))
-   `(artbollocks-passive-voice-face ((,class (:background ,bg-alt :foreground 
,cyan-alt-other :underline t))))
-   `(artbollocks-weasel-words-face ((,class (:background ,bg-alt :foreground 
,yellow-alt-other :underline t))))
+   `(artbollocks-face ((,class (:foreground ,cyan-nuanced :underline (:color 
,fg-lang-note :style line)))))
+   `(artbollocks-lexical-illusions-face ((,class (:background ,bg-alt 
:foreground ,red-alt :underline t))))
+   `(artbollocks-passive-voice-face ((,class (:foreground ,yellow-nuanced 
:underline (:color ,fg-lang-warning :style line)))))
+   `(artbollocks-weasel-words-face ((,class (:foreground ,red-nuanced 
:underline (:color ,fg-lang-error :style line)))))
    ;;;; auctex and Tex
    `(font-latex-bold-face ((,class (:foreground ,fg-special-calm :weight 
bold))))
    `(font-latex-doctex-documentation-face ((,class (:foreground 
,fg-special-cold :slant ,modus-theme-slant))))
@@ -690,29 +860,24 @@ between foreground and background is >= 7:1)."
    `(font-latex-script-char-face ((,class (:foreground ,cyan-alt-other))))
    `(font-latex-sectioning-0-face ((,class (:inherit 
,modus-theme-variable-pitch
                                                      :foreground ,blue-nuanced 
:weight bold
-                                                     ,@(when 
modus-operandi-theme-scale-headings
-                                                         (list :height 
modus-operandi-theme-scale-4))))))
+                                                     
,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)))))
    `(font-latex-sectioning-1-face ((,class (:inherit 
,modus-theme-variable-pitch
                                                      :foreground ,blue-nuanced 
:weight bold
-                                                     ,@(when 
modus-operandi-theme-scale-headings
-                                                         (list :height 
modus-operandi-theme-scale-3))))))
+                                                     
,@(modus-operandi-theme-scale modus-operandi-theme-scale-3)))))
    `(font-latex-sectioning-2-face ((,class (:inherit 
,modus-theme-variable-pitch
                                                      :foreground ,blue-nuanced 
:weight bold
-                                                     ,@(when 
modus-operandi-theme-scale-headings
-                                                         (list :height 
modus-operandi-theme-scale-2))))))
+                                                     
,@(modus-operandi-theme-scale modus-operandi-theme-scale-2)))))
    `(font-latex-sectioning-3-face ((,class (:inherit 
,modus-theme-variable-pitch
                                                      :foreground ,blue-nuanced 
:weight bold
-                                                     ,@(when 
modus-operandi-theme-scale-headings
-                                                         (list :height 
modus-operandi-theme-scale-1))))))
+                                                     
,@(modus-operandi-theme-scale modus-operandi-theme-scale-1)))))
    `(font-latex-sectioning-4-face ((,class (:inherit 
,modus-theme-variable-pitch
                                                      :foreground ,blue-nuanced 
:weight bold))))
    `(font-latex-sectioning-5-face ((,class (:inherit 
,modus-theme-variable-pitch
                                                      :foreground 
,blue-nuanced))))
    `(font-latex-sedate-face ((,class (:foreground ,magenta-alt-other :weight 
,modus-theme-bold))))
    `(font-latex-slide-title-face ((,class (:inherit ,modus-theme-variable-pitch
-                                                     :foreground ,cyan-nuanced 
:weight bold
-                                                     ,@(when 
modus-operandi-theme-scale-headings
-                                                         (list :height 
modus-operandi-theme-scale-4))))))
+                                                    :foreground ,cyan-nuanced 
:weight bold
+                                                    
,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)))))
    `(font-latex-string-face ((,class (:foreground ,blue-alt))))
    `(font-latex-subscript-face ((,class (:height 0.95))))
    `(font-latex-superscript-face ((,class (:height 0.95))))
@@ -789,8 +954,7 @@ between foreground and background is >= 7:1)."
    `(cfw:face-sunday ((,class (:background ,bg-alt :foreground 
,magenta-alt-other :weight bold))))
    `(cfw:face-title ((,class (:inherit ,modus-theme-variable-pitch
                                        :foreground ,fg-special-warm :weight 
bold
-                                       ,@(when 
modus-operandi-theme-scale-headings
-                                           (list :height 
modus-operandi-theme-scale-4))))))
+                                       ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    `(cfw:face-today ((,class (:foreground ,blue :weight bold))))
    `(cfw:face-today-title ((,class (:inherit modus-theme-special-mild :box 
t))))
    `(cfw:face-toolbar ((,class (:background ,bg-active :foreground 
,bg-active))))
@@ -848,7 +1012,7 @@ between foreground and background is >= 7:1)."
    `(cider-stacktrace-filter-inactive-face ((,class (:foreground ,cyan-alt))))
    `(cider-stacktrace-fn-face ((,class (:foreground ,fg-main :weight bold))))
    `(cider-stacktrace-ns-face ((,class (:foreground ,fg-alt :slant italic))))
-   `(cider-stacktrace-promoted-button-face ((,class (box (:line-width 3 :color 
,fg-alt :style released-button)) :foreground ,red)))
+   `(cider-stacktrace-promoted-button-face ((,class (:box (:line-width 3 
:color ,fg-alt :style released-button)) :foreground ,red)))
    `(cider-stacktrace-suppressed-button-face ((,class (:box (:line-width 3 
:color ,fg-alt :style pressed-button))
                                                       :background ,bg-alt 
:foreground ,fg-alt)))
    `(cider-test-error-face ((,class (:inherit modus-theme-subtle-red))))
@@ -856,6 +1020,21 @@ between foreground and background is >= 7:1)."
    `(cider-test-success-face ((,class (:inherit modus-theme-intense-green))))
    `(cider-traced-face ((,class (:box (:line-width -1 :color ,cyan :style nil) 
:background ,bg-dim))))
    `(cider-warning-highlight-face ((,class (:foreground ,yellow :underline 
t))))
+   ;;;; color-rg
+   `(color-rg-font-lock-column-number ((,class (:foreground 
,magenta-alt-other))))
+   `(color-rg-font-lock-command ((,class (:foreground ,fg-main :weight bold))))
+   `(color-rg-font-lock-file ((,class (:foreground ,fg-special-cold :weight 
bold))))
+   `(color-rg-font-lock-flash ((,class (:inherit modus-theme-intense-blue))))
+   `(color-rg-font-lock-function-location ((,class (:inherit 
modus-theme-special-calm))))
+   `(color-rg-font-lock-header-line-directory ((,class (:foreground 
,blue-active))))
+   `(color-rg-font-lock-header-line-edit-mode ((,class (:foreground 
,magenta-active))))
+   `(color-rg-font-lock-header-line-keyword ((,class (:foreground 
,green-active))))
+   `(color-rg-font-lock-header-line-text ((,class (:foreground ,fg-active))))
+   `(color-rg-font-lock-line-number ((,class (:foreground ,fg-special-warm))))
+   `(color-rg-font-lock-mark-changed ((,class (:foreground ,blue :weight 
bold))))
+   `(color-rg-font-lock-mark-deleted ((,class (:foreground ,red :weight 
bold))))
+   `(color-rg-font-lock-match ((,class (:inherit modus-theme-special-calm))))
+   `(color-rg-font-lock-position-splitter ((,class (:foreground ,fg-alt))))
    ;;;; column-enforce-mode
    `(column-enforce-face ((,class (:inherit modus-theme-refine-yellow))))
    ;;;; company-mode
@@ -881,18 +1060,17 @@ between foreground and background is >= 7:1)."
    `(company-posframe-metadata ((,class (:background ,bg-inactive :foreground 
,fg-inactive))))
    ;;;; compilation feedback
    `(compilation-column-number ((,class (:foreground ,magenta-alt-other))))
-   `(compilation-error ((,class (:foreground ,red :weight bold))))
+   `(compilation-error ((,class (:foreground ,red :weight ,modus-theme-bold))))
    `(compilation-info ((,class (:foreground ,fg-special-cold))))
    `(compilation-line-number ((,class (:foreground ,fg-special-warm))))
-   `(compilation-mode-line-exit ((,class (:foreground ,blue-active :weight 
bold))))
-   `(compilation-mode-line-fail ((,class (:foreground ,red-active :weight 
bold))))
-   `(compilation-mode-line-run ((,class (:foreground ,magenta-active :weight 
bold))))
-   `(compilation-warning ((,class (:foreground ,yellow :weight bold))))
+   `(compilation-mode-line-exit ((,class (:foreground ,blue-active :weight 
,modus-theme-bold))))
+   `(compilation-mode-line-fail ((,class (:foreground ,red-active :weight 
,modus-theme-bold))))
+   `(compilation-mode-line-run ((,class (:foreground ,magenta-active :weight 
,modus-theme-bold))))
+   `(compilation-warning ((,class (:foreground ,yellow :weight 
,modus-theme-bold))))
    ;;;; completions
    `(completions-annotations ((,class (:foreground ,fg-special-cold :slant 
,modus-theme-slant))))
    `(completions-common-part ((,class (:foreground ,cyan-alt-other))))
    `(completions-first-difference ((,class (:foreground ,blue-alt-other 
:weight bold))))
-   `(icomplete-first-match ((,class (:foreground ,magenta :weight bold))))
    ;;;; counsel
    `(counsel-active-mode ((,class (:foreground ,magenta-alt-other))))
    `(counsel-application-name ((,class (:foreground ,red-alt-other))))
@@ -930,6 +1108,10 @@ between foreground and background is >= 7:1)."
    `(cov-none-face ((,class (:foreground ,cyan-intense))))
    ;;;; csv-mode
    `(csv-separator-face ((,class (:background ,bg-special-cold :foreground 
,fg-main))))
+   ;;;; ctrlf
+   `(ctrlf-highlight-active ((,class (:inherit modus-theme-intense-green 
:weight bold))))
+   `(ctrlf-highlight-line ((,class (:background ,bg-hl-line))))
+   `(ctrlf-highlight-passive ((,class (:inherit modus-theme-refine-cyan))))
    ;;;; custom (M-x customize)
    `(custom-button ((,class (:box (:line-width 2 :color nil :style 
released-button)
                                   :background ,bg-active :foreground 
,fg-main))))
@@ -952,7 +1134,7 @@ between foreground and background is >= 7:1)."
    `(custom-variable-tag ((,class (:foreground ,cyan :weight bold))))
    ;;;; dap-mode
    `(dap-mouse-eval-thing-face ((,class (:box (:line-width -1 :color 
,blue-active :style nil)
-                                            :background ,bg-active :foreground 
,fg-main))))
+                                              :background ,bg-active 
:foreground ,fg-main))))
    `(dap-result-overlay-face ((,class (:box (:line-width -1 :color ,bg-active 
:style nil)
                                             :background ,bg-active :foreground 
,fg-main))))
    `(dap-ui-breakpoint-verified-fringe ((,class (:foreground ,green-active 
:weight bold))))
@@ -976,6 +1158,19 @@ between foreground and background is >= 7:1)."
    `(deadgrep-meta-face ((,class (:foreground ,fg-alt))))
    `(deadgrep-regexp-metachar-face ((,class (:foreground ,yellow-intense 
:weight bold))))
    `(deadgrep-search-term-face ((,class (:foreground ,green-intense :weight 
bold))))
+   ;;;; debbugs
+   `(debbugs-gnu-archived ((,class (:inverse-video t))))
+   `(debbugs-gnu-done ((,class (:foreground ,fg-alt))))
+   `(debbugs-gnu-forwarded ((,class (:foreground ,fg-special-warm))))
+   `(debbugs-gnu-handled ((,class (:foreground ,green))))
+   `(debbugs-gnu-new ((,class (:foreground ,red))))
+   `(debbugs-gnu-pending ((,class (:foreground ,cyan))))
+   `(debbugs-gnu-stale-1 ((,class (:foreground ,yellow-nuanced))))
+   `(debbugs-gnu-stale-2 ((,class (:foreground ,yellow))))
+   `(debbugs-gnu-stale-3 ((,class (:foreground ,yellow-alt))))
+   `(debbugs-gnu-stale-4 ((,class (:foreground ,yellow-alt-other))))
+   `(debbugs-gnu-stale-5 ((,class (:foreground ,red-alt))))
+   `(debbugs-gnu-tagged ((,class (:foreground ,magenta-alt))))
    ;;;; define-word
    `(define-word-face-1 ((,class (:foreground ,yellow))))
    `(define-word-face-2 ((,class (:foreground ,fg-main))))
@@ -996,24 +1191,38 @@ between foreground and background is >= 7:1)."
    `(diff-hl-dired-insert ((,class (:inherit diff-hl-insert))))
    `(diff-hl-dired-unknown ((,class (:inherit dired-ignored))))
    `(diff-hl-insert ((,class (:inherit modus-theme-fringe-green))))
-   `(diff-hl-reverted-hunk-highlight ((,class (:inherit 
modus-theme-intense-blue))))
+   `(diff-hl-reverted-hunk-highlight ((,class (:inherit 
modus-theme-fringe-magenta :weight bold))))
    ;;;; diff-mode
-   `(diff-added ((,class (:inherit modus-theme-diff-focus-added))))
-   `(diff-changed ((,class (:inherit modus-theme-diff-focus-changed))))
-   `(diff-context ((,class (:foreground ,fg-alt))))
+   `(diff-added ((,class ,(modus-operandi-theme-diffs
+                           bg-main green
+                           bg-diff-focus-added fg-diff-focus-added))))
+   `(diff-changed ((,class ,(modus-operandi-theme-diffs
+                             bg-main yellow
+                             bg-diff-focus-changed fg-diff-focus-changed))))
+   `(diff-context ((,class (:foreground ,fg-unfocused))))
    `(diff-file-header ((,class (:foreground ,blue :weight bold))))
    `(diff-function ((,class (:foreground ,fg-special-cold))))
    `(diff-header ((,class (:foreground ,blue-nuanced))))
-   `(diff-hunk-header ((,class (:inherit modus-theme-diff-heading :weight 
bold))))
+   `(diff-hunk-header ((,class ,(modus-operandi-theme-diffs
+                                 bg-alt blue-alt
+                                 bg-diff-heading fg-diff-heading))))
    `(diff-index ((,class (:foreground ,blue-alt :weight bold))))
-   `(diff-indicator-added ((,class (:inherit diff-added))))
-   `(diff-indicator-changed ((,class (:inherit diff-changed))))
-   `(diff-indicator-removed ((,class (:inherit diff-removed))))
-   `(diff-nonexistent ((,class (:inherit modus-theme-intense-neutral :weight 
bold))))
-   `(diff-refine-added ((,class (:inherit modus-theme-diff-refine-added))))
-   `(diff-refine-changed ((,class (:inherit modus-theme-diff-refine-changed))))
-   `(diff-refine-removed ((,class (:inherit modus-theme-diff-refine-removed))))
-   `(diff-removed ((,class (:inherit modus-theme-diff-focus-removed))))
+   `(diff-indicator-added ((,class (:inherit modus-theme-diff-focus-added))))
+   `(diff-indicator-changed ((,class (:inherit 
modus-theme-diff-focus-changed))))
+   `(diff-indicator-removed ((,class (:inherit 
modus-theme-diff-focus-removed))))
+   `(diff-nonexistent ((,class (:inherit modus-theme-neutral :weight bold))))
+   `(diff-refine-added ((,class ,(modus-operandi-theme-diffs
+                                  bg-diff-added fg-diff-added
+                                  bg-diff-refine-added fg-diff-refine-added))))
+   `(diff-refine-changed ((,class ,(modus-operandi-theme-diffs
+                                    bg-diff-changed fg-diff-changed
+                                    bg-diff-refine-changed 
fg-diff-refine-changed))))
+   `(diff-refine-removed ((,class ,(modus-operandi-theme-diffs
+                                    bg-diff-removed fg-diff-removed
+                                    bg-diff-refine-removed 
fg-diff-refine-removed))))
+   `(diff-removed ((,class ,(modus-operandi-theme-diffs
+                             bg-main red
+                             bg-diff-focus-removed fg-diff-focus-removed))))
    ;;;; dim-autoload
    `(dim-autoload-cookie-line ((,class (:foreground ,fg-alt :slant 
,modus-theme-slant))))
    ;;;; dired
@@ -1027,9 +1236,9 @@ between foreground and background is >= 7:1)."
    `(dired-symlink ((,class (:foreground ,blue-alt :underline t))))
    `(dired-warning ((,class (:foreground ,yellow :weight bold))))
    ;;;; dired-async
-   `(dired-async-failures ((,class (:foreground ,red-active :weight bold))))
-   `(dired-async-message ((,class (:foreground ,green-active :weight bold))))
-   `(dired-async-mode-message ((,class (:foreground ,cyan-active :weight 
bold))))
+   `(dired-async-failures ((,class (:foreground ,red-active :weight 
,modus-theme-bold))))
+   `(dired-async-message ((,class (:foreground ,green-active :weight 
,modus-theme-bold))))
+   `(dired-async-mode-message ((,class (:foreground ,cyan-active :weight 
,modus-theme-bold))))
    ;;;; dired-git
    `(dired-git-branch-else ((,class (:foreground ,magenta-alt :weight bold))))
    `(dired-git-branch-master ((,class (:foreground ,magenta-alt-other :weight 
bold))))
@@ -1141,38 +1350,48 @@ between foreground and background is >= 7:1)."
    `(ebdb-role-defunct ((,class (:foreground ,fg-alt))))
    `(eieio-custom-slot-tag-face ((,class (:foreground ,red-alt))))
    ;;;; ediff
-   `(ediff-current-diff-A ((,class (:inherit modus-theme-special-warm))))
-   `(ediff-current-diff-Ancestor ((,class (:background ,bg-alt :foreground 
,fg-main))))
-   `(ediff-current-diff-B ((,class (:inherit modus-theme-special-cold))))
-   `(ediff-current-diff-C ((,class (:inherit modus-theme-special-mild))))
-   `(ediff-even-diff-A ((,class (:inherit modus-theme-subtle-yellow))))
-   `(ediff-even-diff-Ancestor ((,class (:background ,bg-inactive :foreground 
,fg-main))))
-   `(ediff-even-diff-B ((,class (:inherit modus-theme-subtle-cyan))))
-   `(ediff-even-diff-C ((,class (:inherit modus-theme-subtle-green))))
-   `(ediff-fine-diff-A ((,class (:inherit modus-theme-intense-yellow))))
-   `(ediff-fine-diff-Ancestor ((,class (:inherit 
modus-theme-intense-magenta))))
-   `(ediff-fine-diff-B ((,class (:inherit modus-theme-intense-cyan))))
-   `(ediff-fine-diff-C ((,class (:inherit modus-theme-intense-green))))
-   `(ediff-odd-diff-A ((,class (:inherit modus-theme-refine-yellow))))
-   `(ediff-odd-diff-Ancestor ((,class (:background ,bg-active :foreground 
,fg-main))))
-   `(ediff-odd-diff-B ((,class (:inherit modus-theme-refine-cyan))))
-   `(ediff-odd-diff-C ((,class (:inherit modus-theme-refine-green))))
+   `(ediff-current-diff-A ((,class ,(modus-operandi-theme-diffs
+                                     bg-alt red
+                                     bg-diff-removed fg-diff-removed))))
+   `(ediff-current-diff-Ancestor ((,class ,(modus-operandi-theme-diffs
+                                            bg-alt fg-special-cold
+                                            bg-special-cold fg-special-cold))))
+   `(ediff-current-diff-B ((,class ,(modus-operandi-theme-diffs
+                                     bg-alt green
+                                     bg-diff-added fg-diff-added))))
+   `(ediff-current-diff-C ((,class ,(modus-operandi-theme-diffs
+                                     bg-alt yellow
+                                     bg-diff-changed fg-diff-changed))))
+   `(ediff-even-diff-A ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
+   `(ediff-even-diff-Ancestor ((,class (:background ,bg-diff-neutral-2 
:foreground ,fg-diff-neutral-1))))
+   `(ediff-even-diff-B ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
+   `(ediff-even-diff-C ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-fine-diff-A ((,class (:background ,bg-diff-focus-removed 
:foreground ,fg-diff-focus-removed))))
+   `(ediff-fine-diff-Ancestor ((,class (:inherit modus-theme-refine-cyan))))
+   `(ediff-fine-diff-B ((,class (:background ,bg-diff-focus-added :foreground 
,fg-diff-focus-added))))
+   `(ediff-fine-diff-C ((,class (:background ,bg-diff-focus-changed 
:foreground ,fg-diff-focus-changed))))
+   `(ediff-odd-diff-A ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-odd-diff-Ancestor ((,class (:background ,bg-diff-neutral-0 
:foreground ,fg-diff-neutral-0))))
+   `(ediff-odd-diff-B ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-odd-diff-C ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
+   ;;;; eglot
+   `(eglot-mode-line ((,class (:foreground ,magenta-active :weight 
,modus-theme-bold))))
    ;;;; eldoc-box
    `(eldoc-box-body ((,class (:background ,bg-alt :foreground ,fg-main))))
    `(eldoc-box-border ((,class (:background ,fg-alt))))
    ;;;; elfeed
-   `(elfeed-log-date-face ((,class (:foreground ,blue))))
-   `(elfeed-log-debug-level-face ((,class (:inherit 
modus-theme-intense-magenta))))
-   `(elfeed-log-error-level-face ((,class (:inherit modus-theme-intense-red))))
-   `(elfeed-log-info-level-face ((,class (:inherit modus-theme-subtle-cyan))))
-   `(elfeed-log-warn-level-face ((,class (:inherit 
modus-theme-subtle-yellow))))
-   `(elfeed-search-date-face ((,class (:foreground ,fg-special-cold))))
-   `(elfeed-search-feed-face ((,class (:foreground ,cyan))))
-   `(elfeed-search-filter-face ((,class (:foreground ,fg-special-cold))))
-   `(elfeed-search-last-update-face ((,class (:foreground ,fg-special-calm))))
-   `(elfeed-search-tag-face ((,class (:foreground ,fg-special-mild))))
+   `(elfeed-log-date-face ((,class (:foreground ,cyan-alt))))
+   `(elfeed-log-debug-level-face ((,class (:foreground ,magenta))))
+   `(elfeed-log-error-level-face ((,class (:foreground ,red))))
+   `(elfeed-log-info-level-face ((,class (:foreground ,green))))
+   `(elfeed-log-warn-level-face ((,class (:foreground ,yellow))))
+   `(elfeed-search-date-face ((,class (:foreground ,cyan))))
+   `(elfeed-search-feed-face ((,class (:foreground ,blue))))
+   `(elfeed-search-filter-face ((,class (:foreground ,magenta-active))))
+   `(elfeed-search-last-update-face ((,class (:foreground ,green-active))))
+   `(elfeed-search-tag-face ((,class (:foreground ,cyan-alt-other))))
    `(elfeed-search-title-face ((,class (:foreground ,fg-main))))
-   `(elfeed-search-unread-count-face ((,class (:foreground ,fg-special-warm))))
+   `(elfeed-search-unread-count-face ((,class (:foreground ,blue-active))))
    `(elfeed-search-unread-title-face ((,class (:weight bold))))
    ;;;; elfeed-score
    `(elfeed-score-date-face ((,class (:foreground ,blue))))
@@ -1248,7 +1467,7 @@ between foreground and background is >= 7:1)."
    `(eshell-ls-special ((,class (:foreground ,magenta :weight bold))))
    `(eshell-ls-symlink ((,class (:foreground ,cyan :underline t))))
    `(eshell-ls-unreadable ((,class (:background ,bg-inactive :foreground 
,fg-inactive))))
-   `(eshell-prompt ((,class (:foreground ,cyan-alt-other :weight bold))))
+   `(eshell-prompt ((,class (:foreground ,cyan-alt-other :weight 
,modus-theme-bold))))
    ;;;; evil-mode
    `(evil-ex-commands ((,class (:foreground ,magenta-alt-other))))
    `(evil-ex-info ((,class (:foreground ,cyan-alt-other))))
@@ -1290,52 +1509,72 @@ between foreground and background is >= 7:1)."
    `(fancy-dabbrev-preview-face ((,class (:foreground ,fg-alt :underline t))))
    `(fancy-dabbrev-selection-face ((,class (:inherit modus-theme-intense-cyan 
:weight bold))))
    ;;;; flycheck
-   `(flycheck-error ((,class (:foreground ,red :underline t))))
+   `(flycheck-error
+     ((,(append '((supports :underline (:style wave))) class)
+       (:foreground ,red-nuanced :underline (:color ,fg-lang-error :style 
wave)))
+      (,class (:foreground red-nuanced :underline (:color ,fg-lang-error 
:style line)))))
    `(flycheck-error-list-checker-name ((,class (:foreground ,magenta-active))))
    `(flycheck-error-list-column-number ((,class (:foreground 
,fg-special-cold))))
-   `(flycheck-error-list-error ((,class (:inherit error))))
+   `(flycheck-error-list-error ((,class (:foreground ,red :weight 
,modus-theme-bold))))
    `(flycheck-error-list-filename ((,class (:foreground ,blue))))
    `(flycheck-error-list-highlight ((,class (:inherit 
modus-theme-special-warm))))
    `(flycheck-error-list-id ((,class (:foreground ,magenta-alt-other))))
    `(flycheck-error-list-id-with-explainer ((,class (:inherit 
flycheck-error-list-id :box t))))
-   `(flycheck-error-list-info ((,class (:foreground ,green))))
+   `(flycheck-error-list-info ((,class (:foreground ,cyan))))
    `(flycheck-error-list-line-number ((,class (:foreground ,fg-special-warm))))
    `(flycheck-error-list-warning ((,class (:foreground ,yellow))))
    `(flycheck-fringe-error ((,class (:inherit modus-theme-fringe-red))))
-   `(flycheck-fringe-info ((,class (:inherit modus-theme-fringe-green))))
+   `(flycheck-fringe-info ((,class (:inherit modus-theme-fringe-cyan))))
    `(flycheck-fringe-warning ((,class (:inherit modus-theme-fringe-yellow))))
-   `(flycheck-info ((,class (:foreground ,green :underline t))))
+   `(flycheck-info
+     ((,(append '((supports :underline (:style wave))) class)
+       (:foreground ,blue-nuanced :underline (:color ,fg-lang-note :style 
wave)))
+      (,class (:foreground ,blue-nuanced :underline (:color ,fg-lang-note 
:style line)))))
    `(flycheck-verify-select-checker ((,class (:box (:line-width 1 :color nil 
:style released-button)))))
-   `(flycheck-warning ((,class (:foreground ,yellow :underline t))))
+   `(flycheck-warning
+     ((,(append '((supports :underline (:style wave))) class)
+       (:foreground ,yellow-nuanced :underline (:color ,fg-lang-warning :style 
wave)))
+      (,class (:foreground ,yellow-nuanced :underline (:color ,fg-lang-warning 
:style line)))))
    ;;;; flycheck-indicator
    `(flycheck-indicator-disabled ((,class (:foreground ,fg-inactive :slant 
,modus-theme-slant))))
-   `(flycheck-indicator-error ((,class (:foreground ,red-active :weight 
bold))))
-   `(flycheck-indicator-info ((,class (:foreground ,blue-active :weight 
bold))))
-   `(flycheck-indicator-running ((,class (:foreground ,magenta-active :weight 
bold))))
-   `(flycheck-indicator-success ((,class (:foreground ,green-active :weight 
bold))))
-   `(flycheck-indicator-warning ((,class (:foreground ,yellow-active :weight 
bold))))
+   `(flycheck-indicator-error ((,class (:foreground ,red-active :weight 
,modus-theme-bold))))
+   `(flycheck-indicator-info ((,class (:foreground ,blue-active :weight 
,modus-theme-bold))))
+   `(flycheck-indicator-running ((,class (:foreground ,magenta-active :weight 
,modus-theme-bold))))
+   `(flycheck-indicator-success ((,class (:foreground ,green-active :weight 
,modus-theme-bold))))
+   `(flycheck-indicator-warning ((,class (:foreground ,yellow-active :weight 
,modus-theme-bold))))
    ;;;; flycheck-posframe
    `(flycheck-posframe-background-face ((,class (:background ,bg-alt))))
    `(flycheck-posframe-border-face ((,class (:foreground ,fg-alt))))
    `(flycheck-posframe-error-face ((,class (:foreground ,red :weight bold))))
    `(flycheck-posframe-face ((,class (:foreground ,fg-main :slant 
,modus-theme-slant))))
-   `(flycheck-posframe-info-face ((,class (:foreground ,green :weight bold))))
+   `(flycheck-posframe-info-face ((,class (:foreground ,cyan :weight bold))))
    `(flycheck-posframe-warning-face ((,class (:foreground ,yellow :weight 
bold))))
    ;;;; flymake
-   `(flymake-error ((,class (:foreground ,red :underline t))))
-   `(flymake-note ((,class (:foreground ,green :underline t))))
-   `(flymake-warning ((,class (:foreground ,yellow :underline t))))
+   `(flymake-error
+     ((,(append '((supports :underline (:style wave))) class)
+       (:foreground ,red-nuanced :underline (:color ,fg-lang-error :style 
wave)))
+      (,class (:foreground ,red-nuanced :underline (:color ,fg-lang-error 
:style line)))))
+   `(flymake-note
+     ((,(append '((supports :underline (:style wave))) class)
+       (:foreground ,blue-nuanced :underline (:color ,fg-lang-note :style 
wave)))
+      (,class (:foreground ,blue-nuanced :underline (:color ,fg-lang-note 
:style line)))))
+   `(flymake-warning
+     ((,(append '((supports :underline (:style wave))) class)
+       (:foreground ,yellow-nuanced :underline (:color ,fg-lang-warning :style 
wave)))
+      (,class (:foreground ,yellow-nuanced :underline (:color ,fg-lang-warning 
:style line)))))
    ;;;; flyspell
    `(flyspell-duplicate
      ((,(append '((supports :underline (:style wave))) class)
-       (:foreground ,yellow :underline (:style wave)))
-      (,class (:foreground ,yellow :underline t))))
+       (:foreground ,fg-lang-warning :underline (:style wave)))
+      (,class (:foreground ,fg-lang-warning :underline t))))
    `(flyspell-incorrect
      ((,(append '((supports :underline (:style wave))) class)
-       (:foreground ,red :underline (:style wave)))
-      (,class (:foreground ,red :underline t))))
+       (:foreground ,fg-lang-error :underline (:style wave)))
+      (,class (:foreground ,fg-lang-error :underline t))))
    ;;;; flyspell-correct
    `(flyspell-correct-highlight-face ((,class (:inherit 
modus-theme-refine-green))))
+   ;;;; flx
+   `(flx-highlight-face ((,class (:inherit modus-theme-intense-magenta))))
    ;;;; freeze-it
    `(freeze-it-show ((,class (:background ,bg-dim :foreground 
,fg-special-warm))))
    ;;;; frog-menu
@@ -1346,7 +1585,7 @@ between foreground and background is >= 7:1)."
    `(frog-menu-posframe-background-face ((,class (:background ,bg-dim))))
    `(frog-menu-prompt-face ((,class (:foreground ,cyan))))
    ;;;; focus
-   `(focus-unfocused ((,class (:foreground ,fg-alt))))
+   `(focus-unfocused ((,class (:foreground ,fg-unfocused))))
    ;;;; fold-this
    `(fold-this-overlay ((,class (:inherit modus-theme-special-mild))))
    ;;;; font-lock
@@ -1359,12 +1598,20 @@ between foreground and background is >= 7:1)."
    `(font-lock-keyword-face ((,class (:foreground ,magenta-alt-other :weight 
,modus-theme-bold))))
    `(font-lock-negation-char-face ((,class (:foreground ,yellow :weight 
,modus-theme-bold))))
    `(font-lock-preprocessor-face ((,class (:foreground ,magenta))))
-   `(font-lock-regexp-grouping-backslash ((,class (:foreground ,green :weight 
bold))))
-   `(font-lock-regexp-grouping-construct ((,class (:foreground ,magenta 
:weight bold))))
+   `(font-lock-regexp-grouping-backslash ((,class (:foreground 
,fg-escape-char-backslash :weight bold))))
+   `(font-lock-regexp-grouping-construct ((,class (:foreground 
,fg-escape-char-construct :weight bold))))
    `(font-lock-string-face ((,class (:foreground ,blue-alt))))
    `(font-lock-type-face ((,class (:foreground ,magenta-alt))))
    `(font-lock-variable-name-face ((,class (:foreground ,cyan))))
    `(font-lock-warning-face ((,class (:foreground ,yellow-active :weight 
bold))))
+   ;;;; forge
+   `(forge-post-author ((,class (:foreground ,fg-main :weight bold))))
+   `(forge-post-date ((,class (:foreground ,fg-special-cold))))
+   `(forge-topic-closed ((,class (:foreground ,fg-alt))))
+   `(forge-topic-merged ((,class (:foreground ,fg-alt))))
+   `(forge-topic-open ((,class (:foreground ,fg-special-mild))))
+   `(forge-topic-unmerged ((,class (:foreground ,magenta :slant 
,modus-theme-slant))))
+   `(forge-topic-unread ((,class (:foreground ,fg-main :weight bold))))
    ;;;; fountain-mode
    `(fountain-character ((,class (:foreground ,magenta-alt-other))))
    `(fountain-comment ((,class (:foreground ,fg-alt :slant 
,modus-theme-slant))))
@@ -1379,24 +1626,19 @@ between foreground and background is >= 7:1)."
    `(fountain-scene-heading ((,class (:foreground ,fg-special-calm :weight 
bold))))
    `(fountain-section-heading ((,class (:inherit ,modus-theme-variable-pitch
                                                  :foreground ,fg-main :weight 
bold
-                                                 ,@(when 
modus-operandi-theme-scale-headings
-                                                     (list :height 
modus-operandi-theme-scale-4))))))
+                                                 ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    `(fountain-section-heading-1 ((,class (:inherit ,modus-theme-variable-pitch
                                                    :foreground ,fg-main 
:weight bold
-                                                   ,@(when 
modus-operandi-theme-scale-headings
-                                                       (list :height 
modus-operandi-theme-scale-4))))))
+                                                   
,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)))))
    `(fountain-section-heading-2 ((,class (:inherit ,modus-theme-variable-pitch
                                                    :foreground 
,fg-special-warm :weight bold
-                                                   ,@(when 
modus-operandi-theme-scale-headings
-                                                       (list :height 
modus-operandi-theme-scale-3))))))
+                                                   
,@(modus-operandi-theme-scale modus-operandi-theme-scale-3)))))
    `(fountain-section-heading-3 ((,class (:inherit ,modus-theme-variable-pitch
                                                    :foreground 
,fg-special-cold :weight bold
-                                                   ,@(when 
modus-operandi-theme-scale-headings
-                                                       (list :height 
modus-operandi-theme-scale-2))))))
+                                                   
,@(modus-operandi-theme-scale modus-operandi-theme-scale-2)))))
    `(fountain-section-heading-4 ((,class (:inherit ,modus-theme-variable-pitch
                                                    :foreground 
,fg-special-mild :weight bold
-                                                   ,@(when 
modus-operandi-theme-scale-headings
-                                                       (list :height 
modus-operandi-theme-scale-1))))))
+                                                   
,@(modus-operandi-theme-scale modus-operandi-theme-scale-1)))))
    `(fountain-section-heading-5 ((,class (:inherit ,modus-theme-variable-pitch
                                                    :foreground 
,fg-special-calm :weight bold))))
    `(fountain-synopsis ((,class (:foreground ,green))))
@@ -1415,12 +1657,12 @@ between foreground and background is >= 7:1)."
    `(geiser-font-lock-xref-header ((,class (:weight bold))))
    `(geiser-font-lock-xref-link ((,class (:inherit link))))
    ;;;; git-commit
-   `(git-commit-comment-action ((,class (:foreground ,fg-special-calm))))
-   `(git-commit-comment-branch-local ((,class (:foreground ,cyan))))
-   `(git-commit-comment-branch-remote ((,class (:foreground ,blue))))
-   `(git-commit-comment-detached ((,class (:foreground ,yellow))))
-   `(git-commit-comment-file ((,class (:foreground ,blue))))
-   `(git-commit-comment-heading ((,class (:foreground ,fg-main :weight bold))))
+   `(git-commit-comment-action ((,class (:foreground ,fg-special-calm :slant 
,modus-theme-slant))))
+   `(git-commit-comment-branch-local ((,class (:foreground ,cyan :slant 
,modus-theme-slant))))
+   `(git-commit-comment-branch-remote ((,class (:foreground ,blue :slant 
,modus-theme-slant))))
+   `(git-commit-comment-detached ((,class (:foreground ,yellow :slant 
,modus-theme-slant))))
+   `(git-commit-comment-file ((,class (:foreground ,blue :slant 
,modus-theme-slant))))
+   `(git-commit-comment-heading ((,class (:foreground ,fg-main :weight bold 
:slant ,modus-theme-slant))))
    `(git-commit-keyword ((,class (:foreground ,magenta))))
    `(git-commit-known-pseudo-header ((,class (:foreground ,fg-special-warm 
:weight bold))))
    `(git-commit-nonempty-second-line ((,class (:inherit 
modus-theme-refine-yellow :weight bold))))
@@ -1595,8 +1837,7 @@ between foreground and background is >= 7:1)."
    `(helm-time-zone-current ((,class (:foreground ,green))))
    `(helm-time-zone-home ((,class (:foreground ,magenta))))
    `(helm-source-header ((,class (:foreground ,red-alt :weight bold
-                                              ,@(when 
modus-operandi-theme-scale-headings
-                                                  (list :height 
modus-operandi-theme-scale-4))))))
+                                              ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    `(helm-top-columns ((,class (:inherit helm-header))))
    `(helm-ucs-char ((,class (:foreground ,yellow-alt-other))))
    `(helm-visible-mark ((,class (:inherit modus-theme-subtle-cyan))))
@@ -1615,6 +1856,9 @@ between foreground and background is >= 7:1)."
    ;;;; helm-xref
    `(helm-xref-file-name ((,class (:foreground ,fg-special-cold :weight 
bold))))
    `(helm-xref-file-name ((,class (:foreground ,fg-special-warm))))
+   ;;;; helpful
+   `(helpful-heading  ((,class (:inherit ,modus-theme-variable-pitch 
:foreground ,fg-main :weight bold
+                                         ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    ;;;; highlight region or ad-hoc regexp
    `(hi-black-b ((,class (:background ,fg-main :foreground ,bg-main))))
    `(hi-blue ((,class (:background ,bg-alt :foreground ,blue :underline t))))
@@ -1648,10 +1892,12 @@ between foreground and background is >= 7:1)."
    `(highlight-defined-special-form-name-face ((,class (:foreground 
,magenta-alt-other))))
    `(highlight-defined-variable-name-face ((,class (:foreground ,cyan))))
    ;;;; highlight-escape-sequences (`hes-mode')
-   `(hes-escape-backslash-face ((,class (:foreground ,green :weight bold))))
-   `(hes-escape-sequence-face ((,class (:foreground ,magenta :weight bold))))
+   `(hes-escape-backslash-face ((,class (:foreground ,fg-escape-char-construct 
:weight bold))))
+   `(hes-escape-sequence-face ((,class (:foreground ,fg-escape-char-backslash 
:weight bold))))
    ;;;; highlight-numbers
    `(highlight-numbers-number ((,class (:foreground ,blue-alt-other))))
+   ;;;; highlight-symbol
+   `(highlight-symbol-face ((,class (:inherit modus-theme-special-mild))))
    ;;;; highlight-thing
    `(highlight-thing ((,class (:background ,bg-alt :foreground ,cyan))))
    ;;;; hl-fill-column
@@ -1659,13 +1905,16 @@ between foreground and background is >= 7:1)."
    ;;;; hl-todo
    `(hl-todo ((,class (:foreground ,red-alt-other :weight bold))))
    ;;;; hydra
-   `(hydra-face-amaranth ((,class (:foreground ,yellow-intense :weight bold))))
-   `(hydra-face-blue ((,class (:foreground ,blue-intense :weight bold))))
-   `(hydra-face-pink ((,class (:foreground ,magenta-intense :weight bold))))
-   `(hydra-face-red ((,class (:foreground ,red-intense :weight bold))))
-   `(hydra-face-teal ((,class (:foreground ,cyan-intense :weight bold))))
+   `(hydra-face-amaranth ((,class (:foreground ,yellow :weight bold))))
+   `(hydra-face-blue ((,class (:foreground ,blue-alt :weight bold))))
+   `(hydra-face-pink ((,class (:foreground ,magenta-alt :weight bold))))
+   `(hydra-face-red ((,class (:foreground ,red :weight bold))))
+   `(hydra-face-teal ((,class (:foreground ,cyan :weight bold))))
+   ;;;; icomplete
+   `(icomplete-first-match ((,class (:foreground ,magenta :weight bold))))
+   ;;;; icomplete-vertical
+   `(icomplete-vertical-separator ((,class (:foreground ,fg-alt))))
    ;;;; ido-mode
-   `(flx-highlight-face ((,class (:inherit modus-theme-intense-magenta))))
    `(ido-first-match ((,class (:foreground ,magenta :weight bold))))
    `(ido-incomplete-regexp ((,class (:inherit error))))
    `(ido-indicator ((,class (:inherit modus-theme-subtle-yellow))))
@@ -1675,6 +1924,9 @@ between foreground and background is >= 7:1)."
    ;;;; iedit
    `(iedit-occurrence ((,class (:inherit modus-theme-refine-blue))))
    `(iedit-read-only-occurrence ((,class (:inherit 
modus-theme-intense-yellow))))
+   ;;;; iflipb
+   `(iflipb-current-buffer-face ((,class (:foreground ,cyan-alt :weight 
bold))))
+   `(iflipb-other-buffer-face ((,class (:foreground ,fg-alt))))
    ;;;; imenu-list
    `(imenu-list-entry-face-0 ((,class (:foreground ,magenta-alt-other))))
    `(imenu-list-entry-face-1 ((,class (:foreground ,cyan-alt-other))))
@@ -1721,8 +1973,7 @@ between foreground and background is >= 7:1)."
                                    :inherit modus-theme-refine-blue))))
    `(ioccur-regexp-face ((,class (:inherit modus-theme-intense-magenta :weight 
bold))))
    `(ioccur-title-face ((,class (:foreground ,red-alt :weight bold
-                                             ,@(when 
modus-operandi-theme-scale-headings
-                                                 (list :height 
modus-operandi-theme-scale-4))))))
+                                             ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    ;;;; isearch, occur, and the like
    `(isearch ((,class (:inherit modus-theme-intense-green :weight bold))))
    `(isearch-fail ((,class (:inherit modus-theme-refine-red))))
@@ -1797,7 +2048,10 @@ between foreground and background is >= 7:1)."
    `(kaocha-runner-warning-face ((,class (:foreground ,yellow))))
    ;;;; keycast
    `(keycast-command ((,class (:foreground ,blue-active :weight bold))))
-   `(keycast-key ((,class (:inherit modus-theme-active-blue))))
+   `(keycast-key ((,class (:box ,(modus-operandi-theme-modeline-box 
blue-intense blue-active t -3)
+                                ,@(modus-operandi-theme-modeline-props
+                                   blue-active bg-main
+                                   blue-active bg-active)))))
    ;;;; line numbers (display-line-numbers-mode and global variant)
    `(line-number ((,class (:background ,bg-dim :foreground ,fg-alt))))
    `(line-number-current-line ((,class (:background ,bg-active :foreground 
,fg-active :weight bold))))
@@ -1855,19 +2109,29 @@ between foreground and background is >= 7:1)."
    `(magit-blame-margin ((,class (:inherit magit-blame-highlight))))
    `(magit-blame-name ((,class (:foreground ,fg-main))))
    `(magit-blame-summary ((,class (:foreground ,fg-main))))
-   `(magit-branch-current ((,class (:foreground ,magenta-alt-other))))
-   `(magit-branch-local ((,class (:foreground ,blue-alt-other))))
+   `(magit-branch-current ((,class (:foreground ,blue-alt-other :box t))))
+   `(magit-branch-local ((,class (:foreground ,blue-alt))))
    `(magit-branch-remote ((,class (:foreground ,magenta-alt))))
-   `(magit-branch-remote-head ((,class (:foreground ,magenta :box t))))
+   `(magit-branch-remote-head ((,class (:foreground ,magenta-alt-other :box 
t))))
    `(magit-branch-upstream ((,class (:slant italic))))
    `(magit-cherry-equivalent ((,class (:background ,bg-main :foreground 
,magenta-intense))))
    `(magit-cherry-unmatched ((,class (:background ,bg-main :foreground 
,cyan-intense))))
-   `(magit-diff-added ((,class (:inherit modus-theme-diff-added))))
-   `(magit-diff-added-highlight ((,class (:inherit 
modus-theme-diff-focus-added))))
-   `(magit-diff-base ((,class (:inherit modus-theme-diff-changed))))
-   `(magit-diff-base-highlight ((,class (:inherit 
modus-theme-diff-focus-changed))))
-   `(magit-diff-context ((,class (:foreground ,fg-alt))))
-   `(magit-diff-context-highlight ((,class (:background ,bg-inactive 
:foreground ,fg-inactive))))
+   `(magit-diff-added ((,class ,(modus-operandi-theme-diffs
+                                 bg-main green
+                                 bg-diff-added fg-diff-added))))
+   `(magit-diff-added-highlight ((,class ,(modus-operandi-theme-diffs
+                                           bg-dim green
+                                           bg-diff-focus-added 
fg-diff-focus-added))))
+   `(magit-diff-base ((,class ,(modus-operandi-theme-diffs
+                                bg-main yellow
+                                bg-diff-changed fg-diff-changed))))
+   `(magit-diff-base-highlight ((,class ,(modus-operandi-theme-diffs
+                                          bg-dim yellow
+                                          bg-diff-focus-changed 
fg-diff-focus-changed))))
+   `(magit-diff-context ((,class (:foreground ,fg-unfocused))))
+   `(magit-diff-context-highlight ((,class ,(modus-operandi-theme-diffs
+                                             bg-dim fg-dim
+                                             bg-inactive fg-inactive))))
    `(magit-diff-file-heading ((,class (:foreground ,fg-special-cold :weight 
bold))))
    `(magit-diff-file-heading-highlight ((,class (:inherit 
modus-theme-special-cold :weight bold))))
    `(magit-diff-file-heading-selection ((,class (:background ,bg-alt 
:foreground ,cyan))))
@@ -1877,13 +2141,23 @@ between foreground and background is >= 7:1)."
    `(magit-diff-hunk-region ((,class (:weight bold))))
    `(magit-diff-lines-boundary ((,class (:background ,fg-main))))
    `(magit-diff-lines-heading ((,class (:inherit modus-theme-refine-magenta))))
-   `(magit-diff-removed ((,class (:inherit modus-theme-diff-removed))))
-   `(magit-diff-removed-highlight ((,class (:inherit 
modus-theme-diff-focus-removed))))
+   `(magit-diff-removed ((,class ,(modus-operandi-theme-diffs
+                                   bg-main red
+                                   bg-diff-removed fg-diff-removed))))
+   `(magit-diff-removed-highlight ((,class ,(modus-operandi-theme-diffs
+                                             bg-dim red
+                                             bg-diff-focus-removed 
fg-diff-focus-removed))))
    `(magit-diffstat-added ((,class (:foreground ,green))))
    `(magit-diffstat-removed ((,class (:foreground ,red))))
    `(magit-dimmed ((,class (:foreground ,fg-alt))))
    `(magit-filename ((,class (:foreground ,fg-special-cold))))
    `(magit-hash ((,class (:foreground ,fg-special-warm))))
+   `(magit-head ((,class (:inherit magit-branch-local))))
+   `(magit-header-line ((,class (:foreground ,cyan-active :weight bold))))
+   `(magit-header-line-key ((,class (:foreground ,blue-active :weight bold))))
+   `(magit-header-line-log-select ((,class (:foreground ,fg-main :weight 
bold))))
+   `(magit-keyword ((,class (:foreground ,magenta))))
+   `(magit-keyword-squash ((,class (:foreground ,yellow-alt-other :weight 
bold))))
    `(magit-log-author ((,class (:foreground ,cyan))))
    `(magit-log-date ((,class (:foreground ,magenta))))
    `(magit-log-graph ((,class (:foreground ,fg-dim))))
@@ -1905,7 +2179,7 @@ between foreground and background is >= 7:1)."
    `(magit-refname-stash ((,class (:foreground ,fg-alt))))
    `(magit-refname-wip ((,class (:foreground ,fg-alt))))
    `(magit-section ((,class (:background ,bg-dim :foreground ,fg-main))))
-   `(magit-section-heading ((,class (:foreground ,cyan-active))))
+   `(magit-section-heading ((,class (:foreground ,cyan-alt-other :weight 
bold))))
    `(magit-section-heading-selection ((,class (:inherit 
modus-theme-refine-cyan :weight bold))))
    `(magit-section-highlight ((,class (:background ,bg-alt))))
    `(magit-sequence-done ((,class (:foreground ,green-alt))))
@@ -1924,6 +2198,12 @@ between foreground and background is >= 7:1)."
    `(magit-signature-revoked ((,class (:background ,bg-main :foreground 
,magenta-intense))))
    `(magit-signature-untrusted ((,class (:background ,bg-main :foreground 
,cyan-intense))))
    `(magit-tag ((,class (:foreground ,yellow-alt-other))))
+   ;;;; magit-imerge
+   `(magit-imerge-overriding-value ((,class (:foreground ,red-alt :weight 
bold))))
+   ;;;; man
+   `(Man-overstrike ((,class (:foreground ,magenta :weight bold))))
+   `(Man-reverse ((,class (:inherit modus-theme-subtle-magenta))))
+   `(Man-underline ((,class (:foreground ,cyan :underline t))))
    ;;;; markdown-mode
    `(markdown-blockquote-face ((,class (:background ,bg-dim :foreground 
,fg-special-warm :slant ,modus-theme-slant))))
    `(markdown-bold-face ((,class (:weight bold))))
@@ -2019,14 +2299,20 @@ between foreground and background is >= 7:1)."
    `(message-header-subject ((,class (:foreground ,magenta-alt-other :weight 
bold))))
    `(message-header-to ((,class (:foreground ,magenta-alt :weight bold))))
    `(message-header-xheader ((,class (:foreground ,blue-alt-other))))
-   `(message-mml ((,class (:foreground ,green-alt))))
+   `(message-mml ((,class (:foreground ,green-alt-other))))
    `(message-separator ((,class (:background ,bg-alt :foreground 
,fg-special-warm))))
    ;;;; modeline
-   `(mode-line ((,class (:box (:line-width 1 :color ,fg-inactive) :background 
,bg-active :foreground ,fg-active))))
+   `(mode-line ((,class (:box ,(modus-operandi-theme-modeline-box bg-inactive 
fg-inactive t)
+                              ,@(modus-operandi-theme-modeline-props
+                                 bg-active fg-dim
+                                 bg-active fg-active)))))
    `(mode-line-buffer-id ((,class (:weight bold))))
    `(mode-line-emphasis ((,class (:foreground ,blue-active :weight bold))))
    `(mode-line-highlight ((,class (:inherit modus-theme-active-blue :box 
(:line-width -1 :style pressed-button)))))
-   `(mode-line-inactive ((,class (:box (:color ,bg-inactive) :background 
,bg-inactive :foreground ,fg-inactive))))
+   `(mode-line-inactive ((,class (:box ,(modus-operandi-theme-modeline-box 
bg-active bg-active)
+                                       ,@(modus-operandi-theme-modeline-props
+                                          bg-dim fg-inactive
+                                          bg-inactive fg-inactive)))))
    ;;;; mood-line
    `(mood-line-modified ((,class (:foreground ,magenta-active))))
    `(mood-line-status-error ((,class (:foreground ,red-active :weight bold))))
@@ -2109,8 +2395,15 @@ between foreground and background is >= 7:1)."
    `(neo-vc-unlocked-changes-face ((,class (:inherit 
modus-theme-refine-blue))))
    `(neo-vc-up-to-date-face ((,class (:foreground ,fg-alt))))
    `(neo-vc-user-face ((,class (:foreground ,magenta))))
+   ;;;; no-emoji
+   `(no-emoji ((,class (:foreground ,cyan))))
    ;;;; num3-mode
    `(num3-face-even ((,class (:background ,bg-alt :weight bold))))
+   ;;;; orderless
+   `(orderless-match-face-0 ((,class (:foreground ,blue-alt :weight bold))))
+   `(orderless-match-face-1 ((,class (:foreground ,magenta-alt :weight bold))))
+   `(orderless-match-face-2 ((,class (:foreground ,green-alt-other :weight 
bold))))
+   `(orderless-match-face-3 ((,class (:foreground ,yellow-alt-other :weight 
bold))))
    ;;;; org
    `(org-agenda-calendar-event ((,class (:foreground ,blue-alt))))
    `(org-agenda-calendar-sexp ((,class (:foreground ,cyan-alt))))
@@ -2118,18 +2411,15 @@ between foreground and background is >= 7:1)."
    `(org-agenda-column-dateline ((,class (:inherit 
modus-theme-subtle-neutral))))
    `(org-agenda-current-time ((,class (:inherit modus-theme-intense-cyan))))
    `(org-agenda-date ((,class (:inherit ,modus-theme-variable-pitch 
:foreground ,fg-main
-                                        ,@(when 
modus-operandi-theme-scale-headings
-                                            (list :height 
modus-operandi-theme-scale-4))))))
+                                        ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    `(org-agenda-date-today ((,class (:inherit ,modus-theme-variable-pitch 
:background ,cyan-subtle-bg
                                               :foreground ,fg-main :weight bold
-                                              ,@(when 
modus-operandi-theme-scale-headings
-                                                  (list :height 
modus-operandi-theme-scale-4))))))
+                                              ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    `(org-agenda-date-weekend ((,class (:inherit ,modus-theme-variable-pitch 
:foreground ,fg-alt
-                                                ,@(when 
modus-operandi-theme-scale-headings
-                                                    (list :height 
modus-operandi-theme-scale-4))))))
+                                                ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    `(org-agenda-diary ((,class (:background ,bg-main :foreground ,fg-main))))
    `(org-agenda-dimmed-todo-face ((,class (:inherit 
modus-theme-subtle-neutral))))
-   `(org-agenda-done ((,class (:foreground ,green))))
+   `(org-agenda-done ((,class (,@(modus-operandi-theme-org-todo-block 
green-nuanced-bg green-nuanced green)))))
    `(org-agenda-filter-category ((,class (:background ,bg-active :foreground 
,fg-main :box t))))
    `(org-agenda-filter-effort ((,class (:background ,bg-active :foreground 
,fg-main :box t))))
    `(org-agenda-filter-regexp ((,class (:background ,bg-active :foreground 
,fg-main :box t))))
@@ -2137,20 +2427,21 @@ between foreground and background is >= 7:1)."
    `(org-agenda-restriction-lock ((,class (:background ,bg-dim :foreground 
,fg-dim))))
    `(org-agenda-structure ((,class (:inherit ,modus-theme-variable-pitch
                                              :foreground ,fg-special-mild
-                                             ,@(when 
modus-operandi-theme-scale-headings
-                                           (list :height 
modus-operandi-theme-scale-3))))))
+                                             ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-3)))))
    `(org-archived ((,class (:background ,bg-alt :foreground ,fg-alt))))
-   `(org-block ((,class (,@(and (>= emacs-major-version 27) '(:extend t))
-                         :background ,(if 
modus-operandi-theme-distinct-org-blocks bg-dim bg-main)
-                         :foreground ,fg-main))))
+   `(org-block ((,class (,@(modus-operandi-theme-org-src-block bg-dim bg-main) 
:foreground ,fg-main))))
    `(org-block-begin-line ((,class (,@(and (>= emacs-major-version 27)
                                            
modus-operandi-theme-distinct-org-blocks
                                            '(:extend t))
                                     :background ,bg-alt :foreground 
,fg-special-mild))))
    `(org-block-end-line ((,class (:inherit org-block-begin-line))))
    `(org-checkbox ((,class (:weight bold))))
-   `(org-checkbox-statistics-done ((,class (:foreground ,green :weight bold))))
-   `(org-checkbox-statistics-todo ((,class (:foreground ,yellow :weight 
bold))))
+   `(org-checkbox-statistics-done ((,class (:foreground ,green
+                                                        
,@(modus-operandi-theme-heading-block
+                                                           green-nuanced-bg 
green-nuanced)))))
+   `(org-checkbox-statistics-todo ((,class (:foreground ,yellow
+                                                        
,@(modus-operandi-theme-heading-block
+                                                           yellow-nuanced-bg 
yellow-nuanced)))))
    `(org-clock-overlay ((,class (:inherit modus-theme-special-cold))))
    `(org-code ((,class (:foreground ,magenta))))
    `(org-column ((,class (:background ,bg-alt))))
@@ -2160,7 +2451,7 @@ between foreground and background is >= 7:1)."
    `(org-default ((,class (:background ,bg-main :foreground ,fg-main))))
    `(org-document-info ((,class (:foreground ,fg-special-cold))))
    `(org-document-title ((,class (:foreground ,fg-special-cold :weight bold))))
-   `(org-done ((,class (:foreground ,green))))
+   `(org-done ((,class (,@(modus-operandi-theme-org-todo-block 
green-nuanced-bg green-nuanced green)))))
    `(org-drawer ((,class (:foreground ,cyan-alt))))
    `(org-ellipsis ((,class (:foreground nil)))) ; inherits from the heading's 
colour
    `(org-footnote ((,class (:foreground ,blue-alt :underline t))))
@@ -2173,52 +2464,61 @@ between foreground and background is >= 7:1)."
    `(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))))
+   `(org-headline-done ((,class (:foreground ,green-nuanced
+                                             
,@(modus-operandi-theme-heading-block
+                                                green-nuanced-bg 
green-nuanced)))))
    `(org-hide ((,class (:foreground ,fg-main))))
    `(org-latex-and-related ((,class (:foreground ,magenta-refine-fg))))
-   `(org-level-1 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,fg-main :weight bold
-                                       ,@(when 
modus-operandi-theme-scale-headings
-                                           (list :height 
modus-operandi-theme-scale-4))))))
-   `(org-level-2 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,fg-special-warm :weight bold
-                                       ,@(when 
modus-operandi-theme-scale-headings
-                                          (list :height 
modus-operandi-theme-scale-3))))))
-   `(org-level-3 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,fg-special-cold :weight bold
-                                       ,@(when 
modus-operandi-theme-scale-headings
-                                          (list :height 
modus-operandi-theme-scale-2))))))
-   `(org-level-4 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,fg-special-mild :weight bold
-                                       ,@(when 
modus-operandi-theme-scale-headings
-                                          (list :height 
modus-operandi-theme-scale-1))))))
-   `(org-level-5 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,fg-special-calm :weight bold))))
-   `(org-level-6 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,yellow-nuanced :weight bold))))
-   `(org-level-7 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,red-nuanced :weight bold))))
-   `(org-level-8 ((,class (:inherit ,modus-theme-variable-pitch
-                           :foreground ,fg-dim :weight bold))))
+   `(org-level-1 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                    ,@(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 ,modus-theme-variable-pitch :weight bold
+                                    ,@(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 ,modus-theme-variable-pitch :weight bold
+                                    ,@(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 ,modus-theme-variable-pitch :weight bold
+                                    ,@(modus-operandi-theme-heading-foreground 
fg-special-mild cyan-alt-other)
+                                    ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-1)
+                                    ,@(modus-operandi-theme-heading-block 
cyan-nuanced-bg cyan-nuanced)))))
+   `(org-level-5 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                    ,@(modus-operandi-theme-heading-foreground 
fg-special-calm green-alt)
+                                    ,@(modus-operandi-theme-heading-block 
green-nuanced-bg green-nuanced)))))
+   `(org-level-6 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                    ,@(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 ,modus-theme-variable-pitch :weight bold
+                                    ,@(modus-operandi-theme-heading-foreground 
red-nuanced red-alt)
+                                    ,@(modus-operandi-theme-heading-block 
red-nuanced-bg red-nuanced)))))
+   `(org-level-8 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                    ,@(modus-operandi-theme-heading-foreground 
fg-dim magenta)
+                                    ,@(modus-operandi-theme-heading-block 
bg-alt fg-alt)))))
    `(org-link ((,class (:inherit link))))
    `(org-list-dt ((,class (:weight bold))))
    `(org-macro ((,class (:inherit org-latex-and-related))))
    `(org-meta-line ((,class (:foreground ,fg-alt :slant ,modus-theme-slant))))
    `(org-mode-line-clock ((,class (:background ,bg-main :foreground 
,fg-main))))
    `(org-mode-line-clock-overrun ((,class (:inherit modus-theme-active-red))))
-   `(org-priority ((,class (:foreground ,magenta))))
-   `(org-quote ((,class (:inherit org-block :foreground ,fg-special-cold))))
+   `(org-priority ((,class (,@(modus-operandi-theme-org-todo-block 
blue-nuanced-bg blue-nuanced magenta)
+                            ,@(modus-operandi-theme-heading-foreground magenta 
blue-alt)))))
+   `(org-quote ((,class (,@(modus-operandi-theme-org-src-block bg-dim bg-main)
+                         :foreground ,fg-special-cold :slant 
,modus-theme-slant))))
    `(org-scheduled ((,class (:foreground ,fg-special-cold))))
    `(org-scheduled-previously ((,class (:foreground ,fg-special-warm))))
    `(org-scheduled-today ((,class (:foreground ,yellow-alt-other))))
    `(org-sexp-date ((,class (:inherit org-date))))
-   `(org-special-keyword ((,class (:foreground ,cyan-alt))))
+   `(org-special-keyword ((,class (,@(modus-operandi-theme-org-todo-block 
cyan-nuanced-bg cyan-nuanced cyan-alt)))))
    `(org-table ((,class (:foreground ,fg-special-cold))))
    `(org-tag ((,class (:foreground ,magenta-nuanced :weight normal))))
    `(org-tag-group ((,class (:foreground ,cyan-nuanced :weight bold))))
    `(org-target ((,class (:underline t))))
    `(org-time-grid ((,class (:foreground ,cyan-nuanced))))
-   `(org-todo ((,class (:foreground ,magenta-alt-other))))
+   `(org-todo ((,class (,@(modus-operandi-theme-org-todo-block 
magenta-nuanced-bg magenta-nuanced magenta-alt-other)
+                        ,@(modus-operandi-theme-heading-foreground 
magenta-alt-other red-alt-other)))))
    `(org-upcoming-deadline ((,class (:foreground ,red-alt-other))))
    `(org-upcoming-distant-deadline ((,class (:foreground ,red-nuanced))))
    `(org-verbatim ((,class (:background ,bg-alt :foreground 
,fg-special-calm))))
@@ -2250,33 +2550,36 @@ between foreground and background is >= 7:1)."
    `(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 ,modus-theme-variable-pitch
-                                  :foreground ,fg-main :weight bold
-                                  ,@(when modus-operandi-theme-scale-headings
-                                      (list :height 
modus-operandi-theme-scale-4))))))
-   `(outline-2 ((,class (:inherit ,modus-theme-variable-pitch
-                                  :foreground ,fg-special-warm :weight bold
-                                  ,@(when modus-operandi-theme-scale-headings
-                                      (list :height 
modus-operandi-theme-scale-3))))))
-   `(outline-3 ((,class (:inherit ,modus-theme-variable-pitch
-                                  :foreground ,fg-special-cold :weight bold
-                                  ,@(when modus-operandi-theme-scale-headings
-                                      (list :height 
modus-operandi-theme-scale-2))))))
-   `(outline-4 ((,class (:inherit ,modus-theme-variable-pitch
-                                  :foreground ,fg-special-mild :weight bold
-                                  ,@(when modus-operandi-theme-scale-headings
-                                      (list :height 
modus-operandi-theme-scale-1))))))
-   `(outline-5 ((,class (:inherit ,modus-theme-variable-pitch
-                                  :foreground ,fg-special-calm :weight bold))))
-   `(outline-6 ((,class (:inherit ,modus-theme-variable-pitch
-                                  :foreground ,yellow-nuanced :weight bold))))
-   `(outline-7 ((,class (:inherit ,modus-theme-variable-pitch
-                                  :foreground ,red-nuanced :weight bold))))
-   `(outline-8 ((,class (:inherit ,modus-theme-variable-pitch
-                                  :foreground ,fg-dim :weight bold))))
-   ;;;; outline-minor-faces (applies backgrounds to `outline-minor-mode')
-   `(outline-minor-0 ((,class (,@(and (>= emacs-major-version 27) '(:extend t))
-                               :background ,bg-alt :weight bold))))
+   `(outline-1 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                  ,@(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 ,modus-theme-variable-pitch :weight bold
+                                  ,@(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 ,modus-theme-variable-pitch :weight bold
+                                  ,@(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 ,modus-theme-variable-pitch :weight bold
+                                  ,@(modus-operandi-theme-heading-foreground 
fg-special-mild cyan-alt-other)
+                                  ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-1)
+                                  ,@(modus-operandi-theme-heading-block 
cyan-nuanced-bg cyan-nuanced)))))
+   `(outline-5 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                  ,@(modus-operandi-theme-heading-foreground 
fg-special-calm green-alt)
+                                  ,@(modus-operandi-theme-heading-block 
green-nuanced-bg green-nuanced)))))
+   `(outline-6 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                  ,@(modus-operandi-theme-heading-foreground 
yellow-nuanced yellow-alt-other)
+                                  ,@(modus-operandi-theme-heading-block 
yellow-nuanced-bg yellow-nuanced)))))
+   `(outline-7 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                  ,@(modus-operandi-theme-heading-foreground 
red-nuanced red-alt)
+                                  ,@(modus-operandi-theme-heading-block 
red-nuanced-bg red-nuanced)))))
+   `(outline-8 ((,class (:inherit ,modus-theme-variable-pitch :weight bold
+                                  ,@(modus-operandi-theme-heading-foreground 
fg-dim magenta)
+                                  ,@(modus-operandi-theme-heading-block bg-alt 
fg-alt)))))
+   ;;;; outline-minor-faces
+   `(outline-minor-0 ((,class (:background ,bg-alt))))
    ;;;; package (M-x list-packages)
    `(package-description ((,class (:foreground ,fg-special-cold))))
    `(package-help-section-name ((,class (:foreground ,magenta-alt-other 
:weight bold))))
@@ -2292,6 +2595,8 @@ between foreground and background is >= 7:1)."
    `(package-status-installed ((,class (:foreground ,fg-special-warm))))
    `(package-status-new ((,class (:foreground ,green :weight bold))))
    `(package-status-unsigned ((,class (:foreground ,red-alt :weight bold))))
+   ;;;; page-break-lines
+   `(page-break-lines ((,class (:inherit default :foreground 
,fg-window-divider-outer))))
    ;;;; paradox
    `(paradox-archive-face ((,class (:foreground ,fg-special-mild))))
    `(paradox-comment-face ((,class (:foreground ,fg-alt :slant 
,modus-theme-slant))))
@@ -2307,6 +2612,8 @@ between foreground and background is >= 7:1)."
    `(paradox-starred-face ((,class (:foreground ,magenta-alt))))
    ;;;; paren-face
    `(parenthesis ((,class (:foreground ,fg-alt))))
+   ;;;; parrot
+   `(parrot-rotate-rotation-highlight-face ((,class (:inherit 
modus-theme-refine-magenta))))
    ;;;; pass
    `(pass-mode-directory-face ((,class (:foreground ,fg-special-cold :weight 
bold))))
    `(pass-mode-entry-face ((,class (:background ,bg-main :foreground 
,fg-main))))
@@ -2317,6 +2624,23 @@ between foreground and background is >= 7:1)."
    `(persp-face-lighter-nil-persp ((,class (:foreground ,fg-active :weight 
bold))))
    ;;;; perspective
    `(persp-selected-face ((,class (:foreground ,blue-active :weight bold))))
+   ;;;; phi-grep
+   `(phi-grep-heading-face  ((,class (:foreground ,red-alt :weight bold
+                                                  
,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)))))
+   `(phi-grep-line-number-face ((,class (:foreground ,fg-special-warm))))
+   `(phi-grep-match-face ((,class (:inherit modus-theme-special-calm))))
+   `(phi-grep-modified-face ((,class (:inherit modus-theme-refine-yellow))))
+   `(phi-grep-overlay-face ((,class (:inherit modus-theme-refine-blue))))
+   ;;;; phi-search
+   `(phi-replace-preview-face ((,class (:inherit 
modus-theme-intense-magenta))))
+   `(phi-search-failpart-face ((,class (:inherit modus-theme-refine-red))))
+   `(phi-search-match-face ((,class (:inherit modus-theme-refine-cyan))))
+   `(phi-search-selection-face ((,class (:inherit modus-theme-intense-green 
:weight bold))))
+   ;;;; pomidor
+   `(pomidor-break-face ((,class (:foreground ,blue-alt-other))))
+   `(pomidor-overwork-face ((,class (:foreground ,red-alt-other))))
+   `(pomidor-skip-face ((,class (:foreground ,fg-alt :slant 
,modus-theme-slant))))
+   `(pomidor-work-face ((,class (:foreground ,green-alt-other))))
    ;;;; powerline
    `(powerline-active0 ((,class (:background ,fg-inactive :foreground 
,bg-inactive))))
    `(powerline-active1 ((,class (:background ,bg-active :foreground 
,fg-active))))
@@ -2382,16 +2706,27 @@ between foreground and background is >= 7:1)."
    `(rainbow-delimiters-depth-9-face ((,class (:foreground ,yellow-alt))))
    `(rainbow-delimiters-mismatched-face ((,class (:foreground ,red-alt :weight 
bold))))
    `(rainbow-delimiters-unmatched-face ((,class (:foreground ,red :weight 
bold))))
+   ;;;; rcirc
+   `(rcirc-bright-nick ((,class (:foreground ,magenta-alt :weight bold))))
+   `(rcirc-dim-nick ((,class (:foreground ,fg-alt))))
+   `(rcirc-my-nick ((,class (:foreground ,magenta :weight bold))))
+   `(rcirc-nick-in-message ((,class (:foreground ,blue))))
+   `(rcirc-nick-in-message-full-line ((,class (:foreground ,fg-special-mild 
:weight bold))))
+   `(rcirc-other-nick ((,class (:foreground ,fg-special-cold :weight bold))))
+   `(rcirc-prompt ((,class (:foreground ,cyan-alt-other :weight bold))))
+   `(rcirc-server ((,class (:foreground ,fg-special-warm))))
+   `(rcirc-timestamp ((,class (:foreground ,fg-inactive))))
+   `(rcirc-url ((,class (:foreground ,blue :underline t))))
    ;;;; regexp-builder (re-builder)
    `(reb-match-0 ((,class (:inherit modus-theme-intense-blue))))
    `(reb-match-1 ((,class (:inherit modus-theme-intense-magenta))))
    `(reb-match-2 ((,class (:inherit modus-theme-intense-green))))
    `(reb-match-3 ((,class (:inherit modus-theme-intense-red))))
-   `(reb-regexp-grouping-backslash ((,class (:foreground ,green :weight 
bold))))
-   `(reb-regexp-grouping-construct ((,class (:foreground ,magenta :weight 
bold))))
+   `(reb-regexp-grouping-backslash ((,class (:foreground 
,fg-escape-char-backslash :weight bold))))
+   `(reb-regexp-grouping-construct ((,class (:foreground 
,fg-escape-char-construct :weight bold))))
    ;;;; rg (rg.el)
    `(rg-column-number-face ((,class (:foreground ,magenta-alt-other))))
-   `(rg-context-face ((,class (:foreground ,fg-alt))))
+   `(rg-context-face ((,class (:foreground ,fg-unfocused))))
    `(rg-error-face ((,class (:foreground ,red :weight bold))))
    `(rg-file-tag-face ((,class (:foreground ,fg-special-cold))))
    `(rg-filename-face ((,class (:foreground ,fg-special-cold :weight bold))))
@@ -2403,7 +2738,7 @@ between foreground and background is >= 7:1)."
    `(rg-toggle-on-face ((,class (:foreground ,cyan-active :weight bold))))
    `(rg-warning-face ((,class (:foreground ,yellow :weight bold))))
    ;;;; ripgrep
-   `(ripgrep-context-face ((,class (:foreground ,fg-alt))))
+   `(ripgrep-context-face ((,class (:foreground ,fg-unfocused))))
    `(ripgrep-error-face ((,class (:foreground ,red :weight bold))))
    `(ripgrep-hit-face ((,class (:foreground ,cyan))))
    `(ripgrep-match-face ((,class (:inherit modus-theme-special-calm))))
@@ -2436,13 +2771,12 @@ between foreground and background is >= 7:1)."
    `(sallet-recentf-file-path ((,class (:foreground ,fg-special-mild))))
    `(sallet-regexp-match ((,class (:inherit modus-theme-refine-magenta))))
    `(sallet-source-header ((,class (:foreground ,red-alt :weight bold
-                                                ,@(when 
modus-operandi-theme-scale-headings
-                                                    (list :height 
modus-operandi-theme-scale-4))))))
+                                                ,@(modus-operandi-theme-scale 
modus-operandi-theme-scale-4)))))
    `(sallet-substring-match ((,class (:inherit modus-theme-refine-blue))))
    ;;;; selectrum
-   `(selectrum-current-candidate ((,class (:inherit modus-theme-intense-cyan 
:weight bold))))
-   `(selectrum-primary-highlight ((,class (:inherit modus-theme-refine-blue 
:weight bold))))
-   `(selectrum-secondary-highlight ((,class (:inherit 
modus-theme-refine-magenta :weight bold))))
+   `(selectrum-current-candidate ((,class (:inherit 
modus-theme-intense-cyan))))
+   `(selectrum-primary-highlight ((,class (:foreground ,magenta-alt :weight 
bold))))
+   `(selectrum-secondary-highlight ((,class (:foreground ,blue-alt-other 
:weight bold))))
    ;;;; sesman
    `(sesman-browser-button-face ((,class (:foreground ,blue-alt-other 
:underline t))))
    `(sesman-browser-highligh-face ((,class (:inherit 
modus-theme-subtle-blue))))
@@ -2496,14 +2830,23 @@ between foreground and background is >= 7:1)."
    `(sp-wrap-overlay-opening-pair ((,class (:inherit sp-pair-overlay-face))))
    `(sp-wrap-tag-overlay-face ((,class (:inherit sp-pair-overlay-face))))
    ;;;; smerge
-   `(smerge-base ((,class (:inherit modus-theme-special-warm))))
-   `(smerge-lower ((,class (:inherit modus-theme-subtle-green))))
-   `(smerge-markers ((,class (:inherit modus-theme-special-cold))))
-   `(smerge-refined-added ((,class (:inherit modus-theme-intense-green))))
-   `(smerge-refined-changed ((,class (:inherit modus-theme-intense-yellow))))
-   `(smerge-refined-removed ((,class (:inherit modus-theme-intense-red))))
-   `(smerge-refined-upper ((,class (:inherit modus-theme-intense-red))))
-   `(smerge-upper ((,class (:inherit modus-theme-subtle-red))))
+   `(smerge-base ((,class ,(modus-operandi-theme-diffs
+                            bg-main yellow
+                            bg-diff-focus-changed fg-diff-focus-changed))))
+   `(smerge-lower ((,class ,(modus-operandi-theme-diffs
+                             bg-main green
+                             bg-diff-focus-added fg-diff-focus-added))))
+   `(smerge-markers ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(smerge-refined-added ((,class ,(modus-operandi-theme-diffs
+                                     bg-diff-added fg-diff-added
+                                     bg-diff-refine-added 
fg-diff-refine-added))))
+   `(smerge-refined-changed ((,class nil)))
+   `(smerge-refined-removed ((,class ,(modus-operandi-theme-diffs
+                                       bg-diff-removed fg-diff-removed
+                                       bg-diff-refine-removed 
fg-diff-refine-removed))))
+   `(smerge-upper ((,class ,(modus-operandi-theme-diffs
+                             bg-main red
+                             bg-diff-focus-removed fg-diff-focus-removed))))
    ;;;; speedbar
    `(speedbar-button-face ((,class (:inherit link))))
    `(speedbar-directory-face ((,class (:foreground ,blue :weight bold))))
@@ -2512,10 +2855,18 @@ between foreground and background is >= 7:1)."
    `(speedbar-selected-face ((,class (:foreground ,cyan :weight bold))))
    `(speedbar-separator-face ((,class (:inherit modus-theme-intense-neutral))))
    `(speedbar-tag-face ((,class (:foreground ,yellow-alt-other))))
+   ;;;; spell-fu
+   `(spell-fu-incorrect-face
+     ((,(append '((supports :underline (:style wave))) class)
+       (:foreground ,fg-lang-error :underline (:style wave)))
+      (,class (:foreground ,fg-lang-error :underline t))))
    ;;;; stripes
    `(stripes ((,class (:background ,bg-alt))))
    ;;;; success
    `(suggest-heading ((,class (:foreground ,yellow-alt-other :weight bold))))
+   ;;;; switch-window
+   `(switch-window-background ((,class (:background ,bg-dim))))
+   `(switch-window-label ((,class (:height 3.0 :foreground ,blue-intense))))
    ;;;; swiper
    `(swiper-background-match-face-1 ((,class (:inherit 
modus-theme-subtle-neutral))))
    `(swiper-background-match-face-2 ((,class (:inherit 
modus-theme-subtle-cyan))))
@@ -2527,6 +2878,15 @@ between foreground and background is >= 7:1)."
    `(swiper-match-face-2 ((,class (:inherit swiper-line-face))))
    `(swiper-match-face-3 ((,class (:inherit swiper-line-face))))
    `(swiper-match-face-4 ((,class (:inherit swiper-line-face))))
+   ;;;; swoop
+   `(swoop-face-header-format-line ((,class (:foreground ,red-alt :weight bold
+                                                         
,@(modus-operandi-theme-scale modus-operandi-theme-scale-3)))))
+   `(swoop-face-line-buffer-name ((,class (:foreground ,blue-alt :weight bold
+                                                       
,@(modus-operandi-theme-scale modus-operandi-theme-scale-4)))))
+   `(swoop-face-line-number ((,class (:foreground ,fg-special-warm))))
+   `(swoop-face-target-line ((,class (:inherit modus-theme-intense-blue
+                                               ,@(and (>= emacs-major-version 
27) '(:extend t))))))
+   `(swoop-face-target-words ((,class (:inherit modus-theme-refine-cyan))))
    ;;;; sx
    `(sx-inbox-item-type ((,class (:foreground ,magenta-alt-other))))
    `(sx-inbox-item-type-unread ((,class (:inherit sx-inbox-item-type :weight 
bold))))
@@ -2575,6 +2935,13 @@ between foreground and background is >= 7:1)."
    `(syslog-ip ((,class (:foreground ,fg-special-mild :weight bold :underline 
t))))
    `(syslog-su ((,class (:foreground ,red-alt :weight bold))))
    `(syslog-warn ((,class (:foreground ,yellow :weight bold))))
+   ;;;; trashed
+   `(trashed-deleted ((,class (:background ,bg-mark-del :foreground 
,fg-mark-del :weight bold))))
+   `(trashed-directory ((,class (:foreground ,blue))))
+   `(trashed-mark ((,class (:foreground ,blue-alt :weight bold))))
+   `(trashed-marked ((,class (:background ,bg-mark-other :foreground 
,fg-mark-other :weight bold))))
+   `(trashed-restored ((,class (:background ,bg-mark :foreground ,fg-mark 
:weight bold))))
+   `(trashed-symlink ((,class (:foreground ,blue-alt :underline t))))
    ;;;; telephone-line
    `(telephone-line-accent-active ((,class (:background ,fg-inactive 
:foreground ,bg-inactive))))
    `(telephone-line-accent-inactive ((,class (:background ,bg-active 
:foreground ,fg-active))))
@@ -2600,6 +2967,10 @@ between foreground and background is >= 7:1)."
    `(term-color-red ((,class (:background ,red :foreground ,red))))
    `(term-color-yellow ((,class (:background ,yellow :foreground ,yellow))))
    `(term-underline ((,class (:underline t))))
+   ;;;; tomatinho
+   `(tomatinho-ok-face ((,class (:foreground ,blue-intense))))
+   `(tomatinho-pause-face ((,class (:foreground ,yellow-intense))))
+   `(tomatinho-reset-face ((,class (:foreground ,fg-alt))))
    ;;;; transient
    `(transient-active-infix ((,class (:inherit modus-theme-special-mild))))
    `(transient-argument ((,class (:foreground ,green :weight bold))))
@@ -2637,6 +3008,29 @@ between foreground and background is >= 7:1)."
    `(treemacs-root-unreadable-face ((,class (:inherit treemacs-root-face 
:strike-through t))))
    `(treemacs-tags-face ((,class (:foreground ,blue-alt))))
    `(treemacs-tags-face ((,class (:foreground ,magenta-alt))))
+   ;;;; tuareg
+   `(caml-types-def-face ((,class (:inherit modus-theme-subtle-red))))
+   `(caml-types-expr-face ((,class (:inherit modus-theme-subtle-green))))
+   `(caml-types-occ-face ((,class (:inherit modus-theme-subtle-green))))
+   `(caml-types-scope-face ((,class (:inherit modus-theme-subtle-blue))))
+   `(caml-types-typed-face ((,class (:inherit modus-theme-subtle-magenta))))
+   `(tuareg-font-double-semicolon-face ((,class (:foreground ,red-alt))))
+   `(tuareg-font-lock-attribute-face ((,class (:foreground ,magenta))))
+   `(tuareg-font-lock-constructor-face ((,class (:foreground ,fg-main))))
+   `(tuareg-font-lock-error-face ((,class (:inherit modus-theme-intense-red 
:weight bold))))
+   `(tuareg-font-lock-extension-node-face ((,class (:background ,bg-alt 
:foreground ,magenta))))
+   `(tuareg-font-lock-governing-face ((,class (:foreground ,fg-main :weight 
bold))))
+   `(tuareg-font-lock-infix-extension-node-face ((,class (:foreground 
,magenta))))
+   `(tuareg-font-lock-interactive-directive-face ((,class (:foreground 
,fg-special-cold))))
+   `(tuareg-font-lock-interactive-error-face ((,class (:foreground ,red 
:weight bold))))
+   `(tuareg-font-lock-interactive-output-face ((,class (:foreground 
,blue-alt-other))))
+   `(tuareg-font-lock-label-face ((,class (:foreground ,cyan-alt-other))))
+   `(tuareg-font-lock-line-number-face ((,class (:foreground 
,fg-special-warm))))
+   `(tuareg-font-lock-module-face ((,class (:foreground ,magenta-alt))))
+   `(tuareg-font-lock-multistage-face ((,class (:background ,bg-alt 
:foreground ,blue :weight bold))))
+   `(tuareg-font-lock-operator-face ((,class (:foreground ,red-alt))))
+   `(tuareg-opam-error-face ((,class (:foreground ,red :weight bold))))
+   `(tuareg-opam-pkg-variable-name-face ((,class (:foreground ,cyan :slant 
,modus-theme-slant))))
    ;;;; undo-tree
    `(undo-tree-visualizer-active-branch-face ((,class (:foreground ,fg-main 
:weight bold))))
    `(undo-tree-visualizer-current-face ((,class (:foreground ,blue-intense))))
@@ -2644,15 +3038,25 @@ between foreground and background is >= 7:1)."
    `(undo-tree-visualizer-register-face ((,class (:foreground 
,magenta-intense))))
    `(undo-tree-visualizer-unmodified-face ((,class (:foreground 
,green-intense))))
    ;;;; vc
-   `(vc-conflict-state ((,class (:foreground ,red-active :weight bold))))
+   `(vc-conflict-state ((,class (:foreground ,red-active :weight 
,modus-theme-bold))))
    `(vc-edited-state ((,class (:foreground ,fg-special-warm))))
    `(vc-locally-added-state ((,class (:foreground ,cyan-active))))
-   `(vc-locked-state ((,class (:foreground ,magenta-active :weight bold))))
-   `(vc-missing-state ((,class (:foreground ,yellow-active :weight bold))))
-   `(vc-needs-update-state ((,class (:foreground ,fg-special-mild :weight 
bold))))
+   `(vc-locked-state ((,class (:foreground ,magenta-active :weight 
,modus-theme-bold))))
+   `(vc-missing-state ((,class (:foreground ,yellow-active :weight 
,modus-theme-bold))))
+   `(vc-needs-update-state ((,class (:foreground ,fg-special-mild :weight 
,modus-theme-bold))))
    `(vc-removed-state ((,class (:foreground ,red-active))))
    `(vc-state-base ((,class (:foreground ,fg-active))))
    `(vc-up-to-date-state ((,class (:foreground ,fg-special-cold))))
+   ;;;; vimish-fold
+   `(vimish-fold-fringe ((,class (:foreground ,cyan-active))))
+   `(vimish-fold-mouse-face ((,class (:inherit modus-theme-intense-blue))))
+   `(vimish-fold-overlay ((,class (:background ,bg-alt :foreground 
,fg-special-cold))))
+   ;;;; visible-mark
+   `(visible-mark-active ((,class (:background ,blue-intense-bg))))
+   `(visible-mark-face1 ((,class (:background ,cyan-intense-bg))))
+   `(visible-mark-face2 ((,class (:background ,yellow-intense-bg))))
+   `(visible-mark-forward-face1 ((,class (:background ,magenta-intense-bg))))
+   `(visible-mark-forward-face2 ((,class (:background ,green-intense-bg))))
    ;;;; visual-regexp
    `(vr/group-0 ((,class (:inherit modus-theme-intense-blue))))
    `(vr/group-1 ((,class (:inherit modus-theme-intense-magenta))))
@@ -2663,6 +3067,20 @@ between foreground and background is >= 7:1)."
    ;;;; volatile-highlights
    `(vhl/default-face ((,class (,@(and (>= emacs-major-version 27) '(:extend 
t))
                                 :background ,bg-alt :foreground 
,blue-nuanced))))
+   ;;;; vterm
+   `(vterm-color-black ((,class (:background "black" :foreground "black"))))
+   `(vterm-color-blue ((,class (:background ,blue :foreground ,blue))))
+   `(vterm-color-cyan ((,class (:background ,cyan :foreground ,cyan))))
+   `(vterm-color-default ((,class (:background ,bg-main :foreground 
,fg-main))))
+   `(vterm-color-green ((,class (:background ,green :foreground ,green))))
+   `(vterm-color-inverse-video ((,class (:background ,bg-main :inverse-video 
t))))
+   `(vterm-color-magenta ((,class (:background ,magenta :foreground 
,magenta))))
+   `(vterm-color-red ((,class (:background ,red :foreground ,red))))
+   `(vterm-color-underline ((,class (:foreground ,fg-special-warm :underline 
t))))
+   `(vterm-color-white ((,class (:background "white" :foreground "white"))))
+   `(vterm-color-yellow ((,class (:background ,yellow :foreground ,yellow))))
+   ;;;; wcheck-mode
+   `(wcheck-default-face ((,class (:foreground ,red :underline t))))
    ;;;; web-mode
    `(web-mode-annotation-face ((,class (:inherit web-mode-comment-face))))
    `(web-mode-annotation-html-face ((,class (:inherit web-mode-comment-face))))
@@ -2770,10 +3188,17 @@ between foreground and background is >= 7:1)."
    `(window-divider ((,class (:foreground ,fg-window-divider-inner))))
    `(window-divider-first-pixel ((,class (:foreground 
,fg-window-divider-outer))))
    `(window-divider-last-pixel ((,class (:foreground 
,fg-window-divider-outer))))
+   ;;;; winum
+   `(winum-face ((,class (:foreground ,cyan-active :weight 
,modus-theme-bold))))
    ;;;; writegood-mode
-   `(writegood-duplicates-face ((,class (:background ,bg-alt :foreground 
,red-alt-other :underline t))))
-   `(writegood-passive-voice-face ((,class (:background ,bg-alt :foreground 
,cyan-alt-other :underline t))))
-   `(writegood-weasels-face ((,class (:background ,bg-alt :foreground 
,yellow-alt-other :underline t))))
+   `(writegood-duplicates-face ((,class (:background ,bg-alt :foreground 
,red-alt :underline t))))
+   `(writegood-passive-voice-face ((,class (:foreground ,yellow-nuanced 
:underline (:color ,fg-lang-warning :style line)))))
+   `(writegood-weasels-face ((,class (:foreground ,red-nuanced :underline 
(:color ,fg-lang-error :style line)))))
+   ;;;; woman
+   `(woman-addition ((,class (:foreground ,magenta-alt-other))))
+   `(woman-bold ((,class (:foreground ,magenta :weight bold))))
+   `(woman-italic ((,class (:foreground ,cyan :slant italic))))
+   `(woman-unknown ((,class (:foreground ,yellow :slant italic))))
    ;;;; xah-elisp-mode
    `(xah-elisp-at-symbol ((,class (:foreground ,red-alt :weight bold))))
    `(xah-elisp-cap-variable ((,class (:foreground ,red-alt-other))))
@@ -2798,15 +3223,40 @@ between foreground and background is >= 7:1)."
    `(ztreep-leaf-face ((,class (:foreground ,cyan))))
    `(ztreep-node-count-children-face ((,class (:foreground ,fg-special-warm))))
    `(ztreep-node-face ((,class (:foreground ,fg-main))))
+   (when (>= emacs-major-version 27) ; EXPERIMENTAL this form is subject to 
review
+     (custom-theme-set-faces
+      'modus-operandi
+      ;;;; tab-bar-mode
+      `(tab-bar ((,class (:background ,bg-alt :foreground ,fg-alt))))
+      `(tab-bar-tab ((,class (:box (:line-width 1 :color 
,fg-window-divider-inner)
+                                   :background ,bg-tab-active :foreground 
,fg-main))))
+      `(tab-bar-tab-inactive ((,class (:box (:line-width 1 :color 
,bg-tab-active)
+                                            :background ,bg-tab-inactive 
:foreground ,fg-dim))))
+      ;;;; tab-line-mode
+      `(tab-line ((,class (:height 0.95 :background ,bg-active :foreground 
,fg-active))))
+      `(tab-line-close-highlight ((,class (:foreground ,red-active))))
+      `(tab-line-highlight ((,class (:background ,bg-tab-active :foreground 
,fg-main))))
+      `(tab-line-tab ((,class (:box (:line-width 1 :color 
,fg-window-divider-inner)
+                                    :background ,bg-tab-active :foreground 
,fg-main))))
+      `(tab-line-tab-current ((,class (:box (:line-width 1 :color 
,fg-window-divider-inner)
+                                            :background ,bg-tab-active 
:foreground ,fg-main))))
+      `(tab-line-tab-inactive ((,class (:box (:line-width 1 :color 
,bg-tab-active)
+                                             :background ,bg-tab-inactive 
:foreground ,fg-dim))))))
    ;;; Theme Variables
    (custom-theme-set-variables
     'modus-operandi
     ;;;; ansi-colors
     `(ansi-color-faces-vector [default bold shadow italic underline success 
warning error])
     `(ansi-color-names-vector [,fg-main ,red ,green ,yellow ,blue ,magenta 
,cyan ,bg-main])
+    ;;;; flymake fringe indicators
+    `(flymake-error-bitmap '(flymake-double-exclamation-mark 
modus-theme-fringe-red))
+    `(flymake-warning-bitmap '(exclamation-mark modus-theme-fringe-yellow))
+    `(flymake-note-bitmap '(exclamation-mark modus-theme-fringe-cyan))
     ;;;; ibuffer
     `(ibuffer-deletion-face 'dired-flagged)
+    `(ibuffer-filter-group-name-face 'dired-mark)
     `(ibuffer-marked-face 'dired-marked)
+    `(ibuffer-title-face 'dired-header)
     ;;;; hl-todo
     `(hl-todo-keyword-faces
       '(("HOLD" . ,yellow-alt)
@@ -2856,7 +3306,7 @@ between foreground and background is >= 7:1)."
 ;;;###autoload
 (when load-file-name
   (add-to-list 'custom-theme-load-path
-    (file-name-as-directory (file-name-directory load-file-name))))
+               (file-name-as-directory (file-name-directory load-file-name))))
 
 (provide-theme 'modus-operandi)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]