#+language: en
#+options: ':t toc:nil author:t email:t num:t
#+startup: content
-#+macro: stable-version 4.2.0
-#+macro: release-date 2023-05-30
-#+macro: development-version 4.3.0-dev
+#+macro: stable-version 4.3.0
+#+macro: release-date 2023-09-19
+#+macro: development-version 4.4.0-dev
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
#+macro: space @@texinfo:@: @@
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
All theme user options take effect when a theme is loaded. Any
subsequent changes require the theme to be reloaded.
-When this variable has a non-nil value, any change made via the Custom
+When this variable has a non-~nil~ value, any change made via the Custom
UI or related functions such as ~customize-set-variable~ and ~setopt~
(Emacs 29), will trigger a reload automatically.
-With a nil value, changes to user options have no further consequences:
+With a ~nil~ value, changes to user options have no further consequences:
the user must manually reload the theme ([[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]]).
** Option for disabling other themes while loading Modus
1. ~nil~
2. ~t~ (default)
-When the value is non-nil, the commands ~modus-themes-toggle~ and
+When the value is non-~nil~, the commands ~modus-themes-toggle~ and
~modus-themes-select~, as well as the ~modus-themes-load-theme~
function, will disable all other themes while loading the specified
Modus theme. This is done to ensure that Emacs does not blend two or
more themes: such blends lead to awkward results that undermine the
work of the designer.
-When the value is nil, the aforementioned commands and function will
+When the value is ~nil~, the aforementioned commands and function will
only disable other themes within the Modus collection.
This option is provided because Emacs themes are not necessarily
limited to colors/faces: they can consist of an arbitrary set of
customizations. Users who use such customization bundles must set
-this variable to a nil value.
+this variable to a ~nil~ value.
** Option for more bold constructs
:properties:
#+end_src
The ~matches~ key refers to the highlighted characters that correspond
-to the user's input. When its properties are nil or an empty list,
+to the user's input. When its properties are ~nil~ or an empty list,
matching characters in the user interface will 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:
The ~selection~ key applies to the current line or currently matched
candidate, depending on the specifics of the user interface. When its
-properties are nil or an empty list, it has a subtle gray background,
+properties are ~nil~ or an empty list, it has a subtle gray background,
a bold weight, and the base foreground value for the text. The list
of properties it accepts is as follows (order is not significant):
2. ~gray-background~
3. ~tinted-background~
-Nil (the default) means that the block has no background of its own:
-it uses the one that applies to the rest of the buffer. In this case,
-the delimiter lines have a gray color for their text, making them look
-exactly like all other Org properties.
+Option ~nil~ (the default) means that the block has no background of
+its own: it uses the one that applies to the rest of the buffer.
+In this case, the delimiter lines have a gray color for their text,
+making them look exactly like all other Org properties.
Option ~gray-background~ applies a subtle gray background to the
block's contents. It also affects the begin and end lines of the
~org-mode-restart~.
Code blocks use their major mode's fontification (syntax highlighting)
-only when the variable ~org-src-fontify-natively~ is non-nil. While
+only when the variable ~org-src-fontify-natively~ is non-~nil~. While
quote/verse blocks require setting
-~org-fontify-quote-and-verse-blocks~ to a non-nil value.
+~org-fontify-quote-and-verse-blocks~ to a non-~nil~ value.
[[#h:f44cc6e3-b0f1-4a5e-8a90-9e48fa557b50][Update Org block delimiter fontification]].
mapping), this function recurs until it finds the underlying color
value.
-With an optional =OVERRIDES= argument as a non-nil value, it accounts
+With an optional =OVERRIDES= argument as a non-~nil~ value, it accounts
for palette overrides. Else it reads only the default palette.
[[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]].
#+end_src
The reason we no longer provide this option is because it depends on a
-non-nil value for ~x-underline-at-descent-line~. That variable
+non-~nil~ value for ~x-underline-at-descent-line~. That variable
affects ALL underlines, including those of links. The effect is
intrusive and looks awkard in prose.
#+end_src
You could then use a variant of the following to inherit from a face
-that uses the styles you want and also to preserve the properties
-applied by the ~org-todo~ face (in case there is a difference between the
-two):
+that uses the styles you want and also to preserve the attributes
+applied by the ~org-todo~ face (in case there is a difference between
+the two):
#+begin_src emacs-lisp
(setq org-todo-keyword-faces
- '(("MEET" . '(bold org-todo))
- ("STUDY" . '(warning org-todo))
- ("WRITE" . '(shadow org-todo))))
+ '(("MEET" . (:inherit (bold org-todo)))
+ ("STUDY" . (:inherit (warning org-todo)))
+ ("WRITE" . (:inherit (shadow org-todo)))))
#+end_src
This will refashion the keywords you specify, while letting the other
-items in ~org-todo-keywords~ use their original styles (which are defined
-in the ~org-todo~ and ~org-done~ faces).
+items in ~org-todo-keywords~ use their original styles, which are
+defined in the ~org-todo~ and ~org-done~ faces.
If you want back the defaults, try specifying just the ~org-todo~ face:
("WRITE" . org-todo)))
#+end_src
-When you inherit from multiple faces, you need to quote the list as
+Or set ~org-todo-keyword-faces~ to ~nil~.
+
+When you inherit from multiple faces, you need to do it the way it is
shown further above. The order is significant: the first entry is
-applied on top of the second, overriding any properties that are
-explicitly set for both of them: any property that is not specified is
-not overridden, so, for example, if ~org-todo~ has a background and a
-foreground, while ~font-lock-type-face~ only has a foreground, the merged
-face will include the background of the former and the foreground of the
-latter. If you do not want to blend multiple faces, you do not need a
-quoted list. A pattern of =keyword . face= will suffice.
+applied on top of the second, overriding any attributes that are
+explicitly set for both of them: any attribute that is not specified
+is not overridden, so, for example, if ~org-todo~ has a background and
+a foreground, while ~font-lock-type-face~ only has a foreground, the
+merged face will include the background of the former and the
+foreground of the latter. If you do not want to blend multiple faces,
+you only specify one by name without parentheses or an =:inherit=
+keyword. A pattern of =keyword . face= will suffice.
Both approaches can be used simultaneously, as illustrated in this
configuration of the priority cookies:
#+begin_src emacs-lisp
(setq org-priority-faces
- '((?A . '(bold org-priority))
+ '((?A . (:inherit (bold org-priority)))
(?B . org-priority)
- (?C . '(shadow org-priority))))
+ (?C . (:inherit (shadow org-priority)))))
#+end_src
To find all the faces that are loaded in your current Emacs session, use
:CUSTOM_ID: h:43bcb5d0-e25f-470f-828c-662cee9e21f1
:END:
+[ UPDATE 2023-06-25: Instead of following these instructions, you can
+ simply install my ~spacious-padding~ package from GNU ELPA. It
+ implements the padding and provides relevant user options. ]
+
By default, Emacs frames try to maximize the number of characters that
fit in the current visible portion of the buffer. Users may prefer to
have some extra padding instead. This can make Emacs frames look more
+ avy
+ bbdb
+ binder
++ breadcrumb
+ bongo
+ boon
+ bookmark
+ completions
+ consult
+ corfu
++ corfu-candidate-overlay
+ corfu-quick
+ counsel*
+ cperl-mode
+ crontab-mode
-+ css-mode
+ csv-mode
+ ctrlf
+ custom (what you get with {{{kbd(M-x customize)}}})
+ epa
+ erc
+ ert
++ erts-mode
+ eshell
+ eshell-fringe-status
+ evil* (evil-mode)
+ isearch, occur, etc.
+ ivy*
+ ivy-posframe
++ japanese-holidays
+ jira (org-jira)
+ jit-spell
+ jinx
+ mpdel
+ mu4e
+ multiple-cursors
++ nerd-icons
++ nerd-icons-completion
++ nerd-icons-dired
++ nerd-icons-ibuffer
+ neotree
+ notmuch
+ num3-mode
+ suggest
+ switch-window
+ swiper
-+ sx
+ symbol-overlay
+ syslog-mode
+ tab-bar-mode
+ bufler
+ counsel-notmuch
+ counsel-org-capture-string
++ css-mode
+ dashboard (emacs-dashboard)
+ define-word
+ denote
By default, packages that build on top of the Simple HTML Remember
(~shr~) use proportionately spaced fonts. This is controlled by the
user option ~shr-use-fonts~, which is set to non-~nil~ by default. To
-use the standard font instead, set that variable to nil.
+use the standard font instead, set that variable to ~nil~.
[[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations for Org and others]].
goto-address-mail-mouse-face 'highlight)
#+end_src
-My personal preference is to set ~goto-address-mail-face~ to nil, as
+My personal preference is to set ~goto-address-mail-face~ to ~nil~, as
it otherwise adds too much visual noise to the buffer (email addresses
stand out more, due to the use of the uncommon =@= character but also
because they are often enclosed in angled brackets).
Matthew Stevenson, Mauro Aranda, Nacho Barrientos, Nicolas De
Jaeghere, Paul David, Philip Kaludercic, Pierre Téchoueyres, Rudolf
Adamkovič, Sergey Nichiporchik, Shreyas Ragavan, Stefan Kangas,
- Stephen Gildea, Steve Downey, Tomasz Hołubowicz, Utkarsh Singh,
- Vincent Murphy, Xinglu Chen, Yuanchen Xie, okamsn.
+ Stephen Berman, Stephen Gildea, Steve Downey, 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
Ferguson, Jeremy Friesen, Jerry Zhang, Johannes Grødem, John Haman,
Jonas Collberg, Jorge Morais, Joshua O'Connor, Julio C. Villasante,
Kenta Usami, Kevin Fleming, Kévin Le Gouguec, Kevin Kainan Li,
- Kostadin Ninev, Laith Bahodi, Len Trigg, Lennart C. Karssen, Luis
- Miguel Castañeda, Magne Hov, Manuel Giraud, Manuel Uberti, Mark
- Bestley, Mark Burton, Mark Simpson, Marko Kocic, Markus Beppler,
- Matt Armstrong, Matthias Fuchs, Mattias Engdegård, Mauro Aranda,
- Maxime Tréca, Michael Goldenberg, Morgan Smith, Morgan Willcock,
- Murilo Pereira, Nicky van Foreest, Nicolas De Jaeghere, Nicolas
- Semrau, Oliver Epper, Pablo Stafforini, Paul Poloskov, Pengji Zhang,
- Pete Kazmier, Peter Wu, Philip Kaludercic, Pierre Téchoueyres,
- Przemysław Kryger, Robert Hepple, Roman Rudakov, Russell Sim, Ryan
- Phillips, Rytis Paškauskas, Rudolf Adamkovič, Sam Kleinman, Samuel
- Culpepper, Saša Janiška, Shreyas Ragavan, Simon Pugnet, Steve
- Downey, Tassilo Horn, Thanos Apollo, Thibaut Verron, Thomas
- Heartman, Togan Muftuoglu, Tony Zorman, Trey Merkley, Tomasz
- Hołubowicz, Toon Claes, Uri Sharf, Utkarsh Singh, Vincent Foley,
- Zoltan Kiraly. As well as users: Ben, CsBigDataHub1, Emacs Contrib,
- Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer Emacs, TheBlob42,
- TitusMu, Trey, bepolymathe, bit9tream, bangedorrunt, derek-upham,
- doolio, fleimgruber, gitrj95, iSeeU, jixiuf, okamsn, pRot0ta1p,
- soaringbird, tumashu, wakamenod.
+ Kostadin Ninev, Laith Bahodi, Lasse Lindner, Len Trigg, Lennart
+ C. Karssen, Luis Miguel Castañeda, Magne Hov, Manuel Giraud, Manuel
+ Uberti, Mark Bestley, Mark Burton, Mark Simpson, Marko Kocic, Markus
+ Beppler, Matt Armstrong, Matthias Fuchs, Mattias Engdegård, Mauro
+ Aranda, Maxime Tréca, Michael Goldenberg, Morgan Smith, Morgan
+ Willcock, Murilo Pereira, Nicky van Foreest, Nicolas De Jaeghere,
+ Nicolas Semrau, Olaf Meeuwissen, Oliver Epper, Pablo Stafforini,
+ Paul Poloskov, Pengji Zhang, Pete Kazmier, Peter Wu, Philip
+ Kaludercic, Pierre Téchoueyres, Przemysław Kryger, Robert Hepple,
+ Roman Rudakov, Russell Sim, Ryan Phillips, Rytis Paškauskas, Rudolf
+ Adamkovič, Sam Kleinman, Samuel Culpepper, Saša Janiška, Shreyas
+ Ragavan, Simon Pugnet, Steve Downey, Tassilo Horn, Thanos Apollo,
+ Thibaut Verron, Thomas Heartman, Togan Muftuoglu, Tony Zorman, Trey
+ Merkley, Tomasz Hołubowicz, Toon Claes, Uri Sharf, Utkarsh Singh,
+ Vincent Foley, Zoltan Kiraly. As well as users: Ben, CsBigDataHub1,
+ Emacs Contrib, Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer
+ Emacs, TheBlob42, TitusMu, Trey, bepolymathe, bit9tream,
+ bangedorrunt, derek-upham, doolio, fleimgruber, gitrj95, iSeeU,
+ jixiuf, okamsn, pRot0ta1p, soaringbird, tumashu, wakamenod.
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-operandi-deuteranopia
"Deuteranopia-optimized theme with a white background.
This variant is optimized for users with red-green color
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 7:1 (WCAG AAA
-standard).")
+standard)."
+ :background-mode 'light
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-operandi-deuteranopia-palette
'(
;;; Basic values
(bg-main "#ffffff")
- (bg-dim "#f0f0f0")
+ (bg-dim "#f2f2f2")
(fg-main "#000000")
(fg-dim "#595959")
(fg-alt "#193668")
;;; Special purpose
(bg-completion "#c0deff")
- (bg-hover "#97dfed")
+ (bg-hover "#b2e4dc")
(bg-hover-secondary "#f5d0a0")
(bg-hl-line "#dae5ec")
(bg-region "#bdbdbd")
(bg-removed "#f4f099")
(bg-removed-faint "#f6f6b7")
- (bg-removed-refine "#f0e56f")
+ (bg-removed-refine "#ede06f")
(bg-removed-fringe "#c0b200")
(fg-removed "#553d00")
(fg-removed-intense "#7f6f00")
(date-deadline yellow-warmer)
(date-event fg-alt)
(date-holiday yellow-warmer)
+ (date-holiday-other blue)
(date-now blue-faint)
(date-range fg-alt)
(date-scheduled yellow-cooler)
(fg-space border)
(bg-space-err bg-yellow-intense)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-operandi-deuteranopia))
-;;;###theme-autoload
-(put 'modus-operandi-deuteranopia 'theme-properties '(:background-mode light :kind color-scheme :family modus))
-
;;; modus-operandi-deuteranopia-theme.el ends here
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-operandi
"Elegant, highly legible theme with a white 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
-7:1 (WCAG AAA standard).")
+7:1 (WCAG AAA standard)."
+ :background-mode 'light
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-operandi-palette
'(
;;; Basic values
(bg-main "#ffffff")
- (bg-dim "#f0f0f0")
+ (bg-dim "#f2f2f2")
(fg-main "#000000")
(fg-dim "#595959")
(fg-alt "#193668")
;;; Special purpose
(bg-completion "#c0deff")
- (bg-hover "#94d4ff")
+ (bg-hover "#b2e4dc")
(bg-hover-secondary "#f5d0a0")
(bg-hl-line "#dae5ec")
(bg-region "#bdbdbd")
(date-deadline red)
(date-event fg-alt)
(date-holiday red-cooler)
+ (date-holiday-other blue)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow-warmer)
(fg-space border)
(bg-space-err bg-red-intense)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-operandi))
-;;;###theme-autoload
-(put 'modus-operandi 'theme-properties '(:background-mode light :kind color-scheme :family modus))
-
;;; modus-operandi-theme.el ends here
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-operandi-tinted
"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
-7:1 (WCAG AAA standard).")
+7:1 (WCAG AAA standard)."
+ :background-mode 'light
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-operandi-tinted-palette
'(
;;; Basic values
(bg-main "#fbf7f0")
- (bg-dim "#ede7db")
+ (bg-dim "#efe9dd")
(fg-main "#000000")
(fg-dim "#595959")
(fg-alt "#193668")
;;; Special purpose
(bg-completion "#f0c1cf")
- (bg-hover "#94d4ff")
+ (bg-hover "#b2e4dc")
(bg-hover-secondary "#f5d0a0")
(bg-hl-line "#f1d5d0")
(bg-region "#c2bcb5")
(date-deadline red)
(date-event fg-alt)
(date-holiday red-cooler)
+ (date-holiday-other blue)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow-warmer)
(fg-space border)
(bg-space-err bg-red-intense)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-operandi-tinted))
-;;;###theme-autoload
-(put 'modus-operandi-tinted 'theme-properties '(:background-mode light :kind color-scheme :family modus))
-
;;; modus-operandi-tinted-theme.el ends here
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-operandi-tritanopia
"Tritanopia-optimized theme with a white background.
This variant is optimized for users with blue-yellow color
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 7:1 (WCAG AAA
-standard).")
+standard)."
+ :background-mode 'light
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-operandi-tritanopia-palette
'(
;;; Basic values
(bg-main "#ffffff")
- (bg-dim "#f0f0f0")
+ (bg-dim "#f2f2f2")
(fg-main "#000000")
(fg-dim "#595959")
(fg-alt "#193668")
(bg-region "#bdbdbd")
(fg-region "#000000")
- (bg-char-0 "#ff8a5f")
- (bg-char-1 "#bf7aff")
- (bg-char-2 "#7fe0e0")
+ (bg-char-0 "#ff908f")
+ (bg-char-1 "#bfbfff")
+ (bg-char-2 "#5fcfdf")
(bg-mode-line-active "#afe0f2")
(fg-mode-line-active "#0f0f0f")
(date-deadline red)
(date-event fg-alt)
(date-holiday red)
+ (date-holiday-other cyan)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled magenta)
(fg-space border)
(bg-space-err bg-red-intense)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-operandi-tritanopia))
-;;;###theme-autoload
-(put 'modus-operandi-tritanopia 'theme-properties '(:background-mode light :kind color-scheme :family modus))
-
;;; modus-operandi-tritanopia-theme.el ends here
;; Maintainer: Modus-Themes Development <~protesilaos/modus-themes@lists.sr.ht>
;; URL: https://git.sr.ht/~protesilaos/modus-themes
;; Mailing-List: https://lists.sr.ht/~protesilaos/modus-themes
-;; Version: 4.2.0
+;; Version: 4.3.0
;; Package-Requires: ((emacs "27.1"))
;; Keywords: faces, theme, accessibility
(defvar modus-themes-preset-overrides-faint
'((bg-completion bg-inactive)
- (bg-hover bg-cyan-subtle)
- (bg-hover-secondary bg-magenta-subtle)
(bg-hl-line bg-dim)
(bg-paren-match bg-cyan-subtle)
(bg-region bg-active)
(prose-block red-faint)
(prose-done green-intense)
- (prose-metadata cyan-faint)
+ (prose-metadata magenta-faint)
(prose-metadata-value blue-cooler)
- (prose-table cyan)
+ (prose-table blue)
(prose-todo red-intense)
(fg-heading-0 blue-cooler)
(overline-heading-6 yellow-cooler)
(overline-heading-7 red-cooler)
(overline-heading-8 magenta))
- "Preset for palette overrides with faint coloration.
+ "Preset for palette overrides with intense coloration.
This changes many parts of the theme to make them look more
colorful/intense. Many background colors are accented and
(fnname magenta-cooler)
(keyword magenta-warmer)
(preprocessor red-cooler)
- (string olive)
+ (string green-warmer)
(type cyan-cooler)
(variable cyan)
(rx-construct blue-cooler)
(defun modus-themes--annotate-theme (theme)
"Return completion annotation for THEME."
- (format " -- %s" (car (split-string (get (intern theme) 'theme-documentation) "\\."))))
+ (when-let ((symbol (intern-soft theme))
+ (doc-string (get symbol 'theme-documentation)))
+ (format " -- %s" (car (split-string doc-string "\\.")))))
+
+(defun modus-themes--completion-table (category candidates)
+ "Pass appropriate metadata CATEGORY to completion CANDIDATES."
+ (lambda (string pred action)
+ (if (eq action 'metadata)
+ `(metadata (category . ,category))
+ (complete-with-action action candidates string pred))))
+
+(defun modus-themes--completion-table-candidates ()
+ "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."
(intern
(completing-read
"Select Modus theme: "
- (modus-themes--list-known-themes)
+ (modus-themes--completion-table-candidates)
nil t nil
'modus-themes--select-theme-history))))
(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))
+ (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))
;;;###autoload
(defun modus-themes-toggle ()
(if-let* ((themes (modus-themes--toggle-theme-p))
(one (car themes))
(two (cadr themes)))
- (if (eq (car custom-enabled-themes) one)
- (modus-themes-load-theme two)
- (modus-themes-load-theme one))
+ (modus-themes-load-theme (if (eq (car custom-enabled-themes) one) two one))
(modus-themes-load-theme (modus-themes--select-prompt))))
(defun modus-themes--list-colors-render (buffer theme &optional mappings &rest _)
(completion-extra-properties `(:annotation-function ,#'modus-themes--annotate-theme)))
(completing-read
(format "Use palette from theme [%s]: " def)
- (modus-themes--list-known-themes) nil t nil
+ (modus-themes--completion-table-candidates)
+ nil t nil
'modus-themes--list-colors-prompt-history def)))
(defun modus-themes-list-colors (theme &optional mappings)
(style (or key (alist-get t modus-themes-headings)))
(style-listp (listp style))
(properties style)
- (var (when (memq 'variable-pitch properties) 'variable-pitch))
+ (var (when (and style-listp (memq 'variable-pitch properties)) 'variable-pitch))
(weight (when style-listp (modus-themes--weight style))))
- (list :inherit
- (cond
- ;; `no-bold' is for backward compatibility because we cannot
- ;; deprecate a variable's value.
- ((or weight (memq 'no-bold properties))
- var)
- (var (append (list 'bold) (list var)))
- ('bold))
+ (list :inherit (cond
+ ((not style-listp) 'bold)
+ ;; `no-bold' is for backward compatibility because we cannot
+ ;; deprecate a variable's value.
+ ((or weight (memq 'no-bold properties))
+ var)
+ (var (append (list 'bold) (list var)))
+ (t 'bold))
:background (or bg 'unspecified)
:foreground fg
:overline (or ol 'unspecified)
- :height (modus-themes--property-lookup properties 'height #'floatp 'unspecified)
+ :height (if style-listp
+ (modus-themes--property-lookup properties 'height #'floatp 'unspecified)
+ 'unspecified)
:weight (or weight 'unspecified))))
(defun modus-themes--org-block (fg bg)
`(tool-bar ((,c :background ,bg-dim :foreground ,fg-main)))
`(vertical-border ((,c :foreground ,border)))
;;;;; basic and/or ungrouped styles
+ `(appt-notification ((,c :inherit error)))
+ `(blink-matching-paren-highlight-offscreen ((,c :background ,bg-paren-match)))
`(bold ((,c :weight bold)))
`(bold-italic ((,c :inherit (bold italic))))
`(underline ((,c :underline ,fg-dim)))
`(agda2-highlight-unsolved-meta-face ((,c :inherit modus-themes-lang-warning)))
;;;;; all-the-icons
`(all-the-icons-blue ((,c :foreground ,blue-cooler)))
- `(all-the-icons-blue-warmer ((,c :foreground ,blue-warmer)))
- `(all-the-icons-cyan ((,c :foreground ,cyan-intense)))
- `(all-the-icons-cyan-warmer ((,c :foreground ,cyan-warmer)))
+ `(all-the-icons-blue-alt ((,c :foreground ,blue-warmer)))
+ `(all-the-icons-cyan ((,c :foreground ,cyan)))
+ `(all-the-icons-cyan-alt ((,c :foreground ,cyan-warmer)))
`(all-the-icons-dblue ((,c :foreground ,blue-faint)))
`(all-the-icons-dcyan ((,c :foreground ,cyan-faint)))
`(all-the-icons-dgreen ((,c :foreground ,green-faint)))
`(all-the-icons-dorange ((,c :foreground ,red-faint)))
`(all-the-icons-dpink ((,c :foreground ,magenta-faint)))
`(all-the-icons-dpurple ((,c :foreground ,magenta-cooler)))
- `(all-the-icons-dred ((,c :foreground ,red-faint)))
+ `(all-the-icons-dred ((,c :foreground ,red)))
`(all-the-icons-dsilver ((,c :foreground ,cyan-faint)))
`(all-the-icons-dyellow ((,c :foreground ,yellow-faint)))
`(all-the-icons-green ((,c :foreground ,green)))
`(all-the-icons-lorange ((,c :foreground ,red-warmer)))
`(all-the-icons-lpink ((,c :foreground ,magenta)))
`(all-the-icons-lpurple ((,c :foreground ,magenta-faint)))
- `(all-the-icons-lred ((,c :foreground ,red)))
+ `(all-the-icons-lred ((,c :foreground ,red-faint)))
+ `(all-the-icons-lsilver ((,c :foreground "gray50")))
`(all-the-icons-lyellow ((,c :foreground ,yellow-warmer)))
- `(all-the-icons-maroon ((,c :foreground ,yellow-cooler)))
- `(all-the-icons-red ((,c :foreground ,red-intense)))
- `(all-the-icons-red-warmer ((,c :foreground ,red-cooler)))
- `(all-the-icons-yellow ((,c :foreground ,yellow-intense)))
+ `(all-the-icons-maroon ((,c :foreground ,magenta)))
+ `(all-the-icons-orange ((,c :foreground ,yellow-warmer)))
+ `(all-the-icons-pink ((,c :foreground ,magenta-warmer)))
+ `(all-the-icons-purple ((,c :foreground ,magenta-cooler)))
+ `(all-the-icons-purple-alt ((,c :foreground ,blue-warmer)))
+ `(all-the-icons-red ((,c :foreground ,red)))
+ `(all-the-icons-red-alt ((,c :foreground ,red-cooler)))
+ `(all-the-icons-silver ((,c :foreground "gray50")))
+ `(all-the-icons-yellow ((,c :foreground ,yellow)))
;;;;; all-the-icons-dired
`(all-the-icons-dired-dir-face ((,c :foreground ,cyan-faint)))
;;;;; all-the-icons-ibuffer
`(annotate-highlight-secondary ((,c :background ,bg-magenta-subtle :underline ,magenta-intense)))
;;;;; ansi-color
;; Those are in Emacs28.
- `(ansi-color-black ((,c :background "black" :foreground "black")))
- `(ansi-color-blue ((,c :background ,blue :foreground ,blue)))
+ `(ansi-color-black ((,c :background ,bg-term-black :foreground ,fg-term-black)))
+ `(ansi-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue)))
`(ansi-color-bold ((,c :inherit bold)))
- `(ansi-color-bright-black ((,c :background "gray35" :foreground "gray35")))
- `(ansi-color-bright-blue ((,c :background ,blue-warmer :foreground ,blue-warmer)))
- `(ansi-color-bright-cyan ((,c :background ,cyan-cooler :foreground ,cyan-cooler)))
- `(ansi-color-bright-green ((,c :background ,green-cooler :foreground ,green-cooler)))
- `(ansi-color-bright-magenta ((,c :background ,magenta-cooler :foreground ,magenta-cooler)))
- `(ansi-color-bright-red ((,c :background ,red-warmer :foreground ,red-warmer)))
- `(ansi-color-bright-white ((,c :background "white" :foreground "white")))
- `(ansi-color-bright-yellow ((,c :background ,yellow-warmer :foreground ,yellow-warmer)))
- `(ansi-color-cyan ((,c :background ,cyan :foreground ,cyan)))
- `(ansi-color-green ((,c :background ,green :foreground ,green)))
- `(ansi-color-magenta ((,c :background ,magenta :foreground ,magenta)))
- `(ansi-color-red ((,c :background ,red :foreground ,red)))
- `(ansi-color-white ((,c :background "gray65" :foreground "gray65")))
- `(ansi-color-yellow ((,c :background ,yellow :foreground ,yellow)))
+ `(ansi-color-bright-black ((,c :background ,bg-term-black-bright :foreground ,fg-term-black-bright)))
+ `(ansi-color-bright-blue ((,c :background ,bg-term-blue-bright :foreground ,fg-term-blue-bright)))
+ `(ansi-color-bright-cyan ((,c :background ,bg-term-cyan-bright :foreground ,fg-term-cyan-bright)))
+ `(ansi-color-bright-green ((,c :background ,bg-term-green-bright :foreground ,fg-term-green-bright)))
+ `(ansi-color-bright-magenta ((,c :background ,bg-term-magenta-bright :foreground ,fg-term-magenta-bright)))
+ `(ansi-color-bright-red ((,c :background ,bg-term-red-bright :foreground ,fg-term-red-bright)))
+ `(ansi-color-bright-white ((,c :background ,bg-term-white-bright :foreground ,fg-term-white-bright)))
+ `(ansi-color-bright-yellow ((,c :background ,bg-term-yellow-bright :foreground ,fg-term-yellow-bright)))
+ `(ansi-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan)))
+ `(ansi-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green)))
+ `(ansi-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta)))
+ `(ansi-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red)))
+ `(ansi-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white)))
+ `(ansi-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow)))
;;;;; anzu
`(anzu-match-1 ((,c :inherit modus-themes-subtle-cyan)))
`(anzu-match-2 ((,c :inherit modus-themes-search-current)))
`(binder-sidebar-marked ((,c :inherit modus-themes-mark-sel)))
`(binder-sidebar-missing ((,c :inherit modus-themes-mark-del)))
`(binder-sidebar-tags ((,c :foreground ,variable)))
+;;;;; breadcrumb
+ `(breadcrumb-face ((,c :foreground ,fg-alt)))
+ `(breadcrumb-imenu-leaf-face ((,c :inherit bold :foreground ,modeline-info))) ; same as `which-func'
+ `(breadcrumb-project-leaf-face ((,c :inherit bold)))
;;;;; bongo
`(bongo-album-title (( )))
`(bongo-artist ((,c :foreground ,accent-0)))
`(change-log-name ((,c :foreground ,name)))
`(log-edit-header ((,c :inherit bold)))
`(log-edit-headers-separator ((,c :height 1 :background ,border :extend t)))
- `(log-edit-summary ((,c :inherit bold :foreground ,blue)))
+ `(log-edit-summary ((,c :inherit success)))
`(log-edit-unknown-header ((,c :inherit shadow)))
`(log-view-commit-body (( )))
`(log-view-file ((,c :inherit bold)))
`(corfu-bar ((,c :background ,fg-dim)))
`(corfu-border ((,c :background ,bg-active)))
`(corfu-default ((,c :background ,bg-dim)))
+;;;;; 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)))
`(crontab-month ((,c :foreground ,constant)))
`(crontab-week-day ((,c :foreground ,variable)))
`(crontab-predefined ((,c :foreground ,string)))
-;;;;; css-mode
- `(css-property ((,c :inherit font-lock-type-face)))
- `(css-selector ((,c :inherit font-lock-keyword-face)))
;;;;; csv-mode
`(csv-separator-face ((,c :foreground ,red-intense)))
;;;;; ctrlf
;;;;; ert
`(ert-test-result-expected ((,c :inherit modus-themes-prominent-note)))
`(ert-test-result-unexpected ((,c :inherit modus-themes-prominent-error)))
+;;;;; erts-mode
+ `(erts-mode-end-test ((,c :inherit error)))
+ `(erts-mode-specification-name ((,c :inherit bold)))
+ `(erts-mode-specification-value ((,c :foreground ,string)))
+ `(erts-mode-start-test ((,c :inherit success)))
;;;;; eshell
`(eshell-ls-archive ((,c :foreground ,accent-2)))
`(eshell-ls-backup ((,c :inherit shadow)))
`(git-commit-keyword ((,c :foreground ,keyword)))
`(git-commit-nonempty-second-line ((,c :inherit error)))
`(git-commit-overlong-summary ((,c :inherit warning)))
- `(git-commit-summary ((,c :inherit bold :foreground ,blue)))
+ `(git-commit-summary ((,c :inherit success)))
;;;;; git-gutter
`(git-gutter:added ((,c :background ,bg-added-fringe)))
`(git-gutter:deleted ((,c :background ,bg-removed-fringe)))
;;;;; ivy-posframe
`(ivy-posframe-border ((,c :background ,border)))
`(ivy-posframe-cursor ((,c :background ,fg-main :foreground ,bg-main)))
+;;;;; japanese-holidays
+ `(japanese-holiday-saturday ((,c :foreground ,date-holiday-other)))
;;;;; jira (org-jira)
`(jiralib-comment-face ((,c :background ,bg-inactive)))
`(jiralib-comment-header-face ((,c :inherit bold)))
`(mc/cursor-bar-face ((,c :height 1 :foreground ,fg-main :background ,bg-main)))
`(mc/cursor-face ((,c :inverse-video t)))
`(mc/region-face ((,c :inherit region)))
+;;;;; nerd-icons
+ `(nerd-icons-blue ((,c :foreground ,blue-cooler)))
+ `(nerd-icons-blue-alt ((,c :foreground ,blue-warmer)))
+ `(nerd-icons-cyan ((,c :foreground ,cyan)))
+ `(nerd-icons-cyan-alt ((,c :foreground ,cyan-warmer)))
+ `(nerd-icons-dblue ((,c :foreground ,blue-faint)))
+ `(nerd-icons-dcyan ((,c :foreground ,cyan-faint)))
+ `(nerd-icons-dgreen ((,c :foreground ,green-faint)))
+ `(nerd-icons-dmaroon ((,c :foreground ,magenta-faint)))
+ `(nerd-icons-dorange ((,c :foreground ,red-faint)))
+ `(nerd-icons-dpink ((,c :foreground ,magenta-faint)))
+ `(nerd-icons-dpurple ((,c :foreground ,magenta-cooler)))
+ `(nerd-icons-dred ((,c :foreground ,red)))
+ `(nerd-icons-dsilver ((,c :foreground ,cyan-faint)))
+ `(nerd-icons-dyellow ((,c :foreground ,yellow-faint)))
+ `(nerd-icons-green ((,c :foreground ,green)))
+ `(nerd-icons-lblue ((,c :foreground ,blue-cooler)))
+ `(nerd-icons-lcyan ((,c :foreground ,cyan)))
+ `(nerd-icons-lgreen ((,c :foreground ,green-warmer)))
+ `(nerd-icons-lmaroon ((,c :foreground ,magenta-warmer)))
+ `(nerd-icons-lorange ((,c :foreground ,red-warmer)))
+ `(nerd-icons-lpink ((,c :foreground ,magenta)))
+ `(nerd-icons-lpurple ((,c :foreground ,magenta-faint)))
+ `(nerd-icons-lred ((,c :foreground ,red-faint)))
+ `(nerd-icons-lsilver ((,c :foreground "gray50")))
+ `(nerd-icons-lyellow ((,c :foreground ,yellow-warmer)))
+ `(nerd-icons-maroon ((,c :foreground ,magenta)))
+ `(nerd-icons-orange ((,c :foreground ,yellow-warmer)))
+ `(nerd-icons-pink ((,c :foreground ,magenta-warmer)))
+ `(nerd-icons-purple ((,c :foreground ,magenta-cooler)))
+ `(nerd-icons-purple-alt ((,c :foreground ,blue-warmer)))
+ `(nerd-icons-red ((,c :foreground ,red)))
+ `(nerd-icons-red-alt ((,c :foreground ,red-cooler)))
+ `(nerd-icons-silver ((,c :foreground "gray50")))
+ `(nerd-icons-yellow ((,c :foreground ,yellow)))
+;;;;; nerd-icons-completion
+ `(nerd-icons-completion-dir-face ((,c :foreground ,cyan-faint)))
+;;;;; nerd-icons-dired
+ `(nerd-icons-dired-dir-face ((,c :foreground ,cyan-faint)))
+;;;;; nerd-icons-ibuffer
+ `(nerd-icons-ibuffer-dir-face ((,c :foreground ,cyan-faint)))
+ `(nerd-icons-ibuffer-file-face ((,c :foreground ,blue-faint)))
+ `(nerd-icons-ibuffer-mode-face ((,c :foreground ,cyan)))
+ `(nerd-icons-ibuffer-size-face ((,c :foreground ,cyan-cooler)))
;;;;; neotree
`(neo-banner-face ((,c :foreground ,accent-0)))
`(neo-button-face ((,c :inherit button)))
`(org-date ((,c :inherit modus-themes-fixed-pitch :foreground ,date-common)))
`(org-date-selected ((,c :foreground ,date-common :inverse-video t)))
`(org-document-info ((,c :foreground ,prose-metadata-value)))
- `(org-document-info-keyword ((,c :foreground ,prose-metadata)))
+ `(org-document-info-keyword ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata)))
`(org-document-title ((,c :inherit modus-themes-heading-0)))
`(org-done ((,c :foreground ,prose-done)))
`(org-drawer ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata)))
`(terraform--resource-name-face ((,c :foreground ,keyword)))
`(terraform--resource-type-face ((,c :foreground ,type)))
;;;;; term
+ ;; NOTE 2023-08-10: `term-color-black' and `term-color-white' use
+ ;; the "bright" semantic color mappings to make sure they are
+ ;; distinct from `term'.
`(term ((,c :background ,bg-main :foreground ,fg-main)))
`(term-bold ((,c :inherit bold)))
- `(term-color-black ((,c :background "gray35" :foreground "gray35")))
- `(term-color-blue ((,c :background ,blue :foreground ,blue)))
- `(term-color-cyan ((,c :background ,cyan :foreground ,cyan)))
- `(term-color-green ((,c :background ,green :foreground ,green)))
- `(term-color-magenta ((,c :background ,magenta :foreground ,magenta)))
- `(term-color-red ((,c :background ,red :foreground ,red)))
- `(term-color-white ((,c :background "gray65" :foreground "gray65")))
- `(term-color-yellow ((,c :background ,yellow :foreground ,yellow)))
+ `(term-color-black ((,c :background ,bg-term-black-bright :foreground ,fg-term-black-bright)))
+ `(term-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue)))
+ `(term-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan)))
+ `(term-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green)))
+ `(term-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta)))
+ `(term-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red)))
+ `(term-color-white ((,c :background ,bg-term-white-bright :foreground ,fg-term-white-bright)))
+ `(term-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow)))
`(term-underline ((,c :underline t)))
;;;;; textsec
`(textsec-suspicious (( )))
`(vr/match-1 ((,c :inherit modus-themes-intense-yellow)))
`(vr/match-separator-face ((,c :inherit bold :background ,bg-active)))
;;;;; vterm
- `(vterm-color-black ((,c :background "gray35" :foreground "black")))
- `(vterm-color-blue ((,c :background ,blue-warmer :foreground ,blue)))
- `(vterm-color-cyan ((,c :background ,cyan-cooler :foreground ,cyan)))
+ ;; 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 ,green-cooler :foreground ,green)))
+ `(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 ,magenta-cooler :foreground ,magenta)))
- `(vterm-color-red ((,c :background ,red-warmer :foreground ,red)))
+ `(vterm-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta)))
+ `(vterm-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red)))
`(vterm-color-underline ((,c :underline t)))
- `(vterm-color-white ((,c :background "white" :foreground "gray65")))
- `(vterm-color-yellow ((,c :background ,yellow-warmer :foreground ,yellow)))
+ `(vterm-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white)))
+ `(vterm-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow)))
;;;;; vundo
`(vundo-default ((,c :inherit shadow)))
`(vundo-highlight ((,c :inherit (bold vundo-node) :foreground ,red)))
`(wgrep-file-face ((,c :foreground ,fg-alt)))
`(wgrep-reject-face ((,c :inherit error)))
;;;;; which-function-mode
- `(which-func ((,c :inherit bold :foreground ,modeline-info)))
+ `(which-func ((,c :inherit bold :foreground ,modeline-info))) ; same as `breadcrumb-imenu-leaf-face'
;;;;; which-key
`(which-key-command-description-face ((,c :foreground ,fg-main)))
`(which-key-group-description-face ((,c :foreground ,keyword)))
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-vivendi-deuteranopia
"Deuteranopia-optimized theme with a black background.
This variant is optimized for users with red-green color
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 7:1 (WCAG AAA
-standard).")
+standard)."
+ :background-mode 'dark
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-vivendi-deuteranopia-palette
'(
;;; Special purpose
(bg-completion "#2f447f")
- (bg-hover "#004f70")
+ (bg-hover "#45605e")
(bg-hover-secondary "#654a39")
(bg-hl-line "#2f3849")
(bg-region "#5a5a5a")
(bg-removed "#3d3d00")
(bg-removed-faint "#281f00")
- (bg-removed-refine "#515100")
+ (bg-removed-refine "#555500")
(bg-removed-fringe "#d0c03f")
(fg-removed "#d4d48f")
(fg-removed-intense "#d0b05f")
(date-deadline yellow-warmer)
(date-event fg-alt)
(date-holiday yellow-warmer)
+ (date-holiday-other blue)
(date-now blue-faint)
(date-range fg-alt)
(date-scheduled yellow-cooler)
(fg-space border)
(bg-space-err bg-yellow-intense)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-vivendi-deuteranopia))
-;;;###theme-autoload
-(put 'modus-vivendi-deuteranopia 'theme-properties '(:background-mode dark :kind color-scheme :family modus))
-
;;; modus-vivendi-deuteranopia-theme.el ends here
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-vivendi
"Elegant, highly legible theme with a black 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
-7:1 (WCAG AAA standard).")
+7:1 (WCAG AAA standard)."
+ :background-mode 'dark
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-vivendi-palette
'(
;;; Special purpose
(bg-completion "#2f447f")
- (bg-hover "#004f70")
+ (bg-hover "#45605e")
(bg-hover-secondary "#654a39")
(bg-hl-line "#2f3849")
(bg-region "#5a5a5a")
(date-deadline red)
(date-event fg-alt)
(date-holiday red-cooler)
+ (date-holiday-other blue)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow-warmer)
(fg-space border)
(bg-space-err bg-red-intense)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-vivendi))
-;;;###theme-autoload
-(put 'modus-vivendi 'theme-properties '(:background-mode dark :kind color-scheme :family modus))
-
;;; modus-vivendi-theme.el ends here
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-vivendi-tinted
"Elegant, highly legible theme with a night sky 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
-7:1 (WCAG AAA standard).")
+7:1 (WCAG AAA standard)."
+ :background-mode 'dark
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-vivendi-tinted-palette
'(
;;; Special purpose
(bg-completion "#483d8a")
- (bg-hover "#004f70")
+ (bg-hover "#45605e")
(bg-hover-secondary "#654a39")
(bg-hl-line "#303a6f")
(bg-region "#555a66")
(date-deadline red)
(date-event fg-alt)
(date-holiday red-cooler)
+ (date-holiday-other blue)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow-warmer)
(bg-space unspecified)
(fg-space border)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-vivendi-tinted))
-;;;###theme-autoload
-(put 'modus-vivendi-tinted 'theme-properties '(:background-mode dark :kind color-scheme :family modus))
-
;;; modus-vivendi-tinted-theme.el ends here
;; Maintainer: Modus-Themes Development <~protesilaos/modus-themes@lists.sr.ht>
;; URL: https://git.sr.ht/~protesilaos/modus-themes
;; Mailing-List: https://lists.sr.ht/~protesilaos/modus-themes
+;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
(require-theme 'modus-themes t))
(require 'modus-themes))
+;;;###theme-autoload
(deftheme modus-vivendi-tritanopia
"Tritanopia-optimized theme with a black background.
This variant is optimized for users with blue-yellow color
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 7:1 (WCAG AAA
-standard).")
+standard)."
+ :background-mode 'dark
+ :kind 'color-scheme
+ :family 'modus)
(defconst modus-vivendi-tritanopia-palette
'(
(fg-region "#ffffff")
(bg-char-0 "#922a00")
- (bg-char-1 "#4f3f7f")
- (bg-char-2 "#00709f")
+ (bg-char-1 "#00709f")
+ (bg-char-2 "#5f3faf")
(bg-mode-line-active "#003c52")
(fg-mode-line-active "#f0f0f0")
(date-deadline red)
(date-event fg-alt)
(date-holiday red-intense)
+ (date-holiday-other cyan-warmer)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled magenta)
(fg-space border)
(bg-space-err bg-red-intense)
+;;;; Terminal mappings
+
+ (bg-term-black "black")
+ (fg-term-black "black")
+ (bg-term-black-bright "gray35")
+ (fg-term-black-bright "gray35")
+
+ (bg-term-red red)
+ (fg-term-red red)
+ (bg-term-red-bright red-warmer)
+ (fg-term-red-bright red-warmer)
+
+ (bg-term-green green)
+ (fg-term-green green)
+ (bg-term-green-bright green-cooler)
+ (fg-term-green-bright green-cooler)
+
+ (bg-term-yellow yellow)
+ (fg-term-yellow yellow)
+ (bg-term-yellow-bright yellow-warmer)
+ (fg-term-yellow-bright yellow-warmer)
+
+ (bg-term-blue blue)
+ (fg-term-blue blue)
+ (bg-term-blue-bright blue-warmer)
+ (fg-term-blue-bright blue-warmer)
+
+ (bg-term-magenta magenta)
+ (fg-term-magenta magenta)
+ (bg-term-magenta-bright magenta-cooler)
+ (fg-term-magenta-bright magenta-cooler)
+
+ (bg-term-cyan cyan)
+ (fg-term-cyan cyan)
+ (bg-term-cyan-bright cyan-cooler)
+ (fg-term-cyan-bright cyan-cooler)
+
+ (bg-term-white "gray65")
+ (fg-term-white "gray65")
+ (bg-term-white-bright "white")
+ (fg-term-white-bright "white")
+
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(provide-theme 'modus-vivendi-tritanopia))
-;;;###theme-autoload
-(put 'modus-vivendi-tritanopia 'theme-properties '(:background-mode dark :kind color-scheme :family modus))
-
;;; modus-vivendi-tritanopia-theme.el ends here