mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2026-09-10 07:46:51 -04:00
Update modus-themes to their 4.7.0 version
* doc/misc/modus-themes.org: Update the manual to document how 'modus-themes-list-colors' has changed. Make other minor changes. * etc/themes/modus-operandi-deuteranopia-theme.el: * etc/themes/modus-operandi-theme.el: * etc/themes/modus-operandi-tinted-theme.el: * etc/themes/modus-operandi-tritanopia-theme.el: * etc/themes/modus-vivendi-deuteranopia-theme.el: * etc/themes/modus-vivendi-theme.el: * etc/themes/modus-vivendi-tinted-theme.el: * etc/themes/modus-vivendi-tritanopia-theme.el: Make stylistic refinements. * etc/themes/modus-themes.el: Make refinements to supported faces, add support for more faces, and the like. Release notes: <https://protesilaos.com/codelog/2025-04-17-emacs-modus-themes-4-7-0/>.
This commit is contained in:
parent
ee46b6c4e6
commit
1e4ce13603
|
|
@ -4,9 +4,9 @@
|
|||
#+language: en
|
||||
#+options: ':t toc:nil author:t email:t num:t
|
||||
#+startup: content
|
||||
#+macro: stable-version 4.6.0
|
||||
#+macro: release-date 2024-10-27
|
||||
#+macro: development-version 4.7.0-dev
|
||||
#+macro: stable-version 4.7.0
|
||||
#+macro: release-date 2025-04-17
|
||||
#+macro: development-version 4.8.0-dev
|
||||
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
|
||||
#+macro: space @@texinfo:@: @@
|
||||
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
|
||||
|
|
@ -88,7 +88,7 @@ The Modus themes consist of eight themes, divided into four subgroups.
|
|||
are variants of the two main themes. They slightly tone down the
|
||||
intensity of the background and provide a bit more color variety.
|
||||
~modus-operandi-tinted~ has a set of base tones that are shades of
|
||||
light ocher (earthly colors), while ~modus-vivendi-tinted~ gives a
|
||||
light ochre (earthly colors), while ~modus-vivendi-tinted~ gives a
|
||||
night sky impression.
|
||||
|
||||
- Deuteranopia themes :: ~modus-operandi-deuteranopia~ and its
|
||||
|
|
@ -1309,37 +1309,32 @@ Examples demonstrating how to use the aforementioned:
|
|||
#+findex: modus-themes-list-colors
|
||||
The command ~modus-themes-list-colors~ uses minibuffer completion to
|
||||
select an item from the Modus themes and then produces a buffer with
|
||||
previews of its color palette entries. The buffer has a naming scheme
|
||||
that reflects the given choice, like =modus-operandi-list-colors= for
|
||||
the ~modus-operandi~ theme.
|
||||
previews of all of its color palette entries.
|
||||
|
||||
#+findex: modus-themes-list-colors-current
|
||||
The command ~modus-themes-list-colors-current~ skips the minibuffer
|
||||
selection process and just produces a preview for the current Modus
|
||||
theme.
|
||||
selection process to produce a preview for the current Modus theme.
|
||||
|
||||
When called with a prefix argument (=C-u= with the default key
|
||||
bindings), these commands will show a preview of the palette's
|
||||
semantic color mappings instead of the named colors. In this context,
|
||||
"named colors" are entries that associate a symbol to a string color
|
||||
value, such as =(blue-warmer "#354fcf")=. Whereas "semantic color
|
||||
mappings" associate a named color to a symbol, like =(string
|
||||
blue-warmer)=, thus making the theme render all string constructs in
|
||||
the =blue-warmer= color value ([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]]).
|
||||
semantic color mappings instead of the full palette ([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]]).
|
||||
|
||||
#+findex: modus-themes-preview-colors
|
||||
#+findex: modus-themes-preview-colors-current
|
||||
Aliases for those commands are ~modus-themes-preview-colors~ and
|
||||
Aliases for these commands are ~modus-themes-preview-colors~ and
|
||||
~modus-themes-preview-colors-current~.
|
||||
|
||||
Each row shows a foreground and background coloration using the
|
||||
underlying value it references. For example a line with =#a60000= (a
|
||||
shade of red) will show red text followed by a stripe with that same
|
||||
color as a backdrop.
|
||||
Each row includes a foreground and background rendition of the given
|
||||
color value. For example a line with =#a60000= (a shade of red) will
|
||||
show a column with a red background combined with a suitable
|
||||
foreground followed by another column with a red foreground against
|
||||
the current theme's background. The intent is to illustrate which
|
||||
values are suitable as a background or foreground.
|
||||
|
||||
The name of the buffer describes the given Modus theme and what the
|
||||
contents are, such as =*modus-operandi-list-colors*= for named colors
|
||||
and ==*modus-operandi-list-mappings*= for the semantic color mappings.
|
||||
contents are, such as =*modus-operandi-list-all*= for the entirety of
|
||||
the palette (named colors as well as semantic color mappings) and
|
||||
==*modus-operandi-list-mappings*= for the mappings only.
|
||||
|
||||
* Use colors from the Modus themes palette
|
||||
:PROPERTIES:
|
||||
|
|
@ -1361,7 +1356,7 @@ value in some other application.
|
|||
:END:
|
||||
|
||||
#+findex: modus-themes-get-color-value
|
||||
The function ~modus-themes-get-color-value~ can be called from Lisp to
|
||||
The fuction ~modus-themes-get-color-value~ can be called from Lisp to
|
||||
return the value of a color from the active Modus theme palette. It
|
||||
takea a =COLOR= argument and an optional =OVERRIDES=. It also accepts
|
||||
a third =THEME= argument, to get the color from the given theme.
|
||||
|
|
@ -2367,7 +2362,7 @@ until version 4.3.0.
|
|||
;; was the default in versions of the Modus themes before 4.4.0
|
||||
(setq modus-themes-common-palette-overrides
|
||||
'((bg-prose-block-contents unspecified)
|
||||
(bg-prose-block-delimiter unspecified)
|
||||
(bg-prose-block-delimiter unspeficied)
|
||||
(fg-prose-block-delimiter fg-dim)))
|
||||
#+end_src
|
||||
|
||||
|
|
@ -2941,7 +2936,7 @@ Reload the theme for changes to take effect.
|
|||
:CUSTOM_ID: h:a5140c9c-18b2-45db-8021-38d0b5074116
|
||||
:END:
|
||||
|
||||
By default, the background of the ~region~ face extends from the
|
||||
By the default, the background of the ~region~ face extends from the
|
||||
end of the line to the edge of the window. To limit it to the end of
|
||||
the line, we need to override the face's =:extend= attribute. Adding
|
||||
this to the Emacs configuration file will suffice:
|
||||
|
|
@ -3365,7 +3360,7 @@ specification of that variable looks like this:
|
|||
|
||||
With the exception of ~org-verbatim~ and ~org-code~ faces, everything else
|
||||
uses the corresponding type of emphasis: a bold typographic weight, or
|
||||
italicized, underlined, and struck through text.
|
||||
italicised, underlined, and struck through text.
|
||||
|
||||
The best way for users to add some extra attributes, such as a
|
||||
foreground color, is to define their own faces and assign them to the
|
||||
|
|
@ -3985,13 +3980,13 @@ styles to use. The following is but a basic attempt to get started.
|
|||
(modus-themes-with-colors
|
||||
(custom-set-faces
|
||||
;; FIXME: What is a "region cursor" and should it differ from the position highlights below?
|
||||
`(meow-region-cursor-1 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0)))
|
||||
`(meow-region-cursor-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1)))
|
||||
`(meow-region-cursor-3 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2)))
|
||||
`(meow-region-cursor-1 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
`(meow-region-cursor-2 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
`(meow-region-cursor-3 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
|
||||
`(meow-position-highlight-number-1 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0)))
|
||||
`(meow-position-highlight-number-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1)))
|
||||
`(meow-position-highlight-number-3 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2))))))
|
||||
`(meow-position-highlight-number-1 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
`(meow-position-highlight-number-2 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
`(meow-position-highlight-number-3 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft)))))))
|
||||
|
||||
(add-hook 'enable-theme-functions #'my-modus-themes-custom-faces)
|
||||
#+end_src
|
||||
|
|
@ -4049,45 +4044,6 @@ the theme level. Users can try this instead:
|
|||
|
||||
[[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][Using a hook at the post-load-theme phase]].
|
||||
|
||||
** DIY Add support for howm
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:7ea8fa66-1cd8-47b0-92b4-9998a3068f85
|
||||
:END:
|
||||
|
||||
The ~howm~ package is a note-taking solution for Emacs. Users can add
|
||||
support for its faces with something like the following.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defun my-modus-themes-custom-faces (&rest _)
|
||||
(modus-themes-with-colors
|
||||
(custom-set-faces
|
||||
`(action-lock-face ((,c :inherit button)))
|
||||
`(howm-mode-keyword-face (( )))
|
||||
`(howm-mode-ref-face ((,c :inherit link)))
|
||||
`(howm-mode-title-face ((,c :inherit modus-themes-heading-0)))
|
||||
`(howm-mode-wiki-face ((,c :inherit link)))
|
||||
`(howm-reminder-deadline-face ((,c :foreground ,date-deadline)))
|
||||
`(howm-reminder-late-deadline-face ((,c :inherit bold :foreground ,date-deadline)))
|
||||
`(howm-reminder-defer-face ((,c :foreground ,date-scheduled)))
|
||||
`(howm-reminder-scheduled-face ((,c :foreground ,date-scheduled)))
|
||||
`(howm-reminder-done-face ((,c :foreground ,prose-done)))
|
||||
`(howm-reminder-todo-face ((,c :foreground ,prose-todo)))
|
||||
`(howm-reminder-normal-face ((,c :foreground ,date-common)))
|
||||
`(howm-reminder-today-face ((,c :inherit bold :foreground ,date-common)))
|
||||
`(howm-reminder-tomorrow-face ((,c :inherit bold :foreground ,date-scheduled)))
|
||||
`(howm-simulate-todo-mode-line-face ((,c :inherit bold)))
|
||||
`(howm-view-empty-face (( )))
|
||||
`(howm-view-hilit-face ((,c :inherit match)))
|
||||
`(howm-view-name-face ((,c :inherit bold)))
|
||||
`(iigrep-counts-face1 ((,c :foreground ,rainbow-1)))
|
||||
`(iigrep-counts-face2 ((,c :foreground ,rainbow-2)))
|
||||
`(iigrep-counts-face3 ((,c :foreground ,rainbow-3)))
|
||||
`(iigrep-counts-face4 ((,c :foreground ,rainbow-4)))
|
||||
`(iigrep-counts-face5 ((,c :foreground ,rainbow-5))))))
|
||||
|
||||
(add-hook 'enable-theme-functions #'my-modus-themes-custom-faces)
|
||||
#+end_src
|
||||
|
||||
** DIY Use a hook at the post-load-theme phase
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24
|
||||
|
|
@ -4207,6 +4163,7 @@ project. The idea is to offer an overview of the known status of all
|
|||
affected face groups. The items with an appended asterisk =*= tend to
|
||||
have lots of extensions, so the "full support" may not be 100% true…
|
||||
|
||||
+ abbrev
|
||||
+ ace-window
|
||||
+ agda2-mode
|
||||
+ all-the-icons
|
||||
|
|
@ -4314,6 +4271,7 @@ have lots of extensions, so the "full support" may not be 100% true…
|
|||
+ hl-fill-column
|
||||
+ hl-line-mode
|
||||
+ hl-todo
|
||||
+ howm
|
||||
+ hydra
|
||||
+ ibuffer
|
||||
+ icomplete
|
||||
|
|
@ -4420,6 +4378,7 @@ have lots of extensions, so the "full support" may not be 100% true…
|
|||
+ sly
|
||||
+ smart-mode-line
|
||||
+ smerge
|
||||
+ spacious-padding
|
||||
+ speedbar
|
||||
+ spell-fu
|
||||
+ stripes
|
||||
|
|
@ -4435,8 +4394,10 @@ have lots of extensions, so the "full support" may not be 100% true…
|
|||
+ terraform-mode
|
||||
+ term
|
||||
+ textsec
|
||||
+ tldr
|
||||
+ transient (pop-up windows such as Magit's)
|
||||
+ trashed
|
||||
+ treemacs
|
||||
+ tree-sitter
|
||||
+ tty-menu
|
||||
+ tuareg
|
||||
|
|
@ -5407,7 +5368,7 @@ more effective than trying to do the same with either red or blue (the
|
|||
latter is the least effective in that regard).
|
||||
|
||||
When we need to work with several colors, it is always better to have
|
||||
sufficient maneuvering space, especially since we cannot pick arbitrary
|
||||
sufficient manoeuvring space, especially since we cannot pick arbitrary
|
||||
colors but only those that satisfy the accessibility objectives of the
|
||||
themes.
|
||||
|
||||
|
|
@ -5513,7 +5474,7 @@ it is already understood that one must follow the indicator or headline
|
|||
to view its contents and (ii) underlining everything would make the
|
||||
interface virtually unusable.
|
||||
|
||||
Again, one must exercise judgment in order to avoid discrimination,
|
||||
Again, one must exercise judgement in order to avoid discrimination,
|
||||
where "discrimination" refers to:
|
||||
|
||||
+ The treatment of substantially different magnitudes as if they were of
|
||||
|
|
@ -5587,7 +5548,7 @@ the themes, which is partially fleshed out in this manual.
|
|||
|
||||
With regard to the artistic aspect (where "art" qua skill may amount to
|
||||
an imprecise science), there is no hard-and-fast rule in effect as it
|
||||
requires one to exercise discretion and make decisions based on
|
||||
requires one to exercize discretion and make decisions based on
|
||||
context-dependent information or constraints. As is true with most
|
||||
things in life, when in doubt, do not cling on to the letter of the law
|
||||
but try to understand its spirit.
|
||||
|
|
@ -5736,14 +5697,14 @@ The Modus themes are a collective effort. Every bit of work matters.
|
|||
Contovounesios, Björn Lindström, Carlo Zancanaro, Christian Tietze,
|
||||
Daniel Mendler, David Edmondson, Eli Zaretskii, Fritz Grabo, Gautier
|
||||
Ponsinet, Illia Ostapyshyn, Jared Finder, Kévin Le Gouguec, Koen van
|
||||
Greevenbroek, Kostadin Ninev, Madhavan Krishnan, Manuel Giraud,
|
||||
Markus Beppler, Matthew Stevenson, Mauro Aranda, Nacho Barrientos,
|
||||
Niall Dooley, Nicolas De Jaeghere, Paul David, Pavel Novichkov,
|
||||
Philip Kaludercic, Pierre Téchoueyres, Rudolf Adamkovič, Sergey
|
||||
Nichiporchik, Shreyas Ragavan, Stefan Kangas, Stephen Berman,
|
||||
Stephen Gildea, Steve Downey, Thanos Apollo, Tomasz Hołubowicz,
|
||||
Utkarsh Singh, Vincent Murphy, Xinglu Chen, Yuanchen Xie, fluentpwn,
|
||||
okamsn.
|
||||
Greevenbroek, Kostadin Ninev, Leilei332, Madhavan Krishnan, Manuel
|
||||
Giraud, Markus Beppler, Matthew Stevenson, Mauro Aranda, Nacho
|
||||
Barrientos, Niall Dooley, Nicolas De Jaeghere, Paul David, Pavel
|
||||
Novichkov, Philip Kaludercic, Pierre Téchoueyres, Rahul M.
|
||||
{{{space()}}} Juliato, Rudolf Adamkovič, Sergey Nichiporchik,
|
||||
Shreyas Ragavan, Stefan Kangas, Stephen Berman, Stephen Gildea,
|
||||
Steve Downey, Thanos Apollo, Tomasz Hołubowicz, Utkarsh Singh,
|
||||
Vincent Murphy, Xinglu Chen, Yuanchen Xie, fluentpwn, okamsn.
|
||||
|
||||
+ Ideas and user feedback :: Aaron Jensen, Adam Porter, Adam Spiers,
|
||||
Adrian Manea, Aleksei Pirogov, Alex Griffin, Alex Koen, Alex
|
||||
|
|
@ -5779,7 +5740,8 @@ The Modus themes are a collective effort. Every bit of work matters.
|
|||
Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer Emacs, TheBlob42,
|
||||
TitusMu, Trey, ZharMeny, bepolymathe, bit9tream, bangedorrunt,
|
||||
derek-upham, doolio, fleimgruber, gitrj95, iSeeU, jixiuf, ltmsyvag,
|
||||
okamsn, pRot0ta1p, shipmints, soaringbird, tumashu, wakamenod.
|
||||
okamsn, pedro-nonfree, pRot0ta1p, shipmints, soaringbird, tumashu,
|
||||
wakamenod.
|
||||
|
||||
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
|
||||
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core
|
||||
|
|
@ -5812,7 +5774,7 @@ All errors are my own.
|
|||
Version 1.3, 3 November 2008
|
||||
|
||||
|
||||
Copyright (C) 2000-2002, 2007-2008, 2025 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-operandi-deuteranopia-theme.el --- Deuteranopia-optimized theme with a white background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -167,15 +167,11 @@ standard)."
|
|||
|
||||
(bg-completion "#c0deff")
|
||||
(bg-hover "#b2e4dc")
|
||||
(bg-hover-secondary "#f5d0a0")
|
||||
(bg-hover-secondary "#e5d7a0")
|
||||
(bg-hl-line "#dae5ec")
|
||||
(bg-region "#bdbdbd")
|
||||
(fg-region "#000000")
|
||||
|
||||
(bg-char-0 "#7feaff")
|
||||
(bg-char-1 "#ffaaff")
|
||||
(bg-char-2 "#dff000")
|
||||
|
||||
(bg-mode-line-active "#d0d6ff")
|
||||
(fg-mode-line-active "#0f0f0f")
|
||||
(border-mode-line-active "#4f4f74")
|
||||
|
|
@ -216,13 +212,6 @@ standard)."
|
|||
|
||||
(bg-diff-context "#f3f3f3")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#5fcfff")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#efd3f5")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -257,17 +246,17 @@ standard)."
|
|||
;;;; Code mappings
|
||||
|
||||
(bracket fg-main)
|
||||
(builtin magenta-warmer)
|
||||
(builtin yellow)
|
||||
(comment yellow-cooler)
|
||||
(constant blue-cooler)
|
||||
(constant blue-faint)
|
||||
(delimiter fg-main)
|
||||
(docmarkup magenta-faint)
|
||||
(docstring green-faint)
|
||||
(fnname magenta)
|
||||
(keyword magenta-cooler)
|
||||
(fnname yellow-warmer)
|
||||
(keyword blue-cooler)
|
||||
(number fg-main)
|
||||
(operator fg-main)
|
||||
(preprocessor red-cooler)
|
||||
(preprocessor magenta-cooler)
|
||||
(punctuation fg-main)
|
||||
(rx-backslash blue-cooler)
|
||||
(rx-construct yellow-cooler)
|
||||
|
|
@ -275,12 +264,19 @@ standard)."
|
|||
(type cyan-cooler)
|
||||
(variable cyan)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-yellow-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 blue)
|
||||
(accent-0 blue-warmer)
|
||||
(accent-1 yellow-warmer)
|
||||
(accent-2 cyan)
|
||||
(accent-3 magenta-cooler)
|
||||
(accent-3 yellow-cooler)
|
||||
|
||||
;;;; Button mappings
|
||||
|
||||
|
|
@ -291,10 +287,10 @@ standard)."
|
|||
|
||||
;;;; Completion mappings
|
||||
|
||||
(fg-completion-match-0 blue)
|
||||
(fg-completion-match-0 blue-warmer)
|
||||
(fg-completion-match-1 yellow-warmer)
|
||||
(fg-completion-match-2 cyan)
|
||||
(fg-completion-match-3 magenta-cooler)
|
||||
(fg-completion-match-3 yellow-cooler)
|
||||
(bg-completion-match-0 unspecified)
|
||||
(bg-completion-match-1 unspecified)
|
||||
(bg-completion-match-2 unspecified)
|
||||
|
|
@ -313,7 +309,7 @@ standard)."
|
|||
(date-scheduled yellow-cooler)
|
||||
(date-scheduled-subtle yellow-faint)
|
||||
(date-weekday cyan)
|
||||
(date-weekend magenta)
|
||||
(date-weekend blue-cooler)
|
||||
|
||||
;;;; Line number mappings
|
||||
|
||||
|
|
@ -374,7 +370,7 @@ standard)."
|
|||
(fg-prose-macro magenta-cooler)
|
||||
|
||||
(bg-prose-verbatim unspecified)
|
||||
(fg-prose-verbatim magenta-warmer)
|
||||
(fg-prose-verbatim yellow)
|
||||
|
||||
(prose-done blue)
|
||||
(prose-todo yellow-warmer)
|
||||
|
|
@ -385,7 +381,7 @@ standard)."
|
|||
(prose-table fg-alt)
|
||||
(prose-table-formula yellow-warmer)
|
||||
|
||||
(prose-tag magenta-faint)
|
||||
(prose-tag fg-alt)
|
||||
|
||||
;;;; Rainbow mappings
|
||||
|
||||
|
|
@ -403,7 +399,7 @@ standard)."
|
|||
|
||||
(bg-search-current bg-yellow-intense)
|
||||
(bg-search-lazy bg-blue-intense)
|
||||
(bg-search-replace bg-magenta-intense)
|
||||
(bg-search-replace bg-yellow-intense)
|
||||
|
||||
(bg-search-rx-group-0 bg-cyan-intense)
|
||||
(bg-search-rx-group-1 bg-magenta-intense)
|
||||
|
|
@ -463,11 +459,11 @@ standard)."
|
|||
(fg-heading-0 cyan-cooler)
|
||||
(fg-heading-1 fg-main)
|
||||
(fg-heading-2 yellow-faint)
|
||||
(fg-heading-3 fg-alt)
|
||||
(fg-heading-4 magenta)
|
||||
(fg-heading-5 green-faint)
|
||||
(fg-heading-6 red-faint)
|
||||
(fg-heading-7 cyan-warmer)
|
||||
(fg-heading-3 blue-faint)
|
||||
(fg-heading-4 green-faint)
|
||||
(fg-heading-5 magenta-cooler)
|
||||
(fg-heading-6 yellow-cooler)
|
||||
(fg-heading-7 cyan)
|
||||
(fg-heading-8 fg-dim)
|
||||
|
||||
(bg-heading-0 unspecified)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-operandi-theme.el --- Elegant, highly legible theme with a white background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -170,10 +170,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(bg-region "#bdbdbd")
|
||||
(fg-region "#000000")
|
||||
|
||||
(bg-char-0 "#7feaff")
|
||||
(bg-char-1 "#ffaaff")
|
||||
(bg-char-2 "#dff000")
|
||||
|
||||
(bg-mode-line-active "#c8c8c8")
|
||||
(fg-mode-line-active "#000000")
|
||||
(border-mode-line-active "#5a5a5a")
|
||||
|
|
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(bg-diff-context "#f3f3f3")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#5fcfff")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#efd3f5")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -273,6 +262,13 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(type cyan-cooler)
|
||||
(variable cyan)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-yellow-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 blue)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-operandi-tinted-theme.el --- Elegant, highly legible theme with a light ocher background -*- lexical-binding:t -*-
|
||||
;;; modus-operandi-tinted-theme.el --- Elegant, highly legible theme with a light ochre background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
;;;###theme-autoload
|
||||
(deftheme modus-operandi-tinted
|
||||
"Elegant, highly legible theme with a light ocher background.
|
||||
"Elegant, highly legible theme with a light ochre background.
|
||||
Conforms with the highest legibility standard for color contrast
|
||||
between background and foreground in any given piece of text,
|
||||
which corresponds to a minimum contrast in relative luminance of
|
||||
|
|
@ -73,18 +73,18 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(red-cooler "#a0132f")
|
||||
(red-faint "#7f0000")
|
||||
(red-intense "#d00000")
|
||||
(green "#006800")
|
||||
(green-warmer "#316500")
|
||||
(green-cooler "#00663f")
|
||||
(green "#006300")
|
||||
(green-warmer "#306010")
|
||||
(green-cooler "#00603f")
|
||||
(green-faint "#2a5045")
|
||||
(green-intense "#008900")
|
||||
(yellow "#6f5500")
|
||||
(yellow-warmer "#884900")
|
||||
(yellow-cooler "#7a4f2f")
|
||||
(yellow-faint "#624416")
|
||||
(yellow "#6d5000")
|
||||
(yellow-warmer "#894000")
|
||||
(yellow-cooler "#602938")
|
||||
(yellow-faint "#574316")
|
||||
(yellow-intense "#808000")
|
||||
(blue "#0031a9")
|
||||
(blue-warmer "#3548cf")
|
||||
(blue-warmer "#3546c2")
|
||||
(blue-cooler "#0000b0")
|
||||
(blue-faint "#003497")
|
||||
(blue-intense "#0000ff")
|
||||
|
|
@ -93,10 +93,10 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(magenta-cooler "#531ab6")
|
||||
(magenta-faint "#7c318f")
|
||||
(magenta-intense "#dd22dd")
|
||||
(cyan "#005e8b")
|
||||
(cyan-warmer "#3f578f")
|
||||
(cyan "#00598b")
|
||||
(cyan-warmer "#32548f")
|
||||
(cyan-cooler "#005f5f")
|
||||
(cyan-faint "#005077")
|
||||
(cyan-faint "#304463")
|
||||
(cyan-intense "#008899")
|
||||
|
||||
;;; Uncommon accent foregrounds
|
||||
|
|
@ -165,15 +165,11 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(bg-completion "#f0c1cf")
|
||||
(bg-hover "#b2e4dc")
|
||||
(bg-hover-secondary "#f5d0a0")
|
||||
(bg-hover-secondary "#dfe09f")
|
||||
(bg-hl-line "#f1d5d0")
|
||||
(bg-region "#c2bcb5")
|
||||
(fg-region "#000000")
|
||||
|
||||
(bg-char-0 "#7feaff")
|
||||
(bg-char-1 "#ffaaff")
|
||||
(bg-char-2 "#dff000")
|
||||
|
||||
(bg-mode-line-active "#cab9b2")
|
||||
(fg-mode-line-active "#000000")
|
||||
(border-mode-line-active "#545454")
|
||||
|
|
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(bg-diff-context "#efe9df")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#7fdfcf")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#efd3f5")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -230,11 +219,11 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(keybind red)
|
||||
(name magenta)
|
||||
(identifier yellow-cooler)
|
||||
(identifier yellow-faint)
|
||||
|
||||
(err red)
|
||||
(warning yellow-warmer)
|
||||
(info cyan-cooler)
|
||||
(warning yellow)
|
||||
(info green)
|
||||
|
||||
(underline-err red-intense)
|
||||
(underline-warning yellow-intense)
|
||||
|
|
@ -255,30 +244,37 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
;;;; Code mappings
|
||||
|
||||
(bracket fg-main)
|
||||
(builtin magenta-warmer)
|
||||
(builtin magenta)
|
||||
(comment red-faint)
|
||||
(constant blue-cooler)
|
||||
(constant magenta-cooler)
|
||||
(delimiter fg-main)
|
||||
(docmarkup magenta-faint)
|
||||
(docstring green-faint)
|
||||
(fnname magenta)
|
||||
(keyword magenta-cooler)
|
||||
(docstring cyan-faint)
|
||||
(fnname yellow-cooler)
|
||||
(keyword blue)
|
||||
(number fg-main)
|
||||
(operator fg-main)
|
||||
(preprocessor red-cooler)
|
||||
(preprocessor yellow-warmer)
|
||||
(punctuation fg-main)
|
||||
(rx-backslash magenta)
|
||||
(rx-construct green-cooler)
|
||||
(string blue-warmer)
|
||||
(type cyan-cooler)
|
||||
(variable cyan)
|
||||
(rx-backslash magenta-warmer)
|
||||
(rx-construct magenta-cooler)
|
||||
(string cyan)
|
||||
(type green-warmer)
|
||||
(variable green-cooler)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-yellow-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 blue)
|
||||
(accent-1 magenta-warmer)
|
||||
(accent-2 cyan)
|
||||
(accent-3 red)
|
||||
(accent-0 red-cooler)
|
||||
(accent-1 cyan)
|
||||
(accent-2 magenta-cooler)
|
||||
(accent-3 yellow-warmer)
|
||||
|
||||
;;;; Button mappings
|
||||
|
||||
|
|
@ -336,14 +332,14 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
;;;; Mail mappings
|
||||
|
||||
(mail-cite-0 blue-faint)
|
||||
(mail-cite-1 yellow-warmer)
|
||||
(mail-cite-2 cyan-cooler)
|
||||
(mail-cite-0 cyan-cooler)
|
||||
(mail-cite-1 yellow)
|
||||
(mail-cite-2 green-warmer)
|
||||
(mail-cite-3 red-cooler)
|
||||
(mail-part cyan)
|
||||
(mail-recipient magenta-cooler)
|
||||
(mail-part magenta-cooler)
|
||||
(mail-recipient blue-warmer)
|
||||
(mail-subject magenta-warmer)
|
||||
(mail-other magenta-faint)
|
||||
(mail-other magenta)
|
||||
|
||||
;;;; Mark mappings
|
||||
|
||||
|
|
@ -356,7 +352,7 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
;;;; Prompt mappings
|
||||
|
||||
(fg-prompt cyan-cooler)
|
||||
(fg-prompt green-cooler)
|
||||
(bg-prompt unspecified)
|
||||
|
||||
;;;; Prose mappings
|
||||
|
|
@ -366,13 +362,13 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(bg-prose-block-contents bg-dim)
|
||||
|
||||
(bg-prose-code unspecified)
|
||||
(fg-prose-code cyan-cooler)
|
||||
(fg-prose-code green-cooler)
|
||||
|
||||
(bg-prose-macro unspecified)
|
||||
(fg-prose-macro magenta-cooler)
|
||||
(fg-prose-macro blue-cooler)
|
||||
|
||||
(bg-prose-verbatim unspecified)
|
||||
(fg-prose-verbatim magenta-warmer)
|
||||
(fg-prose-verbatim yellow-warmer)
|
||||
|
||||
(prose-done green)
|
||||
(prose-todo red)
|
||||
|
|
@ -458,7 +454,7 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
;;;; Heading mappings
|
||||
|
||||
(fg-heading-0 cyan-cooler)
|
||||
(fg-heading-0 green-cooler)
|
||||
(fg-heading-1 fg-main)
|
||||
(fg-heading-2 yellow-faint)
|
||||
(fg-heading-3 fg-alt)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-operandi-tritanopia-theme.el --- Tritanopia-optimized theme with a white background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -63,7 +63,7 @@ standard)."
|
|||
(bg-dim "#f2f2f2")
|
||||
(fg-main "#000000")
|
||||
(fg-dim "#595959")
|
||||
(fg-alt "#193668")
|
||||
(fg-alt "#024960")
|
||||
(bg-active "#c4c4c4")
|
||||
(bg-inactive "#e0e0e0")
|
||||
(border "#9f9f9f")
|
||||
|
|
@ -167,15 +167,11 @@ standard)."
|
|||
|
||||
(bg-completion "#afdfef")
|
||||
(bg-hover "#ffafbc")
|
||||
(bg-hover-secondary "#9fdfff")
|
||||
(bg-hover-secondary "#abdfdd")
|
||||
(bg-hl-line "#dfeaec")
|
||||
(bg-region "#bdbdbd")
|
||||
(fg-region "#000000")
|
||||
|
||||
(bg-char-0 "#ff908f")
|
||||
(bg-char-1 "#bfbfff")
|
||||
(bg-char-2 "#5fcfdf")
|
||||
|
||||
(bg-mode-line-active "#afe0f2")
|
||||
(fg-mode-line-active "#0f0f0f")
|
||||
(border-mode-line-active "#2f4f44")
|
||||
|
|
@ -216,13 +212,6 @@ standard)."
|
|||
|
||||
(bg-diff-context "#f3f3f3")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#5fcfff")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#efd3f5")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -275,6 +264,13 @@ standard)."
|
|||
(type blue-warmer)
|
||||
(variable cyan-cooler)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-red-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 cyan)
|
||||
|
|
@ -385,7 +381,7 @@ standard)."
|
|||
(prose-table fg-alt)
|
||||
(prose-table-formula red-cooler)
|
||||
|
||||
(prose-tag magenta-faint)
|
||||
(prose-tag fg-alt)
|
||||
|
||||
;;;; Rainbow mappings
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
;;; modus-themes.el --- Elegant, highly legible and customizable themes -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; URL: https://github.com/protesilaos/modus-themes
|
||||
;; Version: 4.6.0
|
||||
;; Package-Requires: ((emacs "27.1"))
|
||||
;; Version: 4.7.0
|
||||
;; Package-Requires: ((emacs "28.1"))
|
||||
;; Keywords: faces, theme, accessibility
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
|
@ -309,11 +309,12 @@ If the value is nil or otherwise does not specify two valid Modus
|
|||
themes, the command `modus-themes-toggle' reverts to selecting a
|
||||
theme from the list of available Modus themes. In effect, it is
|
||||
the same as using the command `modus-themes-select'."
|
||||
:type `(choice
|
||||
(const :tag "No toggle" nil)
|
||||
(list :tag "Pick two themes to toggle between"
|
||||
(choice :tag "Theme one of two" ,@(mapcar (lambda (theme) (list 'const theme)) modus-themes-items))
|
||||
(choice :tag "Theme two of two" ,@(mapcar (lambda (theme) (list 'const theme)) modus-themes-items))))
|
||||
:type (let ((themes (mapcar (lambda (theme) (list 'const theme)) modus-themes-items)))
|
||||
`(choice
|
||||
(const :tag "No toggle" nil)
|
||||
(list :tag "Pick two themes to toggle between"
|
||||
(choice :tag "Theme one of two" ,@themes)
|
||||
(choice :tag "Theme two of two" ,@themes))))
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:group 'modus-themes)
|
||||
|
|
@ -327,7 +328,8 @@ the same as using the command `modus-themes-select'."
|
|||
:version "31.1"
|
||||
:group 'modus-themes)
|
||||
|
||||
(defvaralias 'modus-themes-post-load-hook 'modus-themes-after-load-theme-hook)
|
||||
(defvaralias 'modus-themes-post-load-hook 'modus-themes-after-load-theme-hook
|
||||
"Alias for `modus-themes-after-load-theme-hook'.")
|
||||
|
||||
(defcustom modus-themes-after-load-theme-hook nil
|
||||
"Hook that runs after loading a Modus theme.
|
||||
|
|
@ -1153,7 +1155,7 @@ This function is used in the macros `modus-themes-theme',
|
|||
(eq value 'unspecified))
|
||||
value)
|
||||
((and (symbolp value)
|
||||
(memq value (mapcar #'car palette)))
|
||||
value)
|
||||
(modus-themes--retrieve-palette-value value palette))
|
||||
(t
|
||||
'unspecified))))
|
||||
|
|
@ -1209,15 +1211,15 @@ symbol, which is safe when used as a face attribute's value."
|
|||
"Render `modus-themes--list-known-themes' as completion with theme category."
|
||||
(modus-themes--completion-table 'theme (modus-themes--list-known-themes)))
|
||||
|
||||
(defun modus-themes--select-prompt ()
|
||||
"Minibuffer prompt to select a Modus theme."
|
||||
(defun modus-themes--select-prompt (&optional prompt)
|
||||
"Minibuffer prompt to select a Modus theme.
|
||||
With optional PROMPT string, use it. Else use a generic prompt."
|
||||
(let ((completion-extra-properties `(:annotation-function ,#'modus-themes--annotate-theme)))
|
||||
(intern
|
||||
(completing-read
|
||||
"Select Modus theme: "
|
||||
(or prompt "Select Modus theme: ")
|
||||
(modus-themes--completion-table-candidates)
|
||||
nil t nil
|
||||
'modus-themes--select-theme-history))))
|
||||
nil t nil 'modus-themes--select-theme-history))))
|
||||
|
||||
;;;###autoload
|
||||
(defun modus-themes-select (theme)
|
||||
|
|
@ -1231,13 +1233,13 @@ Disable other themes per `modus-themes-disable-other-themes'."
|
|||
|
||||
(defun modus-themes--toggle-theme-p ()
|
||||
"Return non-nil if `modus-themes-to-toggle' are valid."
|
||||
(mapc
|
||||
(lambda (theme)
|
||||
(if (or (memq theme modus-themes-items)
|
||||
(memq theme (modus-themes--list-known-themes)))
|
||||
theme
|
||||
(user-error "`%s' is not part of `modus-themes-items'" theme)))
|
||||
modus-themes-to-toggle))
|
||||
(condition-case nil
|
||||
(dolist (theme modus-themes-to-toggle)
|
||||
(or (memq theme modus-themes-items)
|
||||
(memq theme (modus-themes--list-known-themes))
|
||||
(error "`%s' is not part of `modus-themes-items'" theme)))
|
||||
(error nil)
|
||||
(:success modus-themes-to-toggle)))
|
||||
|
||||
;;;###autoload
|
||||
(defun modus-themes-toggle ()
|
||||
|
|
@ -1294,87 +1296,88 @@ the list becomes the last. Do not modify THEMES in the process."
|
|||
|
||||
;;;;; Preview a theme palette
|
||||
|
||||
(defun modus-themes--list-colors-render (buffer theme &optional mappings &rest _)
|
||||
"Render colors in BUFFER from THEME for `modus-themes-list-colors'.
|
||||
Optional MAPPINGS changes the output to only list the semantic
|
||||
color mappings of the palette, instead of its named colors."
|
||||
(defun modus-themes--list-colors-get-mappings (palette)
|
||||
"Get the semantic palette entries in PALETTE.
|
||||
PALETTE is the value of a variable like `modus-operandi-palette'."
|
||||
(seq-remove
|
||||
(lambda (cell)
|
||||
(stringp (cadr cell)))
|
||||
palette))
|
||||
|
||||
(defun modus-themes--list-colors-tabulated (theme &optional mappings)
|
||||
"Return a data structure of THEME palette or MAPPINGS for tabulated list."
|
||||
(let* ((current-palette (modus-themes--palette-value theme mappings))
|
||||
(palette (if mappings
|
||||
(seq-remove (lambda (cell)
|
||||
(stringp (cadr cell)))
|
||||
current-palette)
|
||||
current-palette))
|
||||
(current-buffer buffer)
|
||||
(current-theme theme))
|
||||
(with-help-window buffer
|
||||
(with-current-buffer standard-output
|
||||
(erase-buffer)
|
||||
(when (<= (display-color-cells) 256)
|
||||
(insert (concat "Your display terminal may not render all color previews!\n"
|
||||
"It seems to only support <= 256 colors.\n\n"))
|
||||
(put-text-property (point-min) (point) 'face 'warning))
|
||||
;; We need this to properly render the first line.
|
||||
(insert " ")
|
||||
(dolist (cell palette)
|
||||
(let* ((name (car cell))
|
||||
(color (modus-themes-get-color-value name mappings theme))
|
||||
(pad (make-string 10 ?\s))
|
||||
(fg (if (eq color 'unspecified)
|
||||
(progn
|
||||
(readable-foreground-color (modus-themes-get-color-value 'bg-main nil theme))
|
||||
(setq pad (make-string 6 ?\s)))
|
||||
(readable-foreground-color color))))
|
||||
(let ((old-point (point)))
|
||||
(insert (format "%s %s" color pad))
|
||||
(put-text-property old-point (point) 'face `( :foreground ,color)))
|
||||
(let ((old-point (point)))
|
||||
(insert (format " %s %s %s\n" color pad name))
|
||||
(put-text-property old-point (point)
|
||||
'face `( :background ,color
|
||||
:foreground ,fg
|
||||
:extend t)))
|
||||
;; We need this to properly render the last line.
|
||||
(insert " ")))
|
||||
(setq-local revert-buffer-function
|
||||
(lambda (_ignore-auto _noconfirm)
|
||||
(modus-themes--list-colors-render current-buffer current-theme mappings)))))))
|
||||
(modus-themes--list-colors-get-mappings current-palette)
|
||||
current-palette)))
|
||||
(mapcar (lambda (cell)
|
||||
(pcase-let* ((`(,name ,value) cell)
|
||||
(name-string (format "%s" name))
|
||||
(value-string (format "%s" value))
|
||||
(value-string-padded (string-pad value-string 30))
|
||||
(color (modus-themes-get-color-value name mappings theme))) ; resolve a semantic mapping
|
||||
(list name
|
||||
(vector
|
||||
(if (and (symbolp value)
|
||||
(not (eq value 'unspecified)))
|
||||
"Yes"
|
||||
"")
|
||||
name-string
|
||||
(propertize value-string 'face `( :foreground ,color))
|
||||
(propertize value-string-padded 'face (list :background color
|
||||
:foreground (if (string= color "unspecified")
|
||||
(readable-foreground-color (modus-themes-get-color-value 'bg-main nil theme))
|
||||
(readable-foreground-color color))))))))
|
||||
palette)))
|
||||
|
||||
(defvar modus-themes--list-colors-prompt-history '()
|
||||
"Minibuffer history for `modus-themes--list-colors-prompt'.")
|
||||
(defvar modus-themes-current-preview nil)
|
||||
(defvar modus-themes-current-preview-show-mappings nil)
|
||||
|
||||
(defun modus-themes--list-colors-prompt ()
|
||||
"Prompt for Modus theme.
|
||||
Helper function for `modus-themes-list-colors'."
|
||||
(let ((def (format "%s" (modus-themes--current-theme)))
|
||||
(completion-extra-properties `(:annotation-function ,#'modus-themes--annotate-theme)))
|
||||
(completing-read
|
||||
(format "Use palette from theme [%s]: " def)
|
||||
(modus-themes--completion-table-candidates)
|
||||
nil t nil
|
||||
'modus-themes--list-colors-prompt-history def)))
|
||||
(defun modus-themes--set-tabulated-entries ()
|
||||
"Set the value of `tabulated-list-entries' with palette entries."
|
||||
(setq-local tabulated-list-entries
|
||||
(modus-themes--list-colors-tabulated modus-themes-current-preview modus-themes-current-preview-show-mappings)))
|
||||
|
||||
(defun modus-themes-list-colors (theme &optional mappings)
|
||||
"Preview named colors of the Modus THEME of choice.
|
||||
With optional prefix argument for MAPPINGS preview the semantic
|
||||
color mappings instead of the named colors."
|
||||
(interactive (list (intern (modus-themes--list-colors-prompt)) current-prefix-arg))
|
||||
(modus-themes--list-colors-render
|
||||
(format (if mappings "*%s-list-mappings*" "*%s-list-colors*") theme)
|
||||
theme
|
||||
mappings))
|
||||
"Preview the palette of the Modus THEME of choice.
|
||||
With optional prefix argument for MAPPINGS preview only the semantic
|
||||
color mappings instead of the complete palette."
|
||||
(interactive
|
||||
(let ((prompt (if current-prefix-arg
|
||||
"Preview palette mappings of THEME: "
|
||||
"Preview palette of THEME: ")))
|
||||
(list
|
||||
(modus-themes--select-prompt prompt)
|
||||
current-prefix-arg)))
|
||||
(let ((buffer (get-buffer-create (format (if mappings "*%s-list-mappings*" "*%s-list-all*") theme))))
|
||||
(with-current-buffer buffer
|
||||
(let ((modus-themes-current-preview theme)
|
||||
(modus-themes-current-preview-show-mappings mappings))
|
||||
(modus-themes-preview-mode)))
|
||||
(pop-to-buffer buffer)))
|
||||
|
||||
(defalias 'modus-themes-preview-colors 'modus-themes-list-colors
|
||||
"Alias of `modus-themes-list-colors'.")
|
||||
"Alias for `modus-themes-list-colors'.")
|
||||
|
||||
(defun modus-themes-list-colors-current (&optional mappings)
|
||||
"Call `modus-themes-list-colors' for the current Modus theme.
|
||||
Optional prefix argument MAPPINGS has the same meaning as for
|
||||
`modus-themes-list-colors'."
|
||||
"Like `modus-themes-list-colors' with optional MAPPINGS for the current theme."
|
||||
(interactive "P")
|
||||
(modus-themes-list-colors (modus-themes--current-theme) mappings))
|
||||
|
||||
(defalias 'modus-themes-preview-colors-current 'modus-themes-list-colors-current
|
||||
"Alias of `modus-themes-list-colors-current'.")
|
||||
"Alias for `modus-themes-list-colors-current'.")
|
||||
|
||||
(define-derived-mode modus-themes-preview-mode tabulated-list-mode "Modus palette"
|
||||
"Major mode to display a Modus themes palette."
|
||||
:interactive nil
|
||||
(setq-local tabulated-list-format
|
||||
[("Mapping?" 10 t)
|
||||
("Symbol name" 30 t)
|
||||
("As foreground" 30 t)
|
||||
("As background" 0 t)])
|
||||
(modus-themes--set-tabulated-entries)
|
||||
(tabulated-list-init-header)
|
||||
(tabulated-list-print))
|
||||
|
||||
|
||||
|
||||
|
|
@ -1449,7 +1452,7 @@ color that is combined with FG-FOR-BG."
|
|||
:foreground fg
|
||||
:weight
|
||||
;; If we have `bold' specifically, we inherit the face of
|
||||
;; the same name. This allows the user to customize that
|
||||
;; the same name. This allows the user to customise that
|
||||
;; face, such as to change its font family.
|
||||
(if (and weight (not (eq weight 'bold)))
|
||||
weight
|
||||
|
|
@ -1670,6 +1673,7 @@ FG and BG are the main colors."
|
|||
`(tool-bar ((,c :background ,bg-dim :foreground ,fg-main)))
|
||||
`(vertical-border ((,c :foreground ,border)))
|
||||
;;;;; basic and/or ungrouped styles
|
||||
`(abbrev-table-name ((,c :inherit bold)))
|
||||
`(appt-notification ((,c :inherit bold :foreground ,modeline-err)))
|
||||
`(blink-matching-paren-offscreen ((,c :background ,bg-paren-match)))
|
||||
`(bold ((,c :weight bold)))
|
||||
|
|
@ -1720,6 +1724,25 @@ FG and BG are the main colors."
|
|||
`(link ((,c :inherit button)))
|
||||
`(link-visited ((,c :background ,bg-link-visited :foreground ,fg-link-visited :underline ,underline-link-visited)))
|
||||
`(tooltip ((,c :background ,bg-active :foreground ,fg-main)))
|
||||
;;;;; adoc-mode
|
||||
`(adoc-code-face ((,c :inherit font-lock-constant-face)))
|
||||
`(adoc-command-face ((,c :inherit modus-themes-prose-macro)))
|
||||
`(adoc-complex-replacement-face ((,c :background ,bg-magenta-subtle :foreground ,magenta)))
|
||||
`(adoc-emphasis-face ((t (:inherit bold))))
|
||||
`(adoc-gen-face ((,c :foreground ,blue)))
|
||||
`(adoc-meta-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata)))
|
||||
`(adoc-meta-hide-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata)))
|
||||
`(adoc-replacement-face ((,c :inherit font-lock-escape-face)))
|
||||
`(adoc-secondary-text-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata-value)))
|
||||
`(adoc-table-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-table)))
|
||||
`(adoc-title-0-face ((,c :inherit modus-themes-heading-0)))
|
||||
`(adoc-title-1-face ((,c :inherit modus-themes-heading-1)))
|
||||
`(adoc-title-2-face ((,c :inherit modus-themes-heading-2)))
|
||||
`(adoc-title-3-face ((,c :inherit modus-themes-heading-3)))
|
||||
`(adoc-title-4-face ((,c :inherit modus-themes-heading-4)))
|
||||
`(adoc-title-5-face ((,c :inherit modus-themes-heading-5)))
|
||||
`(adoc-typewriter-face ((,c :inherit modus-themes-prose-verbatim)))
|
||||
`(adoc-verbatim-face ((,c :inherit modus-themes-prose-verbatim)))
|
||||
;;;;; agda2-mode
|
||||
`(agda2-highlight-bound-variable-face ((,c :inherit font-lock-variable-name-face)))
|
||||
`(agda2-highlight-catchall-clause-face ((,c :background ,bg-inactive)))
|
||||
|
|
@ -1849,13 +1872,14 @@ FG and BG are the main colors."
|
|||
`(TeX-error-description-warning ((,c :inherit warning)))
|
||||
;;;;; auto-dim-other-buffers
|
||||
`(auto-dim-other-buffers-face ((,c :background ,bg-inactive)))
|
||||
`(auto-dim-other-buffers-hide-face ((,c :foreground ,bg-inactive :background ,bg-inactive)))
|
||||
;;;;; avy
|
||||
`(avy-background-face ((,c :background ,bg-dim :foreground ,fg-dim :extend t)))
|
||||
`(avy-goto-char-timer-face ((,c :inherit bold :background ,bg-active)))
|
||||
`(avy-lead-face ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0)))
|
||||
`(avy-lead-face-0 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1)))
|
||||
`(avy-lead-face-1 ((,c :inherit modus-themes-reset-soft :background ,bg-inactive)))
|
||||
`(avy-lead-face-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2)))
|
||||
`(avy-goto-char-timer-face ((,c :inherit (bold modus-themes-search-lazy modus-themes-reset-soft))))
|
||||
`(avy-lead-face ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
`(avy-lead-face-0 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
`(avy-lead-face-1 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
`(avy-lead-face-2 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
|
||||
;;;;; aw (ace-window)
|
||||
`(aw-background-face ((,c :foreground "gray50")))
|
||||
`(aw-key-face ((,c :inherit modus-themes-key-binding)))
|
||||
|
|
@ -2028,8 +2052,8 @@ FG and BG are the main colors."
|
|||
;;;;; corfu-candidate-overlay
|
||||
`(corfu-candidate-overlay-face ((t :inherit shadow)))
|
||||
;;;;; corfu-quick
|
||||
`(corfu-quick1 ((,c :inherit bold :background ,bg-char-0)))
|
||||
`(corfu-quick2 ((,c :inherit bold :background ,bg-char-1)))
|
||||
`(corfu-quick1 ((,c :inherit (bold modus-themes-search-current))))
|
||||
`(corfu-quick2 ((,c :inherit (bold modus-themes-search-current))))
|
||||
;;;;; counsel
|
||||
`(counsel-active-mode ((,c :foreground ,keyword)))
|
||||
`(counsel-application-name ((,c :foreground ,name)))
|
||||
|
|
@ -2518,10 +2542,10 @@ FG and BG are the main colors."
|
|||
`(geiser-font-lock-xref-link ((,c :inherit button)))
|
||||
;;;;; git-commit
|
||||
`(git-commit-comment-action ((,c :inherit font-lock-comment-face)))
|
||||
`(git-commit-comment-branch-local ((,c :inherit font-lock-comment-face :foreground ,accent-0)))
|
||||
`(git-commit-comment-branch-remote ((,c :inherit font-lock-comment-face :foreground ,accent-1)))
|
||||
`(git-commit-comment-branch-local ((,c :inherit (bold font-lock-comment-face) :foreground ,accent-0)))
|
||||
`(git-commit-comment-branch-remote ((,c :inherit (bold font-lock-comment-face) :foreground ,accent-1)))
|
||||
`(git-commit-comment-heading ((,c :inherit (bold font-lock-comment-face))))
|
||||
`(git-commit-comment-file ((,c :inherit font-lock-comment-face :foreground ,name)))
|
||||
`(git-commit-comment-file ((,c :inherit font-lock-comment-face :foreground ,accent-2))) ; like `magit-filename'
|
||||
`(git-commit-keyword ((,c :foreground ,keyword)))
|
||||
`(git-commit-nonempty-second-line ((,c :inherit error)))
|
||||
`(git-commit-overlong-summary ((,c :inherit warning)))
|
||||
|
|
@ -2682,6 +2706,30 @@ FG and BG are the main colors."
|
|||
`(hl-fill-column-face ((,c :background ,bg-active)))
|
||||
;;;;; hl-todo
|
||||
`(hl-todo ((,c :inherit (bold font-lock-comment-face) :foreground ,err)))
|
||||
;;;;; howm
|
||||
`(action-lock-face ((,c :inherit button)))
|
||||
`(howm-mode-keyword-face (( )))
|
||||
`(howm-mode-ref-face ((,c :inherit link)))
|
||||
`(howm-mode-title-face ((,c :inherit modus-themes-heading-0)))
|
||||
`(howm-mode-wiki-face ((,c :inherit link)))
|
||||
`(howm-reminder-deadline-face ((,c :foreground ,date-deadline)))
|
||||
`(howm-reminder-late-deadline-face ((,c :inherit bold :foreground ,date-deadline)))
|
||||
`(howm-reminder-defer-face ((,c :foreground ,date-scheduled)))
|
||||
`(howm-reminder-scheduled-face ((,c :foreground ,date-scheduled)))
|
||||
`(howm-reminder-done-face ((,c :foreground ,prose-done)))
|
||||
`(howm-reminder-todo-face ((,c :foreground ,prose-todo)))
|
||||
`(howm-reminder-normal-face ((,c :foreground ,date-common)))
|
||||
`(howm-reminder-today-face ((,c :inherit bold :foreground ,date-common)))
|
||||
`(howm-reminder-tomorrow-face ((,c :inherit bold :foreground ,date-scheduled)))
|
||||
`(howm-simulate-todo-mode-line-face ((,c :inherit bold)))
|
||||
`(howm-view-empty-face (( )))
|
||||
`(howm-view-hilit-face ((,c :inherit match)))
|
||||
`(howm-view-name-face ((,c :inherit bold)))
|
||||
`(iigrep-counts-face1 ((,c :foreground ,rainbow-1)))
|
||||
`(iigrep-counts-face2 ((,c :foreground ,rainbow-2)))
|
||||
`(iigrep-counts-face3 ((,c :foreground ,rainbow-3)))
|
||||
`(iigrep-counts-face4 ((,c :foreground ,rainbow-4)))
|
||||
`(iigrep-counts-face5 ((,c :foreground ,rainbow-5)))
|
||||
;;;;; hydra
|
||||
`(hydra-face-amaranth ((,c :inherit bold :foreground ,yellow-warmer)))
|
||||
`(hydra-face-blue ((,c :inherit bold :foreground ,blue)))
|
||||
|
|
@ -2695,14 +2743,16 @@ FG and BG are the main colors."
|
|||
`(ibut-face ((,c :inherit button :background ,bg-link-symbolic :foreground ,fg-link-symbolic :underline ,underline-link-symbolic)))
|
||||
;;;;; icomplete
|
||||
`(icomplete-first-match ((,c :inherit modus-themes-completion-match-0)))
|
||||
`(icomplete-vertical-selected-prefix-indicator-face ((,c :inherit bold :foreground ,keybind)))
|
||||
`(icomplete-vertical-unselected-prefix-indicator-face ((,c :inherit shadow)))
|
||||
`(icomplete-selected-match ((,c :inherit modus-themes-completion-selected)))
|
||||
;;;;; ido-mode
|
||||
`(ido-first-match ((,c :inherit modus-themes-completion-match-0)))
|
||||
`(ido-incomplete-regexp ((,c :inherit error)))
|
||||
`(ido-indicator ((,c :inherit bold)))
|
||||
`(ido-only-match ((,c :inherit ido-first-match)))
|
||||
`(ido-subdir ((,c :foreground ,accent-0)))
|
||||
`(ido-virtual ((,c :foreground ,accent-1)))
|
||||
`(ido-subdir ((,c :foreground ,keyword)))
|
||||
`(ido-virtual ((,c :foreground ,warning)))
|
||||
;;;;; iedit
|
||||
`(iedit-occurrence ((,c :inherit modus-themes-search-lazy)))
|
||||
`(iedit-read-only-occurrence ((,c :inherit modus-themes-search-current)))
|
||||
|
|
@ -2803,19 +2853,19 @@ FG and BG are the main colors."
|
|||
`(ivy-minibuffer-match-face-4 ((,c :inherit modus-themes-completion-match-2)))
|
||||
`(ivy-remote ((,c :inherit italic)))
|
||||
`(ivy-separator ((,c :inherit shadow)))
|
||||
`(ivy-subdir ((,c :foreground ,accent-0)))
|
||||
`(ivy-virtual ((,c :foreground ,accent-1)))
|
||||
`(ivy-subdir ((,c :foreground ,keyword)))
|
||||
`(ivy-virtual ((,c :foreground ,warning)))
|
||||
;;;;; ivy-posframe
|
||||
`(ivy-posframe-border ((,c :background ,border)))
|
||||
`(ivy-posframe-cursor ((,c :background ,fg-main :foreground ,bg-main)))
|
||||
;;;;; jabber
|
||||
`(jabber-activity-face ((,c :foreground ,modeline-info)))
|
||||
`(jabber-roster-user-away ((,c :foreground ,red-faint)))
|
||||
`(jabber-roster-user-xa ((,c :foreground ,magenta :slant italic)))
|
||||
`(jabber-roster-user-dnd ((,c :foreground ,red :weight bold)))
|
||||
`(jabber-roster-user-xa ((,c :foreground ,magenta :italic t)))
|
||||
`(jabber-roster-user-dnd ((,c :foreground ,red :bold t)))
|
||||
`(jabber-roster-user-chatty ((,c :foreground ,cyan-intense)))
|
||||
`(jabber-roster-user-error ((,c :inherit error)))
|
||||
`(jabber-roster-user-offline ((,c :foreground ,fg-dim :slant italic)))
|
||||
`(jabber-roster-user-offline ((,c :foreground ,fg-dim :italic t)))
|
||||
`(jabber-roster-user-online ((,c :foreground ,cyan :weight bold)))
|
||||
`(jabber-chat-prompt-foreign ((,c :foreground ,red :weight bold)))
|
||||
`(jabber-chat-prompt-system ((,c :foreground ,green)))
|
||||
|
|
@ -3326,7 +3376,7 @@ FG and BG are the main colors."
|
|||
`(org-clock-overlay ((,c :inherit secondary-selection)))
|
||||
`(org-code ((,c :inherit modus-themes-prose-code)))
|
||||
`(org-column ((,c :inherit default :background ,bg-dim)))
|
||||
`(org-column-title ((,c :inherit (bold default) :underline t :background ,bg-dim)))
|
||||
`(org-column-title ((,c :inherit (modus-themes-fixed-pitch bold default) :underline t :background ,bg-dim)))
|
||||
`(org-date ((,c :inherit modus-themes-fixed-pitch :foreground ,date-common)))
|
||||
`(org-date-selected ((,c :foreground ,date-common :inverse-video t)))
|
||||
;; NOTE 2024-03-17: Normally we do not want to add this padding
|
||||
|
|
@ -3706,6 +3756,9 @@ FG and BG are the main colors."
|
|||
`(smerge-refined-changed (()))
|
||||
`(smerge-refined-removed ((,c :inherit diff-refine-removed)))
|
||||
`(smerge-upper ((,c :inherit diff-removed)))
|
||||
;;;;; spacious-padding
|
||||
`(spacious-padding-subtle-mode-line-active ((,c :foreground ,accent-0)))
|
||||
`(spacious-padding-subtle-mode-line-inactive ((,c :foreground ,border)))
|
||||
;;;;; speedbar
|
||||
`(speedbar-button-face ((,c :inherit button)))
|
||||
`(speedbar-directory-face ((,c :inherit bold :foreground ,accent-0)))
|
||||
|
|
@ -3812,6 +3865,13 @@ FG and BG are the main colors."
|
|||
`(term-underline ((,c :underline t)))
|
||||
;;;;; textsec
|
||||
`(textsec-suspicious (( )))
|
||||
;;;;; tldr
|
||||
`(tldr-code-block (( )))
|
||||
`(tldr-command-argument ((,c :inherit font-lock-string-face)))
|
||||
`(tldr-command-itself ((,c :inherit font-lock-builtin-face)))
|
||||
`(tldr-description ((,c :inherit font-lock-doc-face)))
|
||||
`(tldr-introduction ((,c :inherit font-lock-comment-face)))
|
||||
`(tldr-title ((,c :inherit bold)))
|
||||
;;;;; transient
|
||||
`(transient-active-infix ((,c :inherit highlight)))
|
||||
`(transient-amaranth ((,c :inherit bold :foreground ,yellow-warmer)))
|
||||
|
|
@ -3834,7 +3894,9 @@ FG and BG are the main colors."
|
|||
`(transient-key ((,c :inherit modus-themes-key-binding)))
|
||||
`(transient-key-exit ((,c :inherit modus-themes-key-binding)))
|
||||
`(transient-key-noop ((,c :inherit (shadow modus-themes-key-binding))))
|
||||
`(transient-key-recurse ((,c :inherit modus-themes-key-binding)))
|
||||
`(transient-key-return ((,c :inherit modus-themes-key-binding)))
|
||||
`(transient-key-stack ((,c :inherit modus-themes-key-binding)))
|
||||
`(transient-key-stay ((,c :inherit modus-themes-key-binding)))
|
||||
`(transient-mismatched-key ((,c :underline t)))
|
||||
`(transient-nonstandard-key ((,c :underline t)))
|
||||
|
|
@ -3851,6 +3913,39 @@ FG and BG are the main colors."
|
|||
`(trashed-mark ((,c :inherit bold)))
|
||||
`(trashed-marked ((,c :inherit modus-themes-mark-alt)))
|
||||
`(trashed-restored ((,c :inherit modus-themes-mark-sel)))
|
||||
;;;;; treemacs
|
||||
`(treemacs-async-loading-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-directory-face ((,c :foreground ,accent-0)))
|
||||
`(treemacs-directory-collapsed-face ((,c :foreground ,accent-0)))
|
||||
`(treemacs-file-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-fringe-indicator-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-git-added-face ((,c :inherit success)))
|
||||
`(treemacs-git-commit-diff-face ((,c :foreground ,err)))
|
||||
`(treemacs-git-conflict-face ((,c :inherit error)))
|
||||
`(treemacs-git-ignored-face ((,c :inherit shadow)))
|
||||
`(treemacs-git-modified-face ((,c :inherit warning)))
|
||||
`(treemacs-git-renamed-face ((,c :inherit italic)))
|
||||
`(treemacs-git-unmodified-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-git-untracked-face ((,c :inherit success)))
|
||||
`(treemacs-header-button-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-help-column-face ((,c :inherit modus-themes-bold :foreground ,keyword)))
|
||||
`(treemacs-help-title-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-hl-line-face ((,c :background ,bg-hl-line :extend t)))
|
||||
`(treemacs-marked-file-face ((,c :inherit modus-themes-mark-alt)))
|
||||
`(treemacs-nerd-icons-face ((,c :foreground ,accent-0)))
|
||||
`(treemacs-on-failure-pulse-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-on-success-pulse-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-peek-mode-indicator-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-remote-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-root-face ((,c :foreground ,accent-0)))
|
||||
`(treemacs-root-remote-disconnected-face ((,c :inherit warning)))
|
||||
`(treemacs-root-remote-unreadable-face ((,c :inherit warning)))
|
||||
`(treemacs-root-unreadable-face ((,c :inherit error)))
|
||||
`(treemacs-tags-face ((,c :foreground ,fg-main)))
|
||||
`(treemacs-term-node-face ((,c :inherit modus-themes-bold :foreground ,keyword)))
|
||||
`(treemacs-window-background-face ((,c :background ,bg-main)))
|
||||
`(treemacs-nerd-icons-root-face ((,c :foreground ,accent-0)))
|
||||
`(treemacs-nerd-icons-file-face ((,c :foreground ,accent-0)))
|
||||
;;;;; tree-sitter
|
||||
`(tree-sitter-hl-face:attribute ((,c :inherit font-lock-variable-name-face)))
|
||||
`(tree-sitter-hl-face:constant.builtin ((,c :inherit tree-sitter-hl-face:constant)))
|
||||
|
|
@ -3930,8 +4025,8 @@ FG and BG are the main colors."
|
|||
;;;;; vertico
|
||||
`(vertico-current ((,c :inherit modus-themes-completion-selected)))
|
||||
;;;;; vertico-quick
|
||||
`(vertico-quick1 ((,c :inherit bold :background ,bg-char-0)))
|
||||
`(vertico-quick2 ((,c :inherit bold :background ,bg-char-1)))
|
||||
`(vertico-quick1 ((,c :inherit (bold modus-themes-search-current))))
|
||||
`(vertico-quick2 ((,c :inherit (bold modus-themes-search-current))))
|
||||
;;;;; vimish-fold
|
||||
`(vimish-fold-fringe ((,c :foreground ,cyan)))
|
||||
`(vimish-fold-mouse-face ((,c :inherit modus-themes-intense-blue)))
|
||||
|
|
@ -3956,20 +4051,24 @@ FG and BG are the main colors."
|
|||
`(vr/match-1 ((,c :inherit modus-themes-search-lazy)))
|
||||
`(vr/match-separator-face ((,c :inherit bold :background ,bg-active)))
|
||||
;;;;; vterm
|
||||
;; NOTE 2023-08-10: `vterm-color-black' and `vterm-color-white'
|
||||
;; use the "bright" semantic color mappings to make sure they are
|
||||
;; distinct from `vterm-color-default'.
|
||||
`(vterm-color-black ((,c :background ,bg-term-black :foreground ,fg-term-black)))
|
||||
`(vterm-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue)))
|
||||
`(vterm-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan)))
|
||||
`(vterm-color-default ((,c :background ,bg-main :foreground ,fg-main)))
|
||||
`(vterm-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green)))
|
||||
`(vterm-color-inverse-video ((,c :background ,bg-main :inverse-video t)))
|
||||
`(vterm-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta)))
|
||||
`(vterm-color-bright-black ((,c :background ,bg-term-black-bright :foreground ,fg-term-black-bright)))
|
||||
`(vterm-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red)))
|
||||
`(vterm-color-underline ((,c :underline t)))
|
||||
`(vterm-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white)))
|
||||
`(vterm-color-bright-red ((,c :background ,bg-term-red-bright :foreground ,fg-term-red-bright)))
|
||||
`(vterm-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green)))
|
||||
`(vterm-color-bright-green ((,c :background ,bg-term-green-bright :foreground ,fg-term-green-bright)))
|
||||
`(vterm-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow)))
|
||||
`(vterm-color-bright-yellow ((,c :background ,bg-term-yellow-bright :foreground ,fg-term-yellow-bright)))
|
||||
`(vterm-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue)))
|
||||
`(vterm-color-bright-blue ((,c :background ,bg-term-blue-bright :foreground ,fg-term-blue-bright)))
|
||||
`(vterm-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta)))
|
||||
`(vterm-color-bright-magenta ((,c :background ,bg-term-magenta-bright :foreground ,fg-term-magenta-bright)))
|
||||
`(vterm-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan)))
|
||||
`(vterm-color-bright-cyan ((,c :background ,bg-term-cyan-bright :foreground ,fg-term-cyan-bright)))
|
||||
`(vterm-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white)))
|
||||
`(vterm-color-bright-white ((,c :background ,bg-term-white-bright :foreground ,fg-term-white-bright)))
|
||||
`(vterm-color-inverse-video ((,c :background ,bg-main :inverse-video t)))
|
||||
`(vterm-color-underline ((,c :underline t)))
|
||||
;;;;; vundo
|
||||
`(vundo-default ((,c :inherit shadow)))
|
||||
`(vundo-highlight ((,c :inherit (bold vundo-node) :foreground ,red)))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-vivendi-deuteranopia-theme.el --- Deuteranopia-optimized theme with a black background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -167,15 +167,11 @@ standard)."
|
|||
|
||||
(bg-completion "#2f447f")
|
||||
(bg-hover "#45605e")
|
||||
(bg-hover-secondary "#654a39")
|
||||
(bg-hover-secondary "#604c30")
|
||||
(bg-hl-line "#2f3849")
|
||||
(bg-region "#5a5a5a")
|
||||
(fg-region "#ffffff")
|
||||
|
||||
(bg-char-0 "#0050af")
|
||||
(bg-char-1 "#7f1f7f")
|
||||
(bg-char-2 "#625a00")
|
||||
|
||||
(bg-mode-line-active "#2a2a6a")
|
||||
(fg-mode-line-active "#f0f0f0")
|
||||
(border-mode-line-active "#8080a7")
|
||||
|
|
@ -216,13 +212,6 @@ standard)."
|
|||
|
||||
(bg-diff-context "#1a1a1a")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#2f7f9f")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#453040")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -257,17 +246,17 @@ standard)."
|
|||
;;;; Code mappings
|
||||
|
||||
(bracket fg-main)
|
||||
(builtin magenta-warmer)
|
||||
(builtin yellow)
|
||||
(comment yellow-cooler)
|
||||
(constant blue-cooler)
|
||||
(constant blue-faint)
|
||||
(delimiter fg-main)
|
||||
(docmarkup magenta-faint)
|
||||
(docstring cyan-faint)
|
||||
(fnname magenta)
|
||||
(keyword magenta-cooler)
|
||||
(fnname yellow-warmer)
|
||||
(keyword blue-cooler)
|
||||
(number fg-main)
|
||||
(operator fg-main)
|
||||
(preprocessor red-cooler)
|
||||
(preprocessor magenta-cooler)
|
||||
(punctuation fg-main)
|
||||
(rx-backslash blue-cooler)
|
||||
(rx-construct yellow-cooler)
|
||||
|
|
@ -275,12 +264,19 @@ standard)."
|
|||
(type cyan-cooler)
|
||||
(variable cyan)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-yellow-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 blue-cooler)
|
||||
(accent-0 blue-warmer)
|
||||
(accent-1 yellow)
|
||||
(accent-2 cyan-cooler)
|
||||
(accent-3 magenta-warmer)
|
||||
(accent-3 yellow-cooler)
|
||||
|
||||
;;;; Button mappings
|
||||
|
||||
|
|
@ -294,7 +290,7 @@ standard)."
|
|||
(fg-completion-match-0 blue-cooler)
|
||||
(fg-completion-match-1 yellow)
|
||||
(fg-completion-match-2 cyan-cooler)
|
||||
(fg-completion-match-3 magenta-warmer)
|
||||
(fg-completion-match-3 yellow-cooler)
|
||||
(bg-completion-match-0 unspecified)
|
||||
(bg-completion-match-1 unspecified)
|
||||
(bg-completion-match-2 unspecified)
|
||||
|
|
@ -313,7 +309,7 @@ standard)."
|
|||
(date-scheduled yellow-cooler)
|
||||
(date-scheduled-subtle yellow-faint)
|
||||
(date-weekday cyan)
|
||||
(date-weekend magenta)
|
||||
(date-weekend magenta-cooler)
|
||||
|
||||
;;;; Line number mappings
|
||||
|
||||
|
|
@ -374,7 +370,7 @@ standard)."
|
|||
(fg-prose-macro magenta-cooler)
|
||||
|
||||
(bg-prose-verbatim unspecified)
|
||||
(fg-prose-verbatim magenta-warmer)
|
||||
(fg-prose-verbatim yellow)
|
||||
|
||||
(prose-done blue)
|
||||
(prose-todo yellow-warmer)
|
||||
|
|
@ -385,7 +381,7 @@ standard)."
|
|||
(prose-table fg-alt)
|
||||
(prose-table-formula yellow-warmer)
|
||||
|
||||
(prose-tag magenta-faint)
|
||||
(prose-tag fg-alt)
|
||||
|
||||
;;;; Rainbow mappings
|
||||
|
||||
|
|
@ -403,7 +399,7 @@ standard)."
|
|||
|
||||
(bg-search-current bg-yellow-intense)
|
||||
(bg-search-lazy bg-blue-intense)
|
||||
(bg-search-replace bg-magenta-intense)
|
||||
(bg-search-replace bg-yellow-intense)
|
||||
|
||||
(bg-search-rx-group-0 bg-cyan-intense)
|
||||
(bg-search-rx-group-1 bg-magenta-intense)
|
||||
|
|
@ -464,10 +460,10 @@ standard)."
|
|||
(fg-heading-1 fg-main)
|
||||
(fg-heading-2 yellow-faint)
|
||||
(fg-heading-3 blue-faint)
|
||||
(fg-heading-4 magenta)
|
||||
(fg-heading-5 green-faint)
|
||||
(fg-heading-6 red-faint)
|
||||
(fg-heading-7 cyan-faint)
|
||||
(fg-heading-4 green-faint)
|
||||
(fg-heading-5 magenta-cooler)
|
||||
(fg-heading-6 yellow-cooler)
|
||||
(fg-heading-7 cyan)
|
||||
(fg-heading-8 fg-dim)
|
||||
|
||||
(bg-heading-0 unspecified)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-vivendi-theme.el --- Elegant, highly legible theme with a black background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -170,10 +170,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(bg-region "#5a5a5a")
|
||||
(fg-region "#ffffff")
|
||||
|
||||
(bg-char-0 "#0050af")
|
||||
(bg-char-1 "#7f1f7f")
|
||||
(bg-char-2 "#625a00")
|
||||
|
||||
(bg-mode-line-active "#505050")
|
||||
(fg-mode-line-active "#ffffff")
|
||||
(border-mode-line-active "#959595")
|
||||
|
|
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(bg-diff-context "#1a1a1a")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#2f7f9f")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#453040")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -273,6 +262,13 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(type cyan-cooler)
|
||||
(variable cyan)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-yellow-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 blue-cooler)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-vivendi-tinted-theme.el --- Elegant, highly legible theme with a night sky background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -71,11 +71,11 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(red "#ff5f59")
|
||||
(red-warmer "#ff6b55")
|
||||
(red-cooler "#ff7f86")
|
||||
(red-faint "#ff9f80")
|
||||
(red-faint "#ef8386")
|
||||
(red-intense "#ff5f5f")
|
||||
(green "#44bc44")
|
||||
(green-warmer "#70b900")
|
||||
(green-cooler "#00c06f")
|
||||
(green-warmer "#75c13e")
|
||||
(green-cooler "#11c777")
|
||||
(green-faint "#88ca9f")
|
||||
(green-intense "#44df44")
|
||||
(yellow "#d0bc00")
|
||||
|
|
@ -165,15 +165,11 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(bg-completion "#483d8a")
|
||||
(bg-hover "#45605e")
|
||||
(bg-hover-secondary "#654a39")
|
||||
(bg-hover-secondary "#64404f")
|
||||
(bg-hl-line "#303a6f")
|
||||
(bg-region "#555a66")
|
||||
(fg-region "#ffffff")
|
||||
|
||||
(bg-char-0 "#0050af")
|
||||
(bg-char-1 "#7f1f7f")
|
||||
(bg-char-2 "#625a00")
|
||||
|
||||
(bg-mode-line-active "#484d67")
|
||||
(fg-mode-line-active "#ffffff")
|
||||
(border-mode-line-active "#979797")
|
||||
|
|
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(bg-diff-context "#1a1f30")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#5f789f")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#453040")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -233,8 +222,8 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
(identifier yellow-faint)
|
||||
|
||||
(err red)
|
||||
(warning yellow-warmer)
|
||||
(info cyan-cooler)
|
||||
(warning yellow)
|
||||
(info green-cooler)
|
||||
|
||||
(underline-err red-intense)
|
||||
(underline-warning yellow)
|
||||
|
|
@ -255,30 +244,37 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
;;;; Code mappings
|
||||
|
||||
(bracket fg-main)
|
||||
(builtin magenta-warmer)
|
||||
(builtin magenta)
|
||||
(comment red-faint)
|
||||
(constant blue-cooler)
|
||||
(constant magenta-cooler)
|
||||
(delimiter fg-main)
|
||||
(docmarkup magenta-faint)
|
||||
(docstring cyan-faint)
|
||||
(fnname magenta)
|
||||
(keyword magenta-cooler)
|
||||
(fnname magenta-warmer)
|
||||
(keyword blue-warmer)
|
||||
(number fg-main)
|
||||
(operator fg-main)
|
||||
(preprocessor red-cooler)
|
||||
(punctuation fg-main)
|
||||
(rx-backslash magenta)
|
||||
(rx-construct green-cooler)
|
||||
(string blue-warmer)
|
||||
(type cyan-cooler)
|
||||
(variable cyan)
|
||||
(rx-backslash magenta-warmer)
|
||||
(rx-construct magenta-cooler)
|
||||
(string blue)
|
||||
(type green-cooler)
|
||||
(variable cyan-warmer)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-yellow-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 blue-cooler)
|
||||
(accent-1 magenta-warmer)
|
||||
(accent-2 cyan-cooler)
|
||||
(accent-3 yellow)
|
||||
(accent-0 magenta-cooler)
|
||||
(accent-1 cyan)
|
||||
(accent-2 magenta-warmer)
|
||||
(accent-3 yellow-warmer)
|
||||
|
||||
;;;; Button mappings
|
||||
|
||||
|
|
@ -336,14 +332,14 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
;;;; Mail mappings
|
||||
|
||||
(mail-cite-0 blue-warmer)
|
||||
(mail-cite-0 blue)
|
||||
(mail-cite-1 yellow-cooler)
|
||||
(mail-cite-2 cyan-cooler)
|
||||
(mail-cite-3 red-cooler)
|
||||
(mail-part blue)
|
||||
(mail-recipient magenta-cooler)
|
||||
(mail-part magenta-cooler)
|
||||
(mail-recipient blue-warmer)
|
||||
(mail-subject magenta-warmer)
|
||||
(mail-other magenta-faint)
|
||||
(mail-other magenta)
|
||||
|
||||
;;;; Mark mappings
|
||||
|
||||
|
|
@ -356,7 +352,7 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
;;;; Prompt mappings
|
||||
|
||||
(fg-prompt cyan-cooler)
|
||||
(fg-prompt cyan-warmer)
|
||||
(bg-prompt unspecified)
|
||||
|
||||
;;;; Prose mappings
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; modus-vivendi-tritanopia-theme.el --- Tritanopia-optimized theme with a black background -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
|
@ -63,7 +63,7 @@ standard)."
|
|||
(bg-dim "#1e1e1e")
|
||||
(fg-main "#ffffff")
|
||||
(fg-dim "#989898")
|
||||
(fg-alt "#c6daff")
|
||||
(fg-alt "#a0d7f2")
|
||||
(bg-active "#535353")
|
||||
(bg-inactive "#303030")
|
||||
(border "#646464")
|
||||
|
|
@ -167,15 +167,11 @@ standard)."
|
|||
|
||||
(bg-completion "#004253")
|
||||
(bg-hover "#8e3e3b")
|
||||
(bg-hover-secondary "#00405f")
|
||||
(bg-hover-secondary "#204853")
|
||||
(bg-hl-line "#2f3849")
|
||||
(bg-region "#5a5a5a")
|
||||
(fg-region "#ffffff")
|
||||
|
||||
(bg-char-0 "#922a00")
|
||||
(bg-char-1 "#00709f")
|
||||
(bg-char-2 "#5f3faf")
|
||||
|
||||
(bg-mode-line-active "#003c52")
|
||||
(fg-mode-line-active "#f0f0f0")
|
||||
(border-mode-line-active "#5f8fb4")
|
||||
|
|
@ -216,13 +212,6 @@ standard)."
|
|||
|
||||
(bg-diff-context "#1a1a1a")
|
||||
|
||||
;;; Paren match
|
||||
|
||||
(bg-paren-match "#2f7f9f")
|
||||
(fg-paren-match fg-main)
|
||||
(bg-paren-expression "#453040")
|
||||
(underline-paren-match unspecified)
|
||||
|
||||
;;; Mappings
|
||||
|
||||
;;;; General mappings
|
||||
|
|
@ -275,6 +264,13 @@ standard)."
|
|||
(type blue-warmer)
|
||||
(variable cyan-cooler)
|
||||
|
||||
;;;; Paren match
|
||||
|
||||
(bg-paren-match bg-cyan-subtle)
|
||||
(fg-paren-match fg-main)
|
||||
(underline-paren-match unspecified)
|
||||
(bg-paren-expression bg-red-nuanced)
|
||||
|
||||
;;;; Accent mappings
|
||||
|
||||
(accent-0 cyan)
|
||||
|
|
@ -385,7 +381,7 @@ standard)."
|
|||
(prose-table fg-alt)
|
||||
(prose-table-formula red-cooler)
|
||||
|
||||
(prose-tag magenta-faint)
|
||||
(prose-tag fg-alt)
|
||||
|
||||
;;;; Rainbow mappings
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue