* bug#54122: 29.0.50; [PATCH] Update modus-themes to version 2.2.0
@ 2022-02-23 7:46 Protesilaos Stavrou
2022-02-23 11:32 ` Lars Ingebrigtsen
0 siblings, 1 reply; 5+ messages in thread
From: Protesilaos Stavrou @ 2022-02-23 7:46 UTC (permalink / raw)
To: 54122
[-- Attachment #1: Type: text/plain, Size: 633 bytes --]
Dear maintainers,
I just published the latest version of the modus-themes. Normally I tag
a release once every few weeks, but this is a necessary exception.
Please see the attached patch. The major change is that the user option
'modus-themes-completions' accepts an alist value instead of a symbol.
The patch also removes a default value from a defcustom form that
affected the initialization of user options in the Custom UI.
The release notes are available here:
<https://protesilaos.com/codelog/2022-02-23-modus-themes-2-2-0/>.
All the best,
Protesilaos (or simply "Prot")
--
Protesilaos Stavrou
https://protesilaos.com
[-- Attachment #2: 0001-Update-modus-themes-to-version-2.2.0.patch --]
[-- Type: text/x-patch, Size: 66968 bytes --]
From dae6c8bb6921b7ae7cd346e9ab56619d1cfe2707 Mon Sep 17 00:00:00 2001
Message-Id: <dae6c8bb6921b7ae7cd346e9ab56619d1cfe2707.1645602170.git.info@protesilaos.com>
From: Protesilaos Stavrou <info@protesilaos.com>
Date: Wed, 23 Feb 2022 09:42:40 +0200
Subject: [PATCH] Update modus-themes to version 2.2.0
* doc/misc/modus-themes.org (Enable and load)
(Differences between loading and enabling): Clarify wording.
(Customization Options): Update sample configuration.
(Option for completion framework aesthetics): Refactor
'modus-themes-completions' to accept an alist value instead of a
symbol.
(Override colors): Elaborate on the example.
(Toggle themes without reloading them): Document sample command that
uses 'enable-theme' instead of 'load-theme'.
(Acknowledgements): Update names of contributors to ideas.
* etc/themes/modus-themes.el (modus-themes-operandi-colors)
(modus-themes-vivendi-colors): Tweak the palette's completion-related
background colors.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected): Deprecate faces and replace
them with 'modus-themes-completion-selection'.
(modus-themes-completion-key-binding): Rename it to
'modus-themes-key-binding'.
(modus-themes-mode-line): Remove faulty default value.
(modus-themes-completions): Refactor it to accept an alist value.
(modus-themes-box-buttons): Fix typo.
(modus-themes--standard-completions, modus-themes--extra-completions)
(modus-themes--extra-completions-line): Remove outdated private
functions.
(modus-themes--completion): Add new private function.
(modus-themes-faces): Update faces.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump file's version.
For a detailed change log, read:
<https://protesilaos.com/codelog/2022-02-23-modus-themes-2-2-0/>.
---
doc/misc/modus-themes.org | 265 +++++++++----
etc/themes/modus-operandi-theme.el | 2 +-
etc/themes/modus-themes.el | 588 ++++++++++++++++-------------
etc/themes/modus-vivendi-theme.el | 2 +-
4 files changed, 524 insertions(+), 333 deletions(-)
diff --git a/doc/misc/modus-themes.org b/doc/misc/modus-themes.org
index a3bc468413..70f1e8bd1d 100644
--- a/doc/misc/modus-themes.org
+++ b/doc/misc/modus-themes.org
@@ -5,9 +5,9 @@
#+options: ':t toc:nil author:t email:t num:t
#+startup: content
-#+macro: stable-version 2.1.0
-#+macro: release-date 2022-02-17
-#+macro: development-version 2.2.0-dev
+#+macro: stable-version 2.2.0
+#+macro: release-date 2022-02-23
+#+macro: development-version 2.3.0-dev
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
#+macro: space @@texinfo:@: @@
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
@@ -260,9 +260,9 @@ * Enable and load
Changes to the available customization options must always be evaluated
before loading a theme ([[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization Options]]). An exception to this
norm is when using the various Custom interfaces or with commands like
-{{{kbd(M-x customize-set-variable)}}}, which automatically reload the theme by
-default ([[#h:9001527a-4e2c-43e0-98e8-3ef72d770639][Option for inhibiting theme reload]]). This is how a basic setup
-could look like:
+{{{kbd(M-x customize-set-variable)}}}, which can automatically reload
+the theme ([[#h:9001527a-4e2c-43e0-98e8-3ef72d770639][Option for inhibiting theme reload]]). This is how a basic
+setup could look like:
#+begin_src emacs-lisp
(require 'modus-themes)
@@ -372,9 +372,9 @@ ** Differences between loading and enabling
broken whenever they try to assign a new value to a customization option
or some face.
-This "reset" that ~load-theme~ conducts does, however, come at the cost
-of being somewhat slower than ~enable-theme~. Users who have a stable
-setup and who seldom update their variables during a given Emacs
+This "reset" that ~load-theme~ brings about does, however, come at the
+cost of being somewhat slower than ~enable-theme~. Users who have a
+stable setup and who seldom update their variables during a given Emacs
session, are better off using something like this:
#+begin_src emacs-lisp
@@ -385,6 +385,8 @@ ** Differences between loading and enabling
(enable-theme 'modus-operandi) ;; OR (enable-theme 'modus-vivendi)
#+end_src
+[[#h:b40aca50-a3b2-4c43-be58-2c26fcd14237][Toggle themes without reloading them]].
+
[[#h:e979734c-a9e1-4373-9365-0f2cd36107b8][Sample configuration with and without use-package]].
With the above granted, other sections of the manual discuss how to
@@ -472,7 +474,22 @@ * Customization Options
;; symbols: `background', `bold', `gray', `intense', `italic'
modus-themes-prompts '(intense bold)
- modus-themes-completions 'moderate ; {nil,'moderate,'opinionated,'super-opinionated}
+ ;; The `modus-themes-completions' is an alist that reads three
+ ;; keys: `matches', `selection', `popup'. Each accepts a nil
+ ;; value (or empty list) or a list of properties that can include
+ ;; any of the following (for WEIGHT read further below):
+ ;;
+ ;; `key' - `background', `intense', `underline', `italic', WEIGHT
+ ;; `selection' - `accented', `intense', `underline', `italic', WEIGHT
+ ;; `popup' - same as `selected'
+ ;; `t' - applies to any key not explicitly referenced (check docs)
+ ;;
+ ;; WEIGHT is a symbol such as `semibold', `light', or anything
+ ;; covered in `modus-themes-weights'. Bold is used in the absence
+ ;; of an explicit WEIGHT.
+ modus-themes-completions '((matches . (extrabold))
+ (selection . (semibold accented))
+ (popup . (accented intense)))
modus-themes-mail-citations nil ; {nil,'intense,'faint,'monochrome}
@@ -1058,53 +1075,103 @@ ** Option for accented background in tab interfaces
** Option for completion framework aesthetics
:properties:
:alt_title: Completion UIs
-:description: Choose among standard, moderate, or opinionated looks
+:description: Choose among several styles for completion UIs
:custom_id: h:f1c20c02-7b34-4c35-9c65-99170efb2882
:end:
#+vindex: modus-themes-completions
Brief: Set the overall style of completion framework interfaces.
-Symbol: ~modus-themes-completions~ (=choice= type)
+Symbol: ~modus-themes-completions~ (=alist= type properties)
-Possible values:
+This affects Company, Corfu, Flx, Helm, Icomplete/Fido, Ido, Ivy, Mct,
+Orderless, Selectrum, Vertico. The value is an alist that takes the
+form of a =(key . properties)= combination. Here is a sample, followed
+by a description of the particularities:
-1. ~nil~ (default)
-2. ~moderate~
-3. ~opinionated~
-4. ~super-opinionated~
-
-This is a special option that has different effects depending on the
-completion UI. The interfaces can be grouped in two categories, based
-on their default aesthetics: (i) those that only or mostly use
-foreground colors for their interaction model, and (ii) those that
-combine background and foreground values for some of their metaphors.
-The former category encompasses Icomplete, Ido, Selectrum, Vertico, Mct,
-as well as pattern matching styles like Orderless and Flx. The latter
-covers Helm and Ivy.
-
-A value of nil (the default) will simply respect the metaphors of each
-completion framework.
-
-Option ~moderate~ applies a combination of background and foreground that
-is fairly subtle. For Icomplete and friends this constitutes a
-departure from their default aesthetics, however the difference is
-small. While Helm and Ivy appear slightly different than their original
-looks, as they are toned down a bit.
-
-Option ~opinionated~ uses color combinations that refashion the completion
-UI. For the Icomplete camp this means that intense background and
-foreground combinations are used: in effect their looks approximate
-those of Helm and Ivy in their original style. Whereas the other group
-of packages will revert to an even more nuanced aesthetic with some
-additional changes to the choice of hues.
-
-Option ~super-opinionated~ is like the ~opinionated~ though it has a more
-pronounced effect, especially on the color of the current
-line/candidate.
-
-To appreciate the scope of this customization option, you should spend
-some time with every one of those presets.
+#+begin_src emacs-lisp
+(setq modus-themes-completions
+ '((matches . (extrabold background intense))
+ (selection . (semibold accented intense))
+ (popup . (accented))))
+#+end_src
+
+The ~matches~ key refers to the highlighted characters that correspond
+to the user's input. By default (nil or an empty list), they have a
+bold weight and a colored foreground. The list of properties may
+include any of the following symbols regardless of the order they may
+appear in:
+
+- ~background~ to add a background color;
+
+- ~intense~ to increase the overall coloration (also amplifies
+ the ~background~, if present);
+
+- ~underline~ to draw a line below the characters;
+
+- ~italic~ to use a slanted font (italic or oblique forms);
+
+- The symbol of a font weight attribute such as ~light~, ~semibold~, et
+ cetera. Valid symbols are defined in the ~modus-themes-weights~
+ variable. The absence of a weight means that bold will be used.
+
+The ~selection~ key applies to the current line or currently matched
+candidate, depending on the specifics of the User Interface. By default
+(nil or an empty list), it has a subtle gray background and a bold
+weight. The list of properties it accepts is as follows (order is not
+significant):
+
+- ~accented~ to make the background colorful instead of gray;
+
+- ~intense~ to increase the overall coloration;
+
+- ~underline~ to draw a line below the characters;
+
+- ~italic~ to use a slanted font (italic or oblique forms);
+
+- The symbol of a font weight attribute such as ~light~, ~semibold~, et
+ cetera. Valid symbols are defined in the ~modus-themes-weights~
+ variable. The absence of a weight means that bold will be used.
+
+The ~popup~ key takes the same values as ~selection~.
+
+Apart from specfying each key separately, a fallback list is accepted.
+This is only useful when the desired aesthetic is the same across all
+keys that are not explicitly referenced. For example, this:
+
+#+begin_src emacs-lisp
+(setq modus-themes-completions
+ '((t . (extrabold intense))))
+#+end_src
+
+Is the same as:
+
+#+begin_src emacs-lisp
+(setq modus-themes-completions
+ '((matches . (extrabold intense))
+ (selection . (extrabold intense))
+ (popup . (extrabold intense))))
+#+end_src
+
+In the case of the fallback, any property that does not apply to the
+corresponding key is simply ignored (~matches~ does not have ~accented~,
+~selection~ and ~popup~ do not have ~background~).
+
+A concise expression of those associations can be written as follows,
+where the ~car~ is always the key and the ~cdr~ is the list of
+properties (whatever order they may appear in):
+
+#+begin_src emacs-lisp
+(setq modus-themes-completions
+ '((matches extrabold background intense)
+ (selection semibold accented intense)
+ (popup accented)))
+#+end_src
+
+[[#h:2793a224-2109-4f61-a106-721c57c01375][Configure bold and italic faces]].
+
+Also refer to the Orderless documentation for its intersection with
+Company (if you choose to use those in tandem).
** Option for mail citations
:properties:
@@ -2551,8 +2618,7 @@ ** Override colors
(bg-header . "#ede3e0")
(bg-tab-bar . "#dcd3d3")
(bg-tab-active . "#fdf6eb")
- (bg-tab-inactive . "#c8bab8")
- (fg-unfocused . "#55556f"))
+ (bg-tab-inactive . "#c8bab8"))
modus-themes-vivendi-color-overrides
'((bg-main . "#100b17")
(bg-dim . "#161129")
@@ -2564,17 +2630,34 @@ ** Override colors
(bg-header . "#202037")
(bg-tab-bar . "#262b41")
(bg-tab-active . "#120f18")
- (bg-tab-inactive . "#3a3a5a")
- (fg-unfocused . "#9a9aab")))
+ (bg-tab-inactive . "#3a3a5a")))
(setq modus-themes-operandi-color-overrides nil
modus-themes-vivendi-color-overrides nil)))
#+end_src
-With this in place, one can invoke {{{kbd(M-x my-modus-themes-tinted)}}} and
-then load the Modus theme of their choice. The new palette subset will
-come into effect: subtle ochre tints for Modus Operandi and night sky
-shades for Modus Vivendi. Switching between the two themes, such as
-with {{{kbd(M-x modus-themes-toggle)}}} will also use the overrides.
+A more neutral style for ~modus-themes-operandi-color-overrides~ can
+look like this:
+
+#+begin_src emacs-lisp
+'((bg-main . "#f7f7f7")
+ (bg-dim . "#f2f2f2")
+ (bg-alt . "#e8e8e8")
+ (bg-hl-line . "#eaeaef")
+ (bg-active . "#e0e0e0")
+ (bg-inactive . "#e6e6e6")
+ (bg-region . "#b5b5b5")
+ (bg-header . "#e4e4e4")
+ (bg-tab-bar . "#d1d1d4")
+ (bg-tab-active . "#f5f5f5")
+ (bg-tab-inactive . "#c0c0c0"))
+#+end_src
+
+With those in place, one can use {{{kbd(M-x my-modus-themes-tinted)}}}
+and then load the Modus theme of their choice. The new palette subset
+will come into effect: subtle ochre tints (or shades of gray) for Modus
+Operandi and night sky blue shades for Modus Vivendi. Switching between
+the two themes, such as with {{{kbd(M-x modus-themes-toggle)}}} will
+also use the overrides.
Given that this is a user-level customisation, one is free to implement
whatever color values they desire, even if the possible combinations
@@ -3465,6 +3548,35 @@ ** Decrease mode line height
(add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
#+end_src
+** Toggle themes without reloading them
+:properties:
+:custom_id: h:b40aca50-a3b2-4c43-be58-2c26fcd14237
+:end:
+#+cindex: Switch themes without load-theme
+
+Users who have a stable setup and who only ever need to toggle between
+the themes without triggering a full reload, are better off defining
+their own command which calls ~enable-theme~ instead of ~load-theme~:
+
+#+begin_src emacs-lisp
+(defun my-modus-themes-toggle ()
+ "Toggle between `modus-operandi' and `modus-vivendi' themes.
+This uses `enable-theme' instead of the standard method of
+`load-theme'. The technicalities are covered in the Modus themes
+manual."
+ (interactive)
+ (pcase (modus-themes--current-theme)
+ ('modus-operandi (progn (enable-theme 'modus-vivendi)
+ (disable-theme 'modus-operandi)))
+ ('modus-vivendi (progn (enable-theme 'modus-operandi)
+ (disable-theme 'modus-vivendi)))
+ (_ (error "No Modus theme is loaded; evaluate `modus-themes-load-themes' first"))))
+#+end_src
+
+[[#h:e68560b3-7fb0-42bc-a151-e015948f8a35][Differences between loading and enabling]].
+
+Recall that ~modus-themes-toggle~ uses ~load-theme~.
+
** A theme-agnostic hook for theme loading
:properties:
:custom_id: h:86f6906b-f090-46cc-9816-1fe8aeb38776
@@ -5173,25 +5285,26 @@ * Acknowledgements
+ Ideas and user feedback :: Aaron Jensen, Adam Porter, Adam Spiers,
Adrian Manea, Alex Griffin, Alex Koen, Alex Peitsinis, Alexey Shmalko,
Alok Singh, Anders Johansson, André Alexandre Gomes, Arif Rezai, Basil
- L.{{{space()}}} Contovounesios, Burgess Chang, Christian Tietze, Christopher
- Dimech, Damien Cassou, Daniel Mendler, Dario Gjorgjevski, David
- Edmondson, Davor Rotim, Divan Santana, Eliraz Kedmi, Emanuele Michele
- Alberto Monterosso, Farasha Euker, Feng Shu, Gautier Ponsinet, Gerry
- Agbobada, Gianluca Recchia, Guilherme Semente, Gustavo Barros,
+ L.{{{space()}}} Contovounesios, Burgess Chang, Christian Tietze,
+ Christopher Dimech, Damien Cassou, Daniel Mendler, Dario Gjorgjevski,
+ David Edmondson, Davor Rotim, Divan Santana, Eliraz Kedmi, Emanuele
+ Michele Alberto Monterosso, Farasha Euker, Feng Shu, Gautier Ponsinet,
+ Gerry Agbobada, Gianluca Recchia, Guilherme Semente, Gustavo Barros,
Hörmetjan Yiltiz, Ilja Kocken, Iris Garcia, Jeremy Friesen, Jerry
- Zhang, Johannes Grødem, John Haman, Joshua O'Connor, Kevin Fleming,
- Kévin Le Gouguec, Kostadin Ninev, Len Trigg, Magne Hov, Manuel Uberti,
- Mark Bestley, Mark Burton, Markus Beppler, Mauro Aranda, Michael
- Goldenberg, Morgan Smith, Murilo Pereira, Nicky van Foreest, Nicolas
- De Jaeghere, Paul Poloskov, Pengji Zhang, Pete Kazmier, Peter Wu,
- Philip Kaludercic, Pierre Téchoueyres, Roman Rudakov, Ryan Phillips,
- Rudolf Adamkovič, Sam Kleinman, Samuel Culpepper, Saša Janiška,
- Shreyas Ragavan, Simon Pugnet, Tassilo Horn, Thibaut Verron, Thomas
- Heartman, Togan Muftuoglu, Trey Merkley, Tomasz Hołubowicz, Toon
- Claes, Uri Sharf, Utkarsh Singh, Vincent Foley. As well as users:
- Ben, CsBigDataHub1, Emacs Contrib, Eugene, Fourchaux, Fredrik,
- Moesasji, Nick, TheBlob42, Trey, bepolymathe, bit9tream, derek-upham,
- doolio, fleimgruber, gitrj95, iSeeU, jixiuf, okamsn, pRot0ta1p.
+ Zhang, Johannes Grødem, John Haman, Joshua O'Connor, Kenta Usami,
+ Kevin Fleming, Kévin Le Gouguec, Kostadin Ninev, Len Trigg, Magne Hov,
+ Manuel Uberti, Mark Bestley, Mark Burton, Markus Beppler, Mauro
+ Aranda, Michael Goldenberg, Morgan Smith, Murilo Pereira, Nicky van
+ Foreest, Nicolas De Jaeghere, Paul Poloskov, Pengji Zhang, Pete
+ Kazmier, Peter Wu, Philip Kaludercic, Pierre Téchoueyres, Roman
+ Rudakov, Ryan Phillips, Rudolf Adamkovič, Sam Kleinman, Samuel
+ Culpepper, Saša Janiška, Shreyas Ragavan, Simon Pugnet, Tassilo Horn,
+ Thibaut Verron, Thomas Heartman, Togan Muftuoglu, Trey Merkley, Tomasz
+ Hołubowicz, Toon Claes, Uri Sharf, Utkarsh Singh, Vincent Foley. As
+ well as users: Ben, CsBigDataHub1, Emacs Contrib, Eugene, Fourchaux,
+ Fredrik, Moesasji, Nick, TheBlob42, Trey, bepolymathe, bit9tream,
+ derek-upham, doolio, fleimgruber, gitrj95, iSeeU, jixiuf, okamsn,
+ pRot0ta1p.
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii, Glenn
Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core Emacs),
diff --git a/etc/themes/modus-operandi-theme.el b/etc/themes/modus-operandi-theme.el
index aac5b04c6a..f71962e3f1 100644
--- a/etc/themes/modus-operandi-theme.el
+++ b/etc/themes/modus-operandi-theme.el
@@ -4,7 +4,7 @@ ;;; modus-operandi-theme.el --- Accessible and customizable light theme (WCAG AA
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://gitlab.com/protesilaos/modus-themes
-;; Version: 2.1.0
+;; Version: 2.2.0
;; Package-Requires: ((emacs "27.1"))
;; Keywords: faces, theme, accessibility
diff --git a/etc/themes/modus-themes.el b/etc/themes/modus-themes.el
index a902cc8ca2..067fc22ee4 100644
--- a/etc/themes/modus-themes.el
+++ b/etc/themes/modus-themes.el
@@ -4,8 +4,8 @@ ;;; modus-themes.el --- Highly accessible and customizable themes (WCAG AAA) -*-
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://gitlab.com/protesilaos/modus-themes
-;; Version: 2.1.0
-;; Last-Modified: <2022-02-17 10:36:27 +0200>
+;; Version: 2.2.0
+;; Last-Modified: <2022-02-23 08:56:46 +0200>
;; Package-Requires: ((emacs "27.1"))
;; Keywords: faces, theme, accessibility
@@ -35,6 +35,7 @@ ;;; Commentary:
;;
;; The themes share the following customization variables:
;;
+;; modus-themes-completions (alist)
;; modus-themes-headings (alist)
;; modus-themes-org-agenda (alist)
;; modus-themes-bold-constructs (boolean)
@@ -45,7 +46,6 @@ ;;; Commentary:
;; modus-themes-subtle-line-numbers (boolean)
;; modus-themes-variable-pitch-ui (boolean)
;; modus-themes-box-buttons (choice)
-;; modus-themes-completions (choice)
;; modus-themes-diffs (choice)
;; modus-themes-fringes (choice)
;; modus-themes-hl-line (choice)
@@ -586,9 +586,8 @@ (defconst modus-themes-operandi-colors
(bg-region-accent . "#afafef")
(bg-region-accent-subtle . "#efdfff")
- (bg-completion-nuanced . "#dfe5ff")
- (bg-completion-subtle . "#c3d4ff")
- (bg-completion-intense . "#9fc8ff")
+ (bg-completion . "#b7dbff")
+ (bg-completion-subtle . "#def3ff")
(bg-tab-active . "#f6f6f6")
(bg-tab-inactive . "#b7b7b7")
@@ -833,9 +832,8 @@ (defconst modus-themes-vivendi-colors
(bg-region-accent . "#4f3d88")
(bg-region-accent-subtle . "#240f55")
- (bg-completion-nuanced . "#1a2854")
- (bg-completion-subtle . "#282878")
- (bg-completion-intense . "#323da2")
+ (bg-completion . "#142f69")
+ (bg-completion-subtle . "#0e194b")
(bg-tab-active . "#0e0e0e")
(bg-tab-inactive . "#424242")
@@ -1611,23 +1609,53 @@ (defface modus-themes-markup-verbatim nil
The actual styling of the face is done by `modus-themes-faces'."
:group 'modus-themes-faces)
-(defface modus-themes-completion-standard-first-match nil
- "Face for the Icomplete/Ido style first match.
+(define-obsolete-face-alias
+ 'modus-themes-completion-standard-first-match
+ 'modus-themes-completion-selection
+ "2.2.0")
+
+(define-obsolete-face-alias
+ 'modus-themes-completion-standard-selected
+ 'modus-themes-completion-selection
+ "2.2.0")
+
+(define-obsolete-face-alias
+ 'modus-themes-completion-extra-selected
+ 'modus-themes-completion-selection
+ "2.2.0")
+
+(define-obsolete-face-alias
+ 'modus-themes-completion-key-binding
+ 'modus-themes-key-binding
+ "2.2.0")
+
+(defface modus-themes-completion-selected nil
+ "Face for current selection in completion UIs.
+The actual styling of the face is done by `modus-themes-faces'."
+ :group 'modus-themes-faces)
+
+(defface modus-themes-completion-selected-popup nil
+ "Face for current selection in completion UI popups.
+The actual styling of the face is done by `modus-themes-faces'."
+ :group 'modus-themes-faces)
+
+(defface modus-themes-completion-match-0 nil
+ "Face for completions matches 0.
The actual styling of the face is done by `modus-themes-faces'."
:group 'modus-themes-faces)
-(defface modus-themes-completion-standard-selected nil
- "Face for the standard completion UI current selection.
+(defface modus-themes-completion-match-1 nil
+ "Face for completions matches 1.
The actual styling of the face is done by `modus-themes-faces'."
:group 'modus-themes-faces)
-(defface modus-themes-completion-extra-selected nil
- "Face for the extra completion UI current selection.
+(defface modus-themes-completion-match-2 nil
+ "Face for completions matches 2.
The actual styling of the face is done by `modus-themes-faces'."
:group 'modus-themes-faces)
-(defface modus-themes-completion-key-binding nil
- "Face for key bindings in a completion UI context.
+(defface modus-themes-completion-match-3 nil
+ "Face for completions matches 3.
The actual styling of the face is done by `modus-themes-faces'."
:group 'modus-themes-faces)
@@ -2414,7 +2442,7 @@ (defcustom modus-themes-mode-line nil
(const :tag "No box effects (Moody-compatible)" moody))
(const :tag "Colored background" accented)
(const :tag "Without border color" borderless)
- (natnum :tag "With extra padding" :value 6))
+ (natnum :tag "With extra padding"))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Mode line"))
@@ -2462,50 +2490,153 @@ (defcustom modus-themes-diffs nil
:link '(info-link "(modus-themes) Diffs"))
(defcustom modus-themes-completions nil
- "Control the style of the completion framework's interface.
-
-This is a special option that has different effects depending on
-the completion UI. The interfaces can be grouped in two
-categories, based on their default aesthetics: (i) those that
-only or mostly use foreground colors for their interaction model,
-and (ii) those that combine background and foreground values for
-some of their metaphors. The former category encompasses
-Icomplete, Ido, Selectrum, Vertico, Mct, as well as pattern
-matching styles like Orderless and Flx. The latter covers Helm
-and Ivy.
-
-A value of nil (the default) will simply respect the metaphors of
-each completion framework.
-
-Option `moderate' applies a combination of background and
-foreground that is fairly subtle. For Icomplete and friends this
-constitutes a departure from their default aesthetics, however
-the difference is small. While Helm and Ivy appear slightly
-different than their original looks, as they are toned down a
-bit.
-
-Option `opinionated' uses color combinations that refashion the
-completion UI. For the Icomplete camp this means that intense
-background and foreground combinations are used: in effect their
-looks approximate those of Helm and Ivy in their original style.
-Whereas the other group of packages will revert to an even more
-nuanced aesthetic with some additional changes to the choice of
-hues.
-
-Option `super-opinionated' is like the `opinionated' though it
-has a more pronounced effect, especially on the color of the
-current line/candidate.
-
-To appreciate the scope of this customization option, you should
-spend some time with each of those presets."
+ "Control the style of completion user interfaces.
+
+This affects Company, Corfu, Flx, Helm, Icomplete/Fido, Ido, Ivy,
+Mct, Orderless, Selectrum, Vertico. The value is an alist that
+takes the form of a (key . properties) combination. Here is a
+sample, followed by a description of the particularities:
+
+ (setq modus-themes-completions
+ (quote ((matches . (extrabold background intense))
+ (selection . (semibold accented intense))
+ (popup . (accented)))))
+
+The `matches' key refers to the highlighted characters that
+correspond to the user's input. By default (nil or an empty
+list), they have a bold weight and a colored foreground. The
+list of properties may include any of the following symbols
+regardless of the order they may appear in:
+
+- `background' to add a background color;
+
+- `intense' to increase the overall coloration (also amplifies
+ the `background', if present);
+
+- `underline' to draw a line below the characters;
+
+- `italic' to use a slanted font (italic or oblique forms);
+
+- The symbol of a font weight attribute such as `light',
+ `semibold', et cetera. Valid symbols are defined in the
+ variable `modus-themes-weights'. The absence of a weight means
+ that bold will be used.
+
+The `selection' key applies to the current line or currently
+matched candidate, depending on the specifics of the User
+Interface. By default (nil or an empty list), it has a subtle
+gray background and a bold weight. The list of properties it
+accepts is as follows (order is not significant):
+
+- `accented' to make the background colorful instead of gray;
+
+- `intense' to increase the overall coloration;
+
+- `underline' to draw a line below the characters;
+
+- `italic' to use a slanted font (italic or oblique forms);
+
+- The symbol of a font weight attribute such as `light',
+ `semibold', et cetera. Valid symbols are defined in the
+ variable `modus-themes-weights'. The absence of a weight means
+ that bold will be used.
+
+The `popup' key takes the same values as `selection'.
+
+Apart from specfying each key separately, a fallback list is
+accepted. This is only useful when the desired aesthetic is the
+same across all keys that are not explicitly referenced. For
+example, this:
+
+ (setq modus-themes-completions
+ (quote ((t . (extrabold intense)))))
+
+Is the same as:
+
+ (setq modus-themes-completions
+ (quote ((matches . (extrabold intense))
+ (selection . (extrabold intense))
+ (popup . (extrabold intense)))))
+
+In the case of the fallback, any property that does not apply to
+the corresponding key is simply ignored (`matches' does not have
+`accented', `selection' and `popup' do not have `background').
+
+A concise expression of those associations can be written as
+follows, where the `car' is always the key and the `cdr' is the
+list of properties (whatever order they may appear in):
+
+ (setq modus-themes-completions
+ (quote ((matches extrabold background intense)
+ (selection semibold accented intense)
+ (popup accented))))
+
+Check the manual for tweaking `bold' and `italic' faces: Info
+node `(modus-themes) Configure bold and italic faces'.
+
+Also refer to the Orderless documentation for its intersection
+with Company (if you choose to use those in tandem)."
:group 'modus-themes
- :package-version '(modus-themes . "2.1.0")
+ :package-version '(modus-themes . "2.2.0")
:version "29.1"
- :type '(choice
- (const :format "[%v] %t\n" :tag "Respect the framework's established aesthetic (default)" nil)
- (const :format "[%v] %t\n" :tag "Subtle backgrounds for various elements" moderate)
- (const :format "[%v] %t\n" :tag "Alternative to the framework's looks" opinionated)
- (const :format "[%v] %t\n" :tag "Radical alternative to the framework's looks" super-opinionated))
+ :type `(set
+ (cons :tag "Matches"
+ (const matches)
+ (set :tag "Style of matches" :greedy t
+ (choice :tag "Font weight (must be supported by the typeface)"
+ (const :tag "Bold (default)" nil)
+ (const :tag "Thin" thin)
+ (const :tag "Ultra-light" ultralight)
+ (const :tag "Extra-light" extralight)
+ (const :tag "Light" light)
+ (const :tag "Semi-light" semilight)
+ (const :tag "Regular" regular)
+ (const :tag "Medium" medium)
+ (const :tag "Semi-bold" semibold)
+ (const :tag "Extra-bold" extrabold)
+ (const :tag "Ultra-bold" ultrabold))
+ (const :tag "With added background" background)
+ (const :tag "Increased coloration" intense)
+ (const :tag "Italic font (oblique or slanted forms)" italic)
+ (const :tag "Underline" underline)))
+ (cons :tag "Selection"
+ (const selection)
+ (set :tag "Style of selection" :greedy t
+ (choice :tag "Font weight (must be supported by the typeface)"
+ (const :tag "Bold (default)" nil)
+ (const :tag "Thin" thin)
+ (const :tag "Ultra-light" ultralight)
+ (const :tag "Extra-light" extralight)
+ (const :tag "Light" light)
+ (const :tag "Semi-light" semilight)
+ (const :tag "Regular" regular)
+ (const :tag "Medium" medium)
+ (const :tag "Semi-bold" semibold)
+ (const :tag "Extra-bold" extrabold)
+ (const :tag "Ultra-bold" ultrabold))
+ (const :tag "With accented background" accented)
+ (const :tag "Increased coloration" intense)
+ (const :tag "Italic font (oblique or slanted forms)" italic)
+ (const :tag "Underline" underline)))
+ (cons :tag "Popup"
+ (const popup)
+ (set :tag "Style of completion pop-ups" :greedy t
+ (choice :tag "Font weight (must be supported by the typeface)"
+ (const :tag "Bold (default)" nil)
+ (const :tag "Thin" thin)
+ (const :tag "Ultra-light" ultralight)
+ (const :tag "Extra-light" extralight)
+ (const :tag "Light" light)
+ (const :tag "Semi-light" semilight)
+ (const :tag "Regular" regular)
+ (const :tag "Medium" medium)
+ (const :tag "Semi-bold" semibold)
+ (const :tag "Extra-bold" extrabold)
+ (const :tag "Ultra-bold" ultrabold))
+ (const :tag "With accented background" accented)
+ (const :tag "Increased coloration" intense)
+ (const :tag "Italic font (oblique or slanted forms)" italic)
+ (const :tag "Underline" underline))))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Completion UIs"))
@@ -2999,7 +3130,7 @@ (defcustom modus-themes-box-buttons nil
(const :tag "Extra-light" extralight)
(const :tag "Light" light)
(const :tag "Semi-light" semilight)
- (const :tag "Regulat (default)" nil)
+ (const :tag "Regular (default)" nil)
(const :tag "Medium" medium)
(const :tag "Bold" bold)
(const :tag "Semi-bold" semibold)
@@ -3676,47 +3807,61 @@ (defun modus-themes--deuteran (deuteran main)
(list deuteran)
(list main)))
-(defun modus-themes--standard-completions (mainfg subtlebg subtlefg intensebg intensefg &optional superbg superfg)
- "Combinations for `modus-themes-completions'.
-
-MAINFG is an accented foreground value. SUBTLEBG is an accented
-background value that can be combined with SUBTLEFG. INTENSEBG
-and INTENSEFG are accented colors that are designed to be used in
-tandem. Same principle for the optional SUPERBG and SUPERFG.
-
-These are intended for Icomplete, Ido, and related."
- (pcase modus-themes-completions
- ('super-opinionated (list :background (or superbg intensebg) :foreground (or superfg intensefg)))
- ('opinionated (list :background intensebg :foreground intensefg))
- ('moderate (list :background subtlebg :foreground subtlefg))
- (_ (list :foreground mainfg))))
-
-(defun modus-themes--extra-completions (default moderate opinionated)
- "Combinations for `modus-themes-completions'.
-
-DEFAULT, MODERATE, and OPINIONATED are faces that correspond to
-the stylistic variants of the aforementioned user option.
-
-These are intended for Ivy and Helm."
- (pcase modus-themes-completions
- ('super-opinionated (list :inherit (list 'bold opinionated)))
- ('opinionated (list :inherit (list 'bold opinionated)))
- ('moderate (list :inherit (list 'bold moderate)))
- (_ (list :inherit (list 'bold default)))))
-
-(defun modus-themes--extra-completions-line (mainfg mainbg modbg opbg sopbg)
- "Combinations for `modus-themes-completions'.
-
-MAINFG and MAINBG form the basic intense style. MODBG, OPBG, and
-SOPBG are the moderate, opinionated, and super-opinionated
-backgrounds, respectively.
-
-These are intended for Ivy and Helm."
- (pcase modus-themes-completions
- ('super-opinionated (list :inherit 'bold :background sopbg :foreground mainfg))
- ('opinionated (list :inherit 'bold :background opbg :foreground mainfg))
- ('moderate (list :inherit 'bold :background modbg :foreground mainfg))
- (_ (list :inherit 'bold :background mainbg :foreground mainfg))))
+(defun modus-themes--completion (key bg fg bgintense fgintense &optional bgaccent bgaccentintense)
+ "Styles for `modus-themes-completions'.
+KEY is the key of a cons cell. BG and FG are the main colors.
+BGINTENSE works with the main foreground. FGINTENSE works on its
+own. BGACCENT and BGACCENTINTENSE are colorful variants of the
+other backgrounds."
+ (let* ((var (if (listp modus-themes-completions)
+ modus-themes-completions
+ (prog1 nil
+ (warn (concat "`modus-themes-completions' has changed."
+ "\n"
+ "Its value must now be an alist."
+ "\n"
+ "Please read the updated doc string.")))))
+ (properties (or (alist-get key var) (alist-get t var)))
+ (popup (eq key 'popup))
+ (selection (eq key 'selection))
+ (line (or popup selection))
+ (background (or line (memq 'background properties)))
+ (base-fg (if selection fg 'unspecified))
+ (accented (memq 'accented properties))
+ (intense (memq 'intense properties))
+ (italic (memq 'italic properties))
+ (weight (modus-themes--weight properties))
+ (bold (when (and weight (eq weight 'bold)) 'bold)))
+ (list
+ :inherit
+ (cond
+ ((and italic weight (not (eq weight 'bold)))
+ 'italic)
+ ((and weight (not (eq weight 'bold)))
+ 'unspecified)
+ (italic 'bold-italic)
+ ('bold))
+ :background
+ (cond
+ ((and accented intense line)
+ bgaccentintense)
+ ((and accented line)
+ bgaccent)
+ ((and background intense)
+ bgintense)
+ (background bg)
+ ('unspecified))
+ :foreground
+ (cond
+ ((and background intense)
+ base-fg)
+ (background fg)
+ (intense fgintense)
+ (fg))
+ :underline
+ (if (memq 'underline properties) t 'unspecified)
+ :weight
+ (if (and weight (null bold)) weight 'unspecified))))
(defun modus-themes--link (fg fgfaint underline bg bgneutral)
"Conditional application of link styles.
@@ -4359,27 +4504,32 @@ ;;;;; tabs
`(modus-themes-tab-backdrop ((,class ,@(modus-themes--tab bg-active bg-active-accent nil nil nil nil t))))
`(modus-themes-tab-inactive ((,class ,@(modus-themes--tab bg-tab-inactive bg-tab-inactive-accent fg-dim nil t))))
;;;;; completion frameworks
- `(modus-themes-completion-standard-first-match
- ((,class :inherit bold
- ,@(modus-themes--standard-completions
- magenta bg-alt magenta-alt
- bg-active fg-main
- blue-intense-bg))))
- `(modus-themes-completion-standard-selected
- ((,class :inherit bold :foreground ,fg-main
- :background ,@(pcase modus-themes-completions
- ('super-opinionated (list bg-completion-intense))
- ('opinionated (list bg-active))
- ('moderate (list bg-completion-nuanced))
- (_ (list bg-inactive))))))
- `(modus-themes-completion-extra-selected
- ((,class ,@(modus-themes--extra-completions-line
- fg-main bg-completion-intense bg-completion-subtle
- bg-completion-nuanced bg-active))))
- `(modus-themes-completion-key-binding
- ((,class ,@(if (null modus-themes-completions)
- (list :foreground magenta-alt-other)
- (list :inherit 'modus-themes-key-binding)))))
+ `(modus-themes-completion-match-0
+ ((,class ,@(modus-themes--completion
+ 'matches bg-special-faint-calm magenta-alt
+ magenta-subtle-bg magenta-intense))))
+ `(modus-themes-completion-match-1
+ ((,class ,@(modus-themes--completion
+ 'matches bg-special-faint-cold cyan
+ cyan-subtle-bg cyan-intense))))
+ `(modus-themes-completion-match-2
+ ((,class ,@(modus-themes--completion
+ 'matches bg-special-faint-mild green
+ green-subtle-bg green-intense))))
+ `(modus-themes-completion-match-3
+ ((,class ,@(modus-themes--completion
+ 'matches bg-special-faint-warm yellow
+ yellow-subtle-bg orange-intense))))
+ `(modus-themes-completion-selected
+ ((,class ,@(modus-themes--completion
+ 'selection bg-inactive 'unspecified
+ bg-active 'unspecified
+ bg-completion-subtle bg-completion))))
+ `(modus-themes-completion-selected-popup
+ ((,class ,@(modus-themes--completion
+ 'popup bg-active 'unspecified
+ bg-region 'unspecified
+ cyan-subtle-bg cyan-refine-bg))))
;;;;; buttons
`(modus-themes-box-button
((,class ,@(modus-themes--button bg-active bg-main bg-active-accent
@@ -4771,23 +4921,21 @@ ;;;;; color-rg
;;;;; column-enforce-mode
`(column-enforce-face ((,class :inherit modus-themes-refine-yellow)))
;;;;; company-mode
- `(company-echo-common ((,class :foreground ,magenta-alt-other)))
+ `(company-echo-common ((,class :inherit modus-themes-completion-match-0)))
`(company-preview ((,class :background ,bg-dim :foreground ,fg-dim)))
- `(company-preview-common ((,class :foreground ,blue-alt)))
+ `(company-preview-common ((,class :inherit company-echo-common)))
`(company-preview-search ((,class :inherit modus-themes-special-calm)))
`(company-template-field ((,class :inherit modus-themes-intense-magenta)))
`(company-tooltip ((,class :background ,bg-alt :foreground ,fg-alt)))
- `(company-tooltip-annotation ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
- `(company-tooltip-annotation-selection ((,class :inherit bold :foreground ,fg-main)))
- `(company-tooltip-common ((,class :inherit bold :foreground ,blue-alt)))
- `(company-tooltip-common-selection ((,class :foreground ,fg-main)))
+ `(company-tooltip-annotation ((,class :inherit completions-annotations)))
+ `(company-tooltip-common ((,class :inherit company-echo-common)))
`(company-tooltip-deprecated ((,class :inherit company-tooltip :strike-through t)))
- `(company-tooltip-mouse ((,class :inherit modus-themes-intense-blue)))
+ `(company-tooltip-mouse ((,class :inherit highlight)))
`(company-tooltip-scrollbar-thumb ((,class :background ,fg-active)))
`(company-tooltip-scrollbar-track ((,class :background ,bg-active)))
`(company-tooltip-search ((,class :inherit (modus-themes-search-success-lazy bold))))
`(company-tooltip-search-selection ((,class :inherit (modus-themes-search-success bold) :underline t)))
- `(company-tooltip-selection ((,class :inherit (modus-themes-subtle-cyan bold))))
+ `(company-tooltip-selection ((,class :inherit modus-themes-completion-selected-popup)))
;;;;; company-posframe
`(company-posframe-active-backend-name ((,class :inherit bold :background ,bg-active :foreground ,blue-active)))
`(company-posframe-inactive-backend-name ((,class :background ,bg-active :foreground ,fg-active)))
@@ -4803,13 +4951,8 @@ ;;;;; compilation
`(compilation-warning ((,class :inherit modus-themes-bold :foreground ,yellow-alt)))
;;;;; completions
`(completions-annotations ((,class :inherit modus-themes-slant :foreground ,cyan-faint)))
- `(completions-common-part ((,class ,@(modus-themes--standard-completions
- blue-alt bg-special-mild fg-special-mild
- cyan-refine-bg cyan-refine-fg))))
- `(completions-first-difference ((,class :inherit bold
- ,@(modus-themes--standard-completions
- magenta-alt bg-special-calm fg-special-calm
- magenta-intense-bg fg-main))))
+ `(completions-common-part ((,class :inherit modus-themes-completion-match-0)))
+ `(completions-first-difference ((,class :inherit modus-themes-completion-match-1)))
;;;;; consult
`(consult-async-running ((,class :inherit bold :foreground ,blue)))
`(consult-async-split ((,class :foreground ,magenta-alt)))
@@ -4824,7 +4967,7 @@ ;;;;; consult
`(consult-preview-error ((,class :inherit modus-themes-intense-red)))
`(consult-preview-line ((,class :background ,bg-hl-alt-intense)))
;;;;; corfu
- `(corfu-current ((,class :inherit bold :background ,cyan-subtle-bg)))
+ `(corfu-current ((,class :inherit modus-themes-completion-selected-popup)))
`(corfu-bar ((,class :background ,fg-alt)))
`(corfu-border ((,class :background ,bg-active)))
`(corfu-default ((,class :background ,bg-alt)))
@@ -4887,6 +5030,7 @@ ;;;;; custom (M-x customize)
`(custom-set ((,class :foreground ,blue-alt)))
`(custom-state ((,class :foreground ,red-alt-faint)))
`(custom-themed ((,class :inherit modus-themes-subtle-blue)))
+ `(custom-variable-obsolete ((,class :inherit shadow)))
`(custom-variable-tag ((,class :foreground ,cyan)))
;;;;; dap-mode
`(dap-mouse-eval-thing-face ((,class :box (:line-width -1 :color ,blue-active :style nil)
@@ -5196,7 +5340,7 @@ ;;;;; elpher
`(elpher-gemini-heading2 ((,class :inherit modus-themes-heading-2)))
`(elpher-gemini-heading3 ((,class :inherit modus-themes-heading-3)))
;;;;; embark
- `(embark-keybinding ((,class :inherit modus-themes-completion-key-binding)))
+ `(embark-keybinding ((,class :inherit modus-themes-key-binding)))
;;;;; ement (ement.el)
`(ement-room-fully-read-marker ((,class :background ,cyan-subtle-bg)))
`(ement-room-membership ((,class :inherit shadow)))
@@ -5440,10 +5584,7 @@ ;;;;; flyspell
`(flyspell-duplicate ((,class :inherit modus-themes-lang-warning)))
`(flyspell-incorrect ((,class :inherit modus-themes-lang-error)))
;;;;; flx
- `(flx-highlight-face ((,class ,@(modus-themes--extra-completions
- 'modus-themes-intense-magenta
- 'modus-themes-subtle-magenta
- 'modus-themes-special-calm))))
+ `(flx-highlight-face ((,class :inherit modus-themes-completion-match-0)))
;;;;; freeze-it
`(freeze-it-show ((,class :background ,bg-dim :foreground ,fg-special-warm)))
;;;;; frog-menu
@@ -5695,10 +5836,7 @@ ;;;;; helm
`(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
`(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
`(helm-ff-backup-file ((,class :inherit shadow)))
- `(helm-ff-denied ((,class ,@(modus-themes--extra-completions
- 'modus-themes-intense-red
- 'modus-themes-subtle-red
- 'modus-themes-special-warm))))
+ `(helm-ff-denied ((,class :inherit modus-themes-intense-red)))
`(helm-ff-directory ((,class :inherit helm-buffer-directory)))
`(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
`(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt :foreground ,fg-alt)))
@@ -5707,59 +5845,35 @@ ;;;;; helm
`(helm-ff-file ((,class :foreground ,fg-main)))
`(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
`(helm-ff-invalid-symlink ((,class :inherit modus-themes-link-broken)))
- `(helm-ff-pipe ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-magenta
- 'modus-themes-subtle-magenta
- 'modus-themes-special-calm))))
- `(helm-ff-prefix ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-yellow
- 'modus-themes-subtle-yellow
- 'modus-themes-special-warm))))
+ `(helm-ff-pipe ((,class :inherit modus-themes-special-calm)))
+ `(helm-ff-prefix ((,class :inherit modus-themes-special-warm)))
`(helm-ff-socket ((,class :foreground ,red-alt-other)))
- `(helm-ff-suid ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-red
- 'modus-themes-subtle-red
- 'modus-themes-special-warm))))
+ `(helm-ff-suid ((,class :inherit modus-themes-special-warm)))
`(helm-ff-symlink ((,class :inherit modus-themes-link-symlink)))
`(helm-ff-truename ((,class :foreground ,blue-alt-other)))
- `(helm-fd-finish ((,class :foreground ,green-active)))
+ `(helm-fd-finish ((,class :inherit success)))
`(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
`(helm-grep-file ((,class :inherit bold :foreground ,fg-special-cold)))
- `(helm-grep-finish ((,class :foreground ,green-active)))
+ `(helm-grep-finish ((,class :inherit bold)))
`(helm-grep-lineno ((,class :foreground ,fg-special-warm)))
`(helm-grep-match ((,class :inherit modus-themes-special-calm)))
`(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
`(helm-header-line-left-margin ((,class :inherit bold :foreground ,yellow-intense)))
- `(helm-history-deleted ((,class ,@(modus-themes--extra-completions
- 'modus-themes-intense-red
- 'modus-themes-subtle-red
- 'modus-themes-special-warm))))
+ `(helm-history-deleted ((,class :inherit modus-themes-special-warm)))
`(helm-history-remote ((,class :foreground ,red-alt-other)))
- `(helm-lisp-completion-info ((,class :inherit compilation-info)))
- `(helm-lisp-show-completion ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-yellow
- 'modus-themes-subtle-yellow
- 'modus-themes-special-warm))))
+ `(helm-lisp-completion-info ((,class :inherit modus-themes-bold :foreground ,fg-special-cold)))
+ `(helm-lisp-show-completion ((,class :inherit modus-themes-special-warm)))
`(helm-locate-finish ((,class :inherit success)))
- `(helm-match ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-cyan
- 'modus-themes-subtle-cyan
- 'modus-themes-special-mild))))
+ `(helm-match ((,class :inherit modus-themes-completion-match-0)))
`(helm-match-item ((,class :inherit helm-match)))
`(helm-minibuffer-prompt ((,class :inherit modus-themes-prompt)))
`(helm-moccur-buffer ((,class :inherit button :foreground ,cyan-alt-other)))
- `(helm-mode-prefix ((,class ,@(modus-themes--extra-completions
- 'modus-themes-intense-magenta
- 'modus-themes-subtle-magenta
- 'modus-themes-special-calm))))
+ `(helm-mode-prefix ((,class :inherit modus-themes-special-calm)))
`(helm-non-file-buffer ((,class :inherit shadow)))
`(helm-prefarg ((,class :foreground ,red-active)))
- `(helm-resume-need-update ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-magenta
- 'modus-themes-subtle-magenta
- 'modus-themes-special-calm))))
- `(helm-selection ((,class :inherit modus-themes-completion-extra-selected)))
- `(helm-selection-line ((,class :inherit modus-themes-special-cold)))
+ `(helm-resume-need-update ((,class :inherit modus-themes-special-calm)))
+ `(helm-selection ((,class :inherit modus-themes-completion-selected)))
+ `(helm-selection-line ((,class :background ,bg-hl-alt-intense)))
`(helm-separator ((,class :foreground ,fg-special-mild)))
`(helm-time-zone-current ((,class :foreground ,green)))
`(helm-time-zone-home ((,class :foreground ,magenta)))
@@ -5778,12 +5892,9 @@ ;;;;; helm-ls-git
`(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
`(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
;;;;; helm-switch-shell
- `(helm-switch-shell-new-shell-face ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-magenta
- 'modus-themes-subtle-magenta
- 'modus-themes-nuanced-magenta))))
+ `(helm-switch-shell-new-shell-face ((,class :inherit modus-themes-completion-match-0)))
;;;;; helm-xref
- `(helm-xref-file-name ((,class :inherit compilation-info)))
+ `(helm-xref-file-name ((,class :inherit modus-themes-bold :foreground ,fg-special-cold)))
;;;;; helpful
`(helpful-heading ((,class :inherit modus-themes-heading-1)))
;;;;; highlight region or ad-hoc regexp
@@ -5826,17 +5937,17 @@ ;;;;; hydra
`(hydra-face-red ((,class :inherit bold :foreground ,red-faint)))
`(hydra-face-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
;;;;; icomplete
- `(icomplete-first-match ((,class :inherit modus-themes-completion-standard-first-match)))
- `(icomplete-selected-match ((,class :inherit modus-themes-completion-standard-selected)))
+ `(icomplete-first-match ((,class :inherit modus-themes-completion-match-0)))
+ `(icomplete-selected-match ((,class :inherit modus-themes-completion-selected)))
;;;;; icomplete-vertical
`(icomplete-vertical-separator ((,class :inherit shadow)))
;;;;; ido-mode
- `(ido-first-match ((,class :inherit modus-themes-completion-standard-first-match)))
+ `(ido-first-match ((,class :inherit modus-themes-completion-selected)))
`(ido-incomplete-regexp ((,class :inherit error)))
`(ido-indicator ((,class :inherit modus-themes-subtle-yellow)))
`(ido-only-match ((,class :inherit ido-first-match)))
`(ido-subdir ((,class :foreground ,blue)))
- `(ido-virtual ((,class :foreground ,fg-special-warm)))
+ `(ido-virtual ((,class :foreground ,magenta-alt-other)))
;;;;; iedit
`(iedit-occurrence ((,class :inherit modus-themes-refine-blue)))
`(iedit-read-only-occurrence ((,class :inherit modus-themes-intense-yellow)))
@@ -5914,32 +6025,20 @@ ;;;;; isearch, occur, and the like
;;;;; ivy
`(ivy-action ((,class :inherit modus-themes-key-binding)))
`(ivy-confirm-face ((,class :inherit success)))
- `(ivy-current-match ((,class :inherit modus-themes-completion-extra-selected)))
+ `(ivy-current-match ((,class :inherit modus-themes-completion-selected)))
`(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
`(ivy-highlight-face ((,class :foreground ,magenta)))
`(ivy-match-required-face ((,class :inherit error)))
- `(ivy-minibuffer-match-face-1 ((,class :inherit modus-themes-subtle-neutral)))
- `(ivy-minibuffer-match-face-2 ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-green
- 'modus-themes-subtle-green
- 'modus-themes-special-mild))))
- `(ivy-minibuffer-match-face-3 ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-blue
- 'modus-themes-subtle-blue
- 'modus-themes-special-cold))))
- `(ivy-minibuffer-match-face-4 ((,class ,@(modus-themes--extra-completions
- 'modus-themes-refine-magenta
- 'modus-themes-subtle-magenta
- 'modus-themes-special-calm))))
- `(ivy-modified-buffer ((,class :inherit modus-themes-slant :foreground ,yellow)))
- `(ivy-modified-outside-buffer ((,class :inherit modus-themes-slant :foreground ,red-alt)))
+ `(ivy-minibuffer-match-face-1 (( )))
+ `(ivy-minibuffer-match-face-2 ((,class :inherit modus-themes-completion-match-0)))
+ `(ivy-minibuffer-match-face-3 ((,class :inherit modus-themes-completion-match-1)))
+ `(ivy-minibuffer-match-face-4 ((,class :inherit modus-themes-completion-match-2)))
`(ivy-org ((,class :foreground ,cyan-alt-other)))
`(ivy-remote ((,class :foreground ,magenta)))
`(ivy-separator ((,class :inherit shadow)))
`(ivy-subdir ((,class :foreground ,blue)))
`(ivy-virtual ((,class :foreground ,magenta-alt-other)))
;;;;; ivy-posframe
- `(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
`(ivy-posframe-border ((,class :background ,fg-window-divider-inner)))
`(ivy-posframe-cursor ((,class :background ,fg-main :foreground ,bg-main)))
;;;;; jira (org-jira)
@@ -6214,7 +6313,7 @@ ;;;;; marginalia
`(marginalia-file-priv-read ((,class :foreground ,fg-main)))
`(marginalia-file-priv-write ((,class :foreground ,cyan)))
`(marginalia-function ((,class :foreground ,magenta-alt-faint)))
- `(marginalia-key ((,class :inherit modus-themes-completion-key-binding)))
+ `(marginalia-key ((,class :inherit modus-themes-key-binding)))
`(marginalia-lighter ((,class :foreground ,blue-alt)))
`(marginalia-list ((,class :foreground ,magenta-alt-other-faint)))
`(marginalia-mode ((,class :foreground ,cyan)))
@@ -6312,7 +6411,7 @@ ;;;;; markup-faces (`adoc-mode')
`(markup-title-5-face ((,class :inherit modus-themes-heading-6)))
`(markup-verbatim-face ((,class :inherit modus-themes-fixed-pitch :background ,bg-alt)))
;;;;; mct
- `(mct-highlight-candidate ((,class :inherit modus-themes-completion-standard-selected)))
+ `(mct-highlight-candidate ((,class :inherit modus-themes-completion-selected)))
;;;;; mentor
`(mentor-download-message ((,class :foreground ,fg-special-warm)))
`(mentor-download-name ((,class :foreground ,fg-special-cold)))
@@ -6510,22 +6609,10 @@ ;;;;; nxml-mode
`(nxml-ref ((,class :inherit modus-themes-bold :foreground ,fg-special-mild)))
`(rng-error ((,class :inherit error)))
;;;;; orderless
- `(orderless-match-face-0 ((,class :inherit bold
- ,@(modus-themes--standard-completions
- blue-alt-other bg-special-cold fg-special-cold
- blue-refine-bg blue-refine-fg))))
- `(orderless-match-face-1 ((,class :inherit bold
- ,@(modus-themes--standard-completions
- magenta-alt bg-special-calm fg-special-calm
- magenta-refine-bg magenta-refine-fg))))
- `(orderless-match-face-2 ((,class :inherit bold
- ,@(modus-themes--standard-completions
- green bg-special-mild fg-special-mild
- green-refine-bg green-refine-fg))))
- `(orderless-match-face-3 ((,class :inherit bold
- ,@(modus-themes--standard-completions
- yellow bg-special-warm fg-special-warm
- yellow-refine-bg yellow-refine-fg))))
+ `(orderless-match-face-0 ((,class :inherit modus-themes-completion-match-0)))
+ `(orderless-match-face-1 ((,class :inherit modus-themes-completion-match-1)))
+ `(orderless-match-face-2 ((,class :inherit modus-themes-completion-match-2)))
+ `(orderless-match-face-3 ((,class :inherit modus-themes-completion-match-3)))
;;;;; org
`(org-agenda-calendar-event ((,class ,@(modus-themes--agenda-event blue-alt))))
`(org-agenda-calendar-sexp ((,class ,@(modus-themes--agenda-event blue-alt t))))
@@ -6560,8 +6647,7 @@ ;;;;; org
bg-dim fg-special-cold
bg-alt fg-alt))))
`(org-block-end-line ((,class :inherit org-block-begin-line)))
- `(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
- :background ,bg-inactive :foreground ,fg-active)))
+ `(org-checkbox (( )))
`(org-checkbox-statistics-done ((,class :inherit org-done)))
`(org-checkbox-statistics-todo ((,class :inherit org-todo)))
`(org-clock-overlay ((,class :inherit modus-themes-special-cold)))
@@ -6781,9 +6867,9 @@ ;;;;; pomidor
`(pomidor-work-face ((,class :inherit modus-themes-grue)))
;;;;; popup
`(popup-face ((,class :background ,bg-alt :foreground ,fg-main)))
- `(popup-isearch-match ((,class :inherit (modus-themes-refine-cyan bold))))
- `(popup-menu-mouse-face ((,class :inherit modus-themes-intense-blue)))
- `(popup-menu-selection-face ((,class :inherit (modus-themes-subtle-cyan bold))))
+ `(popup-isearch-match ((,class :inherit (modus-themes-search-success bold))))
+ `(popup-menu-mouse-face ((,class :inherit highlight)))
+ `(popup-menu-selection-face ((,class :inherit modus-themes-completion-selected-popup)))
`(popup-scroll-bar-background-face ((,class :background ,bg-active)))
`(popup-scroll-bar-foreground-face ((,class :foreground ,fg-active)))
`(popup-summary-face ((,class :background ,bg-active :foreground ,fg-inactive)))
@@ -6918,23 +7004,15 @@ ;;;;; ruler-mode
`(ruler-mode-pad ((,class :inherit ruler-mode-default :background ,bg-active :foreground ,fg-inactive)))
`(ruler-mode-tab-stop ((,class :inherit ruler-mode-default :foreground ,fg-special-warm)))
;;;;; selectrum
- `(selectrum-current-candidate ((,class :inherit modus-themes-completion-standard-selected)))
+ `(selectrum-current-candidate ((,class :inherit modus-themes-completion-selected)))
`(selectrum-mouse-highlight ((,class :inherit highlight)))
`(selectrum-quick-keys-highlight
((,class :inherit modus-themes-refine-red)))
`(selectrum-quick-keys-match
((,class :inherit (bold modus-themes-search-success))))
;;;;; selectrum-prescient
- `(selectrum-prescient-primary-highlight
- ((,class :inherit bold
- ,@(modus-themes--standard-completions
- magenta-alt bg-special-calm fg-special-calm
- magenta-refine-bg magenta-refine-fg))))
- `(selectrum-prescient-secondary-highlight
- ((,class :inherit bold
- ,@(modus-themes--standard-completions
- cyan-alt-other bg-special-cold fg-special-cold
- cyan-refine-bg cyan-refine-fg))))
+ `(selectrum-prescient-primary-highlight ((,class :inherit modus-themes-completion-match-0)))
+ `(selectrum-prescient-secondary-highlight ((,class :inherit modus-themes-completion-match-1)))
;;;;; semantic
`(semantic-complete-inline-face ((,class :foreground ,fg-special-warm :underline t)))
`(semantic-decoration-on-fileless-includes ((,class :inherit modus-themes-refine-green)))
@@ -7091,15 +7169,15 @@ ;;;;; 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-themes-subtle-neutral)))
- `(swiper-background-match-face-2 ((,class :inherit modus-themes-refine-cyan)))
- `(swiper-background-match-face-3 ((,class :inherit modus-themes-refine-magenta)))
- `(swiper-background-match-face-4 ((,class :inherit modus-themes-refine-yellow)))
- `(swiper-line-face ((,class :inherit modus-themes-special-cold)))
- `(swiper-match-face-1 ((,class :inherit (bold modus-themes-intense-neutral))))
- `(swiper-match-face-2 ((,class :inherit (bold modus-themes-intense-green))))
- `(swiper-match-face-3 ((,class :inherit (bold modus-themes-intense-blue))))
- `(swiper-match-face-4 ((,class :inherit (bold modus-themes-intense-red))))
+ `(swiper-background-match-face-1 (( )))
+ `(swiper-background-match-face-2 ((,class :inherit modus-themes-completion-match-0)))
+ `(swiper-background-match-face-3 ((,class :inherit modus-themes-completion-match-1)))
+ `(swiper-background-match-face-4 ((,class :inherit modus-themes-completion-match-2)))
+ `(swiper-line-face ((,class :background ,bg-hl-alt-intense)))
+ `(swiper-match-face-1 (( )))
+ `(swiper-match-face-2 ((,class :inherit modus-themes-completion-match-0)))
+ `(swiper-match-face-3 ((,class :inherit modus-themes-completion-match-1)))
+ `(swiper-match-face-4 ((,class :inherit modus-themes-completion-match-2)))
;;;;; sx
`(sx-inbox-item-type ((,class :foreground ,magenta-alt-other)))
`(sx-inbox-item-type-unread ((,class :inherit (sx-inbox-item-type bold))))
@@ -7348,7 +7426,7 @@ ;;;;; vc (vc-dir.el, vc-hooks.el)
`(vc-state-base ((,class :foreground ,fg-active)))
`(vc-up-to-date-state ((,class :foreground ,fg-special-cold)))
;;;;; vertico
- `(vertico-current ((,class :inherit modus-themes-completion-standard-selected)))
+ `(vertico-current ((,class :inherit modus-themes-completion-selected)))
;;;;; vertico-quick
`(vertico-quick1 ((,class :inherit (modus-themes-intense-magenta bold))))
`(vertico-quick2 ((,class :inherit (modus-themes-refine-cyan bold))))
diff --git a/etc/themes/modus-vivendi-theme.el b/etc/themes/modus-vivendi-theme.el
index 3e78a6c959..7d38e5cbf2 100644
--- a/etc/themes/modus-vivendi-theme.el
+++ b/etc/themes/modus-vivendi-theme.el
@@ -4,7 +4,7 @@ ;;; modus-vivendi-theme.el --- Accessible and customizable dark theme (WCAG AAA)
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://gitlab.com/protesilaos/modus-themes
-;; Version: 2.1.0
+;; Version: 2.2.0
;; Package-Requires: ((emacs "27.1"))
;; Keywords: faces, theme, accessibility
--
2.35.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* bug#54122: 29.0.50; [PATCH] Update modus-themes to version 2.2.0
2022-02-23 7:46 bug#54122: 29.0.50; [PATCH] Update modus-themes to version 2.2.0 Protesilaos Stavrou
@ 2022-02-23 11:32 ` Lars Ingebrigtsen
2022-02-23 12:31 ` Protesilaos Stavrou
0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-23 11:32 UTC (permalink / raw)
To: Protesilaos Stavrou; +Cc: 54122
Protesilaos Stavrou <info@protesilaos.com> writes:
> Please see the attached patch. The major change is that the user option
> 'modus-themes-completions' accepts an alist value instead of a symbol.
Makes sense to me.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#54122: 29.0.50; [PATCH] Update modus-themes to version 2.2.0
2022-02-23 11:32 ` Lars Ingebrigtsen
@ 2022-02-23 12:31 ` Protesilaos Stavrou
2022-02-23 12:52 ` Lars Ingebrigtsen
0 siblings, 1 reply; 5+ messages in thread
From: Protesilaos Stavrou @ 2022-02-23 12:31 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: 54122
On 2022-02-23, 12:32 +0100, Lars Ingebrigtsen <larsi@gnus.org> wrote:
> Protesilaos Stavrou <info@protesilaos.com> writes:
>
>> Please see the attached patch. The major change is that the user option
>> 'modus-themes-completions' accepts an alist value instead of a symbol.
>
> Makes sense to me.
Do you think it is okay if I push these changes?
And sorry for taking up your time with these back-to-back releases!
--
Protesilaos Stavrou
https://protesilaos.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#54122: 29.0.50; [PATCH] Update modus-themes to version 2.2.0
2022-02-23 12:31 ` Protesilaos Stavrou
@ 2022-02-23 12:52 ` Lars Ingebrigtsen
2022-02-23 13:13 ` Protesilaos Stavrou
0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-23 12:52 UTC (permalink / raw)
To: Protesilaos Stavrou; +Cc: 54122
Protesilaos Stavrou <info@protesilaos.com> writes:
>> Makes sense to me.
>
> Do you think it is okay if I push these changes?
Oh, yeah, please go ahead. :-) And in the future, you can just push
directly without going through debbugs first -- these modus-theme
updates have all been fine.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#54122: 29.0.50; [PATCH] Update modus-themes to version 2.2.0
2022-02-23 12:52 ` Lars Ingebrigtsen
@ 2022-02-23 13:13 ` Protesilaos Stavrou
0 siblings, 0 replies; 5+ messages in thread
From: Protesilaos Stavrou @ 2022-02-23 13:13 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: 54122-done
On 2022-02-23, 13:52 +0100, Lars Ingebrigtsen <larsi@gnus.org> wrote:
> Protesilaos Stavrou <info@protesilaos.com> writes:
>
>>> Makes sense to me.
>>
>> Do you think it is okay if I push these changes?
>
> Oh, yeah, please go ahead. :-)
Done!
> And in the future, you can just push directly without going through
> debbugs first -- these modus-theme updates have all been fine.
Understood. Thank you!
Closing this bug now.
--
Protesilaos Stavrou
https://protesilaos.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-02-23 13:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-23 7:46 bug#54122: 29.0.50; [PATCH] Update modus-themes to version 2.2.0 Protesilaos Stavrou
2022-02-23 11:32 ` Lars Ingebrigtsen
2022-02-23 12:31 ` Protesilaos Stavrou
2022-02-23 12:52 ` Lars Ingebrigtsen
2022-02-23 13:13 ` Protesilaos Stavrou
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.