Compare commits

...

1581 commits
2.3.2 ... main

Author SHA1 Message Date
Protesilaos f1ad6c9383
Reorganise the links to other Modus projects in the README.md and clarify I am not endorsing anybody's views 2026-09-07 11:39:25 +03:00
Protesilaos d7e30694cb
Mention omarchy-modus-themes by Dhavan Vaidya in the README.md 2026-09-06 15:38:17 +03:00
Protesilaos bcf065b803
Add support for log-view-marked face (Emacs 32)
I wrote a patch for it in emacs.git.
2026-09-04 16:49:03 +03:00
Protesilaos a3e7ba2805
Make all flymake EOL faces have the same :height 0.9 2026-09-01 12:44:05 +03:00
Protesilaos fd124dc370
Make read-multiple-choice-face use the style of keybindings plus :inverse-video
This is to make repeat-echo-message more consistent while also
accounting for the original use-case of this face where the
surrounding text is that of the minibuffer prompt (and may thus look
similar/identical to the keybindings).
2026-09-01 05:11:05 +03:00
Protesilaos 24e4b4b9e4
Make log-edit-headers-separator same as separator-line (Emacs bug#81753)
This is the same topic as with commit 2bae09f. Thanks again to Dmitry
Gutov for the suggestion: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=81753>.
2026-08-31 19:13:17 +03:00
Protesilaos 2bae09feeb
Expand the separator-line style to work on TTY and graphics as needed (Emacs bug#81754)
Thanks to Dmitry Gutov for suggesting this in Emacs bug#81754:
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=81754>
2026-08-31 19:11:32 +03:00
Protesilaos 0f4d27dd96
Add missing :version and :package-version from some defface 2026-08-31 19:01:26 +03:00
Protesilaos 27a0ed0260
Make completion-preview-common also have an underline
It looks more consistent this way when we type something that goes
from completion-preview-common to completion-preview-exact.
2026-08-31 18:55:50 +03:00
Protesilaos 9a3cd56cc2
Include the modus-themes-common-palette-user in the resulting palette (Emacs bug#81640)
Thanks to Lucas Jimenez for reporting the bug on the Emacs bug tracker.
2026-08-29 22:26:55 +03:00
Protesilaos b86cace435
Cover query-replace-preview-match (Emacs 32)
This is to (i) only :inherit once and (ii) for me to remember this face.
2026-08-25 10:24:40 +03:00
Protesilaos 21ffe0cd5a
Mention peppers-theme by Joar von Arndt in the README.md 2026-08-24 12:10:46 +03:00
Protesilaos 75ad377135
Reword two statements in the manual 2026-08-19 23:03:37 +03:00
Protesilaos 8ebcedea65
Add support for query-replace-preview (Emacs 32) 2026-08-16 13:54:03 +03:00
Protesilaos 887af1139e
Add modus-vague by @paniash to the list of themes based on Modus 2026-08-13 14:07:23 +03:00
Protesilaos 52d4665bc5
Mention word-smith by @Sadsnake1 in the README.md
I was informed about it in issue 229:
<https://github.com/protesilaos/modus-themes/issues/229>.
2026-08-11 10:53:00 +03:00
Protesilaos 75aa3fa79e
Simplify the flymake end-of-line faces 2026-07-30 10:19:53 +03:00
Protesilaos 940249694c
Extend support for flycheck faces 2026-07-30 10:19:38 +03:00
Protesilaos 7d53a6959c
Add support for (setq magit-diff-use-indicator-faces t) 2026-07-22 10:11:54 +03:00
Protesilaos e81c3c6ce3
Remove two obsolete company-mode faces 2026-07-17 14:09:09 +03:00
Protesilaos 47dc463561
Clarify how Modus-related projects are listed in the README.md 2026-07-16 22:07:41 +03:00
Protesilaos 50b7a66423
Mention modus-alabaster by Derek Passen @dpassen in the project's README.md 2026-07-16 22:06:24 +03:00
Protesilaos 9a46f89607
Add TODO for more faces that I might want to bring back 2026-07-14 10:16:35 +03:00
Protesilaos 3c98eadc35
Bring back the Modus mark faces
Read the commit message of bf69c6c for the explanation.
2026-07-14 10:08:46 +03:00
Protesilaos 4bd5e91ee0
Add support for the synaxis package by Thanos Apollo 2026-07-14 09:41:05 +03:00
Protesilaos f2b88b4d7f
Simplify the faces I just reinstated 2026-07-14 09:18:30 +03:00
Protesilaos a1d081256e
Bring back the Modus search facesc
Read the commit message of bf69c6c for the explanation.
2026-07-14 09:12:22 +03:00
Protesilaos 0cf5a2a52a
Bring back the Modus completion faces
Read the commit message of bf69c6c for the explanation.
2026-07-14 09:04:23 +03:00
Protesilaos bf69c6cbcc
Bring back the modus-themes-prompt face
At some point I removed all the :inherit entries out of concern that
we would run into problems with circular dependencies (there was that
case with button and link inheriting each other, which recent Emacs
versions treat as an error).

With the Modus faces that can happen if the user configures things
accordingly or if I make some mistake here.

My plan now is to rely on Modus faces for cases such as this one, but
to not use :inherit for other faces, since I do not control how those
are defined.
2026-07-14 08:56:56 +03:00
Protesilaos 35586477b1
Add README.md reference to folio-theme by @kn66 2026-07-13 12:26:09 +03:00
Protesilaos 31e8394cb1
Acknowledge Heitor Augusto for commit 89e40be
This was done in pull request 225: <https://github.com/protesilaos/modus-themes/pull/225>.
The change is small, meaning that Heitor does not need to assign
copyright to the Free Software Foundation.
2026-07-12 12:27:59 +03:00
Protesilaos 21d97d4fe6
Remove trailing spaces from modus-themes--get-theme-palette-subr 2026-07-12 12:26:55 +03:00
Protesilaos 89294a9a6f
Merge pull request #225 from HeitorAugustoLN/patch-1
Improve core palette loading logic
2026-07-12 12:22:57 +03:00
Protesilaos f237b3ec47
Acknowledge Yuta Yamamoto for commit b3bd04a
This was done in pull request 227: <https://github.com/protesilaos/modus-themes/pull/227>.
The change is small, meaning that Yuta does not need to assign
copyright to the Free Software Foundation.
2026-07-12 12:19:58 +03:00
Protesilaos 61b5e30bb8
Merge pull request #227 from yutayamamoto/fix-auto-dim-face-names
Update auto-dim-other-buffers faces to their new names
2026-07-12 12:19:05 +03:00
Yuta Yamamoto b3bd04aca5 Update auto-dim-other-buffers faces to their new names
The package dropped the `-face' suffix: `auto-dim-other-buffers-face'
and `auto-dim-other-buffers-hide-face' are now obsolete aliases for
`auto-dim-other-buffers' and `auto-dim-other-buffers-hide'.
2026-07-08 15:13:27 +09:00
Protesilaos a69a3c80b6
Remove outdated reference to project mailing list
Thanks to Yuta Yamamoto for telling me about this in issue 226:
<https://github.com/protesilaos/modus-themes/issues/226>.
2026-07-07 23:08:48 +03:00
Heitor Augusto 89e40be4d8
Improve core palette loading logic
Enhance theme palette loading by ensuring core palette is loaded before accessing its value.
2026-07-06 21:17:13 +00:00
Protesilaos a071a9d8e7
Acknowledge Shawn LeMaster for commits c981ca6, 50c42fe, f28a5e5
These are part of pull request 224: <https://github.com/protesilaos/modus-themes/pull/224>.
2026-07-02 11:51:31 +03:00
Protesilaos a378446107
Merge pull request #224 from shlemas/main
Improve mapping coverage for modus-themes-generate-palette + tests
2026-07-02 11:50:20 +03:00
Protesilaos 9172a0e8ef
Add support for vc-dir-key-binding-hint-label (Emacs 32) 2026-06-28 13:42:10 +03:00
Shawn LeMaster f28a5e5931 Add missing quotes on color names 2026-06-27 22:12:59 -05:00
Shawn LeMaster 50c42fe90d Add more mappings to modus-themes-generate-palette + test 2026-06-27 17:42:40 -05:00
Shawn LeMaster c981ca60ae Add complete-palette-mappings test 2026-06-27 17:24:11 -05:00
Protesilaos c6a08aa1a8
Mention the modus-noric themes by Ashton Wiersdorf 2026-06-23 22:13:35 +03:00
Protesilaos 2d044ac89f
Update to modus-themes version 5.3.0 2026-06-21 16:25:01 +03:00
Protesilaos f97a9b0240
Mention pixel-themes by Lucas (@lucasobx) as project that builds on top of Modus 2026-06-16 09:28:44 +03:00
Protesilaos ef2fa82b12
Change read-multiple-choice-face to work with any combination of prompt colours 2026-05-22 10:20:20 +03:00
Protesilaos 87d5764ecc
Update elfeed faces to their new names
Thanks to Daniel Mendler for telling me about this change:
<https://github.com/emacs-elfeed/elfeed/pull/562#issuecomment-4511165960>.
2026-05-21 23:15:10 +03:00
Protesilaos c115002430
Change the fill-column-indicator background to unspecified
Thanks to vpxyz for telling me about the relevant warning. This was
done in issue 219: <https://github.com/protesilaos/modus-themes/issues/219>.
2026-05-19 13:38:17 +03:00
Protesilaos a47ed7af3f
Recompile the Info manual 2026-05-17 13:34:25 +03:00
Protesilaos 124ba3168e
Make fill-column-indicator appear a thin line also on TTY
I am doing this in response to issue 218, as reported by Mike Crowe:
<https://github.com/protesilaos/modus-themes/issues/218>.
2026-05-17 13:34:20 +03:00
Protesilaos c6bb5eb8df
Use the correct form to deprecate the modus-themes-prompt face 2026-05-08 23:29:53 +03:00
Protesilaos a4b6ada971
Deprecate the user option modus-themes-completions 2026-05-08 23:29:53 +03:00
Protesilaos 634dcc3245
Deprecate the user option modus-themes-prompts 2026-05-08 23:15:03 +03:00
Protesilaos c8925cd23b
Modify the manual about the version of the themes in Emacs 31
I wanted to get this done, but I had no time for it.
2026-05-07 20:39:44 +03:00
Protesilaos b242d43e6a
Make elfeed-show-entry-author-face conditionally bold 2026-05-06 08:27:53 +03:00
Protesilaos b4eca2c241
Add support for markdown-ts-mode 2026-05-05 22:40:37 +03:00
Protesilaos 806c894611
Add support for the margin face (Emacs 31) 2026-05-05 21:35:18 +03:00
Protesilaos 02a339ab2d
Mention my modus-themes-exporter in the README.md 2026-05-03 22:19:04 +03:00
Protesilaos c2be0f59b5
Rewrite the manual about modus-themes-mixed-fonts
Okay, this is enough for tonight. I still have a long way to go with this...
2026-05-03 22:11:42 +03:00
Protesilaos 211a72b708
Rewrite the manual about modus-themes-to-rotate 2026-05-03 22:03:44 +03:00
Protesilaos b7f64effe5
Rewrite the manual about modus-themes-to-toggle 2026-05-03 22:01:21 +03:00
Protesilaos 7c3c48b6dd
Rewrite the manual about modus-themes-italic-constructs 2026-05-03 21:59:03 +03:00
Protesilaos 1fc28ad804
Rewrite the manual about modus-themes-bold-constructs 2026-05-03 21:58:58 +03:00
Protesilaos 3ab7b22105
Rewrite the manual about modus-themes-disable-other-themes 2026-05-03 21:51:31 +03:00
Protesilaos 7f146f8826
Continue making stylistic changes to the manual 2026-05-03 21:45:36 +03:00
Protesilaos 5efd13653a
Merge pull request #217 from Stebalien/steb/elfeed
Add support for the new elfeed-show faces
2026-05-03 10:07:09 +03:00
Steven Allen 34c169a780 Add support for the new elfeed-show faces
The faces match the other elfeed faces where possible, and
notmuch/message faces otherwise (given that the elfeed interface is
inspired by notmuch).
2026-05-02 08:58:45 -07:00
Protesilaos 010ed94527
Start rewriting the manual
I will review the entire document, but this is enough for the evening.
2026-05-01 21:52:03 +03:00
Protesilaos 0164619a09
Be consistent about letter casing in the manual's Org PROPERTIES drawers 2026-05-01 20:18:09 +03:00
Protesilaos 8ebdc208ae
Mention in the README.md the Modus derivatives I am aware of 2026-05-01 20:01:25 +03:00
Protesilaos 2156e94a40
Same small rewording to the README.md 2026-05-01 20:01:13 +03:00
Protesilaos 15c77ce939
Update the test for modus-themes-wcag-formula
I prefer to have an error if the wrong colour is provided.
2026-05-01 17:44:49 +03:00
Protesilaos 0775c7ee92
Update test for modus-themes--hex-or-name-to-rgb
It is called differently now and also throws an error if it must.
2026-05-01 17:44:15 +03:00
Protesilaos c9c0974747
Write test for modus-themes-color-hex-p 2026-05-01 17:43:28 +03:00
Protesilaos cf0044518f
Deprecate modus-themes-generate-gradient and use modus-themes-adjust-value instead
They are meant to do the same thing.
2026-05-01 17:41:48 +03:00
Protesilaos 8d62a73f2a
Make modus-themes-adjust-value not depend on color-lighten-name
This is because that function relies on color-name-to-rgb which does
not seem to work in the early-init.el as reported by amano-kenji in
issue 215: <https://github.com/protesilaos/modus-themes/issues/215>.
2026-05-01 17:40:45 +03:00
Protesilaos 4b286c2b61
Change all HEX-COLOR parameters to COLOR in light of commit 488e913 2026-05-01 17:37:26 +03:00
Protesilaos 488e913b1e
Make helper function accept named colours as well as hex RGB
Otherwise we have a regression. Something like "gray50" is a valid
colour value (when list-colors-display returns it, anyway).
2026-05-01 17:35:30 +03:00
Protesilaos f71db69bad
Use "Protesilaos" instead of "Protesilaos Stavrou"
As I announced here: <https://protesilaos.com/news/2026-04-21-omitting-the-surname/>.
2026-04-24 13:27:23 +03:00
Protesilaos Stavrou 7c2ce1ff0d
Add support for the trust-manager package 2026-04-18 16:13:16 +03:00
Protesilaos Stavrou 7950791b52
Clarify the comment about evaluating user options before loading a theme 2026-04-17 22:51:55 +03:00
Protesilaos Stavrou 195011352e
Reword a heading in the manual 2026-04-17 22:49:56 +03:00
Protesilaos Stavrou a2c40a9f92
Add support for tab-line-active and tab-line-inactive faces (Emacs 31) 2026-04-17 12:42:03 +03:00
Protesilaos Stavrou 657fd6f92d
Make modus-themes-retrieve-palette-value public 2026-04-13 15:33:08 +03:00
Protesilaos Stavrou 9e87779b5e
Replace "doc string" with "docstring" 2026-04-13 08:45:14 +03:00
Protesilaos Stavrou ea87862946
Add a comment about the use of format in two tests 2026-04-12 18:46:25 +03:00
Protesilaos Stavrou 8635304365
Acknowledge Elias Gabriel Perez for commit 51c89ec
This was done in pull request 213: <https://github.com/protesilaos/modus-themes/pull/213>.

The change is small, meaning that Elias does not need to assign
copyright to the Free Software Foundation.
2026-04-10 23:44:16 +03:00
Protesilaos Stavrou ef4197d5ae
Merge pull request #213 from DevelopmentCool2449/main
Fix regression in mc/cursor-mc/cursor-bar-face
2026-04-10 23:43:14 +03:00
Elias Gabriel Perez 51c89ec604 * modus-themes.el (modus-themes-faces): Fix regression in mc/cursor-bar-face 2026-04-10 13:02:56 -06:00
Protesilaos Stavrou 4ca21529ae
Make stylistic tweaks to modus-themes-test--define-test (mtt-define-test) 2026-04-10 21:39:21 +03:00
Protesilaos Stavrou 704edc5af3
Update the "Author:" field in modus-themes-test.el 2026-04-10 21:33:18 +03:00
Protesilaos Stavrou 551f4254c8
Acknowledge Benjamin Kästner for commit 44cc370
This was done in pull request 212: <https://github.com/protesilaos/modus-themes/pull/212>.

The change is within the ~15-line limit for non-trivial changes,
meaning that Benjamin does not need to assign copyright to the Free
Software Foundation.
2026-04-10 21:30:37 +03:00
Protesilaos Stavrou 44cc370313
Merge pull request #212 from bkaestner/main
Make DOCSTRING in mtt-define-test optional
2026-04-10 21:29:03 +03:00
Benjamin Kästner f90869584a Remove explicit optional DOCSTRING `nil's
The explicit `nil's actually don't break the previously introduced
functionality. As (stringp nil) is `nil', it was interpreted as a
missing DOCSTRING.

However, they now contain only noise.
2026-04-10 18:29:24 +02:00
Benjamin Kästner 742054c713 Make DOCSTRING in mtt-define-test optional
This commit removes mtt-define-test's explicit DOCSTRING argument and
instead inspects the first entry of the given ARGS:

- if (car args) is a string, it is interpreted as a DOCSTRING
- otherwise, it is considered to be part of the test's BODY

Examples:

;; No docstring
(macroexpand-1
 '(mtt-define-test trivial-check
    (should (= 1 1))))
=> (ert-deftest mtt-trivial-check nil "Test that `trivial-check' does the right thing." (should (= 1 1)))

;; With docstring
(macroexpand-1
 '(mtt-define-test trivial-check-with-docstring
    "This tests a trivial thing."
    (should (= 1 1))))
=> (ert-deftest mtt-trivial-check-with-docstring nil "This tests a trivial thing." (should (= 1 1)))

mtt-define-test's own docstring follows the usual \(fn ARGLIST)
feature used for macros, see "(elisp) Function Documentation".
2026-04-10 18:29:24 +02:00
Protesilaos Stavrou 0217c0dde5
Refine modus-themes--color-eight-to-six-digits
Thanks to Stefan Monnier for pointing this in a message to the
emacs-devel mailing list: <https://lists.gnu.org/archive/html/emacs-devel/2026-04/msg00358.html>.
2026-04-10 18:57:57 +03:00
Protesilaos Stavrou 8a8ed85ae7
Make stylistic change to the test of modus-themes-sort 2026-04-10 16:26:12 +03:00
Protesilaos Stavrou d2f64a8a4f
Write test for modus-themes-sort 2026-04-10 16:24:52 +03:00
Protesilaos Stavrou f430f287bd
Write macro to express tests how I want them 2026-04-10 16:24:38 +03:00
Protesilaos Stavrou ec4c79c472
Write test for modus-themes--background-p 2026-04-10 15:59:50 +03:00
Protesilaos Stavrou 087b419503
Write a test for modus-themes--belongs-to-family-p 2026-04-10 15:57:36 +03:00
Protesilaos Stavrou d76bbf9865
Write test for modus-themes--belongs-to-family-p 2026-04-10 15:55:31 +03:00
Protesilaos Stavrou dce91510b3
Write test for modus-themes-activate 2026-04-10 15:37:29 +03:00
Protesilaos Stavrou df74b73a60
Write a test for modus-themes--color-eight-to-six-digits and use its name instead of the older symbol 2026-04-10 14:58:24 +03:00
Protesilaos Stavrou 282dbd66b5
Improve modus-themes-adjust-value and write a test for it 2026-04-10 14:58:06 +03:00
Protesilaos Stavrou b31966fe65
Change name of ancillary function to be more precise and refine its implementation 2026-04-10 14:57:36 +03:00
Protesilaos Stavrou c63be80d3b
Refine modus-themes-contrast and write a test for it 2026-04-10 14:48:51 +03:00
Protesilaos Stavrou 953ec93841
Refine modus-themes-wcag-formula and write a test for it 2026-04-10 14:48:14 +03:00
Protesilaos Stavrou f062c8d99a
Write a test for modus-themes--hex-to-rgb 2026-04-10 14:21:18 +03:00
Protesilaos Stavrou a134889772
Add missing parenthesis to a doc string 2026-04-10 14:16:29 +03:00
Protesilaos Stavrou 2e19f038c3
Update the modus-themes--hex-to-rgb doc string 2026-04-10 14:03:51 +03:00
Protesilaos Stavrou 6fa9f61f48
Fix current year in modus-themes-test.el 2026-04-10 12:55:59 +03:00
Protesilaos Stavrou dbd67e1140
Update the modus-themes-test.el copyright years 2026-04-10 12:49:08 +03:00
Protesilaos Stavrou 937ee8047b
Make stylistic change to modus-themes--hex-to-rgb 2026-04-10 12:45:32 +03:00
Protesilaos Stavrou 7d234fd65f
Make blink-matching-paren-offscreen the same as show-paren-match
Thanks to Troy Brown for suggesting this change in issue 209:
<https://github.com/protesilaos/modus-themes/issues/209>.
2026-04-05 21:15:09 +03:00
Protesilaos Stavrou b07a5d5001
Reinstate 'provide' in all theme files
I thought this was not needed, but Ihor Radchenko showed me a useful
example. This was done in issue 207: <https://github.com/protesilaos/modus-themes/issues/207>.
2026-04-05 16:33:11 +03:00
Protesilaos Stavrou 9492b9e3fa
Mention modus-themes.nvim in the README.md
A project by @miikanissi.
2026-04-05 16:26:38 +03:00
Protesilaos Stavrou 0a6f5d33a3
Mention zed-modus-themes in the README.md
A project by @vitallium.
2026-04-05 16:24:20 +03:00
Protesilaos Stavrou d763988f80
Mention hugo-modus in the README.md
I am putting it here instead of the manual. The latter is synchronised
with emacs.git and I do not want to have any issues about mentioning
projects that may not be in line with GNU policy.
2026-04-05 16:16:54 +03:00
Protesilaos Stavrou 84528d1f3e
Refine the typst-ts-script-char-face to use bold conditionally
This is about the user option modus-themes-bold-constructs.
2026-04-05 15:53:21 +03:00
Protesilaos Stavrou 5e69da089a
Make font-latex-script-char-face look like escape-glyph 2026-04-05 15:52:37 +03:00
Protesilaos Stavrou bbb43a6f62
Add initial support for typst-ts-mode
Thanks to Pranshu Sharma for making this suggestion in issue 208:
<https://github.com/protesilaos/modus-themes/issues/208>.
2026-04-05 15:52:05 +03:00
Protesilaos Stavrou e0f42f2740
Extend support for my lin package faces 2026-03-25 10:09:07 +02:00
Protesilaos Stavrou e5fb7f2229
Update the manual's acknowledgements for commit 83501bc 2026-03-20 08:17:15 +02:00
Protesilaos Stavrou 83501bcd50
Correct the modus-themes-toggle behaviour to match its doc string
I want to prompt for a theme only if modus-themes-to-toggle is not
right.

Thanks Morten Kjeldgaard for bringing this matter to my attention in
issue 44 in the ef-themes repository (those are built on top of the
modus-themes): <https://github.com/protesilaos/ef-themes/issues/44>.
2026-03-20 08:15:02 +02:00
Protesilaos Stavrou 5e1621d638
Make the breadcrumb faces inherit from their base face
This way users can apply, say, a font height that carries over to all
the faces.

Thanks to baconabo for making this suggestion in issue 204:
<https://github.com/protesilaos/modus-themes/issues/204>.
2026-03-16 20:17:51 +02:00
Protesilaos Stavrou c865abc82d
Remove blank line 2026-03-15 21:48:02 +02:00
Protesilaos Stavrou 30cbfe27b5
Consolidate some colours in the modus-themes-common-palette-mappings 2026-03-15 21:47:09 +02:00
Protesilaos Stavrou 6beea7125e
Define new bg-popup named colour
This gives users and derivative themes the option to pick a suitable
value for those interfaces.

Thanks to aikrahguzar for making this suggestion in issue 70 of my
ef-themes repository (the ef-themes are built on top of the
modus-themes): <https://github.com/protesilaos/ef-themes/issues/70>.
2026-03-15 21:28:05 +02:00
Protesilaos Stavrou 100533ab0f
Remove background value from company-preview face
This makes it consistent with the style I am applying to the built-in
completion-preview-mode.
2026-03-15 21:28:02 +02:00
Protesilaos Stavrou a4264088b7
Make modus-themes-adjust-value return 6-digit colour 2026-03-14 10:57:29 +02:00
Protesilaos Stavrou ed36e34132
Bring back the modus-themes-adjust-value
Derivative themes may need it.
2026-03-08 21:43:54 +02:00
Protesilaos Stavrou cb20bbe83f
Remove needless comment 2026-03-08 21:30:46 +02:00
Protesilaos Stavrou 9d0226961d
Include the featurep check in modus-themes-theme
This is because our check involves this:

    (let ((theme-exists-p (get name 'theme-feature)) ...) ...)

Thanks to Daniel Colascione for informing me about this in issue 201:
<https://github.com/protesilaos/modus-themes/issues/201>.
2026-03-01 12:07:59 +02:00
Protesilaos Stavrou 789cb7ea32
Revert "Add back theme-autoload cookies to all theme files"
This reverts commit b2e0aff5ed.

It does not work as intended, as reported by Daniel Colascione in
issue 202: <https://github.com/protesilaos/modus-themes/issues/202>. I
will need to make a wider revision here.
2026-03-01 12:05:46 +02:00
Protesilaos Stavrou b45b0d8a7c
Only disable 'color-schemes' with modus-themes-disable-other-themes
This is because Emacs 31 comes with a "newcomer" theme that we do not
want to disable by mistake.
2026-02-22 08:43:39 +02:00
Protesilaos Stavrou ecd696daf8
Add support for my institution-calendar faces 2026-02-20 08:58:50 +02:00
Protesilaos Stavrou b2e0aff5ed
Add back theme-autoload cookies to all theme files
I tried to do this with a recent commit but that broke things because
I also included a deftheme declaration. Having that meant that
modus-themes-theme would not declare the theme with all its data,
including its palette.

I looked at loaddefs-generate--emacs-batch and it seems that having
just the theme-autoload line is enough.
2026-02-19 08:43:20 +02:00
Protesilaos Stavrou 1343ea9947
Revert "Reinstate the theme-autoload cookie with the deftheme in place"
This reverts commit 122d53333f.

The reason is that this breaks the package when trying to load a theme
at startup. This was reported by Eamonn Sullivan in issue 69 in the
ef-themes repository: <https://github.com/protesilaos/ef-themes/issues/69>.
2026-02-18 20:44:05 +02:00
Protesilaos Stavrou 122d53333f
Reinstate the theme-autoload cookie with the deftheme in place
We need this because otherwise the autolaods are not generated
properly, which can cause problems for other packages that need to
read the theme data.
2026-02-18 18:48:27 +02:00
Protesilaos Stavrou 127ed57f0e
Remove magit face that does not exist anymore 2026-02-17 09:26:40 +02:00
Protesilaos Stavrou 9dd3b9074b
Acknowledge Mike Olson for commit c475454
This is what allows the modus-themes to be loaded in the early-init.el
because they no longer depend on color-name-to-rgb to be available at
that time.

This change was done in pull request 199: <https://github.com/protesilaos/modus-themes/pull/199>.
It is within the ~15-line limit, meaning that Mike does not need to
assign copyright to the Free Software Foundation.
2026-02-17 09:15:57 +02:00
Protesilaos Stavrou 9af856fb38
Merge pull request #199 from mwolson/fix/color-values-display-independence
Use color-values-from-color-spec instead of color-name-to-rgb
2026-02-17 09:13:13 +02:00
Mike Olson c475454d87 Use color-values-from-color-spec instead of color-name-to-rgb
Replace `color-name-to-rgb' with a new internal helper
`modus-themes--hex-to-rgb' that uses `color-values-from-color-spec'
(a C built-in since Emacs 28.1) to parse hex RGB strings without
any display dependency.

This fixes a crash when loading a Modus theme during early-init.el
on GUI Emacs (e.g. macOS Homebrew emacs-plus), where
`color-name-to-rgb' fails because `color-values' returns nil before
the display is ready.

The fix applies to all three direct call sites:
- `modus-themes-wcag-formula' (the critical one, called during
  theme loading)
- `modus-themes-generate-color-blend'
- `modus-themes-color-warm-p'

Fixes #198.
2026-02-16 15:04:35 -05:00
Protesilaos Stavrou 0ace30e471
Write tests for dark colour and readable colour 2026-01-31 10:14:40 +02:00
Protesilaos Stavrou b633768b7c
Rewrite mtt-inheritance test to restore the current Modus theme 2026-01-31 10:13:45 +02:00
Protesilaos Stavrou ea135519d3
Revert to using a readable foreground for the org-habit faces
This relies on our own functions, which should be available even if
the theme is loaded via the early-init.el.

Thanks to Jacod "Jake" Gordon for reminding me to fix this and for
testing my prototype. It was done in issue 197:
<https://github.com/protesilaos/modus-themes/issues/197>.
2026-01-31 10:00:35 +02:00
Protesilaos Stavrou 27456c3121
Change modus-themes--list-colors-tabulated to use our own function for a readable foreground (commit 2c225b6) 2026-01-31 10:00:07 +02:00
Protesilaos Stavrou 2c225b634e
Define function to get readable foreground, based on our own "dark-p" (per commit 4ecefd9) 2026-01-31 09:59:34 +02:00
Protesilaos Stavrou 4ecefd924f
Implement our own "dark-p" which relies on our WCAG formula test
This way I can more easily reason about the return value.
2026-01-31 09:58:21 +02:00
Protesilaos Stavrou 4b4fd65336
Change the parameter name in a couple of places to suggest it is a hexadecimal RGB colour 2026-01-31 09:56:45 +02:00
Protesilaos Stavrou 39682cd87c
Make stylistic changes to the WCAG formula functions 2026-01-31 09:56:13 +02:00
Protesilaos Stavrou ba747a245f
Change the scroll-bar background to ensure better visibility 2026-01-25 08:59:38 +02:00
Protesilaos Stavrou 0f6ce4f8bb
Remove the box and background from the completion group titles and make them optionally italic 2026-01-24 10:18:37 +02:00
Protesilaos Stavrou c57f158886
Only use bold in org-list-dt
The reason is that the foreground overrides other foregrounds, such as
for ~code~ elements.
2026-01-23 09:32:51 +02:00
Protesilaos Stavrou 55be658ddf
Use a background and box for the completion groups 2026-01-21 08:55:00 +02:00
Protesilaos Stavrou 8a45a1393a
Tweak the format of the modus-themes-with-colors error message 2026-01-13 06:31:26 +02:00
Protesilaos Stavrou 4d9a19513d
Update the copyright years 2026-01-11 12:45:54 +02:00
Protesilaos Stavrou 192b2f612e
Go back to using a "success" colour for git commit summary lines
This is because it is the only colour that is guaranteed to contrast
with the warning and error colours we use for long lines and non-empty
second line.
2026-01-10 07:57:30 +02:00
Protesilaos Stavrou 0b6956a783
Be more strict about how to check for loaded theme
This is because typically themes have a 'provide-theme' in their file,
which we do not have in our theme files. Not doing a 'provide-theme'
at all times can break user configurations.

Thanks to Daniel Colascione for pointing this out in issue 195:
<https://github.com/protesilaos/modus-themes/issues/195>.
2026-01-10 07:51:08 +02:00
Protesilaos Stavrou 073e1d2488
Remove outdated comment 2026-01-09 07:11:35 +02:00
Protesilaos Stavrou afe5c14f30
Acknowledge Steven Allen for commit e22df92
This was done in pull request 194: <https://github.com/protesilaos/modus-themes/pull/194>.
Steven has assigned copyright to the Free Software Foundation.
2026-01-09 07:03:49 +02:00
Protesilaos Stavrou 8f05f03bc9
Merge pull request #194 from Stebalien/steb/fix-gradients
Lighten/darken colors in a specified direction instead of guessing
2026-01-09 07:01:09 +02:00
Steven Allen e22df9248c Lighten/darken colors in a specified direction instead of guessing
Previously, we'd sometimes specify a direction, but then we'd guess the
direction again `modus-themes-generate-gradient'. This commit removes
that guess and specifies the direction explicitly in all cases.

fixes https://github.com/protesilaos/ef-themes/issues/65
2026-01-08 09:48:03 -08:00
Protesilaos Stavrou be8111f267
Acknowledge ukiran03 for commit 7eeadab
This was done in pull request 193:
<https://github.com/protesilaos/modus-themes/pull/193>.

The change is small, meaning that ukiran03 does not need to assign
copyright to the Free Software Foundation.
2026-01-08 18:36:44 +02:00
Protesilaos Stavrou 7eeadab5d8
Merge pull request #193 from ukiran03/widget-field-underline
Set widget-field underline face to border color
2026-01-08 18:35:38 +02:00
Protesilaos Stavrou e438a2fcdc
Acknowledge JD Smith for commit e8dee25
This was done in pull request 191: <https://github.com/protesilaos/modus-themes/pull/191>.
2026-01-08 06:46:35 +02:00
Protesilaos Stavrou b38aaf265f
Merge pull request #191 from jdtsmith/with-colors-symbol-macrolet
Rewrite modus-themes-with-color to use cl-symbol-macrolet
2026-01-08 06:45:36 +02:00
ukiran03 f5df8edd15 Set widget-field underline face to border color
The widget-field underline inherits the foreground color by default.
This change ensures it uses the border face for better visual
consistency.

Fixes: https://github.com/protesilaos/modus-themes/issues/192
2026-01-05 10:13:32 +05:30
JD Smith e8dee25bd6 Rewrite modus-themes-with-color to use cl-symbol-macrolet
To address bugs associated with real color vs. mapped color ordering
and other issues, we swap the let* form construction for
cl-symbol-macrolet.
2026-01-04 09:37:20 -05:00
Protesilaos Stavrou 53fa9fd23d
Document how users can configure vc-annotate colours 2026-01-03 07:55:35 +02:00
Protesilaos Stavrou 3247c5d0f7
Add support for the faces of my pulsar package
Their colours are consistent with Modus by default, but they will not
necessarily look right in Modus derivatives.
2026-01-02 12:48:46 +02:00
Protesilaos Stavrou d1a9fbb4e6
Add support for the faces of my lin package
Their colours are consistent with Modus by default, but they will not
necessarily look right in Modus derivatives.
2026-01-02 12:47:00 +02:00
Protesilaos Stavrou 5b4747748e
Port emacs.git commit e09990891ffac9fa20385a8a38a18edf2e27d246
This is done by Eshel Yaron, as discussed on the mailing list:
<https://lists.gnu.org/archive/html/emacs-devel/2026-01/msg00011.html>.
2026-01-02 11:33:54 +02:00
Protesilaos Stavrou d1037f1322
Update to modus-themes version 5.2.0 2025-12-31 10:34:19 +02:00
Protesilaos Stavrou fc20e2bf7a
Cover the xref-file-header face 2025-12-28 11:28:54 +02:00
Protesilaos Stavrou 89185784ea
Fix typo in doc string 2025-12-28 08:31:47 +02:00
Protesilaos Stavrou 6dcd369037
Use a higher luminance value for modus-themes-generate-gradient 2025-12-23 07:58:45 +02:00
Protesilaos Stavrou cd01e5ead6
Use shorthands in the tests' file 2025-12-23 07:17:20 +02:00
Protesilaos Stavrou d673df22ca
Make small tweaks to modus-themes-test-inheritance 2025-12-23 07:06:55 +02:00
Protesilaos Stavrou 46d4b49266
Update the manual on account of commit 7a86cf4 2025-12-19 15:06:58 +02:00
Protesilaos Stavrou 7a86cf49a8
Revise modus-themes-with-colors to work with dynamic variables
This is how it used to be. I am addressing a regression that was
introduced in Modus themes version 5.0.0.

Thanks to Alexandr Semenov and realazy for testing my patch in issue
170: <https://github.com/protesilaos/modus-themes/issues/170>.
2025-12-19 15:04:34 +02:00
Protesilaos Stavrou 4ac7fdd6c7
Rewrite the completion table and expand it with group and display sort functions 2025-12-13 04:56:09 +02:00
Protesilaos Stavrou c8a6aa6998
Apply a faint foreground to marginalia-file-name 2025-12-13 04:55:29 +02:00
Protesilaos Stavrou 03c716e5bb
Merge pull request #189 from basil-conto/blc/spell
Fix some docstring typos
2025-12-11 08:44:16 +02:00
Protesilaos Stavrou cb99f74bc9
Merge pull request #188 from rudolf-adamkovic/main
Fix incorrect face inheritance affecting AUCTeX
2025-12-11 08:44:05 +02:00
Protesilaos Stavrou 0358a2a460
Merge pull request #190 from basil-conto/blc/push
Minor logic simplifications
2025-12-11 08:42:51 +02:00
Basil L. Contovounesios 83670578ea
Minor logic simplifications
Prefer push over add-to-list when membership equal-ity is not
needed.  Simplify some boolean expressions.
2025-12-09 14:06:08 +01:00
Basil L. Contovounesios e1154773ce
Fix some docstring typos 2025-12-09 13:56:01 +01:00
Rudolf Adamkovič 9649a18f69 Fix incorrect face inheritance affecting AUCTeX 2025-12-08 14:35:29 +01:00
Protesilaos Stavrou 64735b7df0
Remove duplicate entries for faces
Thanks to Basil L. Contovounesios for pointing this out in issue 185:
<https://github.com/protesilaos/modus-themes/issues/185>.
2025-12-06 09:59:42 +02:00
Protesilaos Stavrou 703dad8fd1
M-x untabify and then re-indent the buffer 2025-12-06 09:46:09 +02:00
Protesilaos Stavrou 582f53b07b
Add doc string to modus-themes--modus-theme-p 2025-12-06 09:45:36 +02:00
Protesilaos Stavrou 175a519494
Tweak the adjustment for derivative backgrounds in modus-themes-generate-palette and add TODO about it 2025-12-06 09:39:44 +02:00
Protesilaos Stavrou 53f461b397
Merge pull request #184 from PierreTechoueyres/main
Fix modus-themes-toggle and modus-themes--disable-themes
2025-12-03 09:54:14 +02:00
Pierre Téchoueyres 725bf50aba Fix modus-themes-toggle by using modus-themes-get-current-theme 2025-12-02 21:53:03 +01:00
Pierre Téchoueyres bf9dfed400 Add modus-themes--modus-theme-p predicate.
Rewrite modus-themes-get-current-theme and modus-themes--disable-themes to use it
2025-12-02 21:51:18 +01:00
Pierre Téchoueyres 7d06212953 Fix modus-themes--disable-themes to follow modus-themes-disable-other-themes
Disable themes of the modus collection when the value of the variable
is nil as stated in the docstring.
2025-12-02 21:47:30 +01:00
Protesilaos Stavrou 3cc6f7fec2
Implement a completions group-function and use unique category 2025-12-02 05:24:44 +02:00
Protesilaos Stavrou 2c901c9969
Make derived modus-themes-define-derivative-command doc strings a bit shorter 2025-11-30 19:00:56 +02:00
Protesilaos Stavrou c41281151f
Adjust the intensity of the derived coloured backgrounds in modus-themes-generate-palette 2025-11-29 07:13:07 +02:00
Protesilaos Stavrou b238abe7fc
Remove one mapping from modus-themes-generate-palette
It will be inherited from the underlying core palette. Styling this
here is not important.
2025-11-29 07:12:53 +02:00
Protesilaos Stavrou bcaf0835fd
Require color.el at all times
This is because other packages may use some of the color-related
functions we provide without calling modus-themes-generate-palette.
2025-11-29 07:12:39 +02:00
Protesilaos Stavrou 117875cb12
Rewrite modus-themes-get-current-theme to work with many custom-enabled-themes
Thanks to Pierre Téchoueyres for reporting the scenario where multiple
other themes are loaded on top of a Modus theme. This was done in
issue 182: <https://github.com/protesilaos/modus-themes/issues/182>.
2025-11-28 07:41:48 +02:00
Protesilaos Stavrou 2a32f92782
Remove obsolete argument from one modus-themes-get-current-theme call (see commit 7076680) 2025-11-26 18:47:28 +02:00
Protesilaos Stavrou 7076680932
Remove logic of theme loading from modus-themes-get-all-known-themes
It has no business there. This is something I used to do long ago and
I tried to keep it for the upgrade to version 5.0.0. I believe we are
safe without it, but I guess we will find out.
2025-11-26 18:34:38 +02:00
Protesilaos Stavrou 344946ac0e
Make modus-themes-activate load a theme if we cannot operate on it
Annotate the code to better communicate intent.
2025-11-26 18:31:22 +02:00
Protesilaos Stavrou f4474129e6
Simplify how modus-themes-generate-palette falls back to cool or warm preference 2025-11-26 13:07:03 +02:00
Protesilaos Stavrou 1ee7c20971
Fix modus-themes-generate-palette old assumption about the six accent colours
This was fine when I originally implemented it, but then I changed
some other parts and forgot to update this one...
2025-11-26 13:06:27 +02:00
Protesilaos Stavrou ffdee3a436
Tweak a couple of derived mappings in modus-themes-generate-palette 2025-11-26 07:19:20 +02:00
Protesilaos Stavrou fdcbb99be2
Use the correct foreground for org-dispatcher-highlight and make it bold unconditionally 2025-11-26 06:33:30 +02:00
Protesilaos Stavrou 6fc7630666
Document how to activate derivative themes 2025-11-26 06:30:22 +02:00
Protesilaos Stavrou fc3783e5d3
Also autoload modus-themes-activate 2025-11-26 06:23:38 +02:00
Protesilaos Stavrou dbbfff6582
Make modus-themes-activate a public function
I plan to mention it in the manual.
2025-11-26 06:16:57 +02:00
Protesilaos Stavrou 0958eb8e48
Reduce all generated colors to 6 digits (see commit 1129cf5) 2025-11-26 06:04:43 +02:00
Protesilaos Stavrou 1129cf5f92
Define helper to reduce a color from 4 digits per triplet to 2 2025-11-26 06:04:00 +02:00
Protesilaos Stavrou ecfd90d430
Make copy of color-blend because we need it for older versions 2025-11-26 06:03:09 +02:00
Protesilaos Stavrou 7bfc18d130
Be consistent with the terminology I am using in one comment
I have "cool" elsewhere, so better not confuse people.
2025-11-25 16:00:34 +02:00
Protesilaos Stavrou 3b0bbaa779
Simplify modus-themes-color-warm-p
Thanks to Stefan Monnier for pointing this out on the emacs-devel
mailing list: <https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg00996.html>.

It is what I was trying to do before with 'color-distance', per the
comment right above:

    ;; NOTE 2025-11-25: I used to rely on `color-distance', thinking that
    ;; it would do the right thing here:
    ;;
    ;;     (> (color-distance color "#ff0000") (color-distance color "#0000ff"))
    ;;
    ;; But my understanding of "warm" versus "cold" is simple, so better
    ;; do it my way.

But I did not originally see the simpler modus-themes-color-warm-p, so here we are!
2025-11-25 14:15:40 +02:00
Protesilaos Stavrou 01080b292b
Rewrite modus-themes--activate for clarity 2025-11-25 13:13:58 +02:00
Protesilaos Stavrou 1d0348fc64
Stop hardcoding colour values for the three Gnus mail groups 2025-11-25 12:48:54 +02:00
Protesilaos Stavrou c2cf943239
Simplify the test for warm or cool preference (see commit d0f1537) 2025-11-25 10:54:41 +02:00
Protesilaos Stavrou d0f1537f95
Implement modus-themes-color-warm-p because color-distance fails to do what I assumed 2025-11-25 10:54:15 +02:00
Protesilaos Stavrou 1a346f825b
Refine how we disable other themes
We do not need to actually disable other Modus themes because their
palettes have the same entries, so the active theme will anyway take
effect over the others. And if another Modus theme has more colours in
its palette, then the user probably wants to keep those around.
2025-11-25 09:00:09 +02:00
Protesilaos Stavrou 7f5e40060a
Also cover the identifier mapping in modus-themes-generate-palette 2025-11-25 08:50:56 +02:00
Protesilaos Stavrou a8583fae4e
Cover new search mappings in modus-themes-generate-palette (see commit cf8cc86) 2025-11-25 08:47:59 +02:00
Protesilaos Stavrou cf8cc86afc
Implement semantic mappings for search-related foregrounds
By the way, I love occur+kmacros! All these changes are so easy to make.
2025-11-25 08:41:09 +02:00
Protesilaos Stavrou b48837de67
Add yet more mappings to modus-themes-generate-palette 2025-11-25 08:24:02 +02:00
Protesilaos Stavrou 0088add0ad
Make modus-themes-generate-palette define more mappings 2025-11-25 08:17:20 +02:00
Protesilaos Stavrou e49b1e0248
Reword some parts of the section about modus-themes-generate-palette 2025-11-25 07:41:56 +02:00
Protesilaos Stavrou c15eea4125
Write the manual's detailed guide for modus-themes-generate-palette
We can always refine the implementation details, but at least the
results are looking very promising. I think/hope users will benefit
from this enhancement.
2025-11-24 19:39:38 +02:00
Protesilaos Stavrou 80db306ddb
Update the modus-themes-generate-palette doc string 2025-11-24 17:39:56 +02:00
Protesilaos Stavrou ec8f8a80b1
Conditionally push to mappings in modus-themes-generate-palette
I think this is done now. All that remains is to (i) polish the
derived colors because some of them are not nice and (ii) check the
code again to make sure I am not being sloppy.
2025-11-24 14:51:04 +02:00
Protesilaos Stavrou 4694dc5a8b
Resolve the duplicates and prioritisation in modus-themes-generate-palette 2025-11-24 14:49:25 +02:00
Protesilaos Stavrou 78e79d3eba
Reindent modus-themes-generate-palette 2025-11-24 14:18:08 +02:00
Protesilaos Stavrou 2c85a495cb
Push a derived colour only if needed in modus-themes-generate-palette
I want to do the same for the mappings, but I will have to go soon...
2025-11-24 14:13:22 +02:00
Protesilaos Stavrou 24d426e59b
Use cadr not cdr in modus-themes-generate-palette 2025-11-24 14:08:21 +02:00
Protesilaos Stavrou ed618c1050
Add two error checks for the type of modus-themes-generate-palette arguments 2025-11-24 13:54:41 +02:00
Protesilaos Stavrou 51dd0362b9
Fix a typo 2025-11-24 13:54:33 +02:00
Protesilaos Stavrou 1a7867074e
Make modus-themes-generate-palette require at bg-main and fg-main 2025-11-24 13:48:16 +02:00
Protesilaos Stavrou feecb71130
Make modus-themes-generate-palette accept optional mappings and refine its internals
I wrote those changes earlier, but then forgot to commit. Then I came
back and accidentally reverted/destroyed what I had... This is going
off of memory, but I will need to check again.
2025-11-24 13:41:05 +02:00
Protesilaos Stavrou 0730b28045
Add missing fullstop in first line of modus-themes-generate-palette doc string 2025-11-24 12:08:46 +02:00
Protesilaos Stavrou a416bc4906
Add missing autoload for modus-themes-generate-palette 2025-11-24 12:08:38 +02:00
Protesilaos Stavrou 823d31d19b
Use optional preference for modus-themes-generate-palette 2025-11-24 07:37:53 +02:00
Protesilaos Stavrou 72bf76eb84
Define prototype of modus-themes-generate-palette
I will document it later. First I want to make sure it works decently.
2025-11-24 07:18:19 +02:00
Protesilaos Stavrou ef3e513dfe
Add the missing registration of derivative themes in modus-themes-theme 2025-11-24 07:17:49 +02:00
Protesilaos Stavrou 5af03b7294
Add comment about doing something like modus-themes--box for some underlines 2025-11-23 18:34:17 +02:00
Protesilaos Stavrou 23e443a016
Pass correct attributes when ':box (:color unspecified)'
We have to make sure that the value passed to :color is not
'unspecified'. Users may want to do this, given the option they have
via the overrides, and it is a fine use of the system. Internally
though, we have to adjust the :box to do the right thing instead of
throwing an error.

Thanks to JD Smith for reporting a bug along those lines in issue 9 of
my standard-themes repo (they are derived from the modus-themes, hence
the changes here): <https://github.com/protesilaos/standard-themes/issues/9>.
I am generalising the fix for all faces that could exhibit the same
problem. I will check if we need to do the same for some of the underlines.
2025-11-23 18:21:15 +02:00
Protesilaos Stavrou a472f54645
Update modus-themes-define-derivative-command-known-suffixes to include select-{dark,light} 2025-11-22 16:48:12 +02:00
Protesilaos Stavrou c270cd8f5e
Implement convenience commands modus-themes-select-{dark,light} 2025-11-22 14:15:36 +02:00
Protesilaos Stavrou 26d60d3e6b
Disambiguare calendar-today from org-date-selected
This is because both can appear in the same context, whereas I thought
this would never happen.

Thanks to Rudolf Adamkovič for discussing this with me in the context
of the same change for my doric-themes (issue 20):
<https://github.com/protesilaos/doric-themes/issues/20>.
2025-11-22 11:41:47 +02:00
Protesilaos Stavrou 53717d1607
Support transient-semantic-coloring (also see commit 81862df) 2025-11-19 07:29:04 +02:00
Protesilaos Stavrou 81862dfa99
Define modus-themes-faces-deuteranopia and modus-themes-faces-tritanopia
These are meant to be applied as a deviation from modus-themes-faces,
as they are specific to the needs of users with the given colour deficiency.
2025-11-19 07:28:04 +02:00
Protesilaos Stavrou 065fbe15e7
Remove transient named colour faces that do not exist anymore 2025-11-19 07:27:26 +02:00
Protesilaos Stavrou 2602e2c0db
Use more appropriate style for completion-preview-exact and add note about it 2025-11-18 19:30:35 +02:00
Protesilaos Stavrou 3ddb82b37b
Add explicit support for the built-in completion-preview-mode faces
We want to do this because completion-preview-exact hardcodes a colour
value, which does not work for our purposes.

Thanks to Kevin Fleming for asking me about this in issue 178:
<https://github.com/protesilaos/modus-themes/issues/178>.
2025-11-18 12:38:20 +02:00
Protesilaos Stavrou f79684961e
Use optional bold weight for hl-todo faces
This is how we were doing it before until I undid it by mistake.

Thanks to Dominik Schrempf for reporting the bug in issue 177:
<https://github.com/protesilaos/modus-themes/issues/177>.
2025-11-17 12:14:45 +02:00
Protesilaos Stavrou 88fca8fd42
Change how we get the palette for modus-themes-with-colors
This makes it so derivative theme actually get their own colours
instead of those coming from the core theme. Same for user-defined
palette overrides.

Another advantage of this approach is that we keep a separation of
concerns between the different uses we have for the palettes we
retrieve and the structure we want them to have. I prefer this over a
helper function that has to behave according to some optional
parameter.

This is in response to issue 175 by Fritz Gabo, which reports a bug
about derivative themes not getting the right colours when using
modus-themes-with-colors: <https://github.com/protesilaos/modus-themes/issues/175>.

Also thanks to Roshan Shariff for testing my suggested changes (i.e.
this diff) and informing me of getting the expected results out of them.
2025-11-15 13:37:13 +02:00
Protesilaos Stavrou b9eb16d1a1
Make neo-vc-removed-face consistent with vc-removed-state (see commit e08fb8a)
Thanks to Morgan Willcock for discussing with me the use of the
:strike-through style in issue 169: <https://github.com/protesilaos/modus-themes/issues/169>.

The plan is to review all uses of :strike-through to determine which
ones actually benefit from it.
2025-11-14 10:05:00 +02:00
Protesilaos Stavrou e08fb8adcd
Use a wavy underline for vc-removed-state 2025-11-14 10:04:48 +02:00
Protesilaos Stavrou bb548f6564
Use a wavy underline and warning colour for vc-missing-state 2025-11-14 10:04:42 +02:00
Protesilaos Stavrou 3058909617
Use warning instead of err for the vc-dir-status-warning
We use the err colour in other places.
2025-11-14 10:01:13 +02:00
Protesilaos Stavrou ee27621ce8
Use a wavy underline style for Notmuch tag addition and removal
This way the notmuch-tag-deleted is not using a style that is unique
to it. The wavy underline is easy to spot and does not obfuscate the
text of the tag.

Thanks to Morgan Willcock for discussing with me the use of the
:strike-through style in issue 169: <https://github.com/protesilaos/modus-themes/issues/169>.

The plan is to review all uses of :strike-through to determine which
ones actually benefit from it.
2025-11-14 09:42:14 +02:00
Protesilaos Stavrou 0e3b21ef87
Improve the consistency of transient.el unavailable indicators 2025-11-14 07:04:51 +02:00
Protesilaos Stavrou 0cd0b3cc7b
Diversify symbol-overlay faces to all have unique background colours
That was the case before, but I must have changed it by accident when
I was removing most of the :inherit attributes.
2025-11-12 14:29:31 +02:00
Protesilaos Stavrou 3b0850883a
Stop using readable-foreground-color for the org-habit faces
It breaks the themes when they loaded via the early-init.el, as
reported by Gaston Cabotin in issue 174:
<https://github.com/protesilaos/modus-themes/issues/174>.
2025-11-12 08:14:06 +02:00
Protesilaos Stavrou c94938ff79
Greatly expand the manual with complete examples of creating Modus derivatives
This covers the basic and more advanced use cases. It also is for both
private use and making new packages.
2025-11-10 13:02:49 +02:00
Protesilaos Stavrou 4c6a73dc71
Make modus-themes-with-colors use the correct order for palette entries
This affects how the overrides are handled when they mention  a
semantic palette mapping, which itself is a semantic palette mapping.

Thanks to Alexandr Semenov for reporting a relevant bug and testing
this diff in issue 170: <https://github.com/protesilaos/modus-themes/issues/170>.
2025-11-09 11:57:24 +02:00
Protesilaos Stavrou d46e782510
Make gnus-button less intrusive
It is not really a link and it also gets applied to a lot of places
that should not look exactly like links.

Thanks to Morgan Willcock for discussing this with me in issue 140:
<https://github.com/protesilaos/modus-themes/issues/140>.
2025-11-09 11:41:10 +02:00
Protesilaos Stavrou 4fd8cdfc55
Update to modus-themes version 5.1.0 2025-11-07 07:53:36 +02:00
Protesilaos Stavrou bbaa20a45b
Add missing NO-ENABLE to theme check in modus-themes-with-colors-subr
I added that parameter specifically for this case. When I was
committing edd5b66, I thought I had passed it here, but apparently I
did not because that commit also reverted 5777db8...
2025-11-06 10:00:59 +02:00
Protesilaos Stavrou a1149ce5e7
Clarify that a derivative theme has to be in a file among custom-theme-load-path
Thanks to Ashton Wiersdorf for asking for clarification about this in
issue 171: <https://github.com/protesilaos/modus-themes/issues/171>.
2025-11-05 12:55:45 +02:00
Protesilaos Stavrou edd5b66833
Revert 1b66344 and tweak how modus-themes-with-colors binds display spec and 'unspecified'
For some reason the macro was no longer working with commit 1b66344
after I restarted Emacs. Will investigate further. This should
nevertheless be the final commit that fixes all known issues with
modus-themes-with-colors.
2025-11-05 12:39:11 +02:00
Protesilaos Stavrou 5777db8d9b
Fix error with positional argument in latest commit 9c65704 2025-11-05 12:28:41 +02:00
Protesilaos Stavrou 9c65704b61
Avoid recursion in modus-themes-with-colors through enable-theme-functions
The modus-themes-with-colors should either work on an already loaded
theme or do nothing. Otherwise with the enable-theme-functions we end
up with excessive lisp nesting.

Thanks to Alexandr Semenov for reporting the bug in issue 170:
<https://github.com/protesilaos/modus-themes/issues/170>.
2025-11-05 12:21:05 +02:00
Stefan Monnier 1b663444fe
Make modus-themes-with-colors evaluate body as a function
See the discussion on the emacs-devel mailing list:
<https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg00114.html>.
2025-11-05 10:07:49 +02:00
Protesilaos Stavrou 11329d1c49
Make modus-themes--with-colors-resolve-palette-sort easier to read and remove second processing for 'unspecified' 2025-11-04 10:44:24 +02:00
Protesilaos Stavrou 0844ec814a
Remove CRITICAL FIXME comment
I think I have fixed it. Will continue testing throughout the day. If
it works, then I will bump the version number to trigger a GNU ELPA
rebuild. Will also updated emacs.git.
2025-11-04 09:50:09 +02:00
Protesilaos Stavrou 0eae2aa8f5
Make palette sort remove duplicates and limit its use to modus-themes-with-colors
This means that the overrides will be the only ones present instead of
the original values. Also, we do not need this in general but only in
the context of the modus-themes-with-colors.
2025-11-04 08:10:20 +02:00
Protesilaos Stavrou 247f5803bc
Pass missing LEXICAL to 'eval'
This might be what I was missing the whole time. I think the macro is
working now. Will continue testing...
2025-11-04 07:52:31 +02:00
Protesilaos Stavrou 7e06d30099
Make modus-themes-with-colors call a function and update CRITICAL FIXME findings
The updated code of the macro relative to commit 16c2c66 works
correectly at all times ONLY WHEN the function that uses
modus-themes-with-colors is added to the modus-themes-after-load-theme-hook
and thus triggered by modus-themes-load-theme.

The enable-theme-functions and load-theme combination is not working
though and I need to figure out why. It leads to excessive lisp nesting.
2025-11-04 07:00:58 +02:00
Protesilaos Stavrou 0b67bdfb20
Tweak how modus-themes-known-p works with a symbol argument
There is no point in doing seq-every-p with one element...
2025-11-04 06:36:28 +02:00
Protesilaos Stavrou 4fca99d3ac
Document that modus-themes-get-theme-palette may return nil 2025-11-04 06:36:05 +02:00
Protesilaos Stavrou dda6a00e37
Make modus-themes--get-theme-palette-subr return nil instead of an error for unknown THEME 2025-11-04 06:12:25 +02:00
Protesilaos Stavrou 2bc9c72fbd
Make modus-themes-get-theme-palette more efficient
Otherwise modus-themes-get-current-theme calls modus-themes-get-themes
which is also what modus-themes-known-p needs to do.
2025-11-04 06:08:39 +02:00
Protesilaos Stavrou 72ed98f786
Implement modus-themes--get-theme-sort
This makes it easier to place the return value of 'modus-themes-get-theme-palette'
in a 'let*' because something like '(cursor red-warmer)' will come
after '(red-warmer "#ff0000")'.

This might help me sort out the woes with the excessive lisp nesting
of modus-themes-with-colors (see commits 5e77bff and 4514036), but
looks appropriate anyway.
2025-11-04 05:55:31 +02:00
Protesilaos Stavrou 4514036961
Expand the CRITICAL FIXME for modus-themes-with-colors with the failed macro+function test I did
I tried a few variations of that function, but the point is that I
cannot make the macro work inside of a function that is evaluated at
startup in a user's init file. The same function works after I go and
evaluate it manually.

I stumbled across 'define-inline' while looking around in the Emacs
source code, but I am not sure this is what I need... Will need to
test further.
2025-11-04 05:07:39 +02:00
Protesilaos Stavrou 5e77bff62e
Add detailed CRITICAL FIXME comment about modus-themes-with-colors 2025-11-04 03:26:03 +02:00
Protesilaos Stavrou 68de71e7aa
Make modus-themes-with-colors only work when a theme is current
We do not want to break the enable-theme-functions when it is called
with any other non-Modus theme.
2025-11-03 20:15:01 +02:00
Protesilaos Stavrou 0839a6b3cb
Change the logic of modus-themes-get-current-theme
The previous one was faulty because we would get "the first enabled
Modus theme", even if it was not the current one. Whereas I want the
"first enabled only if it is a Modus theme".
2025-11-03 20:15:01 +02:00
Protesilaos Stavrou 70b31306d0
Never throw an error in modus-themes-known-p
Just return nil or the theme. It is the job of other functions to
produce errors.
2025-11-03 20:15:01 +02:00
Protesilaos Stavrou 1d3bdbd2e5
Reinstate what we were doing with load-theme
This undoes what I was trying to do with commits ef3e0e5 (use 'load'
instead of 'load-themes') and 67b6db3 (let bind hooks to nil).

What I did before was wrong. I was thrown off by the fact that
'enable-theme-functions' works with all themes, not just colour
themes. This includes 'user'. In some tests I also got other
configuration themes like 'use-package' or even the ones that come
from my 'fontaine' and 'spacious-padding' packages. But I did not
bother to figure out when those themes would show up. By default,
at least 'user' is passed to the 'enable-theme-functions'.

With 'emacs -Q':

    (defun test (theme)
      (message "Current theme is `%s'" theme))

    (add-hook 'enable-theme-functions #'test)

    (load-theme 'modus-operandi)

    ;; ;; From the *Messages*:
    ;;
    ;; Current theme is ‘user’
    ;; Current theme is ‘modus-operandi’
2025-11-03 20:12:02 +02:00
Protesilaos Stavrou 88d6a8d721
Make markdown-italic-face always italic 2025-11-03 07:07:46 +02:00
Protesilaos Stavrou ef3e0e5d4d
Use 'load' instead of 'load-theme' for the initial theme reification
This looks cleaner and saves us from the trouble of having to deal
with any hooks after load-theme at this early stage. I took the file
binding from the load-theme source.

Fundamentally, I want to have a theme symbol, like 'modus-operandi'
exist with all the relevant 'theme-properties' so that something like
'modus-themes-list-colors' can work with it even before
modus-operandi-theme.el is loaded.
2025-11-02 17:36:14 +02:00
Protesilaos Stavrou 6e1bdce593
Remove strike-through from jabber-roster-user-offline
It does not lead to a nice result. Thanks to Morgan Willcock for
bringing this matter to my attention in issue 169:
<https://github.com/protesilaos/modus-themes/issues/169>.
2025-11-02 14:43:57 +02:00
Protesilaos Stavrou 67b6db32fb
Disable all hooks when activating the themes the first time 2025-11-02 10:06:28 +02:00
Protesilaos Stavrou 16c2c667c4
Update to modus-themes version 5.0.0 2025-11-01 07:12:53 +02:00
Protesilaos Stavrou 26dd0fabb1
Remove an obsolete option from the README.md sample configuration 2025-11-01 07:03:44 +02:00
Protesilaos Stavrou 3f3655451b
Make a small clarification to the Commentary of each file 2025-11-01 07:03:21 +02:00
Protesilaos Stavrou 98c3e0b815
Document the modus-themes-preview-mode and its key bindings 2025-11-01 06:10:50 +02:00
Protesilaos Stavrou d05bd5dde5
Extend modus-themes-preview-mode with commands to copy colors or palette entries 2025-11-01 06:10:50 +02:00
Protesilaos Stavrou 83c34e9726
Make the elisp-feature face use the constant mapping
Normally features get the font-lock-constant-face, but there may be
scenaria where the generic font-lock is not doing the right thing,
whereas the semantic highlighting will. So having this face takes care
of the latter.

Thanks to Eshel Yaron for explaining this to me in the discussion
around Emacs bug 79677: <https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-10/msg01156.html>.
2025-10-31 17:29:38 +02:00
Protesilaos Stavrou c2acde4a47
Merge pull request #168 from wyuenho/patch-1
Fix powerline theme definitions for inactive states
2025-10-31 10:14:23 +02:00
Jimmy Yuen Ho Wong e52f388522
Fix powerline theme definitions for inactive states 2025-10-30 22:47:47 +00:00
Protesilaos Stavrou 223e813805
Swap the style of elisp-shadowed-variable and elisp-shadowing-variable
This is in response to further feedback from Eshel Yaron in Emacs bug
79677: <https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-10/msg01156.html>.
2025-10-30 12:27:17 +02:00
Protesilaos Stavrou acc01872a3
Make the org-list-dt foreground slightly different than the main one 2025-10-30 11:30:21 +02:00
Protesilaos Stavrou 920f7ae8b2
Tweak the org-dispatcher-highlight 2025-10-30 11:29:02 +02:00
Protesilaos Stavrou 0648a01dee
Simplify the minibuffer-depth-indicator 2025-10-30 11:19:27 +02:00
Protesilaos Stavrou 51e067c9df
Change the modus-vivendi-tinted mapping for variable-use 2025-10-30 07:29:15 +02:00
Protesilaos Stavrou 39e2c01cc0
Tweak modus-operandi-tritanopia slate value 2025-10-30 07:28:20 +02:00
Protesilaos Stavrou 19b21a3876
Add support for Emacs Lisp semantic highlighting (Emacs 31)
Thanks to Eshel Yaron, the author of this feature, for (i) asking me
to add theme support and (ii) helping me understand the intended use
of semantic highlighting.

This was done in Emacs bug 79677 and on the emacs-devel mailing list:

- <https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-10/msg01156.html>.
- <https://lists.gnu.org/archive/html/emacs-devel/2025-10/msg00728.html>.
2025-10-30 06:50:24 +02:00
Protesilaos Stavrou 1eb95eac3c
Tweak the modus-vivendi-tinted variable use mapping 2025-10-30 06:37:35 +02:00
Protesilaos Stavrou 71ba12c4d7
Tweak the modus-operandi-tritanopia variable use mapping 2025-10-30 06:37:21 +02:00
Protesilaos Stavrou db6c6b5e97
Tweak the modus-operandi-tritanopia function call mapping 2025-10-30 06:37:06 +02:00
Protesilaos Stavrou f4ada31861
Tweak the modus-operandi-deuteranopia function call mapping 2025-10-30 06:36:41 +02:00
Protesilaos Stavrou 60b99c1a7c
Make eglot-highlight-symbol-face more subtle 2025-10-30 06:35:57 +02:00
Protesilaos Stavrou 388f92e2d7
Make modus-vivendi-tinted rust a bit more orange 2025-10-30 05:41:25 +02:00
Protesilaos Stavrou e5f23ca184
Make all light variants of gold and olive a bit more dark 2025-10-30 05:41:20 +02:00
Protesilaos Stavrou effaf91b9c
Tweak modus-vivendi-tinted fg-sage value 2025-10-29 21:20:22 +02:00
Protesilaos Stavrou b15e40987f
Tweak modus-vivendi fg-ochre value 2025-10-29 21:19:58 +02:00
Protesilaos Stavrou 2dbcc8f903
Support font-lock-function-call-face and font-lock-variable-use-face with bespoke mappings 2025-10-29 21:19:02 +02:00
Protesilaos Stavrou 8b4e9d9ccd
Make forge-topic-unread and gnus-summary-high-read unconditionally bold
This is the intended style. I made a mistake to use modus-themes-bold.
2025-10-29 09:20:01 +02:00
Protesilaos Stavrou 33a8ca40b5
Make elfeed-search-unread-title-face always be bold
It needs it. More generally, we have this style for "unread" items in
mu4e and notmuch.
2025-10-29 09:17:07 +02:00
Protesilaos Stavrou c4b5b27ad1
Remove an old make-obsolete-variable 2025-10-29 06:44:30 +02:00
Protesilaos Stavrou 9fc269c0a6
Sort all the define-obsolete-face-alias we have for the new version 2025-10-29 06:43:09 +02:00
Protesilaos Stavrou 94878dbd9c
Move modus-themes-completion-selected closer to its related faces 2025-10-29 06:42:29 +02:00
Protesilaos Stavrou 4f707d9a53
Deprecate "key binding" face we define
This was the old way of doing things before we had the semantic
palette overrides. Back then it made sense to have a face and then
inherit it, otherwise it was impossible to track was "means" what.
2025-10-29 06:40:12 +02:00
Protesilaos Stavrou 85101fb4ab
Deprecate all the "prominent error" faces we define
This was the old way of doing things before we had the semantic
palette overrides. Back then it made sense to have a face and then
inherit it, otherwise it was impossible to track was "means" what.
2025-10-29 06:40:12 +02:00
Protesilaos Stavrou 8f39cafdda fixup! Deprecate all the "mark" faces we define 2025-10-29 06:30:00 +02:00
Protesilaos Stavrou fce1a5e835
Remove the declaration of faces that are already obsolete 2025-10-29 06:29:25 +02:00
Protesilaos Stavrou d90dffe3cf
Deprecate all the "prose markup" faces we define
This was the old way of doing things before we had the semantic
palette overrides. Back then it made sense to have a face and then
inherit it, otherwise it was impossible to track was "means" what.
2025-10-29 06:18:26 +02:00
Protesilaos Stavrou d25d0318ad
Deprecate all the "mark" faces we define
This was the old way of doing things before we had the semantic
palette overrides. Back then it made sense to have a face and then
inherit it, otherwise it was impossible to track was "means" what.
2025-10-29 06:14:40 +02:00
Protesilaos Stavrou 589b49cea0
Deprecate all the "lang error" faces we define
This was the old way of doing things before we had the semantic
palette overrides. Back then it made sense to have a face and then
inherit it, otherwise it was impossible to track was "means" what.
2025-10-29 05:57:25 +02:00
Protesilaos Stavrou 7183244783
Deprecate all the "search rx" faces we define
This was the old way of doing things before we had the semantic
palette overrides. Back then it made sense to have a face and then
inherit it, otherwise it was impossible to track was "means" what.
2025-10-29 05:54:40 +02:00
Protesilaos Stavrou f8514d5e15
Deprecate all the "search" faces we define
This was the old way of doing things before we had the semantic
palette overrides. Back then it made sense to have a face and then
inherit it, otherwise it was impossible to track was "means" what.
2025-10-29 05:51:34 +02:00
Protesilaos Stavrou 8803f696cd
Update the Commentary of all the files 2025-10-29 05:43:01 +02:00
Protesilaos Stavrou 647f117506
Add FIXME to autoload the theme palettes
There has to be a way. I feel I am missing some detail.
2025-10-29 05:38:19 +02:00
Protesilaos Stavrou f7ac5a6aa0
Tweak the fg-alt value of modus-themes-operandi-tritanopia-palette 2025-10-27 07:28:09 +02:00
Protesilaos Stavrou ae80e32ea7
Deprecate all remaining colour-specific faces that we define
These should be replaced with semantic palette mappings. But I can do
that for version 5.1.0. Right now, I am interested in the groundwork.
2025-10-26 10:10:17 +02:00
Protesilaos Stavrou ea426e5c90
Acknowledge Kevin Fleming for commit c681422
The change is small, meaning that Kevin does not need to assign
copyright to the Free Software Foundation.

This was done in pull request 166, fixing a regression that I
introduced in commit 08820b2: <https://github.com/protesilaos/modus-themes/pull/166>.
2025-10-26 07:15:51 +02:00
Protesilaos Stavrou e6463c0e21
Reinstate the generic typography faces
This is to ensure that we do not get unwanted styles in some cases, as
reported by chainedghost in issue 167:
<https://github.com/protesilaos/modus-themes/issues/167>.
2025-10-26 07:14:10 +02:00
Protesilaos Stavrou f6d56513dd
Merge pull request #166 from ktfleming/main
Add missing parentheses on proced faces
2025-10-26 07:12:01 +02:00
Kevin Fleming c681422305
Add missing parentheses on proced faces 2025-10-25 18:44:58 +01:00
Protesilaos Stavrou f6fe42f046
Use the 'comment' mapping instead of 'fg-dim' for three more comment-related faces 2025-10-25 16:32:38 +03:00
Protesilaos Stavrou a8d8332398
Set the missing foreground for the Git commit/rebase comment headers
This fixes a regression that was introduced by commit 08820b2.
2025-10-25 16:30:10 +03:00
Protesilaos Stavrou 493bd7a243
Fix broken parentheses 2025-10-25 10:56:12 +03:00
Protesilaos Stavrou 08820b2599
BREAKING Be much more conservative with :inherit
This is related to Emacs bug#79672: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79672>.

What I did was to review ALL the uses of :inherit and try to do the
following:

- Limit recursive inheritence.
- Inherit from Modus faces.
- Do not inherit when semantic palette mappings can be used directly.

There are some exceptions, but the idea is to rely less on :inherit
and more on the palette entries we provide. This is anyway good for
us: I needed to make this change since I introduce the semantic
palette mappings.

In the process of doing this I also reviewed lots of faces. I might
have made some mistakes, but things are looking good overall.
2025-10-25 08:30:08 +03:00
Protesilaos Stavrou 0a2c7b84b1
Make the escape-glyph use a more appropriate semantic colour mapping
Also make it bold if modus-themes-bold-constructs is non-nil.
2025-10-25 06:48:47 +03:00
Protesilaos Stavrou 6eac188782
Stop configuring default typography faces
Their original values are fine and we may run into unexpected problems
by limiting them to a subset of supported display specifications (via
the ,c we have there).
2025-10-25 06:46:14 +03:00
Protesilaos Stavrou 574587f56b
Stop configuring rcirc-color and make obsolete the relevant faces
We defined the faces just for this case. I think the package should
accept a vector with colour values, like regular rcirc does with the
'rcirc-color-codes'. Then we can check back again.
2025-10-25 05:30:22 +03:00
Protesilaos Stavrou 21327092f0
Update the manual to reflect the latest state of support packages 2025-10-24 08:25:35 +03:00
Protesilaos Stavrou 233571e577
Improve the obsolesence warning for 'modus-themes-custom-auto-reload'
Thanks to Stefan Monnier for suggesting this format on the emacs-devel
mailing list: <https://lists.gnu.org/archive/html/emacs-devel/2025-10/msg00603.html>.
2025-10-24 08:23:18 +03:00
Protesilaos Stavrou a1ad1e5ef7
Remove support for the external tree-sitter package
We have the functionality built into Emacs now. Those who care enough
about this technology are probably using a version of Emacs that
supports it.
2025-10-24 07:02:23 +03:00
Protesilaos Stavrou 0482eab0f4
Use more generic colours for debbugs faces to work with all our themes
Otherwise the deuteranopia and tritanopia themes are not doing the
right thing.
2025-10-24 06:49:09 +03:00
Protesilaos Stavrou 6b2053b4ae
Remove support for indium package
From what I can tell, it is basically irrelevant for modern JS developers.
2025-10-24 06:43:38 +03:00
Protesilaos Stavrou 3ac449fb45
Remove dirty hack with the highlight-regexp faces
Yes, the :inverse-video preserves the background but it can make the
foreground unreadable. I think it is better to let hl-line-mode take
priority in this case. Maybe the alternative is to modify the overlay
'priority' property of those highlights, but this is not the theme's
prerogative.
2025-10-24 06:33:58 +03:00
Protesilaos Stavrou 407bf5e510
Make sure the org-habit faces always use a readable foreground
These faces are problematic because their colour coded background is
their essential quality. Having "readable" text here may be well below
the 7:1 contrast target. We have to do this otherwise we will need to
compromise on the background values, which makes them harder to tell
apart and thus less useful for what they are meant to do.
2025-10-24 06:13:06 +03:00
Protesilaos Stavrou b2e6d78d5f
Remove support for enh-ruby-mode (enhanced-ruby-mode)
I expect everyone to be using LSP by now.
2025-10-24 06:03:13 +03:00
Protesilaos Stavrou 902a601c08
Stop supporting agda2-mode
We are trying to fix something that should be handled directly in that
package, namely, for it to just inherit from font-lock instead of
trying to do its own thing.
2025-10-24 05:58:41 +03:00
Protesilaos Stavrou 74767ad3f8
Acknowledge shimeike for commit b741887
This is about issue 163, where I forgot to include this change in the
original commit: <https://github.com/protesilaos/modus-themes/issues/163>.
2025-10-23 11:55:01 +03:00
Protesilaos Stavrou b741887a87
Make sure palette preview shows the mapping's value
Thanks to shimeike for reporting the problem in issue 163:
<https://github.com/protesilaos/modus-themes/issues/163>.
2025-10-23 11:53:41 +03:00
Protesilaos Stavrou a8325500bc
Add commands to mark, unmark, and copy entries in modus-themes-list-colors buffer 2025-10-23 07:30:42 +03:00
Protesilaos Stavrou 0ef42d8a92
Make stylistic changes to modus-themes--list-colors-tabulated 2025-10-23 06:44:33 +03:00
Protesilaos Stavrou 3b47b64a38
Reword the obsolescence warning about modus-themes-custom-auto-reload 2025-10-23 06:33:17 +03:00
Protesilaos Stavrou 41074f39a2
Make sure we activate themes only once 2025-10-23 06:22:27 +03:00
Protesilaos Stavrou f71a62c50f
Update the documentation about building on top of the Modus themes 2025-10-22 08:34:55 +03:00
Protesilaos Stavrou a6db89ac18
Make sure the 'modus-themes-theme' reads the updated palette value
Otherwise palette overrides do not work intended. This was a
regression caused by commit 085ee06.

Thanks to chainedghost for reporting the bug in issue 161:
<https://github.com/protesilaos/modus-themes/issues/161>.
2025-10-21 08:25:16 +03:00
Protesilaos Stavrou f55db96b09
Make the modus-themes-common-palette-overrides apply also to derivative themes 2025-10-20 16:15:32 +03:00
Protesilaos Stavrou 149da8e473
Reindent the theme files after commit 085ee06
That commit removed the 'eval-and-compile' they were wrapped in, but I
did not want to also introduce spacing changes there.
2025-10-20 07:28:05 +03:00
Protesilaos Stavrou 085ee06c57
Make the modus-themes-theme a defun instead of a defmacro
I have been facing issues with the macro where certain palette entries
are not known at compile time. I want to experiment with the defun, as
it is always going to be called at runtime.
2025-10-20 07:26:37 +03:00
Protesilaos Stavrou c2aa51f495
Acknowledge Frédéric Giquel for commit 1099f8a
This was done in pull request 160: <https://github.com/protesilaos/modus-themes/pull/160>.

The change is small, meaning that Frédéric does not need to assign
copyright to the Free Software Foundation.
2025-10-19 11:02:57 +03:00
Protesilaos Stavrou 36ac9e5861
Merge pull request #160 from fredericgiquel/fix-markdown-code-face
Make markdown-code-face consistent with org-block
2025-10-19 11:01:45 +03:00
Frédéric Giquel 1099f8a20d Make markdown-code-face consistent with org-block 2025-10-19 09:26:22 +02:00
Protesilaos Stavrou d8a80e52d1
Revert "Make the modus-themes-common-palette-mappings a defvar instead of defconst"
This reverts commit 02b4027555.

It turns out that this does not fix the problem. If so, I prefer to
declare this as a 'defconst'.
2025-10-13 08:12:46 +03:00
Protesilaos Stavrou 02b4027555
Make the modus-themes-common-palette-mappings a defvar instead of defconst
I have had this issue for a while where loading the .elc version of
the themes would result in nil values for the mappings defined in the
modus-themes-common-palette-mappings. I tried a few things and it
seems that this is enough to make things work as expect, i.e. to have
the list reified at compile time so that the individual theme palettes
get all the mappings correctly.
2025-10-12 08:32:00 +03:00
Protesilaos Stavrou 8582e487a4
Remove two duplicate mappings 2025-10-12 07:51:18 +03:00
Protesilaos Stavrou 9ef5731b5b
Remove duplicate entries of palette mappings for buttons 2025-10-12 07:44:41 +03:00
Protesilaos Stavrou f186a4e0af
Make header-line-inactive inherit header-line 2025-10-12 07:21:06 +03:00
Protesilaos Stavrou 4798477791
Expand the manual to mention modus-themes-define-derivative-command 2025-10-11 20:36:39 +03:00
Protesilaos Stavrou cae9e08865
Include a doc string in the output of modus-themes-define-derivative-command 2025-10-11 20:36:06 +03:00
Protesilaos Stavrou a391efc0f8
Remove hardcoded colour values from some Magit faces 2025-10-10 07:47:06 +03:00
Protesilaos Stavrou 99eb9d4c9a
Make widget-field use appropriate colour mappings and have an underline 2025-10-10 07:08:46 +03:00
Protesilaos Stavrou cfa3545171
Make modus-themes-custom-auto-reload obsolete 2025-10-07 07:15:06 +03:00
Protesilaos Stavrou 933a926247
Provide the macro modus-themes-define-derivative-command for derivative themes 2025-10-06 07:29:35 +03:00
Protesilaos Stavrou 563316fa89
Acknowledge Suleyman Boyar for commit 8c46843
The change is small, meaning that Suleyman does not need to assign
copyright to the Free Software Foundation.

This was done in pull request 156:
<https://github.com/protesilaos/modus-themes/pull/156>.
2025-10-05 17:55:28 +03:00
Protesilaos Stavrou e411452012
Merge pull request #156 from suboyar/main
Remove redundant theme name argument from modus-themes-declare call
2025-10-05 17:53:12 +03:00
suboyar 8c4684325e Remove redundant theme name argument from modus-themes-declare call
The function doesn't accept this parameter and constructs it internally.
2025-10-05 16:04:43 +02:00
Protesilaos Stavrou 91cd9dfed3
Make the match face use its own mapping 2025-10-04 07:59:17 +03:00
Protesilaos Stavrou 0648760267
Revert "Add an 'eval-and-compile' around all palette variables"
This reverts commit 7111708f15.

I thought this was needed to fix a warning I get about 'nil'
foreground value for a couple of faces. It seems that the mappings in
'modus-themes-common-palette-mappings' are not read and so I suspected
this was because of them not being known at compile time. Apparently,
this does not fix the problem, so I must check elsewhere...
2025-10-03 10:49:41 +03:00
Protesilaos Stavrou e942399a16
Add docstring for the method modus-themes-get-themes 2025-10-03 10:42:31 +03:00
Protesilaos Stavrou 7111708f15
Add an 'eval-and-compile' around all palette variables
I believe we need this because the individual theme files have the same.
2025-10-03 10:37:45 +03:00
Protesilaos Stavrou efbedafcbb
Remove the duplicate mappings for date-now 2025-10-03 10:36:42 +03:00
Protesilaos Stavrou 1f42a8165d
Expand the README.md with sample config and note about Modus as a platform 2025-10-03 09:36:49 +03:00
Protesilaos Stavrou b104e2b9f4
Update the documentation about building on top of the Modus themes 2025-10-03 07:37:07 +03:00
Protesilaos Stavrou c05e5a0433
Expand the modus-themes-theme macro to accept optional faces and custom variables 2025-10-03 07:36:45 +03:00
Protesilaos Stavrou 3e091098f0
Add back the missing annotation function
I must have deleted it as part of that botched rebase I did. Anyway,
this sort of thing will not even be visible to users of the marginalia
package, but is still good to have.
2025-10-02 19:57:40 +03:00
Protesilaos Stavrou 6326130654
Make minor tweaks to the sample configurations 2025-10-01 18:44:30 +03:00
Protesilaos Stavrou 14b7dd39a2
Document the other commands that load a theme 2025-10-01 18:32:05 +03:00
Protesilaos Stavrou 64681aadf5
Make 5.0.0 our current development target 2025-10-01 18:29:09 +03:00
Protesilaos Stavrou 247a9f7291
Document how to build on top of the modus-themes 2025-10-01 07:52:33 +03:00
Protesilaos Stavrou f86f23362f
Update the Info version of the manual 2025-10-01 07:52:33 +03:00
Protesilaos Stavrou 5cdb8cc81d
Document the new behaviour of modus-themes-rotate 2025-10-01 07:52:33 +03:00
Protesilaos Stavrou c100ec6844
Make small change to the manual to affect the Info output's render of a kbd 2025-10-01 07:52:33 +03:00
Protesilaos Stavrou eac296eb1d
Use modus-themes-sort in the method of modus-themes-include-derivatives-mode 2025-10-01 07:52:33 +03:00
Protesilaos Stavrou e8f99ba7d7
Mention modus-themes-sort in modus-themes-get-all-known-themes 2025-10-01 07:52:32 +03:00
Protesilaos Stavrou 1d71c7d942
Use modus-themes-sort in the generic modus-themes-get-themes 2025-10-01 07:52:32 +03:00
Protesilaos Stavrou 49d435ee79
Implement a modus-themes-sort function 2025-10-01 07:52:32 +03:00
Protesilaos Stavrou 154f876545
Redo the helper to check for background and adapt modus-themes-filter-by-background-mode 2025-10-01 07:52:32 +03:00
Protesilaos Stavrou 36decff7c2
Se the modus-themes-to-rotate nil and allow default rotation through modus-themes-get-themes 2025-10-01 07:52:32 +03:00
Protesilaos Stavrou 52f8e110bb
Make small stylistic refinements 2025-10-01 07:52:32 +03:00
Protesilaos Stavrou 97966a3502
Include the frame-background-mode in the theme macro 2025-10-01 07:52:32 +03:00
Protesilaos Stavrou 5f6ac4b130
Make the git-commit branches less intense
They do not need to stand out as much.
2025-09-30 12:21:48 +03:00
Protesilaos Stavrou 01f683346f
Make modus-themes-rotate prompt for a theme if it cannot rotate there
This is better for us because then we do not need to have derivative
theme packages necessarily implement their own version of
'modus-themes-to-rotate'. Plus, the user may have forgotten to update
that user option.
2025-09-30 12:14:33 +03:00
Protesilaos Stavrou 86112e457a
Use the correct value for our modus-themes-get-themes method 2025-09-30 07:38:52 +03:00
Protesilaos Stavrou 63ba534f1a
Reword the documentation string of modus-themes-get-themes 2025-09-30 07:05:24 +03:00
Protesilaos Stavrou b20d38115b
Reformat the palette variables and introduce some shared mappings 2025-09-29 23:27:26 +03:00
Protesilaos Stavrou b73415fda1
Use generic comments for inside the palettes 2025-09-29 22:56:06 +03:00
Protesilaos Stavrou d6b387f6ad
Make stylistic change to the theme obsolete aliases 2025-09-29 22:35:43 +03:00
Protesilaos Stavrou bea8a0436e
Tweak the modus-themes--activate 2025-09-29 22:32:03 +03:00
Protesilaos Stavrou 4c01c5e479
Again, fix things from the clumsy rebase... 2025-09-29 22:23:40 +03:00
Protesilaos Stavrou 27558488ef
Change how themes are activated and fix known issues with modus-themes-get-theme-palette 2025-09-29 22:10:53 +03:00
Protesilaos Stavrou c2016385f9
Reinstate a change that I messed up with the botched rebase 2025-09-29 21:34:54 +03:00
Protesilaos Stavrou 566c1ba4ca
Add missing change from 8557c39 2025-09-29 20:26:20 +03:00
Protesilaos Stavrou 8557c39298
Add FIXME for modus-themes-get-theme-palette overrides 2025-09-29 20:24:51 +03:00
Protesilaos Stavrou 0739ea4406
I messed up the rebase and had to redo things...
Hopefully I did not miss something and broke stuff.
2025-09-29 20:19:51 +03:00
Protesilaos Stavrou ecf3698412
Tweak how 'unspecified looks in the modus-themes-list-colors 2025-09-29 20:02:11 +03:00
Protesilaos Stavrou 711b9c1454
Make sure modus-themes-list-colors loads its theme to avoid errors 2025-09-29 20:02:11 +03:00
Protesilaos Stavrou 5b7cd71019
Name the modus-themes-get-theme-palette overrides parameter correctly
I got it wrong the first time.
2025-09-29 20:02:07 +03:00
Protesilaos Stavrou f8881652d3
Fix the feature of custom-declare-theme that we pass 2025-09-29 20:01:56 +03:00
Protesilaos Stavrou 0bd89da8ae
Keep modus-themes-include-derivatives-mode disabled by default 2025-09-29 20:01:56 +03:00
Protesilaos Stavrou d9adb13ebc
Make sure a theme is registered only if it is not a Modus theme 2025-09-29 20:01:56 +03:00
Protesilaos Stavrou 5a335389b1
Declare all the Modus themes at the outset to speed things up 2025-09-29 20:01:56 +03:00
Protesilaos Stavrou 636a19a28b
Rename the minor mode to modus-themes-include-derivatives-mode
This is more self-evident.
2025-09-29 20:01:56 +03:00
Protesilaos Stavrou e5f0a31f92
Fall back to -1 instead of 0 in modus-themes-rotate-subr
Thanks to Grant Rosson for pointing this out in issue 60 on the
ef-themes repository: <https://github.com/protesilaos/ef-themes/issues/60#issuecomment-3346124052>.
2025-09-29 20:01:56 +03:00
Protesilaos Stavrou ee104f0f16
Make the theme declaration and registration their own functions 2025-09-29 20:01:56 +03:00
Protesilaos Stavrou 97c23e87d8
Require cl-lib at compile time for cl-defgeneric and cl-defmethod
I think we do not need this for newer versions of Emacs, but it does
no harm, anyway.
2025-09-29 20:01:56 +03:00
Protesilaos Stavrou 4c245ba030
Remove the :before from the defmethod because it is not right
I had it for the Modus equivalent as well...
2025-09-29 20:01:56 +03:00
Protesilaos Stavrou 4a7ff08327
Remove superfluous colon symbol from modus-themes-list-colors 2025-09-29 20:01:56 +03:00
Protesilaos Stavrou d945f1c1aa
Make modus-themes-rotate-subr more robust 2025-09-29 20:01:55 +03:00
Protesilaos Stavrou 8317ad8d50
Instead of reinventing THEMES filters, use defmethods instead 2025-09-29 20:01:54 +03:00
Protesilaos Stavrou bb5a91f9c1
Make the modus-themes-rotate-subr start from 0 if no other position is available
We still want to perform a rotation when the current theme is not on
the modus-themes-to-rotate. This is done in response to issue 60 on
the ef-themes repository (but applies to use here too, more so since I
am redesigning the ef-themes to be derived from the modus-themes):
<https://github.com/protesilaos/ef-themes/issues/60>.
2025-09-29 20:01:10 +03:00
Protesilaos Stavrou f3ca643038
Make small rewording in a doc string 2025-09-29 20:01:10 +03:00
Protesilaos Stavrou 741486b03c
Rewrite modus-themes-get-all-known-themes to not assume nil family as Modus
It is easier to give it a family when we need to, else to accept all
the themes.
2025-09-29 20:01:10 +03:00
Protesilaos Stavrou 102650a412
Rename the helper for modus-themes-rotate for consistency with the load random approach 2025-09-29 20:01:08 +03:00
Protesilaos Stavrou bdd3470622
Make modus-themes-load-theme accept an optional hook argument 2025-09-29 20:00:50 +03:00
Protesilaos Stavrou a91870a447
Make the load theme helpers easier to work with 2025-09-29 20:00:50 +03:00
Protesilaos Stavrou 076709b769
Define a subroutine for modus-themes-load-random
This makes it easier to reuse the code while building on top of the modus-themes.
2025-09-29 20:00:49 +03:00
Protesilaos Stavrou 08ed0d631c
Make modus-themes-get-all-known-themes filter by theme family
This is more flexible than having a no derivatives toggle.
2025-09-29 20:00:49 +03:00
Protesilaos Stavrou 91b9b3f9ae
Move the theme palettes out of their respective files into modus-themes.el
This way any other package can build on top of Modus without having to
load any of those themes.
2025-09-29 20:00:44 +03:00
Protesilaos Stavrou f52e2f16b0
Define commands to load a random theme, plus necessary helper functions 2025-09-29 19:58:43 +03:00
Protesilaos Stavrou 7a76dca731
Use seq-union in modus-themes-get-all-known-themes
Looks nicer than (delete-dups (append ...)) plus it sound more right.
2025-09-29 19:58:43 +03:00
Protesilaos Stavrou 76fe11a79c
Define helper function to activate a theme and simplify modus-themes-get-all-known-themes 2025-09-29 19:58:43 +03:00
Protesilaos Stavrou e84e1a7b0b
Make sure the common overrides are accounted for in the theme's scope 2025-09-29 19:58:43 +03:00
Protesilaos Stavrou 95dde90c84
Reorder the forms in the macro to put the let closer to where it is needed 2025-09-29 19:58:39 +03:00
Protesilaos Stavrou 161391ba67
Rebase theme redesign on top of main 2025-09-29 19:57:32 +03:00
Protesilaos Stavrou 6f0e64daaa
Revert "Make modus-themes--current-theme only return an active theme (Emacs bug#79504)"
This reverts commit 76ea634816.
2025-09-28 20:16:35 +03:00
Protesilaos Stavrou 6d590469e5
Revert "Make the modus-themes-select-prompt public and extend it to be used by others"
This reverts commit 6cc997945f.
2025-09-28 20:16:34 +03:00
Protesilaos Stavrou e6df63dacd
Revert "Deprecate modus-themes-custom-auto-reload"
This reverts commit e32af5e54d.
2025-09-28 20:16:33 +03:00
Protesilaos Stavrou c56c1a3cf0
Revert "Remove outdated comment from one user option"
This reverts commit d13e9a8bd9.
2025-09-28 20:16:32 +03:00
Protesilaos Stavrou d0a4d673ee
Revert "Redefine how themes are registered (the macro) and retrieved"
This reverts commit 6be21f1119.
2025-09-28 20:16:31 +03:00
Protesilaos Stavrou 53df07e5e8
Revert "Remove the Custom :set function from all theme files (continue from e32af5e)"
This reverts commit da5d701f6c.
2025-09-28 20:16:31 +03:00
Protesilaos Stavrou cf88cc5b13
Revert "Tweak how the modus-themes-toggle is done"
This reverts commit c9fa2b8d83.
2025-09-28 20:16:30 +03:00
Protesilaos Stavrou 69d949fb27
Revert "Tweak how the modus-themes-rotate is done"
This reverts commit abb41f9836.
2025-09-28 20:16:29 +03:00
Protesilaos Stavrou 87c7fa3e4b
Revert "Make sure palette 'append' happens in the correct order"
This reverts commit e33c037359.
2025-09-28 20:16:28 +03:00
Protesilaos Stavrou 4a7f7b18b3
Revert "Make modus-themes-get-theme-palette append symbol values and accept overrides only"
This reverts commit 264814f51e.
2025-09-28 20:16:26 +03:00
Protesilaos Stavrou 7b7cc02f1c
Revert "Make tweaks based on new modus-themes-get-theme-palette (per commit 264814f)"
This reverts commit 753cdab306.
2025-09-28 20:16:21 +03:00
Protesilaos Stavrou 753cdab306
Make tweaks based on new modus-themes-get-theme-palette (per commit 264814f) 2025-09-28 15:52:59 +03:00
Protesilaos Stavrou 264814f51e
Make modus-themes-get-theme-palette append symbol values and accept overrides only 2025-09-28 15:51:41 +03:00
Protesilaos Stavrou e33c037359
Make sure palette 'append' happens in the correct order
Otherwise, the overrides never work.
2025-09-28 11:32:44 +03:00
Protesilaos Stavrou abb41f9836
Tweak how the modus-themes-rotate is done 2025-09-28 10:48:18 +03:00
Protesilaos Stavrou c9fa2b8d83
Tweak how the modus-themes-toggle is done 2025-09-28 10:46:24 +03:00
Protesilaos Stavrou da5d701f6c
Remove the Custom :set function from all theme files (continue from e32af5e) 2025-09-28 10:46:00 +03:00
Protesilaos Stavrou 6be21f1119
Redefine how themes are registered (the macro) and retrieved 2025-09-28 10:43:02 +03:00
Protesilaos Stavrou d13e9a8bd9
Remove outdated comment from one user option 2025-09-28 08:36:27 +03:00
Protesilaos Stavrou e32af5e54d
Deprecate modus-themes-custom-auto-reload
It complicates things for us and also has the disadvantage of running
as many times as the setopt variables being set. Users should just
learn to reload their theme and/or Emacs should have some built-in
mechanism. This is not our problem to fix.
2025-09-28 08:34:05 +03:00
Protesilaos Stavrou 6cc997945f
Make the modus-themes-select-prompt public and extend it to be used by others
The plan is to empower other themes to use this with whatever little
glue code they need.
2025-09-27 11:23:48 +03:00
Protesilaos Stavrou 76ea634816
Make modus-themes--current-theme only return an active theme (Emacs bug#79504)
Otherwise we end up loading the first among the "known themes" even
when the user had no such intention.

Thanks to Zhengyi Fu for reporting the bug on the Emacs tracker.
2025-09-27 11:22:01 +03:00
Protesilaos Stavrou 2c4e1dc7ce
Add support for minibuffer-nonselected
I tried many styles, but because the minibuffer colours are
customisable we cannot know if, say, "red background" is going to look
different than what the user has set. The colour inversion is not the
prettiest in this case, but works well.
2025-09-23 12:42:43 +03:00
Protesilaos Stavrou 7c5eed1cda
Refine the Custom buttons (also see commit 58d1b88) 2025-09-20 14:02:37 +03:00
Protesilaos Stavrou 58d1b88c1d
Refine the modus-themes-button style 2025-09-20 14:00:31 +03:00
Protesilaos Stavrou 161792b1b0
Make org-date-selected inherit calendar-today 2025-09-09 09:55:33 +03:00
Protesilaos Stavrou 92109f871b
Make calendar-today easier to spot 2025-09-09 09:55:14 +03:00
Protesilaos Stavrou 5d474cd524
Make the mode line faces use an underline if :box is not supported 2025-09-03 07:52:36 +03:00
Protesilaos Stavrou e9c612c6c0
Make the notmuch-message-summary-face use an overline if possible 2025-09-03 07:47:57 +03:00
Protesilaos Stavrou c40225e6d9
Add support for the magit-section-secondary-heading
It uses ':weight bold' whereas we want ':inherit bold'. The latter
gives users the option to modify the font family of the 'bold' face,
such as to make it extrabold.
2025-09-03 07:44:52 +03:00
Protesilaos Stavrou f4e67c80c9
Update the manual's acknowledgements to rename a person mentioned there 2025-07-18 07:10:26 +03:00
Protesilaos Stavrou b55d84a5cb
Explicitly cover the tab-bar-tab-highlight face
This is because its style was changed in Emacs 31 and now we do not
get what we used to have.
2025-07-12 07:43:49 +03:00
Protesilaos Stavrou 2f19a51511
Bump version number to trigger GNU ELPA package update
I do not want to publish a new minor release because I did that
recently and there are not many changes since then. Plus, I would need
to prepare a change log, which I cannot do right now.

Rebuilding the package allows us to include commit bf6c6ce, which
lowers the minimum required version of Emacs to 27.1. Hopefully,
everything will work as intended.

This is in response to bug#78991 by John Sullivan:
<https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-07/msg00480.html>.
2025-07-10 20:13:07 +03:00
Protesilaos Stavrou bf6c6ce67a
Remove use of 'string-pad' so we can depend on Emacs 27.1
This is in response to bug#78991 by John Sullivan:
<https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-07/msg00480.html>.
2025-07-10 20:08:32 +03:00
Protesilaos Stavrou 5f9dc66851
Acknowledge Eric Ottosson for commit 7601df7
This was done in pull request 145: <https://github.com/protesilaos/modus-themes/pull/145>.
The change is small (1 line), meaning that Eric does not need to
assign copyright to the Free Software Foundation.
2025-07-09 22:59:15 +03:00
Protesilaos Stavrou b9e822be6c
Merge pull request #145 from eotsn/fix-flymake-eol-faces
Fix flymake-warning-echo-at-eol face
2025-07-09 22:57:52 +03:00
Eric Ottosson 7601df769e Fix flymake-warning-echo-at-eol face 2025-07-09 21:27:21 +02:00
Protesilaos Stavrou 6639604271
Make stylistic tweaks to the lsp faces
Those were originally contributed by Jimmy Yuen Ho Wong in pull
request 142: <https://github.com/protesilaos/modus-themes/pull/142>.

The changes I making are intended mostly to avoid hardcoding certain
values, so that the palette overrides we provide work as expected.
2025-07-07 20:14:48 +03:00
Protesilaos Stavrou d31def4f58
Merge pull request #142 from wyuenho/lsp
Add lsp-mode and lsp-ui faces
2025-07-07 19:59:56 +03:00
Jimmy Yuen Ho Wong ebefa010b2
Add lsp-mode and lsp-ui faces 2025-06-25 16:44:18 +01:00
Gautier Ponsinet 3550360e88
Add support for new package faces (Emacs 31) 2025-06-23 07:28:30 +03:00
Protesilaos Stavrou fd5800c395
Add support for hs-ellipsis face (Emacs 31) 2025-06-17 13:34:38 +03:00
Protesilaos Stavrou 6636c91b88
Add support for the new spacious-padding face names
I keep the old ones for the time being, but they will be removed eventually.
2025-06-16 07:35:05 +03:00
Protesilaos Stavrou b7aa3ae780
Update modus-themes to version 4.8.0 2025-06-11 07:57:33 +03:00
Protesilaos Stavrou 6979a37a1e
Add support for the header-line-inactive face (Emacs 31) 2025-06-10 09:40:40 +03:00
Protesilaos Stavrou 3576d14f06
Acknowledge Jacob S. Gordon for commit 21b77de
This was sent as a patch as part of issue 143: <https://github.com/protesilaos/modus-themes/issues/143>.
2025-05-27 13:39:51 +03:00
Jacob S. Gordon 21b77de155
Reverse theme rotation direction when called with a prefix
When calling modus-themes-rotate interactively and with a prefix
argument, reverse the sense of rotation from right to left among the
modus-themes-to-rotate.  Explicit calls to modus-themes-rotate can
pass a non-nil REVERSE argument to achieve the same for their THEMES.

* modus-themes.el: (modus-themes-rotate, modus-themes--rotate-p,
modus-themes--rotate, modus-themes--next-in-rotation):

Add an optional REVERSE argument to modus-themes-rotate.  When called
interactively this becomes the current prefix argument.  Replace
helper functions with a single modus-themes--next-in-rotation.  Update
doc strings.
2025-05-27 10:56:39 +03:00
Protesilaos Stavrou 01b78e587d
Add missing command in the doc string of modus-themes-after-load-theme-hook 2025-05-24 11:30:31 +03:00
Protesilaos Stavrou af00e1c019
Clarify the doc string of modus-themes-after-load-theme-hook 2025-05-24 11:28:13 +03:00
Protesilaos Stavrou 6880f3a7d9
Suppress spurious warning about kmacro-menu-mark face 2025-05-19 09:04:59 +03:00
Protesilaos Stavrou 847311bf74
Make "ancient" Gnus look like a regular "read" message
This is in response to the issue 119 by sivaramn: <https://github.com/protesilaos/modus-themes/issues/119>.
In the original Gnus faces, the "ancient" are not the same as "read"
in terms of their colour, though I cannot find what the difference
actually is. It seems to me that "ancient" simply means "read it before".
2025-04-28 07:56:22 +03:00
Protesilaos Stavrou 93e89bdcf8
Add support for some tmr faces 2025-04-26 07:35:08 +03:00
Protesilaos Stavrou 1fe0a3c9c4
Introduce 'property' mapping
Thanks to Alexandr Semenov for requesting this in issue 141:
<https://github.com/protesilaos/modus-themes/issues/141>.
2025-04-25 08:25:12 +03:00
Protesilaos Stavrou 792ebec01a
Make small refinements to modus-vivendi-tinted bg-paren-match value 2025-04-24 07:54:08 +03:00
Protesilaos Stavrou 16fc1ed7b0
Revert "Revise all "paren" colours to be mappings"
This reverts commit 80b8de398f.

I wanted to put this in a separate branch for me to test things, but
did it on the main branch and then released it... Reverting as this
causes problems, such as what Morgan Willcock reported in issue 139:
<https://github.com/protesilaos/modus-themes/issues/139>.
2025-04-24 07:49:03 +03:00
Protesilaos Stavrou 51c7c4dc21
Tweak modus-vivendi-tinted mail mappings for consistency 2025-04-23 13:26:57 +03:00
Protesilaos Stavrou d85547d58b
Tweak modus-operandi-tinted mail mappings for consistency 2025-04-23 13:26:35 +03:00
Protesilaos Stavrou 7cc3d1495d
Fix some typos in the manual 2025-04-19 12:23:53 +03:00
Protesilaos Stavrou d5a0eeb4f0
Update to modus-themes version 4.7.0 2025-04-17 10:06:15 +03:00
Protesilaos Stavrou d3164f4295
Make yellow-cooler of modus-operandi-tinted even more dark 2025-04-17 09:21:55 +03:00
Protesilaos Stavrou d3fc7563df
Swap the mappings of 'type' and 'variable' in modus-operandi-tinted 2025-04-17 09:20:29 +03:00
Protesilaos Stavrou 81037da9aa
Tweak the identifier mapping of modus-operandi-tinted 2025-04-17 09:20:09 +03:00
Protesilaos Stavrou ad58ce7d29
Make yellow-faint of modus-operandi-tinted a bit darker 2025-04-17 09:19:58 +03:00
Protesilaos Stavrou 0666b7e925
Make yellow-cooler of modus-operandi-tinted a bit darker 2025-04-17 09:19:41 +03:00
Protesilaos Stavrou a7a018c016
Make modus-vivendi-tinted 'mail-cite-2' more teal 2025-04-17 09:04:15 +03:00
Protesilaos Stavrou fc3c16f1da
Make modus-vivendi-tinted 'mail-cite-0' more blue 2025-04-17 09:03:56 +03:00
Protesilaos Stavrou 38b7b353ef
Change hue of accent-2 mapping in modus-vivendi-tinted 2025-04-17 09:01:45 +03:00
Protesilaos Stavrou 9e51b1b678
Make modus-vivendi-tinted 'green-cooler' a bit more bright 2025-04-17 09:01:36 +03:00
Protesilaos Stavrou 87e84aac7d
Make modus-vivendi-tinted type a bit more blue 2025-04-17 08:54:58 +03:00
Protesilaos Stavrou 5df9c6c98d
Make modus-vivendi-tinted strings blue instead of teal 2025-04-17 08:54:29 +03:00
Protesilaos Stavrou 0c03c3b34a
Use slightly different colour for mail-cite-2 in modus-vivendi-tinted 2025-04-16 14:11:33 +03:00
Protesilaos Stavrou de28e15485
Use slightly different colours for the mail cite mappings in modus-operandi-tinted 2025-04-16 14:10:41 +03:00
Protesilaos Stavrou ed44bbae35
Make stylistic refinements to some modus-operandi-tinted prose mappings 2025-04-16 08:02:51 +03:00
Protesilaos Stavrou 2569f4a596
Use blue-cooler for weekends in modus-operandi-deuteranopia 2025-04-15 08:19:37 +03:00
Protesilaos Stavrou 9966f9fd60
Tweak the mail mappings in the tinted variants 2025-04-15 08:14:52 +03:00
Protesilaos Stavrou 063ae646f0
Refine 'green-warmer' in modus-vivendi-tinted 2025-04-15 08:14:40 +03:00
Protesilaos Stavrou 63af2adfed
Refine 'green-warmer' in modus-operandi-tinted 2025-04-15 08:02:19 +03:00
Protesilaos Stavrou 3d7e9d6213
Refine 'yellow-cooler' and 'yellow-faint' in modus-operandi-tinted 2025-04-15 07:59:58 +03:00
Protesilaos Stavrou cfe8702f56
Tweak value of yellow-cooler in modus-operandi-tinted 2025-04-12 18:15:04 +03:00
Protesilaos Stavrou 4c82e40fb4
Refine the value of bg-hover-secondary in most themes 2025-04-10 13:00:41 +03:00
Protesilaos Stavrou 6725de0b9f
Further tweak the value of modus-vivendi-tinted 'green-warmer' 2025-04-10 11:17:45 +03:00
Protesilaos Stavrou e520baff18
Tweak the value of modus-vivendi-tinted 'green-warmer' 2025-04-10 11:10:56 +03:00
Protesilaos Stavrou c98df7220b
Tweak the value of 'yellow-cooler' in modus-operandi-tinted 2025-04-09 15:20:48 +03:00
Protesilaos Stavrou 1c582c44ff
Tweak the blue used in modus-operandi-tinted 'keyword' mapping 2025-04-08 17:05:05 +03:00
Protesilaos Stavrou 654244eb78
Tweak the fg-alt value of the tritanopia themes 2025-04-08 11:07:29 +03:00
Protesilaos Stavrou dfd1879431
Change 'prose-tag' mapping in the tritanopia themes to be more neutral 2025-04-08 11:03:06 +03:00
Protesilaos Stavrou 3c3096178d
Make modus-vivendi-tinted 'green-warmer' less intense 2025-04-08 08:45:51 +03:00
Protesilaos Stavrou 453f69b436
Make modus-vivendi-tinted 'red-faint' a bit darker 2025-04-08 08:45:42 +03:00
Protesilaos Stavrou 7c8d4766e1
Update meow sample code to not use bg-char mappings that I removed in 42e1611 2025-04-07 09:52:50 +03:00
Protesilaos Stavrou 42e161138b
REMOVE bg-char mappings and use search faces for Avy and related
These are like search matches, anyway, plus we make the code more
simple on our end.
2025-04-07 08:32:47 +03:00
Protesilaos Stavrou 80b8de398f
Revise all "paren" colours to be mappings 2025-04-07 08:23:51 +03:00
Protesilaos Stavrou a162cd09e7
Make the bg-search-replace yellow in the deuteranopia themes
It is easier to notice the current match when there are lots of lazy
matches around it.
2025-04-07 07:53:36 +03:00
Protesilaos Stavrou 26e9ab4fbd
Make small refinements to the git-commit branch and file faces
This way they stand out a bit better.
2025-04-07 07:37:33 +03:00
Protesilaos Stavrou 3631e70d29
Revise some of the prose mappings in the deuteranopia themes 2025-04-06 16:20:15 +03:00
Protesilaos Stavrou fe05b2a87c
Tweak accent-0 in modus-vivendi-deuteranopia 2025-04-06 16:13:02 +03:00
Protesilaos Stavrou 34b8a5018b
Refine the "bg-char-*" values of the deuteranopia themes 2025-04-06 15:52:26 +03:00
Protesilaos Stavrou 5917d8a490
Use 'magenta-cooler' for the deuteranopia 'date-weekend' mappings 2025-04-06 13:53:22 +03:00
Protesilaos Stavrou bd28200a5b
Reduce the amount of magenta in some parts of the deuteranopia variants 2025-04-06 10:10:37 +03:00
Protesilaos Stavrou 03312ad25c
REVISE the style of modus-vivendi-tinted
I am changing some colour mappings to make the theme more consistent.
It should still feel close to how it was before.
2025-04-06 09:21:05 +03:00
Protesilaos Stavrou d650f01c51
REVISE the style of modus-operandi-tinted
I am changing some colour mappings to make the theme more consistent.
It should still feel close to how it was before.
2025-04-06 09:17:56 +03:00
Protesilaos Stavrou 5341ab74e7
Refine green-warmer in modus-vivendi-tinted 2025-04-06 09:17:30 +03:00
Protesilaos Stavrou ce5477ae08
Refine many colour values in modus-operandi-tinted 2025-04-06 09:17:08 +03:00
Protesilaos Stavrou 4661315930
Update copyright header years in the theme files 2025-04-06 08:50:52 +03:00
Protesilaos Stavrou d8d36c40e1
Refine how modus-themes-to-toggle gets the list of themes in its :type 2025-04-05 13:23:56 +03:00
Protesilaos Stavrou 8e45bc97fb
Add support for new icomplete-vertical-mode faces (Emacs 31) 2025-04-05 13:19:09 +03:00
Protesilaos Stavrou edb78e5f46
Acknowledge Leilei332 for expanding support for adoc-mode
This was done in pull request 137:
<https://github.com/protesilaos/modus-themes/pull/137>.

The change is within the ~15-line limit, meaning that the author does
not need to assign copyright to the Free Software Foundation.
2025-04-05 08:38:54 +03:00
Protesilaos Stavrou 0f6563320c
Merge pull request #137 from Leilei332/adoc-support
Add adoc-mode support
2025-04-05 08:37:43 +03:00
Leilei332 e6702f9b9f Update adoc-meta-hide-face 2025-04-03 20:10:19 +08:00
Leilei332 5d9a43beb8 Add adoc-mode support
Adapt color for adoc-mode faces
2025-04-03 20:03:37 +08:00
Protesilaos Stavrou 55609222f9
Change the accent mappings in modus-vivendi-tinted for stylistic consistency 2025-03-27 10:43:01 +02:00
Protesilaos Stavrou 8535e3245a
Change the accent mappings in modus-operandi-tinted for stylistic consistency 2025-03-27 10:42:40 +02:00
Protesilaos Stavrou f3cd4d6983
Merge branch 'main' of github.com:protesilaos/modus-themes 2025-02-20 08:47:29 +02:00
Protesilaos Stavrou 63ab46d7ee
Cover the new transient faces 2025-02-20 08:47:10 +02:00
Protesilaos Stavrou ab56e2888b
Revert "Remove the colour from Magit diff file heading and make them bold when highlighted"
This reverts commit 55dd76805f.
2025-02-15 16:04:49 +02:00
Protesilaos Stavrou 0d7203256a
Revert "Do not make Magit diff file heading bold unless selected (see 55dd768)"
This reverts commit 13ff52a8eb.
2025-02-15 16:04:40 +02:00
Protesilaos Stavrou 5e834b6fcf
Add explicit support for howm package 2025-02-15 10:32:26 +02:00
Protesilaos Stavrou e1efd2dd95
Add support for built-in abbrev-table-name (Emacs 29) 2025-02-13 11:00:05 +02:00
Protesilaos Stavrou 13ff52a8eb
Do not make Magit diff file heading bold unless selected (see 55dd768) 2025-02-12 08:26:12 +02:00
Protesilaos Stavrou 55dd76805f
Remove the colour from Magit diff file heading and make them bold when highlighted 2025-02-12 08:25:27 +02:00
Protesilaos Stavrou 610ae60123 Merge branch 'blc/loop' into 'main'
Simplify modus-themes--retrieve-palette-value

See merge request protesilaos/modus-themes!60
2025-02-08 09:58:15 +00:00
Basil L. Contovounesios de57a78821
Simplify modus-themes--retrieve-palette-value
If the value is not contained in the palette, the recursive call to
modus-themes--retrieve-palette-value will return unspecified anyway,
thanks to the alist-get at the start of the function.

This saves a list allocation per recursive call, at the expense of
an additional funcall.

An alternative that avoids both the list allocation and the extra
funcall is to use (assq value palette) instead, at the expense of
more (and repetitive) typing.
2025-02-07 12:32:47 +01:00
Protesilaos Stavrou 4b10426687
Update copyright years 2025-01-27 10:56:44 +02:00
Protesilaos Stavrou d565ad1bf1
Use a more semantic colour for spacious-padding-subtle-mode-line-active 2025-01-27 08:22:02 +02:00
Protesilaos Stavrou 75791f5efc
Make org-column-title use fixed-pitch if modus-themes-mixed-fonts is non-nil
Thanks to pedro-nonfree for bringing this matter to my attention in
issue 129: <https://github.com/protesilaos/modus-themes/issues/129>.
2025-01-22 09:05:06 +02:00
Protesilaos Stavrou 17116b7026
Merge branch 'main' of github.com:protesilaos/modus-themes 2025-01-22 09:03:40 +02:00
Protesilaos Stavrou 3bef1fae4b
Tweak the foreground of spacious-padding-subtle-mode-line-active 2025-01-10 09:56:18 +02:00
Protesilaos Stavrou b19db8dd84
Add support for spacious-padding faces 2025-01-10 08:44:25 +02:00
Protesilaos Stavrou 5949d78f3b
Do not show unspecified overrides as mappings in modus-themes-list-colors 2025-01-07 18:37:49 +02:00
Protesilaos Stavrou f4616689bc
Update the vterm faces to cover all of the current ones
Since I am doing this, I also define the "bright" variants directly to
make them easier to notice.

Thanks to Edgar Vincent for informing me that some of the vterm faces
were changed a while ago. This was done in issue 317 on the GitLab
mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/317>.
2025-01-07 12:34:40 +02:00
Protesilaos Stavrou d807e1f013
Support auto-dim-other-buffers-hide-face 2024-12-28 12:50:02 +02:00
Protesilaos Stavrou d79e658660
Make Ivy subdir and virtual easier to tell apart from the completion candidates 2024-12-22 11:10:10 +02:00
Protesilaos Stavrou f3fa1aba0b
Make IDO subdir and virtual easier to tell apart from the completion candidates 2024-12-22 11:09:05 +02:00
Protesilaos Stavrou 3c69034e87
Refactor modus-themes--toggle-theme-p
It was returning modus-themes-to-toggle before, but the 'if' statement
inside of the mapc was not doing what it was stating (mapc does not
accumulate results).

This is a cleaner design.
2024-12-17 11:40:13 +02:00
Protesilaos Stavrou 157866d5f9
Add docstring to hook alias 2024-12-17 11:39:52 +02:00
Protesilaos Stavrou ac394f8490
Adapt modus-themes-list-colors to prefix argument if present 2024-12-16 10:16:58 +02:00
Protesilaos Stavrou 8267677f81
Make modus-themes-list-colors use a more relevant prompt 2024-12-16 10:14:38 +02:00
Protesilaos Stavrou cf469564b7
Make modus-themes--select-prompt accept optional PROMPT 2024-12-16 10:13:51 +02:00
Protesilaos Stavrou df1798234e
Merge pull request #124 from LionyxML/main
Make treemacs directory faces similar to dired
2024-11-20 07:42:02 +02:00
Rahul M. Juliato bc3cc758ba Make treemacs directory faces similar to dired 2024-11-19 18:41:53 -03:00
Protesilaos Stavrou dc0d606e2a
Refactor the palette preview commands to use tabulated-list-mode 2024-11-17 09:43:59 +02:00
Protesilaos Stavrou 891bd2913c
Document support for treemacs
This was done in pull request 121:
<https://github.com/protesilaos/modus-themes/pull/121>.

Rahul has assigned copyright to the Free Software Foundation.
2024-11-07 10:16:37 +02:00
Protesilaos Stavrou 2afc2a1f40
Acknowledge Rahul M. Juliato for treemacs support (commit 306e411)
This was done in pull request 121:
<https://github.com/protesilaos/modus-themes/pull/121>.

Rahul has assigned copyright to the Free Software Foundation.
2024-11-07 10:14:09 +02:00
Protesilaos Stavrou 07d7073884
Merge pull request #121 from LionyxML/main
Add support for treemacs
2024-11-07 10:09:47 +02:00
Rahul M. Juliato 306e4110b7 Add support for treemacs 2024-11-06 19:58:50 -03:00
Protesilaos Stavrou ecfa4ded5a
Add support for tldr package 2024-10-28 10:49:07 +02:00
Protesilaos Stavrou 895e10936a
Update modus-themes to version 4.6.0 2024-10-27 17:55:11 +02:00
Protesilaos Stavrou 6faf2d29c3
Refine forge faces 2024-10-27 17:41:20 +02:00
Protesilaos Stavrou 4a5bf64108
Make stylistic change to modus-themes-to-rotate :type 2024-10-25 10:09:27 +03:00
Protesilaos Stavrou 823f87c791
Declare modus-themes-toggle as interactive-only 2024-10-25 10:03:42 +03:00
Protesilaos Stavrou 6834d3c686
Make stylistic change to modus-themes-to-toggle :type 2024-10-25 10:03:27 +03:00
Protesilaos Stavrou 77b9a2ae25
Switch to if-let* and friends because Emacs 31 has deprecated the others 2024-10-25 09:49:51 +03:00
Protesilaos Stavrou 98a3f8886d
Add error check to modus-themes-rotate if THEMES is not a list 2024-10-25 09:49:25 +03:00
Protesilaos Stavrou 613f953412
Remove some needless :set functions
Our :set function is designed to reload the theme, with the intent to
apply whatever change to the visuals. But this is not relevant for
user options that have no direct effect on the appearance of the
themes.

This is done as part of a discussion with shipmints in issue 118:
<https://github.com/protesilaos/modus-themes/issues/118>.
2024-10-20 16:38:15 +03:00
Protesilaos Stavrou 107df813fb
Make small refinement to modus-themes--rotate 2024-10-20 11:04:40 +03:00
Protesilaos Stavrou 54e6481c4c
Recompile the Info manual 2024-10-20 10:37:18 +03:00
Protesilaos Stavrou 3e1fb56a41
Add an entry to the manual about modus-themes-rotate, modus-themes-to-rotate 2024-10-20 10:36:48 +03:00
Protesilaos Stavrou fcb72f0d10
Reword the documentation for modus-themes-to-toggle 2024-10-20 10:35:59 +03:00
Protesilaos Stavrou bbfd330e7d
Expand the outline of the commands' section 2024-10-20 10:28:00 +03:00
Protesilaos Stavrou 233abe6562
Reorganise the modus-themes-items 2024-10-20 10:25:31 +03:00
Protesilaos Stavrou b9685bede6
Add new modus-themes-rotate command and modus-themes-to-rotate option 2024-10-20 10:25:26 +03:00
Protesilaos Stavrou 9f3dba14ec
Make further changes to the red-cooler value in the dark themes (extends 414de69) 2024-10-19 12:31:16 +03:00
Protesilaos Stavrou 414de6955c
Tweak the red-cooler value in all the Vivendi variants 2024-10-18 20:15:52 +03:00
Protesilaos Stavrou 77a0310b5c
Revise colours for deadlines and scheduled tasks
The goal is two-fold:

1. Improve the semantics of relevant faces. This now covers the Org
   agenda. We want pending/urgent tasks to be rendered in a bold font
   and use a vivid colour. Whereas tasks that are not urgent should
   have a subtle colour and a normal weight. Thanks to Adam
   Porter (GitHub @alphapapa) for discussing this with me in issue
   102: <https://github.com/protesilaos/modus-themes/issues/102>.

2. Make the applicable colours be more consistent with the rest of the
   theme. In practice, this means that the colour values are cooler
   overall and the intensity is lower.
2024-10-18 13:14:24 +03:00
Protesilaos Stavrou 817ff75d11
Update Embark faces 2024-10-07 16:32:19 +03:00
Protesilaos Stavrou 27ae9b919e
Update symbol of Embark selected/marked face 2024-10-07 16:29:16 +03:00
Protesilaos Stavrou 4932dfc349
Document support for engrave-faces 2024-10-04 10:48:41 +03:00
Protesilaos Stavrou 0c4a9973e0
Remove hardcoded colours of {all-the,nerd}-icons-ibuffer 2024-10-02 15:31:36 +03:00
Protesilaos Stavrou a62e505303
Make the directory icons use the same colour as Dired directories 2024-10-02 15:30:30 +03:00
Protesilaos Stavrou 95be7968f3
Make company use fixed-pitch if modus-themes-mixed-fonts is non-nil 2024-09-21 09:16:14 +03:00
Protesilaos Stavrou ab1582fd2f
Make corfu use fixed-pitch if modus-themes-mixed-fonts is non-nil 2024-09-21 09:15:53 +03:00
Protesilaos Stavrou 19e91f9e72
Add support for the built-in hexl-mode 2024-09-20 17:50:29 +03:00
Protesilaos Stavrou c2cb0404c3
Replace deprecate colour in the manual's entry about solaire
Thanks to Edgar Vincent for bringing this matter to my attention. This
was done on the GitLab mirror, issue 316:
<https://gitlab.com/protesilaos/modus-themes/-/issues/316>.
2024-09-08 07:39:27 +03:00
Protesilaos Stavrou cbe6c0284f
Document how users can add support for howm
This is in response to the question raised by Jabir Ali Ouassou in issue 117:
<https://github.com/protesilaos/modus-themes/issues/117>.
2024-09-08 07:39:27 +03:00
Protesilaos Stavrou cb612d3689
Document how users can add support for combobulate
This is in response to the question raised by Damien Cassou in issue
108: <https://github.com/protesilaos/modus-themes/issues/108>.
2024-09-05 12:42:45 +03:00
Protesilaos Stavrou 8bbebd2f39
Document how users can add support for meow
This is in response to the question raised by ZharMeny in issue 116:
<https://github.com/protesilaos/modus-themes/issues/116>.
2024-09-05 12:42:25 +03:00
Protesilaos Stavrou 1725bfd1ed
Refine support for forge 2024-09-05 11:57:55 +03:00
Protesilaos Stavrou 32c50cd4f6
Add explicit support for 'forge' package 2024-09-04 14:44:21 +03:00
Protesilaos Stavrou 6a37cebdee
Fix some typos in the manual 2024-08-26 09:47:01 +03:00
Protesilaos Stavrou db70c2ca92
Update modus-themes to version 4.5.0 2024-08-21 10:24:25 +03:00
Protesilaos Stavrou 7532d69bf1
Reword parts of the manual about the palette extension options 2024-08-21 10:05:46 +03:00
Protesilaos Stavrou 3002f6fb64
Make elisp-shorthand-font-lock-face more noticeable 2024-08-11 08:02:38 +03:00
Protesilaos Stavrou bff0673d86
Extend support for Viper to cover cursor colours
Thanks to ZharMeny for the feedback in issue 115:
<https://github.com/protesilaos/modus-themes/issues/115>.
2024-08-11 08:01:49 +03:00
Protesilaos Stavrou 243fc35181
Add support for the built-in viper-mode
Thanks to ZharMeny for bringing this matter to my attention in issue
115: <https://github.com/protesilaos/modus-themes/issues/115>.
2024-08-06 08:28:17 +03:00
Protesilaos Stavrou cb2ce8bedf
Acknowledge Pavel Novichkov for commit 113fc93
The change is small, meaning that Pavel does not need to assign
copyright to the Free Software Foundation. This was done in pull
request 114: <https://github.com/protesilaos/modus-themes/pull/114>.
2024-07-28 13:07:14 +03:00
Protesilaos Stavrou 259a31af9f
Merge pull request #114 from PavelNovichkov/main
Fix symbol in web-mode face
2024-07-28 13:05:39 +03:00
Pavel Novichkov 113fc936be
Fix symbol in web-mode face 2024-07-28 10:50:49 +02:00
Protesilaos Stavrou 8b210e065e
Tweak the style of notmuch tree indicators 2024-07-25 13:01:11 +03:00
Protesilaos Stavrou daa4b3f4a7
Support the built-in minibuffer-depth-indicator 2024-07-25 12:57:02 +03:00
Protesilaos Stavrou 7a22d934a3
Add support for kmacro-menu faces 2024-07-23 09:06:16 +03:00
Protesilaos Stavrou a9f709e344
Add more semantic palette mappings for code constructs 2024-07-09 09:38:40 +03:00
Protesilaos Stavrou c4ebbfd210
Make theme-specific "user" palette take precedence over common "user" palette 2024-06-25 07:37:31 +03:00
Protesilaos Stavrou db5b771c42
Add more sample code in the manual for "user" palette definitions 2024-06-25 07:18:08 +03:00
Protesilaos Stavrou 573db128a0
Implement "user" palette extension (common or per-theme) 2024-06-24 23:11:37 +03:00
Protesilaos Stavrou 4c73580111
Add explicit support for vtable
Thanks to shipmints for bringing this matter to my attention in issue
110: <https://github.com/protesilaos/modus-themes/issues/110>.
2024-06-22 21:37:26 +03:00
Protesilaos Stavrou 4f7fa199d2
Remove references to non-existent Modus face 2024-06-17 17:03:09 +03:00
Protesilaos Stavrou b694570fd0
Document support for window-tool-bar
Thanks to Jared Finder for the contribution in pull request 107:
<https://github.com/protesilaos/modus-themes/pull/107>.

The change is small, so Jared does not need to assign copyright to the
Free Software Foundation.
2024-06-10 20:30:55 +03:00
Protesilaos Stavrou b941fc19a2
Merge pull request #107 from chaosemer/main
Add support for window-tool-bar
2024-06-10 20:28:39 +03:00
Jared Finder deec3131fd Add support for window-tool-bar 2024-06-09 15:44:11 -07:00
Protesilaos Stavrou 1090a80a76
Define more special colour pairs 2024-06-03 18:54:16 +03:00
Protesilaos Stavrou d2762db19e
Document support for jabber and update the acknowledgements 2024-05-05 06:31:19 +03:00
Thanos Apollo 44d9d41576
Add support for jabber
Existing faces from jabber.el are replaced with equivalent colors from
the Modus theme, ensuring a familiar interface experience for current
users.

The following faces have specific changes:

- jabber-activity-face; Uses 'modeline-info', as this face represents
  information displayed in the modeline.

- jabber-title-SIZE; 'fg-heading' is used instead of the default.

- jabber-roster-user-error; Inherits from 'error'.

- jabber-roster-user-offline; The color 'fg-dim' in italics is used
  instead of the default "dark-grey".

These adjustments aim to maintain consistency with the rest of the
Emacs UI & modus-themes color-pallete.
2024-05-05 06:25:40 +03:00
Protesilaos Stavrou 56bd9c8f32
Fix typo in the manual 2024-04-27 11:43:36 +03:00
Protesilaos Stavrou e7db39b956
Remove the bold-italic from doom-modeline because it breaks some icons
Thanks to Filippo Argiolas for reporting this bug in issue 42 at the
ef-themes repo: <https://github.com/protesilaos/ef-themes/issues/42>.
2024-04-27 11:39:19 +03:00
Protesilaos Stavrou bea2f68833
Make refinements to some graph colours in all light themes 2024-03-22 07:19:13 +02:00
Protesilaos Stavrou 1963b6b874
Update the repository url in the CHANGELOG
Thanks to Morgan Willcock for bringing this matter to my attention. It
was done via a private channel. This is shared with permission.
2024-03-20 08:55:47 +02:00
Protesilaos Stavrou a082d7739f
Update to modus-themes version 4.4.0 2024-03-17 18:19:51 +02:00
Protesilaos Stavrou d28a6af77b
Fix the value of fg-prose-code which I changed by accident 2024-03-17 15:16:17 +02:00
Protesilaos Stavrou 51466b1355
Cover the org-dispatcher-highlight face 2024-03-17 08:47:17 +02:00
Protesilaos Stavrou 74119b87c8
Add missing modus-vivendi-tritanopia mappings from commit d33c545 2024-03-17 08:29:20 +02:00
Protesilaos Stavrou 0cde97e94b
Document some sections in the manual as part of the current dev target 2024-03-17 08:22:11 +02:00
Protesilaos Stavrou d33c545153
Add semantic mappings for inline code backgrounds in addition to foregrounds; plus docs 2024-03-17 08:20:29 +02:00
Protesilaos Stavrou 7384dbf264
Tweak the modus-operandi-tinted cursor colour
The idea is to make it stand out a bit more.
2024-03-15 07:17:46 +02:00
Protesilaos Stavrou 6179c6b29c
Tweak the modus-vivendi-tinted cursor colour
The idea is to make it stand out a bit more.
2024-03-15 07:16:24 +02:00
Protesilaos Stavrou fe281a7651
Use an explicit foreground for the fg-paren-match mapping 2024-03-15 07:09:31 +02:00
Protesilaos Stavrou 9617574eb2
Merge branch 'main' of github.com:protesilaos/modus-themes 2024-03-13 10:13:05 +02:00
Protesilaos Stavrou af05234b21
Refine the mail mappings of modus-themes-preset-overrides-intense 2024-03-13 10:12:35 +02:00
Protesilaos Stavrou 114ffb4141
Replace colour names with their hex values 2024-03-13 06:23:57 +02:00
Protesilaos Stavrou 435916a255
Use a more appropriate semantic mapping for which-key-group-description-face 2024-03-12 10:33:35 +02:00
Gautier Ponsinet accf6985ae
Make org checkboxes use conditional fixed-pitch 2024-03-03 12:23:53 +02:00
Protesilaos Stavrou 263e4f2572
Recompile the Info manual 2024-03-03 08:49:05 +02:00
Protesilaos Stavrou b08e2fe48f
Examples the examples of prose block palette overrides 2024-03-03 08:48:51 +02:00
Protesilaos Stavrou ba5fc209b1
Add more examples for mode line palette override styles 2024-03-03 08:33:27 +02:00
Protesilaos Stavrou dee2fea470
Remove unnecessary comments from the DIY palette overrides sections 2024-03-03 08:33:05 +02:00
Protesilaos Stavrou 80c5d25ad4
Add semantic color mapping 'fg-paren-match' 2024-03-03 08:17:53 +02:00
Protesilaos Stavrou 8f9255c5e1
Make the prose block delimiters more subtle 2024-03-02 12:01:46 +02:00
Protesilaos Stavrou 5bec85b46d
modus-vivendi-tinted: make key bindings red to fit better with the theme 2024-03-02 07:50:33 +02:00
Protesilaos Stavrou 0ae74c87e2
modus-vivendi-tinted: tweak bg-paren-match to fit better with the theme 2024-03-02 07:50:13 +02:00
Protesilaos Stavrou 146e011db7
modus-operandi-tinted: make key bindings red to fit better with the theme 2024-03-02 07:49:38 +02:00
Protesilaos Stavrou 3ba09931d0
DEPRECATE modus-themes-org-blocks; use semantic color mappings (and overrides) 2024-03-02 07:40:24 +02:00
Protesilaos Stavrou fb634dd64c
Recompile the Info manual 2024-02-27 09:15:29 +02:00
Protesilaos Stavrou cec733f367
Change the default value of 'modus-themes-org-blocks' to 'gray-background' 2024-02-27 09:12:17 +02:00
Protesilaos Stavrou 83e40fa1a1
Update all relevant function to have a (&rest _) that works with all hooks 2024-02-27 09:08:52 +02:00
Protesilaos Stavrou 58089edd35
Add links to the section about using hooks 2024-02-27 09:08:38 +02:00
Protesilaos Stavrou 1693c8f04d
Make two links point to the ID of the heading, not its text 2024-02-27 09:07:49 +02:00
Protesilaos Stavrou fbd93c1c3a
Remove non-existent link 2024-02-27 09:06:06 +02:00
Protesilaos Stavrou abb09cc9fe
Reorganise the documentation for getting color values 2024-02-27 08:51:25 +02:00
Protesilaos Stavrou c87577ba3e
Make the section on previewing the palette a top-level heading 2024-02-27 08:26:01 +02:00
Protesilaos Stavrou 97658c2e77
Mark all remaining relevant heading with the DIY prefix 2024-02-27 08:24:48 +02:00
Protesilaos Stavrou 6660a53426
Document the use of hooks, including 'enable-theme-functions' 2024-02-27 08:23:54 +02:00
Protesilaos Stavrou 6ef0de0e11
Add a reminder about reloading the theme for DIY changes to take effect 2024-02-27 08:23:27 +02:00
Protesilaos Stavrou 4b954c4772
Prepend "DIY" to all do-it-yourself customisation headings 2024-02-27 07:50:35 +02:00
Protesilaos Stavrou 794593afd9
Add missing parenthesis in the manual 2024-02-27 07:50:08 +02:00
Protesilaos Stavrou 4c7ada933b
Merge pull request #99 from slotThe/rustic
Add support for `xterm-color` and (parts of) `rustic-mode`
2024-02-27 07:31:23 +02:00
Protesilaos Stavrou bef8b24801
Tweak the message-separator style 2024-02-26 10:18:44 +02:00
Protesilaos Stavrou 4fc0ce3f84
Add support for the mu4e-thread-fold-face 2024-02-26 10:15:25 +02:00
Protesilaos Stavrou 4b88a07b03
Do not underline the gnus-button 2024-02-26 10:08:22 +02:00
Tony Zorman 850356e42a Add support for rustic-ansi-faces
Most of rustic-modes faces are deprecated in favour of this unifying
approach, hence only this one face is added. Unlike the name suggests,
this does not use ansi-color.el, but rather xterm-color.el; this has no
effect in terms of the color specification, though.
2024-02-25 09:04:48 +01:00
Tony Zorman 68cd61d913 Add xterm-color support
This is a GNU ELPA package that essentially does what ansi-color.el also
does. The reason for supporting it is that other third-party packages
may depend on xterm-color, and if we just leave it to its own devices it
may produce nearly unreadable output.
2024-02-25 09:02:47 +01:00
Protesilaos Stavrou 9252ca3d4c
Make date-now use fg-main in the deuteranopia themes 2024-02-24 12:07:45 +02:00
Protesilaos Stavrou 5d57c7354b
Make the scroll-bar background same as fringe; foreground less intense 2024-02-23 09:12:09 +02:00
Protesilaos Stavrou 57539cad16
Add two more erc faces 2024-02-12 10:06:07 +02:00
Protesilaos Stavrou 9be57d9d6e
Add support for ztree package 2024-02-12 07:49:24 +02:00
Protesilaos Stavrou 41e8f1088b
Add support for the 'completions-highlight' face (Emacs 29) 2024-02-07 12:47:04 +02:00
Protesilaos Stavrou a0019a75bf
Note that debbugs is part of the current development version 2024-02-03 08:14:43 +02:00
Protesilaos Stavrou 9681c439bd
Make stylistic changes to debbugs 2024-02-03 08:14:18 +02:00
Gautier Ponsinet 9e08c78a2b
Add support for debbugs package 2024-02-03 07:51:56 +02:00
Protesilaos Stavrou 970e9bd269
Simplify check for Org block backgrounds; make them have bg with "tinted" option
Now when the user sets the option 'modus-themes-org-blocks' to a
non-nil value, the themes will always apply a background. It will be
gray by default unless the value is 'tinted-background'.

Before, there was no fallback background for quote and verse blocks
when the user was setting 'modus-themes-org-blocks' to the
'tinted-background'. We always want to have a background in that case.
The quote/verse blocks use gray at all times because we cannot modify
them via the 'org-src-block-faces'.

Thanks to Lennart C. Karssen for bringing this matter to my attention
in issue 313 on the GitLab mirror:
<https://gitlab.com/protesilaos/modus-themes/-/issues/313>
2024-02-03 07:35:45 +02:00
Protesilaos Stavrou ed71ba54a2
Recompile Info manual 2024-02-03 07:35:33 +02:00
Protesilaos Stavrou 9e66703606
Add a missing unbreakable space in a name 2024-02-03 07:35:12 +02:00
Protesilaos Stavrou 89a796d30e
Fix spelling of "colour" to "color" because core Emacs uses the latter 2024-02-03 07:34:16 +02:00
Protesilaos Stavrou 9c95ece906
Merge branch 'main' of github.com:protesilaos/modus-themes 2024-01-17 05:11:20 +02:00
Protesilaos Stavrou f4237bdb02
Update development links 2024-01-17 04:54:30 +02:00
Protesilaos Stavrou 105ee4a5a6
Make sure the annotation function sets the 'completions-annotations' face
I remmeber this used to work (?) at some point, but not anymore with
my current build of Emacs. I will test again, but this seems innocuous
anyway.
2024-01-13 12:45:31 +02:00
Protesilaos Stavrou 2de70fa128
Update copyright years 2024-01-12 08:30:14 +02:00
Protesilaos Stavrou 64823c7767
Simplify imenu-list to only use four colours
This is because the only difference between the two types of faces it
provides is whether the heading has a sublevel or not.

Thanks to ltmsyvag for pointing this out in issue 95 on the GitHub
mirror of the modus-themes: <https://github.com/protesilaos/modus-themes/issues/95>.
2024-01-04 13:22:59 +02:00
Protesilaos Stavrou 5a777c30ca
Make imenu-list foregrounds follow same colours as headings
This is because fg-heading-0 is for special cases, such as the Org #+title.
2024-01-03 09:55:18 +02:00
Protesilaos Stavrou 3019731405
Cover the mct-highlight-candidate face 2023-12-25 13:29:03 +02:00
Protesilaos Stavrou 6e38792b21
Use correct name for blink-matching-paren-offscreen 2023-12-24 17:03:50 +02:00
Protesilaos Stavrou 564c4f3758
Style the 'consult-preview-insertion' face
The default style inherits from the 'region' face. This is fine in
some cases, though not when the user calls 'consult-outline' in a
buffer with hidden text (e.g. Org folded headings). There the
background is applied to the entire heading's surface area, which is
too distracting while cycling through completion candidates and
inspecting the preview.
2023-12-24 17:00:23 +02:00
Protesilaos Stavrou 39ab1ab5ea
Add support for shr-mark face 2023-12-21 10:24:07 +02:00
Protesilaos Stavrou c85ac37c7b
Acknowledge Niall Dooley for commit ae1b452 2023-12-16 11:59:11 +02:00
Niall Dooley ae1b4522f3
Rearrange some lines to ease diffing
Add missing keywords line for consistency.
2023-12-16 11:57:48 +02:00
Protesilaos Stavrou ac9fd6d6b7
Use the semantic colour mappings for search regexp groups 2023-12-14 07:53:56 +02:00
Protesilaos Stavrou a9530bfbad
Use the semantic colour mappings for current/lazy search 2023-12-14 07:53:35 +02:00
Protesilaos Stavrou a8add23364
Add modus-themes-search-replace face to ensure stylistic consistency 2023-12-14 07:52:51 +02:00
Protesilaos Stavrou 241bba6b36
Add semantic colour mappings for search 2023-12-14 07:52:11 +02:00
Protesilaos Stavrou d07b696c7b
Make 'olivetti-fringe' visible when needed
This is subject to the user option 'olivetty-style', which can be set
to the value of 'fancy' to produce a page-like effect.

Thanks to Dhavan Vaidya and Gautier Ponsinet for bringing this matter
to my
<attention:https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2a5qzpi3y.fsf%40muon.local.mail-host-address-is-not-set%3E>
.
2023-12-13 09:39:15 +02:00
Protesilaos Stavrou 41dc735308
Make keycast-key use bold if modus-themes-bold-constructs 2023-12-13 09:38:56 +02:00
Protesilaos Stavrou 1d7817c05c
Recalibrate all the "nuanced" background colours
There are a tiny bit easier to spot. This means that they should be
visible even on display where colour reproduction is not optimal.
2023-12-12 12:30:57 +02:00
Protesilaos Stavrou 6940c37554
Add semantic color mappings for active arguments/values 2023-12-09 10:37:39 +02:00
Protesilaos Stavrou f984e5587e
STOP transient.el from trying to do semantic colouring
Read the comment. We cannot give users this experience by default. I
shall review this once things change.
2023-12-09 10:35:15 +02:00
Protesilaos Stavrou f480b4db88
Remove needless intense backgrounds from whitespace-mode
We only need to bring attention to whitespace-empty. The rest are not
problematic per se (e.g. the Emacs code base is full of them).
2023-12-09 10:14:02 +02:00
Protesilaos Stavrou a1fc3b4d5d
Revise read-multiple-choice-face to use a blue/cyan hue
The previous style looked like a warning and could be mistaken for
some kind of error feedback.
2023-12-09 09:59:04 +02:00
Protesilaos Stavrou 186d808464
Recalibrate all nuanced backgrounds
They now are more consistent in terms of their overall intensity.
2023-12-09 09:35:43 +02:00
Protesilaos Stavrou 642cc5f835
Add explicit support for 'denote' package
It already inherits from basic faces that we cover, but with these
tweaks we get to optimise the view for the Modus themes in particular.
2023-12-05 06:00:33 +02:00
Protesilaos Stavrou c5e1341a48
REMOVE all make-obsolete forms
They have been in place for about a year. It is time to move on.
2023-12-05 04:25:18 +02:00
Protesilaos Stavrou b7b60365fb
Add 'prose-table-formula' semantinc colour mapping; use it in 'org-formula' 2023-11-24 10:14:21 +02:00
Protesilaos Stavrou b875e788b6
Add missing keywords from modus-operandi-tinted file 2023-11-24 10:14:07 +02:00
Protesilaos Stavrou fef9116871
Fix regression in modus-themes--property-lookup caused by b410fcc
Thanks to rhstanton and emacsomancer for reporting the bug on the
GitHub mirror:

- <https://github.com/protesilaos/modus-themes/issues/92>
- <https://github.com/protesilaos/modus-themes/issues/93>
2023-11-18 08:16:13 +02:00
Protesilaos Stavrou b410fccb04
Remove cl- functions and cl-lib dependency altogether
We can do the same work without them. No need to load cl-lib for this
case.
2023-11-17 07:00:48 +02:00
Protesilaos Stavrou bdb18b2ee2
Make 'header-line-highlight' draw a box around it
This makes the mouse hover effect easier to spot against the grey
background.
2023-11-15 15:02:35 +02:00
Protesilaos Stavrou ff70fd4136
Avoid conflation between "flagged" and "trashed" emails 2023-10-31 09:16:56 +02:00
Protesilaos Stavrou 284433625e
Use more appropriate colours for appt-notification 2023-09-26 18:24:05 +03:00
Protesilaos Stavrou daf689493e
Recompile Info manual 2023-09-22 08:31:40 +03:00
Protesilaos Stavrou 084f88bea0
Add clarifications to the "Enable and Load" section of the manual
I am doing this after realising it could be improved, thanks to the
comment/question made by John Wick on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CCABjcPOxPX5hFUM-MQ2+omqvsVb0x7ij-UPsJra6Y9sGH21%3DGaQ%40mail.gmail.com%3E>.
2023-09-22 08:30:32 +03:00
Protesilaos Stavrou 6b2e660e14
Fix markup in the CHANGELOG 2023-09-22 08:30:20 +03:00
Protesilaos Stavrou 3f5953b17b
Reword statement in the manual 2023-09-22 08:30:05 +03:00
Protesilaos Stavrou 69b67b77af
Add section in the manual with modus-themes-to-toggle 2023-09-22 08:30:05 +03:00
Protesilaos Stavrou fe08a02c4c
Update to modus-themes version 4.3.0 2023-09-19 15:53:41 +03:00
Protesilaos Stavrou 562e27b23d
Document correct name of japanese-holidays package 2023-09-19 15:40:59 +03:00
Protesilaos Stavrou 457e8cfe94
Add support for nerd-icons-completion 2023-09-19 10:45:48 +03:00
Protesilaos Stavrou 9c8d863f3f
Fix regression in modus-themes--heading about t value
Thanks to Lasse Lindner for bringing this matter to my attention.
This was done in issue 312 on the GitLab mirror:
<https://gitlab.com/protesilaos/modus-themes/-/issues/312>.
2023-09-18 08:14:49 +03:00
Protesilaos Stavrou 76109e4a28
Add support for new appt-notification face (Emacs 30) 2023-09-16 12:05:00 +03:00
Protesilaos Stavrou b4ae827560
Fix typo in modus-themes-preset-overrides-intense
Thanks to Nicolas Semrau for bringing this matter to my attention.  It
was done in issue 90 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/90>.
2023-09-13 18:40:12 +03:00
Protesilaos Stavrou 70bbeed80f
Add support for breadcrumb package
A new package by João Távora:
<https://elpa.gnu.org/packages/breadcrumb.html>.
2023-09-13 13:18:07 +03:00
Protesilaos Stavrou b23c84e6b4
Expand 'deftheme' with metadata
This is to support new features in Emacs where themes can specify
the set they belong to, as well as whether they are light or dark.
The built-in command is 'theme-choose-variant'.

This is in response to Emacs bug#65468:
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65468>.  Thanks to
Mauro Aranda for bringing this matter to my attention.
2023-08-25 06:37:18 +03:00
Protesilaos Stavrou ad36c88feb
Add support for corfu-candidate-overlay
Thanks to Nicolas Semrau for mentioning this package.  It was done in
issue 89 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/89>.
2023-08-21 09:55:14 +03:00
Protesilaos Stavrou 7b65e735b8
Add semantic colour mappings for terminal emulators
These are used by ansi-term, vterm, and the like.  The idea is to
empower users to differentiate background and foreground values.  By
convention, terminal emulators use the same value for both background
and foreground, although this is not optimal with high contrast themes
because what works as a foreground does not necessarily look nice as a
background.

The default values of the new mappings retain the prior state, just to
not break existing configurations.

Thanks to Tony Zorman for reporting the bug that provided the impetus
for this change:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87fs4wforf.fsf%40hyperspace%3E>.
2023-08-10 12:28:08 +03:00
Protesilaos Stavrou 69f6ad2545
Tweak string mapping of modus-themes-preset-overrides-warmer 2023-08-10 12:08:13 +03:00
Protesilaos Stavrou a42240aa71
Update Acknowledgements for commit f6f0ef6
The change is about one line and thus does not require copyright
assignment to the Free Software Foundation.
2023-08-04 12:33:55 +03:00
fluentpwn f6f0ef6680
Set org-document-info-keyword back to fixed pitch font 2023-08-04 12:33:03 +03:00
Protesilaos Stavrou 221bfffdc1
Remove "hover" overrides from "faint" preset
Those contradict the changes done in commit 4e331d2.  In short, we
want a different colour for the hover effects so that it is not
mistaken for other elements.

Thanks to Daniel Mendler[1] for bringing this matter to my attention.
This was done via a private channel and the information is shared with
permission.

[1] <https://github.com/minad>
2023-08-04 12:23:04 +03:00
Protesilaos Stavrou c00930f4ff
Revise prose-metadata and prose-table in "intense" preset overrides
The previous colours did not combine nicely with all structural
elements.  For example, Org clocktables would obscure timestamps by
being the same colour as them, while the table formula would not stand
out.  These styles did not fit into the concept of "intense" colours.
2023-08-04 11:21:41 +03:00
Protesilaos Stavrou b9fdda5e5d
Make completion candidates a table with 'theme' category
This allows the user to target the 'theme' completion category in
order to affect the relevant functions.  For example, to set
completion styles with 'completion-category-overrides' or define a
custom annotation function with the 'marginalia' package.
2023-07-18 07:12:42 +03:00
Protesilaos Stavrou 3f330da835
Simplify modus-themes-toggle 2023-07-18 07:11:43 +03:00
Protesilaos Stavrou b0f35918ef
Reformat modus-themes--toggle-theme-p 2023-07-18 07:11:31 +03:00
Protesilaos Stavrou 561497cafa
Make modus-themes--annotate-theme more robust 2023-07-18 07:11:10 +03:00
Protesilaos Stavrou b8d38c3b06
Acknowledge Stephen Berman for commit 430a812 2023-07-16 06:13:46 +03:00
Protesilaos Stavrou 430a812d41
Backport emacs.git commit 4cf33b6bd02b868ebbf112da7926d7c3c64517ce
It removed the space from the front matter because the Org export did
not produce the right results, per Emacs bug#64548.
2023-07-16 06:12:01 +03:00
Protesilaos Stavrou 4e331d27de
Revise bg-hover hue in all themes except tritanopia
The previous colour was not sufficiently distinct from bg-completion.
This would make it hard to spot the difference while, for example,
using 'vertico-mode' in tandem with 'vertico-mouse-mode'.

Same principle for the difference between the mouse hover and lazy
isearch highlights (e.g. in Dired or Occur buffers).

Changing the hue here follows the same principle that underpinned the
redesign of the grey backgrounds for version 4 of the project:
depending on hardware capabilities, colour reproduction may not be
optimal, so we need to be more considerate with the choice of colour
values.

The tritanopia themes are not affected by this, as they already use
highly distinct hues.

Thanks to Daniel Mendler[1] for bringing this matter to my attention
and for testing the proposed alternatives.  This was done via a
private channel and the information is shared with permission.

[1] <https://github.com/minad>
2023-07-07 09:52:13 +03:00
Protesilaos Stavrou 960571c1ec
Add support for erts-mode
Thanks to Kevin Fleming for informing me about this built-in mode.
This was done in issue 85 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/85>.
2023-07-04 22:10:36 +03:00
Protesilaos Stavrou 7ef62b72fc
modus-operandi-deuteranopia: tweak bg-removed-refine value 2023-06-30 16:15:41 +03:00
Protesilaos Stavrou eb59dcc178
modus-vivendi-deuteranopia: tweak bg-removed-refine value 2023-06-30 16:15:27 +03:00
Protesilaos Stavrou ea9c8ba7bb
Update docs to remove long-unsupported 'sx' package 2023-06-30 09:42:10 +03:00
Protesilaos Stavrou 114c17568c
REMOVE explicit support for css-mode
Its default faces are decent and they inherit from standard font-lock
faces that the themes already cover.
2023-06-30 09:40:48 +03:00
Protesilaos Stavrou 576f902613
Use more appropriate style for Git commit summary
The 'success' face is designed to contrast with the 'warning' face
that is used to show overlong summaries.  Furthermore, we must not
hardcode the blue colour, as it is not suitable for tritanopia.
2023-06-30 09:22:02 +03:00
Protesilaos Stavrou ce84d5261a
modus-operandi-tritanopia: refine bg-char (used by Avy) 2023-06-30 09:21:51 +03:00
Protesilaos Stavrou 70e3d983a7
modus-vivendi-tritanopia: refine bg-char (used by Avy) 2023-06-30 09:21:03 +03:00
Protesilaos Stavrou ae602dda25
Make bg-dim marginally brighter in all modus-operandi variants
After extensive testing and side-by-side comparisons, I have concluded
that the marginal increase in brightness improves the affected
interfaces.

The 'bg-dim' background is used, among others, in the header-line, the
company/corfu popup, and the Org source blocks (when the user option
'modus-themes-org-blocks' is configured appropriately).
2023-06-25 16:27:29 +03:00
Protesilaos Stavrou 5f5be291f0
Make reference in the manual to my spacious-padding package
Read about it on my website:
<https://protesilaos.com/codelog/2023-06-03-emacs-spacious-padding/>.
2023-06-25 16:15:13 +03:00
Protesilaos Stavrou 99b23d6983
Add support for japanese-holidays
Thanks to Olaf Meeuwissen for bringing this package to my attention
and showing me how traditional Japanese calendars style Saturdays.
This was done in issue 311 on the GitLab mirror:
<https://gitlab.com/protesilaos/modus-themes/-/issues/311>.
2023-06-15 07:22:14 +03:00
Protesilaos Stavrou 4ef638c53b
Rewrite docs about Org custom faces
Thanks to soaringbird for reporting the issue with the incorrect use
of a quoted list.  This was done on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CNXPVkVk--3-9%40tuta.io%3E>.
2023-06-10 05:43:25 +03:00
Protesilaos Stavrou 0f3e96982c
Revise "orange" mapping for all-the-icons and nerd-icons 2023-06-02 07:18:36 +03:00
Protesilaos Stavrou 3d3bb621a8
Add support for nerd-icons, nerd-icons-dired, nerd-icons-ibuffer 2023-06-02 07:13:55 +03:00
Protesilaos Stavrou a672fb6720
Correct some mistakes in all-the-icons faces 2023-06-02 07:12:24 +03:00
Protesilaos Stavrou 5082d4363c
Add support for blink-matching-paren-highlight-offscreen (Emacs 30) 2023-06-02 07:12:02 +03:00
Protesilaos Stavrou 1fdb0676f9
Add missing keywords to modus-vivendi-tritanopia header 2023-06-02 06:08:29 +03:00
Basil L. Contovounesios db6ea48ac9
Mark up nil as ~nil~ in manual 2023-06-02 06:07:47 +03:00
Protesilaos Stavrou b4ef90bb95
Update to version 4.2.0 2023-05-30 09:27:58 +03:00
Protesilaos Stavrou f9c83600a9
Tweak deuteranopia mail-cite-2 colour mapping
This makes nested quotes in mail/message buffers easier to spot, while
still being consistent with the requirements of those themes.
2023-05-29 08:13:24 +03:00
Protesilaos Stavrou 0557146806
Tone down the holiday mapping in some themes 2023-05-28 06:20:44 +03:00
Protesilaos Stavrou aa437e1a35
Add links to web pages for the manual and pictures 2023-05-27 20:09:53 +03:00
Protesilaos Stavrou bca906855d
Update the defgroup doc string 2023-05-27 20:04:23 +03:00
Protesilaos Stavrou e213a88f35
Make 'modus-themes-load-theme' return the THEME it acts on
The intent is to allow other functions that call this one to capture
the return value for their purposes.

Thank to Oliver Epper for the feedback in issue 78 on the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/78>.
2023-05-23 11:34:29 +03:00
Protesilaos Stavrou ae1d68d4b9
Ensure diary and holiday colours are distinct and legible 2023-05-22 09:10:57 +03:00
Protesilaos Stavrou db13063e10
Tritanopia: swap prose-code and prose-verbatim colours
This is how modus-operandi and modus-vivendi are.  There is no reason
to deviate from that paradigm.
2023-05-21 05:55:50 +03:00
Protesilaos Stavrou acd951f8cb
Add two new themes optimised for tritanopia (blue-yellow colour deficiency)
Check my website for screenshots.  I will post them on the coding
blog.  Also on this page: <https://protesilaos.com/emacs/modus-themes-pictures>.
2023-05-18 08:19:39 +03:00
Protesilaos Stavrou d4dbc32bf3
Make dired-narrow-blink inherit more appropriate face 2023-05-17 10:16:19 +03:00
Protesilaos Stavrou e0df0e29d4
Make pgtk-im-0 inherit more appropriate face 2023-05-17 10:15:57 +03:00
Protesilaos Stavrou fb2ecd7d05
Simplify powerline-evil
The previous style was hard to predict and test.
2023-05-17 10:05:28 +03:00
Protesilaos Stavrou f7255e03f3
Use more appropriate face for iedit 2023-05-17 09:44:47 +03:00
Protesilaos Stavrou 1ffcb4c72f
Use more appropriate face for evil-ex-substitute-matches 2023-05-17 09:44:38 +03:00
Protesilaos Stavrou d0a8710733
Revise rainbow-delimiters-mismatched-face (also see 51eca51) 2023-05-17 09:39:56 +03:00
Protesilaos Stavrou d1eb264a52
Do not hardcode info-menu-star to red
We want to use a semantically correct face, so that it can work with
all Modus themes, including the ones optimised for users with
red-green colour deficiency (deuteranopia).
2023-05-17 09:38:24 +03:00
Protesilaos Stavrou f7060311d8
Revise image-dired faces to draw a box around marks
This has the two-fold advantage of: (i) making the mark easier to spot
because it otherwise it hard to discern the background next to some
image colours and (ii) it allows us to use the semantically correct
faces for marks.
2023-05-17 09:35:47 +03:00
Protesilaos Stavrou 51eca51ef3
Define "prominent" faces and semantic colour mappings
These are used for Flymake/Flycheck fringe indicators, errors in
isearch, and other such highlights.
2023-05-17 09:24:57 +03:00
Protesilaos Stavrou fd01c6ee53
Use more appropriate colours for binder faces 2023-05-17 07:55:28 +03:00
Protesilaos Stavrou 530532130a
Make aw-minibuffer-leading-char-face inherit modus-themes-key-binding 2023-05-17 07:55:04 +03:00
Protesilaos Stavrou 410a09e938
Make erc-dangerous-host-face inherit from 'error' 2023-05-17 07:54:45 +03:00
Protesilaos Stavrou b39f7b4ce0
Make web-mode errors and warnings inherit the correct faces 2023-05-17 07:54:26 +03:00
Protesilaos Stavrou 965024167f
Make transient-disabled-suffix inherit a more appropriate face 2023-05-17 07:54:07 +03:00
Protesilaos Stavrou 53e0670139
Make shr-selected-link inherit a more appropriate face 2023-05-17 07:53:53 +03:00
Protesilaos Stavrou adbd8e3f83
Add semantic colour mappings for space errors
This extends commit fe02830.
2023-05-17 07:53:00 +03:00
Protesilaos Stavrou 7c418faf58
modus-operandi-deuteranopia: tweak mail-subject colour mapping 2023-05-17 07:43:02 +03:00
Protesilaos Stavrou b503206a62
Introduce semantic colour mappings for marks
These are encountered in various buffers, such as Dired and Trashed.
2023-05-17 07:38:30 +03:00
Protesilaos Stavrou fe028304d4
Make whitespace-mode much more subtle; add semantic colour mappings
The previous style involved the use of a dim grey background.  While
this is good to spot invisible characters quickly, it is bad for users
who want to run 'whitespace-mode' at all times (e.g. for Python which
is space-sensitive).

We thus remove the backgrounds by default but provide the option to
reinstate them via palette overrides (as documented at length in the
manual).  To this end, we have two new semantic colour mappings for
ordinary negative space and its invisible characters.

Thanks to Christian Tietze and Oliver Epper for their feedback in
issue 80 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/80>.
2023-05-17 07:17:45 +03:00
Protesilaos Stavrou 36aeb9d8f8
Refine the deuteranopia yellows for warnings, errors, comments
These slight adjustments make it easier to tell apart distinct
elements that may be positioned close together.
2023-05-17 07:16:04 +03:00
Protesilaos Stavrou 12b0eb0ea2
Use American English in two occasions (needed for core Emacs) 2023-05-16 19:01:12 +03:00
Protesilaos Stavrou 7b58110d84
Add support for end-of-line flymake faces (Emacs 29) 2023-05-15 22:44:44 +03:00
Protesilaos Stavrou b31b6f7999
Use modus-related symbol names in some code samples 2023-05-15 20:35:56 +03:00
Protesilaos Stavrou 7661b78509
Refine vundo faces to make saved states easier to spot
This is discussed in issue 79 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/79>.
2023-05-09 07:19:58 +03:00
Protesilaos Stavrou 34a67fe530
Remove bold face from 'vundo-saved'
It should only be there for the vundo-last-saved.  I was undoing for
testing purposes and forgot to redo before committing...

As with commit 4be8ac6, this is discussed in issue 79 on the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/79>
2023-05-08 22:13:28 +03:00
Protesilaos Stavrou f4cc61f4e9
Remove deprecated consult-preview-cursor face
This was done in commit 267b0c9 of the Consult Git repository.
Discussed here: <https://github.com/minad/consult/issues/764#issuecomment-1537491625>.
2023-05-08 22:08:57 +03:00
Protesilaos Stavrou 4be8ac678b
Add support for new vundo-saved and vundo-last-saved faces
They are part of the latest release of vundo.  Thanks to Nicolas
Semrau for bringing this matter to my attention in issue 79 on the
GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/79>.
2023-05-08 22:06:16 +03:00
Protesilaos Stavrou df7749bbed
Reword some statements about frame padding 2023-05-07 07:43:32 +03:00
Protesilaos Stavrou 7ee0bcba71
Document how to add padding to Emacs frames and windows 2023-05-06 12:34:36 +03:00
Protesilaos Stavrou b70f754ca6
Add modus-themes-collection alias of modus-themes-items 2023-05-06 11:51:16 +03:00
Protesilaos Stavrou 01b47a0446
Make Jinx use a warning instead of an error
This is because of how the package works: it automatically highlights
misspellings in the visible portion of the buffer.  There are cases
where this results in a very intense presentation, which can be
distracting.  We want to reduce the overall intensity and not draw too
much attention to those highlights.
2023-05-04 08:05:59 +03:00
Protesilaos Stavrou ae8808400c
Recalibrate deuteranopia "graph" colours
This is the same idea as with commit 66b8509, except here we need to
make extra arrangements to account for the red-green colour
deficiency.
2023-05-03 08:19:06 +03:00
Protesilaos Stavrou 66b85092c4
Recalibrate "graph" colours
These are most notably used by the 'org-habit' consistency graph,
which is displayed in the Org agenda.
2023-05-03 07:56:27 +03:00
Protesilaos Stavrou 46919766bc
Acknowledge Gautier Ponsinet for commit 55d1651
The commit in question introduces the org-agenda-calendar-daterange
face, which is part of the yet-to-be-released Org version 9.7.  The
change is below the ~15 line limit and thus does not require copyright
assignment to the Free Software Foundation.

I received the patch via a private channel.  Thanks to Gautier for
doing this!

Also see commit 9869041 that introduces the semantic colour mapping in
each theme's palette.
2023-05-02 14:47:44 +03:00
Protesilaos Stavrou 13eb392547
Use A-Z sorting for a couple Org faces 2023-05-02 14:45:01 +03:00
Gautier Ponsinet 55d1651450
Add the face org-agenda-calendar-daterange 2023-05-02 14:42:43 +03:00
Protesilaos Stavrou 98690410be
Add semantic colour mapping for "date range" 2023-05-02 14:42:29 +03:00
Protesilaos Stavrou 716a275255
Add support for Emacs 29 'proced' faces 2023-04-30 09:46:37 +03:00
Protesilaos Stavrou aa995a97f7
Note that rst-mode is now supported (per ee32b1a)
Thanks to David Edmondson for the patch:
<https://lists.sr.ht/~protesilaos/modus-themes/patches/40625>.

The change is within the ~15 line limit and thus does not require
copyright assignment to the Free Software Foundation.  Furthermore,
the commit is signed-off by David Edmondson <dme@dme.org>.
2023-04-25 07:43:10 +03:00
David Edmondson ee32b1a0d4
Add rst-mode heading faces
Use the org-mode heading faces for rst-mode headings.

Signed-off-by: David Edmondson <dme@dme.org>
2023-04-25 07:40:57 +03:00
Protesilaos Stavrou 2431375725
Add support for new flymake "echo" faces 2023-04-23 15:29:40 +03:00
Protesilaos Stavrou c3ed8a6e2f
Update documentation that moody is not supported
We stopped supporting it since version 4 of the themes that removed
the relevant user option.  The idea is that the mode line is better
handled by the user without interference from the theme.

Thanks to Nicolas De Jaeghere for reminding me to remove moody from
the manual:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cypi9jzyclqxy.fsf%40gmail.com%3E#%3C87jzybdgg1.fsf@dejaeghe.re%3E>.
2023-04-23 13:42:20 +03:00
Protesilaos Stavrou b3f39e8d10
Add warmer and cooler preset overrides 2023-04-21 13:24:17 +03:00
Protesilaos Stavrou cfc8c4eef0
Recompile Info manual 2023-04-13 15:03:41 +03:00
Christian Tietze ab1394e0d2
Change -intense suffix to -fringe in docs
In accordance with the renaming introduced in 1ee4c9576f
2023-04-13 15:02:49 +03:00
Protesilaos Stavrou 45ef111a58
Make minor tweak to the manual 2023-04-12 08:14:08 +03:00
Protesilaos Stavrou 518a99cd00
Acknowledge Steve Downey for commit 8d4c307
This was done in pull request 74 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/pull/74>.
2023-04-09 06:52:20 +03:00
Protesilaos Stavrou be5fa4b2a3
Put some names in the right order 2023-04-09 06:51:47 +03:00
Protesilaos Stavrou 5d88ea850e
Merge pull request #74 from steve-downey/diff-header
Change smerge-markers to inherit from diff-header instead of heading
2023-04-09 06:49:57 +03:00
Protesilaos Stavrou fd81d2c2ea
Document overrides+configs to get my tweaks 2023-04-08 18:57:50 +03:00
Steve Downey 8d4c30796e Change smerge-markers to inherit from diff-header instead of heading
The face diff-heading doesn't pre-exist, and there is no longer a custom modus
theme diff-heading. There is, however, a diff-header used in the "diff" faces
that is probably intended here.
2023-04-07 19:27:42 -04:00
Protesilaos Stavrou ede2ab0e0f
Fix typo in 'widget-buton'
Thanks to Steve Downey for pointint it out in issue 73 on the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/73>.
2023-04-05 07:56:43 +03:00
Protesilaos Stavrou 081093922d
Use a subtle 3D effect for clickable buttons
I realised the flat style creates ambiguity between the button and the
text fields.  This happens, for example, with M-x customize-variable
for 'org-capture-templates' which has lots of button and text field
combinations.  The added sense of depth helps with the usability of
these buttons because it makes them unambiguous.
2023-03-31 15:10:02 +03:00
Protesilaos Stavrou 9df031172d
Use a more subtle background for {menu,scroll,tool}-bar-mode
[ This is the same as 3f4290e but with the correct summary line. ]

They do not need to stand out so much because the toolkit already
takes care of that.  Also, we do not want to dillute the semantic
value of either 'bg-tab-bar' or 'fringe' colour mappings.
2023-03-31 11:28:09 +03:00
Protesilaos Stavrou 193f4afa35
Revert "Use a more subtle background for {menu,scroll,tool-bar}-mode"
This reverts commit 3f4290e78a.
2023-03-31 11:27:17 +03:00
Protesilaos Stavrou 3f4290e78a
Use a more subtle background for {menu,scroll,tool-bar}-mode
They do not need to stand out so much because the toolkit already
takes care of that.  Also, we do not want to dillute the semantic
value of either 'bg-tab-bar' or 'fringe' colour mappings.
2023-03-31 11:19:22 +03:00
Protesilaos Stavrou a380f86397
Acknowledge Tomasz Hołubowicz for commit 128acb1
The contribution was made in pull request 71 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/pull/71>.

The change is small and is below the ~15 line limit.  As such, it does
not require copyright assignment to the Free Software Foundation.
2023-03-28 07:07:05 +03:00
Protesilaos Stavrou 66b327f6a4
Merge branch 'main' of github.com:protesilaos/modus-themes 2023-03-28 07:06:15 +03:00
Protesilaos Stavrou d5996542f2
Merge pull request #71 from alternateved/add-jinx-support
Add support for jinx
2023-03-28 07:04:26 +03:00
Tomasz Hołubowicz 128acb1664 Add support for jinx
A new package by Daniel Mendler : <https://github.com/minad/jinx>.
2023-03-27 18:12:59 +02:00
Protesilaos Stavrou f90def4d90
Make which-key prefix descriptions less intense 2023-03-27 15:53:21 +03:00
Protesilaos Stavrou 038295f72c
Make all theme descriptions more informative 2023-03-25 17:37:33 +02:00
Protesilaos Stavrou 7465ffcfbe
Add annotation function to theme selection prompts 2023-03-25 17:33:03 +02:00
Protesilaos Stavrou 2c34f81b83
Clarify that disk-usage support is part of development-version 2023-03-20 06:49:48 +02:00
Protesilaos Stavrou 90167ee9f2
Acknowledge Nacho Barrientos for commit 70adc47
The change is below the ~15 line limit and thus does not require
copyright assignment to the Free Software Foundation.

This patch was sent to the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/patches/39822>.
2023-03-20 06:48:26 +02:00
Nacho Barrientos 70adc47676
Add support for disk-usage
This patch adds support for most of the faces provided by
disk-usage.el [0], aligning them to dired's look when possible.

[0] https://elpa.gnu.org/packages/disk-usage.html
2023-03-20 06:47:47 +02:00
Protesilaos Stavrou df3e2a80de
Document yet another way to override Org agenda styles 2023-03-13 10:31:50 +02:00
Protesilaos Stavrou add4cc0c01
Make eglot-diagnostic-tag-unnecessary-face look like a warning
By default it inherits the 'shadow' face, which makes it
counter-intuitive as it dims the text instead of bringing it to our
attention.  The intent of 'eglot-diagnostic-tag-unnecessary-face' is to
highlight unused symbols, so this is better presented as a warning.

Thanks to Augusto Stoffel for bringing this matter to my attention.
This was done via a private channel and the information is shared
with permission.
2023-03-13 06:39:54 +02:00
Protesilaos Stavrou d4e70e069b
Add support for jit-spell
A new package by Augusto Stoffel: <https://github.com/astoff/jit-spell>.
2023-03-08 07:47:43 +02:00
Protesilaos Stavrou 7f951714ae
Fix typo in the manual 2023-03-08 07:47:30 +02:00
Protesilaos Stavrou 7f2952c499
Make consult-preview-cursor use the correct foreground
By default, it inherits from the 'cursor' face.  That is a special
face that only reads a ':background' attribute.  As such, the
'consult-preview-cursor' did not get the ':foreground' it needed.
2023-03-08 07:33:04 +02:00
Illia Ostapyshyn d8e92a50f0
Provide bright colors for vterm 2023-02-28 22:11:46 +02:00
Protesilaos Stavrou 2942c77e30
Bump version to trigger GNU ELPA package rebuild
I am doing this for commit c340c5b, as it allows the build machinery
to build the manual using an older version of Org.
2023-02-23 09:17:28 +02:00
Protesilaos Stavrou c340c5b019
Refile some headings in the manual for better organisation 2023-02-23 09:17:01 +02:00
Protesilaos Stavrou 829d06d9d3
Update to modus-themes version 4.1.0 2023-02-22 19:56:22 +02:00
Protesilaos Stavrou d9d8463713
Add missing faces from commit 18e3694
Thanks to Bernd Rellermeyer for pointing out this implicit dependency
in issue 68 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/68>.
2023-02-22 13:34:57 +02:00
Protesilaos Stavrou 18e36949cf
Make sure Ediff faces do not depend on diff-mode
Thanks to Bernd Rellermeyer for pointing out this implicit dependency
in issue 68 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/68>.
2023-02-22 11:38:04 +02:00
Protesilaos Stavrou f4282839d8
Make 'tooltip' foreground explicit 2023-02-20 20:59:06 +02:00
Protesilaos Stavrou 39ac76907c
Make 'modus-themes--current-theme' more robust
The idea is to try to enable the Modus themes if they are "known".
That way we do not encounter errors when we have loaded one of them
but, say, try to fetch a value from another (such as with
'modus-themes-list-colors' and 'modus-themes-get-color-value').
2023-02-17 13:50:56 +02:00
Protesilaos Stavrou 9aed34e909
Use correct semantic markup for texi conversion
This is because the modus-themes.org is part of core Emacs and needs
to conform with the Texinfo conventions.
2023-02-06 13:32:47 +02:00
Protesilaos Stavrou e1d1075635
Recompile Info manual 2023-02-05 17:40:42 +02:00
Protesilaos Stavrou 962cc2c274
Simplify sample config of the themes with 'use-package'
Thanks to Zoltan Kiraly for informing me about the fact that the
':bind' keyword delays the load of the package until the given command
is invoked: <https://github.com/protesilaos/modus-themes/pull/67>.

Streamlining the configuration makes it easier for me to propose one
set of basic configurations without the need to know what a
configuration macro is doing behind the scenes.
2023-02-05 17:37:20 +02:00
Protesilaos Stavrou a68e4236bd
Make 'dashboard' icons retain their underlying colour
The default value of the 'dashboard-items-face' made all icons use the
same colour, detracting from their distinctiveness.  Thanks to Thanos
Apollo for bringing this matter to my attention.  It was done via a
private channel and the information is shared with permission.
2023-02-05 17:36:30 +02:00
Protesilaos Stavrou 28fa9ad0b7
Tweak bg-hl-line for modus-operandi{,-deuteranopia} 2023-02-05 09:23:42 +02:00
Protesilaos Stavrou ca4d92aa0d
Document red+blue deuteranopia diffs
Thanks to Andrew Tropin for requesting this feature.  We used to
provide this style in earlier versions of the themes.  Andrew's
request was done via a private channel and the information is shared
with permission.
2023-02-04 14:53:22 +02:00
Protesilaos Stavrou 87289b0918
Document foreground-only diffs via overrides 2023-02-04 14:44:38 +02:00
Protesilaos Stavrou bbbbe5cc27
Fix erroneous inheritance in ediff face 2023-02-04 09:21:40 +02:00
Protesilaos Stavrou f0ddbfd9aa
Make 'consult-file' like the same as in the Grep buffers
This face is used when the user option 'vertico-group-format' is set
to nil.  With this change, we keep things consistent in the common
workflow of using 'consult-grep' and exporting to a grep buffer via
'embark'.

Thanks to Daniel Mendler for bringing this matter to my attention:
<https://lists.sr.ht/~protesilaos/ef-themes/%3Cb03413a6-cb77-615d-145d-db4eb710bfca%40daniel-mendler.de%3E#%3C37f01118-1102-d0a9-ce8d-5101f3d44679@daniel-mendler.de%3E>.
2023-02-04 09:16:26 +02:00
Protesilaos Stavrou 4a25600cb0
Make diff-mode also use foreground values
The 'diff-font-lock-prettify' user option is set to retain the
underlying highlights.  While this is "prettified", it is not good for
legibility.

The added foregrounds apply to the text of the diffs that would
otherwise use the 'default' face.  This way we make the added/removed
easier to spot.  Also, adding those foregrounds allows us to use
palette overrides to implement a "foregrounds only" style for diffs (I
will update the manual accordingly).
2023-02-04 09:10:14 +02:00
Protesilaos Stavrou 21099418eb
Add bg-diff-context palette entry; implement it 2023-02-04 09:09:31 +02:00
Protesilaos Stavrou 1ee4c9576f
RENAME bg-\(added\|changed\|removed\)-intense to bg-\1-fringe
This specifies what the colours are used for.  Otherwise they are
confusing.

This change breaks any colour overrides for those names.  They need to
be renamed to use "-fringe" instead of "-intense".
2023-02-04 08:31:48 +02:00
Protesilaos Stavrou 235435c68f
Refine diff colours for fringes and deuteranopia added
Thanks to Andrew Troppin for showing me some usability issues with the
previous style.  This was done via a private channel and the
information is shared with permission.
2023-02-04 08:27:02 +02:00
Protesilaos Stavrou 2404de30c2
Make all Consult line numbers look the same
We use the 'shadow' face in all interfaces where line numbers are
contextual information (Occur, Grep,...).  With Consult, this was not
the case for commands like 'consult-line'.

This commit also addresses the issue discussed in commit 7e29eba in
the 'ef-themes' repository (thanks again to Daniel Mendler for
informing me about this):

    commit 7e29eba3eeb4f152a5512aeba4a98a192cd8b444
    Author: Protesilaos Stavrou <info@protesilaos.com>
    Date:   Fri Feb 3 08:58:17 2023 +0200

        Remove background from consult lines

        The default value of 'consult-line-number-prefix' inherits from the
        'line-number' face.  The Ef themes make the latter inherit from
        'default' in order to have the lines increase/decrease in font size
        when the user calls the 'text-scale-adjust' command.  This arrangement
        meant that Consult was implicitly getting the main background which
        caused commands like 'consult-line' to not be highlighted from their
        absolute beginning but only after the line number.

        Thanks to Daniel Mendler for bringing this matter to my attention:
        <https://lists.sr.ht/~protesilaos/ef-themes/%3Cb03413a6-cb77-615d-145d-db4eb710bfca%40daniel-mendler.de%3E>.

     ef-themes.el | 1 +
     1 file changed, 1 insertion(+)
2023-02-03 09:05:15 +02:00
Protesilaos Stavrou 7b0460dc4a
Update docs about modus-themes-list-colors 2023-01-31 15:19:04 +02:00
Protesilaos Stavrou 469454d8d8
Fix regression in modus-themes--list-colors-render
The previous code was always defaulting to the current theme.
2023-01-31 12:05:49 +02:00
Protesilaos Stavrou 1121193dc5
Make modus-themes-get-color-value accept a THEME argument 2023-01-31 12:05:30 +02:00
Protesilaos Stavrou 4346ab5ed5
Make internal tweak to modus-themes-theme macro 2023-01-31 11:42:08 +02:00
Protesilaos Stavrou 9a89ce136b
Add link to palette overrides in modus-themes-get-color-value node 2023-01-31 08:33:59 +02:00
Protesilaos Stavrou c26d5a641c
Clarify docs about modus-themes-get-color-value 2023-01-28 07:05:57 +02:00
Protesilaos Stavrou 4a2449a2e8
Improve modus-themes--list-colors-render to handle all cases
We still want to present the 'unspecified' mappings and also handle
recursive mappings.

I also tweaked the padding to keep things nicely aligned (albeit only
with a monospaced font).
2023-01-27 08:57:08 +02:00
Protesilaos Stavrou 0cf6af24ca
Some a couple of functions further up the file 2023-01-27 08:39:17 +02:00
Protesilaos Stavrou 0ca79257ef
Add function modus-themes-get-color-value and document it
I already had the functionality internally, but it is good to expose
it to users.  I am inspired to do so after checking Sacha Chua's blog
post "Making highlight-sexp follow modus-themes-toggle".[1] Sacha is
using a private function from the themes, which will be problematic if
I ever move things around.

[1] <https://sachachua.com/blog/2023/01/making-highlight-sexp-follow-modus-themes-toggle/>
2023-01-27 08:30:57 +02:00
Protesilaos Stavrou 2dacdf9013
Acknowledge TitusMu for commit 211d711
This was done in issue 64 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/64>.
2023-01-23 20:08:56 +02:00
Protesilaos Stavrou 211d7114fa
Make powerline-active1 inherit from 'mode-line'
We do this because 'mode-line-active' only exists in newer versions of
Emacs.

Thanks to TitusMu for identifying this and reporting it in issue 64 on
the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/64>.
2023-01-23 20:06:24 +02:00
Protesilaos Stavrou 4dca14bb16
Tweak "blue-warmer" for the light themes
It needs to be a tiny bit darker.
2023-01-23 06:59:53 +02:00
Protesilaos Stavrou 9e1b5dfce3
Document how to make tabs more or less colorful 2023-01-20 11:26:37 +02:00
Protesilaos Stavrou 7d643b30f4
Simplify keycast faces 2023-01-17 07:31:05 +02:00
Protesilaos Stavrou 9721c0576f
Add the 't' to the :value of 'modus-themes-completions'
This is to make the Custom UI properly expose the fallback option.
2023-01-15 07:15:44 +02:00
Protesilaos Stavrou b061a7b038
Document how not to extend region background 2023-01-15 05:45:51 +02:00
Protesilaos Stavrou af72dbc902
Fix hue of org-habit "ready" faces
It should be green and I made a mistake here.

The deuteranopia themes do change the underlying hues though, as green
is not usable for them.
2023-01-12 13:08:38 +02:00
Protesilaos Stavrou 5ce2bd34b1
Make company use the same background as corfu 2023-01-12 11:43:42 +02:00
Protesilaos Stavrou 54bf022080
Make eglot-mode-line conditionally bold
This means that the indicator will be bold only if the user option
'modus-themes-bold-constructs' is non-nil.
2023-01-12 10:15:26 +02:00
Protesilaos Stavrou 6afb2448d2
Enforce foreground for 'highlight', 'secondary-selection'
This should have always been there to avoid awkward colour
combinations.  I realised it was missing after corresponding with
Edgar Vincent on a relevant topic:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C878ri95h1q.fsf%40posteo.net%3E#%3C87ilhc7usc.fsf@posteo.net%3E>.
2023-01-12 07:03:56 +02:00
Protesilaos Stavrou 3cbd104551
Move the 'highlight' face further up the file
Just so it is grouped with the basic faces.
2023-01-12 07:02:50 +02:00
Protesilaos Stavrou eddf79d2a3
Make Org agenda deadline and today schedule optionally bold
They will use a bold weight only if the user option
'modus-themes-bold-constructs' is set to a non-nil value.

Thanks to Marko Kocic for reporting an issue that brought this matter
to my attention:

- <https://lists.sr.ht/~protesilaos/modus-themes/%3C35588839.256749.1673272214728%40office.mailbox.org%3E>
- <https://lists.sr.ht/~protesilaos/modus-themes/%3C874jszvk5g.fsf%40protesilaos.com%3E>
- <https://lists.sr.ht/~protesilaos/modus-themes/%3C87ilhfu101.fsf%40protesilaos.com%3E>
2023-01-10 06:15:39 +02:00
Protesilaos Stavrou b4fabcbb51
Use conditional italics for three faces
They will have a slant only if the user option
'modus-themes-italic-constructs' is set to a non-nil value.
2023-01-10 06:11:46 +02:00
Protesilaos Stavrou 4e9c88bdb5
Acknowledge Sergey Nichiporchik for commit 1fd126d
Sergey's contribution is within the ~15 line limit and thus does not
require copyright assignment to the Free Software Foundation.

This was done in merge request 59 on the GitLab mirror:
<https://gitlab.com/protesilaos/modus-themes/-/merge_requests/59>.

The prepatory discussion took place in issue 310 on the same mirror:
<https://gitlab.com/protesilaos/modus-themes/-/issues/310>.
2023-01-10 05:20:56 +02:00
Protesilaos Stavrou f45ad83b42 Merge branch 'fix/documentation-sample-configuration' into 'main'
Update sample configuration with use-package

See merge request protesilaos/modus-themes!59
2023-01-10 03:19:11 +00:00
Sergey Nichiporchik 1fd126d0bc Update sample configuration with use-package 2023-01-10 03:19:11 +00:00
Protesilaos Stavrou 0dc7854103
Rephrase "*Completions* buffer" in the docs
Thanks to Rudolf Adamkovič for the suggestion:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2tu1211qz.fsf%40me.com%3E#%3Cm2eds43htz.fsf@me.com%3E>.
2023-01-09 02:43:56 +02:00
Protesilaos Stavrou 9225ac0d0a
Make modus-themes-list-colors revert function read C-u as well
This means that it should properly regenerate a buffer that was
produced by C-u M-x modus-themes-list-colors
2023-01-08 14:55:11 +02:00
Protesilaos Stavrou b3302411a1
Add comment to clarify point in sample code 2023-01-08 04:52:21 +02:00
Protesilaos Stavrou 3cb41ff0d3
Clarify docs of 'modus-themes-completions'
There was (i) an outdated reference to the 'background' value, which
is no longer supported, and (ii) no reference to the standard
Completions' buffer.

Thanks to Rudolf Adamkovič for informing me about this:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2tu1211qz.fsf%40me.com%3E>.
2023-01-08 04:48:30 +02:00
Protesilaos Stavrou 40138996b2
Make Org block delimiter text more intense when "gray background"
This changes the colour of the #+begin_src line (and corresponding end
line) to be more intense when the user option 'modus-themes-org-blocks'
is set to the value 'gray-background'.

That style makes the inside of the block have a gray background and
the begin/end lines to have a more intense gray.  So those lines
cannot retain gray text that is there without the background.
2023-01-07 18:53:18 +02:00
Protesilaos Stavrou 0848f7c311
Apply "nuanced" backgrounds to tinted Org blocks
This fixes a mistake of mine where I amplified the background
colouration of Org blocks.  This concerns the case where the user
option 'modus-themes-org-blocks' has a 'tinted-background' value.

Thanks to Mark Bestley for informing me about this in issue 60 on the
GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/60#issuecomment-1374530488>.
2023-01-07 18:38:37 +02:00
Protesilaos Stavrou ff68262a60
Define missing "nuanced" Modus faces 2023-01-07 18:36:51 +02:00
Protesilaos Stavrou 8fc686012d
Use 'bg-hl-line' mapping, not 'highlight' face in two faces
This was a mistake of mine.  The 'highlight' is too intense for those
cases.
2023-01-07 17:15:33 +02:00
Protesilaos Stavrou 46419d939b
Balance parens in commit 542ee4a 2023-01-07 17:04:10 +02:00
Protesilaos Stavrou 542ee4ab5c
Make mu4e-header-highlight-face to use intended style
I made a mistake before: I did not want the 'highlight' to be used in
this case as it is too intense.  Sorry!
2023-01-07 16:39:36 +02:00
Protesilaos Stavrou 4455e93bc5
Define proper :type for overrides but keep it off (see comment) 2023-01-07 07:27:05 +02:00
Protesilaos Stavrou 63e9e799f4
Refine modus-themes--disable-themes (see 2b046ec) 2023-01-05 05:09:16 +02:00
Protesilaos Stavrou 76c9a218b8
Update sample configuration 2023-01-05 05:07:00 +02:00
Protesilaos Stavrou 2b046eceb4
Add user option modus-themes-disable-other-themes
In the past, we used to disable all other themes while loading a Modus
theme.  I revised this for version 4 because I learnt that some users
use "themes" as bundles of arbitrary configurations.  This was
supported by the fact that the Modus themes are built into Emacs so we
need to accommodate every workflow that Emacs supports.

With this addition, I am reverting to the old way of doing things:
loading a Modus theme should disable all others.  Users who need to
run multiple themes can set this option to a nil value.

Thanks to Tony Zorman for the feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E#%3C87bkne84d2.fsf@hyperspace%3E>.
2023-01-05 04:59:50 +02:00
Protesilaos Stavrou 5a624267a5
Fix example colour in the documentation
Thanks to Russell Sim for spotting the error of me using 'bg-blue'
instead of 'bg-blue-intense':
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cyger0wa9gsn.fsf%40simopolis.xyz%3E>.
2023-01-05 04:38:18 +02:00
Protesilaos Stavrou 80f25ad161
Move outline heading a bit further down 2023-01-04 14:02:09 +02:00
Protesilaos Stavrou d18f0b462d
Recompile Info manual 2023-01-04 12:28:45 +02:00
Protesilaos Stavrou c634edec0a
Update documentation for borderless mode line overrides 2023-01-04 12:28:28 +02:00
Protesilaos Stavrou 188f68ba43
Make it possible to have recursive palette mapping
This means that a semantic colour mapping in the palette can have as
its value another mapping.  The function will find the underlying
colour.

This solves a problem reported by Imran Khan on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cb7ca4702162fd575593f8ded28d9a888.contact%40imrankhan.live%3E>.

I was aware of it from before the release of version 4.0.0 but I was
hesitant to implement recursion prior to getting some feedback on the
new palette overriding feature.

Also thanks to Christian Tietze for participating in that discussion
on the mailing list.
2023-01-04 12:28:06 +02:00
Protesilaos Stavrou 953f70236d
Refine the nuanced backgrounds of the tinted themes 2023-01-03 18:05:57 +02:00
Protesilaos Stavrou 031d2d943f
Make 'compilation-warning' also inherit 'modus-themes-bold'
This was always the intention for all three of
'compilation-{error,info,warning}'.  They will use a bold weight when
the user option 'modus-themes-bold-constructs' is non-nil.

Thanks to Manuel Giraud for informing me about the inconsistency in
'compilation-warning'.  It was done via a private channel and the
information is shared with permission.
2023-01-03 12:43:09 +02:00
Protesilaos Stavrou 59a8361c95
Clarify modus-themes-with-colors setup for custom faces
Thanks to bangedorrunt for the feedback in issue 59 on the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/59>.
2023-01-03 03:33:13 +02:00
Protesilaos Stavrou 399d3eaa74
Refine some aspects of sample code 2023-01-03 02:25:59 +02:00
Protesilaos Stavrou f5b5f05d1c
Be explicit about 'require-theme' for built-in themes
Thanks to Koen van Greevenbroek for reporting the problem that helped
me identify this issue:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C31038fd76868fa3d07c9a429dfed8fd6ac374bb8.camel%40posteo.net%3E>.
2023-01-03 02:19:04 +02:00
Protesilaos Stavrou 4777d7fc7b
Recompile Info manual 2023-01-03 02:07:27 +02:00
Protesilaos Stavrou d7970e71eb
Simplify markup in a sample comment 2023-01-03 02:07:07 +02:00
Utkarsh Singh c82b58f4b3
Use modus-themes-with-colors for commit 23b1fc9 2023-01-03 02:04:19 +02:00
Utkarsh Singh 23b1fc95dd
Fix document on how to change pdf-tools backdrop 2023-01-02 11:13:11 +02:00
Protesilaos Stavrou 6ae40baacc
Update copyright years 2023-01-01 14:01:57 +02:00
Protesilaos Stavrou 476445b8f2
Update to modus-themes version 4 2023-01-01 13:40:05 +02:00
Protesilaos Stavrou 70c6ae4386
Document how to override prose colours 2023-01-01 07:56:00 +02:00
Protesilaos Stavrou a43682effd
Recompile Info manual 2023-01-01 07:36:17 +02:00
Protesilaos Stavrou 6652156eb4
Document how to override line numbers 2023-01-01 07:35:57 +02:00
Protesilaos Stavrou f87a9e682b
Tweak line number specification in "faint" preset 2023-01-01 07:31:19 +02:00
Protesilaos Stavrou e0db9b3aea
One a node further down in the manual 2023-01-01 07:24:06 +02:00
Protesilaos Stavrou 40351943d0
Document how to affect linter underlines via overrides 2023-01-01 07:18:51 +02:00
Protesilaos Stavrou 207cd6e4e0
Document how to override mouse hover effect 2023-01-01 07:06:01 +02:00
Protesilaos Stavrou 4b3095ab19
Tweak doc string of modus-themes-toggle 2023-01-01 07:05:48 +02:00
Protesilaos Stavrou 5932c761b1
Remove some obsolete faces from doc strings
Thanks to soaringbird for informing me about these:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CNKd3jM_--3-9%40tuta.io%3E>.
2023-01-01 05:33:15 +02:00
Protesilaos Stavrou cc82fd0e6f
Remove some obsolete faces from use
Thanks to soaringbird for informing me about these:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CNKd3jM_--3-9%40tuta.io%3E>.
2023-01-01 05:29:24 +02:00
Protesilaos Stavrou 57cb3347ad
Make sure all outline headers are the correct length 2022-12-31 15:04:53 +02:00
Protesilaos Stavrou c7d03a3a38
Document how to make padded mode line
Thanks to Christian Tietze for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1fscxrr0s.fsf%40christiantietze.de%3E>.
2022-12-30 19:59:11 +02:00
Protesilaos Stavrou 3a27ce30fe
Rename heading of section about modus-themes-with-colors 2022-12-30 19:49:00 +02:00
Protesilaos Stavrou 687a7941e3
Document how to change region with overrides (also see 32dc7f9)
The 'modus-themes-region' option is deprecated, so we know follow this
approach with the overrides.
2022-12-30 19:05:20 +02:00
Protesilaos Stavrou 32dc7f9bc1
Deprecate modus-themes-region; use overrides
This is the last user option that we need to deprecate for the release
of version 4.  Now all colour-related changes happen through palette
overrides.

Thanks to Christian Tietze for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1ilhtrs09.fsf%40christiantietze.de%3E>.
2022-12-30 18:56:51 +02:00
Protesilaos Stavrou 575644f9a3
Add uncommon accent backgrounds 2022-12-30 18:56:51 +02:00
Protesilaos Stavrou 5c96ca3854
Make org-agenda-done inherit from org-done 2022-12-30 17:45:35 +02:00
Protesilaos Stavrou 1bf2713e1d
Add documentation on mail citation+header overrides
I don't know about you, but I just found my new favourite:

    (setq modus-themes-common-palette-overrides
          '((mail-cite-0 fg-dim)
            (mail-cite-1 fg-alt)
            (mail-cite-2 fg-dim)
            (mail-cite-3 fg-alt)
            (mail-part yellow-cooler)
            (mail-recipient green-cooler)
            (mail-subject red-cooler)
            (mail-other green)))
2022-12-30 17:42:32 +02:00
Protesilaos Stavrou ae6cc7ed14
Make the return value of the palette include common overrides
Thanks to Christian Tietze for reporting a bug that helped me trace
this limitation: <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1cz81rq9m.fsf%40christiantietze.de%3E>.
2022-12-30 15:26:16 +02:00
Protesilaos Stavrou 9c9347683b
Document how to recreate old "alt-syntax" style
Thanks to Charlotte Van Petegem for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C877cy917jw.fsf%40vanpetegem.me%3E>.
2022-12-30 13:36:15 +02:00
Protesilaos Stavrou 0618486c41
Acknowledge soaringbird for commits 112e40b, 257db66, d6afeff
They brought those inconsistencies to my attention:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CNKXY2k1--3-9%40tuta.io%3E>.
2022-12-30 12:40:08 +02:00
Protesilaos Stavrou d6afeffdf2
Remove deprecated face from visual-regexp 2022-12-30 12:35:50 +02:00
Protesilaos Stavrou 257db66b64
Remove deprecated face from avy 2022-12-30 12:34:55 +02:00
Protesilaos Stavrou 112e40bd55
Make verbatim/code/macro faces use conditional fixed-pitch
They conform with 'modus-themes-mixed-fonts'
2022-12-30 12:32:36 +02:00
Protesilaos Stavrou 8f670279af
Add samples for yellow comments, green strings (or inverse!) 2022-12-30 11:06:18 +02:00
Protesilaos Stavrou 9b025c00f8
Add code samples to make fringe invisible or colourful 2022-12-30 10:56:29 +02:00
Protesilaos Stavrou 4f1456c955
Add all links to theme sources 2022-12-30 07:23:54 +02:00
Protesilaos Stavrou 5ddf26d58d
Add example to use preset overrides as a basis 2022-12-30 07:04:50 +02:00
Protesilaos Stavrou 0573238eaf
Fix symbol is modus-themes-preset-overrides-intense 2022-12-30 06:59:55 +02:00
Protesilaos Stavrou 76efc86315
Simplify example for borderless mode lines 2022-12-30 06:55:21 +02:00
Protesilaos Stavrou 38037dba96
Make modus-themes-with-colors read 'unspecified' value 2022-12-30 06:17:55 +02:00
Protesilaos Stavrou 492d31db41
Add documentation for paren match overrides 2022-12-30 06:03:30 +02:00
Protesilaos Stavrou 52a848e42c
Add missing entry for paren match underline
Thanks to Tony Zorman for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E>.
2022-12-30 05:26:53 +02:00
Protesilaos Stavrou 93401ca2c8
Clarify that mappings cannot be recursive
Thanks to tumashu for reminding me of this in issue 56 on the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/56>.
2022-12-29 14:47:42 +02:00
Protesilaos Stavrou 72eb32f4fb
Implement rainbow mappings
These are now used in the rainbow-delimiters package, but there may be
more applications.

Thanks to Aleksei Pirogov for bringing this matter to my attention in
issue 54 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/54>.
2022-12-29 10:38:44 +02:00
Protesilaos Stavrou 0e3262d068
Use A-Z in acknowledgements for two names 2022-12-29 10:23:52 +02:00
Protesilaos Stavrou 9a7d47b9be
Use correct names for coloured backgrounds
This is a regression caused by commit 7c74495.

Thanks to Aleksei Pirogov for reporting the problem in issue 55 on the
GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/55>.
2022-12-29 10:23:06 +02:00
Protesilaos Stavrou 3bcd88cb79
Recompile Info manual 2022-12-29 00:39:04 +02:00
Protesilaos Stavrou 6ee797ba04
Fix typo in the manual 2022-12-29 00:38:56 +02:00
Protesilaos Stavrou 601a049873
Fix typo in geiser that was causing error
Thanks to a1ks for reporting the bug in issue 53 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/53>.
2022-12-29 00:23:13 +02:00
Protesilaos Stavrou adf85ae831
Fill a couple of paragraphs 2022-12-28 19:38:35 +02:00
Protesilaos Stavrou 93c2ae3da4
Rename versions of current dev target 2022-12-28 19:23:39 +02:00
Protesilaos Stavrou 61db7d4bca
Merge branch 'version-4' (READ COMMIT MESSAGE)
I will create a tag in a few days and produce detailed release notes.
In the meantime, read this:
<https://protesilaos.com/codelog/2022-12-28-note-modus-themes-4-melpa/>.
2022-12-28 17:33:34 +02:00
Protesilaos Stavrou a70065cf82
Recompile Info manual 2022-12-28 17:33:10 +02:00
Protesilaos Stavrou f36fd67831
Update sample configuration to match latest changes 2022-12-28 16:12:37 +02:00
Protesilaos Stavrou 3dc825382f
Add cross links for completion color overrides/option 2022-12-28 15:47:47 +02:00
Protesilaos Stavrou 2fa9a272fe
Simplify modus-themes-prompts; add overrides for its colors 2022-12-28 15:47:18 +02:00
Protesilaos Stavrou 1b589e0094
Fix bug in modus-themes-list-colors when mapping is unspecified 2022-12-28 15:25:58 +02:00
Protesilaos Stavrou 871b8ae533
Add code samples for more/less intense completion matches 2022-12-28 15:09:17 +02:00
Protesilaos Stavrou f5b5f1c26e
Add missing comment from overrides' code block 2022-12-28 15:08:34 +02:00
Protesilaos Stavrou 380e60cf49
Simplify modus-themes-completions; use overrides 2022-12-28 14:59:55 +02:00
Protesilaos Stavrou eb38b92495
Decouple accent mappings from completion 2022-12-28 14:58:12 +02:00
Protesilaos Stavrou 7c74495bf7
Give appropriate name to intense backgrounds 2022-12-28 14:56:08 +02:00
Protesilaos Stavrou 81cf29f227
Fix typo 2022-12-28 14:35:52 +02:00
Protesilaos Stavrou 8bb44672da
Refine uncommon accents for the dark themes 2022-12-28 14:35:37 +02:00
Protesilaos Stavrou 01f7fcac2d
Remove completed TODO 2022-12-28 09:01:22 +02:00
Protesilaos Stavrou b0b052e605
Update more named colors in sample code 2022-12-28 08:59:52 +02:00
Protesilaos Stavrou 1adbf9838f
Update named colors in sample code 2022-12-28 08:55:03 +02:00
Protesilaos Stavrou 63ceefc5cf
Update reference to my 'fontaine' package 2022-12-28 08:50:39 +02:00
Protesilaos Stavrou df10f50e94
Update the "sources of the themes" section 2022-12-28 08:48:45 +02:00
Protesilaos Stavrou bbadce06bb
Make minor rewordings in the manual 2022-12-28 08:47:20 +02:00
Protesilaos Stavrou 81953a3355
Remove section with old publications 2022-12-28 08:42:05 +02:00
Protesilaos Stavrou 2f6cfd68e5
Reword FAQ entry for clarity 2022-12-28 08:41:08 +02:00
Protesilaos Stavrou 398e8fa2be
Remove obsolete link; add TODO to review text 2022-12-28 08:37:11 +02:00
Protesilaos Stavrou d5b8d103e8
Rewrite modus-themes-with-colors section 2022-12-28 08:35:25 +02:00
Protesilaos Stavrou bb07fe14cf
Use current names for some colors 2022-12-28 07:19:08 +02:00
Protesilaos Stavrou da5d9835e9
Mention corfu in company-mode popup section 2022-12-28 07:19:08 +02:00
Protesilaos Stavrou 879beb8386
Update named colors in Solaire node 2022-12-28 07:19:08 +02:00
Protesilaos Stavrou e5697a3155
Update prism.el node with current color names 2022-12-28 07:19:08 +02:00
Protesilaos Stavrou 0b8026e24d
Remove some inapplicable sections from the manual 2022-12-28 07:19:08 +02:00
Protesilaos Stavrou 983f974ff9
Give better heading to modus-themes-with-colors section 2022-12-28 07:02:04 +02:00
Protesilaos Stavrou af9a6a8861
Add a link to preview colors in section about terminals 2022-12-28 06:59:12 +02:00
Protesilaos Stavrou 9581e3ac14
Refine the "faint" and "intense" override presets 2022-12-28 06:34:30 +02:00
Protesilaos Stavrou 737253a0bd
Remove some of the uncommon colors from the palettes 2022-12-28 06:34:13 +02:00
Protesilaos Stavrou 04783252a6
Fix typo 2022-12-28 06:33:48 +02:00
Protesilaos Stavrou d98c31d519
Update samples for Org agenda overrides 2022-12-28 06:07:56 +02:00
Protesilaos Stavrou 13beb314f8
Add 'date-weekday' mapping 2022-12-28 05:44:00 +02:00
Protesilaos Stavrou 5e80e5c0b6
Mention overrides in modus-themes-headings docstring 2022-12-27 18:15:01 +02:00
Protesilaos Stavrou 1cc172c3c9
Mention overrides in modus-themes-headings section 2022-12-27 18:13:03 +02:00
Protesilaos Stavrou 6d19d3cdc6
Clarify note about refactoring of modus-themes-region 2022-12-27 18:10:00 +02:00
Protesilaos Stavrou 0ff34a73c2
Clarify note about refactoring of modus-themes-completions 2022-12-27 18:09:57 +02:00
Protesilaos Stavrou 61d5397648
Reword documentation for font mixing 2022-12-27 18:06:29 +02:00
Protesilaos Stavrou b9b7b3b487
Reword documentation about bold constructs 2022-12-27 18:04:30 +02:00
Protesilaos Stavrou 7e5de3db9c
Simplify the README.md 2022-12-27 15:44:19 +02:00
Protesilaos Stavrou f981d57bb5
Update sample for customization options 2022-12-27 14:57:45 +02:00
Protesilaos Stavrou 882a384a14
Clarify when modus-themes-completions 'text-also' applies 2022-12-27 14:57:08 +02:00
Protesilaos Stavrou c8f1682d51
Reword section on Customization options 2022-12-27 14:43:51 +02:00
Protesilaos Stavrou d6fd5e685f
Reword differences between load and enable 2022-12-27 14:36:46 +02:00
Protesilaos Stavrou 15cd7f7ef3
Mention the disable-theme command 2022-12-27 14:33:03 +02:00
Protesilaos Stavrou 76c5bb03b4
Reword section with sample use-package configuration 2022-12-27 14:30:13 +02:00
Protesilaos Stavrou e55ddd7bbe
Reword section on "Enable and load" 2022-12-27 14:29:44 +02:00
Protesilaos Stavrou e80497a2ab
Reword intro section on installing the themes 2022-12-27 14:29:15 +02:00
Protesilaos Stavrou 99e434afbd
Reword section on how the themes look like 2022-12-27 14:29:01 +02:00
Protesilaos Stavrou 93781a4436
Rewrite the manual's overview 2022-12-27 14:12:14 +02:00
Protesilaos Stavrou 191bc74656
Update manual's note on Doom and git-gutter 2022-12-27 13:53:29 +02:00
Protesilaos Stavrou 570e492cec
Use appropriate mapping for box button border 2022-12-27 13:34:08 +02:00
Protesilaos Stavrou f96880dd70
Use appropriate mapping for doom-modeline-bar-inactive 2022-12-27 13:26:31 +02:00
Protesilaos Stavrou ec6ca0a15e
Refine window-divider-mode foregrounds 2022-12-27 13:19:24 +02:00
Protesilaos Stavrou 75f39af564
Complete which-key review 2022-12-27 13:17:12 +02:00
Protesilaos Stavrou 041689b1ad
Reinstate calibredb, though it may need further review 2022-12-27 13:16:53 +02:00
Protesilaos Stavrou fa40dbdc44
Reinstate org-agenda-clocking but change style
In the past we had a bespoke colour combination for it.  Those are
hard to predict and test.  A standard style is better for consistency
and the maintenance of the project.
2022-12-27 07:48:37 +02:00
Protesilaos Stavrou ff4bbd5dae
Refine colour-coded underlines 2022-12-27 07:28:20 +02:00
Protesilaos Stavrou af2efb9fe9
Refine tinted modeline colours 2022-12-27 07:02:26 +02:00
Protesilaos Stavrou 054a838178
Refine hl-todo colours 2022-12-27 06:58:13 +02:00
Protesilaos Stavrou 8f74db7030
Revise info mapping for all except deuteranopia 2022-12-27 06:53:29 +02:00
Protesilaos Stavrou 670bbaf869
Add intense diff foregrounds; use them for diffstat 2022-12-27 06:45:27 +02:00
Protesilaos Stavrou c45374473a
Refine mode line err, warning, info 2022-12-27 06:25:37 +02:00
Protesilaos Stavrou 7648c5eafc
Refine deuteranopia mode line err, warning, info 2022-12-27 06:16:20 +02:00
Protesilaos Stavrou 4f1edb3560
Refine deuteranopia mode lines 2022-12-27 06:04:25 +02:00
Protesilaos Stavrou 54f27735dc
Refine mode line grays for modus-{operandi,vivendi} 2022-12-27 05:50:36 +02:00
Protesilaos Stavrou db3e7005d8
Refine handling of modus-themes--heading optional args 2022-12-27 05:41:25 +02:00
Protesilaos Stavrou d7b1c7da77
Revise deuteranopia 'prose-code' mapping 2022-12-26 18:13:06 +02:00
Protesilaos Stavrou 71e157f1b7
Refine diff colours in deuteranopia themes 2022-12-26 18:00:19 +02:00
Protesilaos Stavrou 27abbdd047
modus-operandi-deuteranopia: tweak bg-hover 2022-12-26 17:39:13 +02:00
Protesilaos Stavrou e4833cd655
Tone down deuteranopia active mode line backgrounds 2022-12-26 17:33:38 +02:00
Protesilaos Stavrou daeb717da8
Revise color of info mapping except for deuteranopia 2022-12-26 10:56:30 +02:00
Protesilaos Stavrou b8aa0887be
Implement mode line mappings for err, warning, info 2022-12-26 10:48:52 +02:00
Protesilaos Stavrou 83b6cfd9d7
Dim the fringe mapping 2022-12-26 10:17:26 +02:00
Protesilaos Stavrou 85eaba2c52
Tweak mode line grays for modus-{operandi,vivendi} 2022-12-26 10:13:44 +02:00
Protesilaos Stavrou fda40b5c07
Expand example with TODO and DONE overrides 2022-12-26 04:06:01 +02:00
Protesilaos Stavrou 533595cf16
Define a 'date-now' mapping 2022-12-26 03:53:12 +02:00
Protesilaos Stavrou 6a5cbf838f
Tweak some date mappings for deuteranopia 2022-12-26 03:48:20 +02:00
Protesilaos Stavrou 45bacd9cfd
Make deuteranopia cursor, prompt easier to spot 2022-12-26 03:48:02 +02:00
Protesilaos Stavrou 920acc5688
Make deuteranopia active mode line blue
Just to be sure that it is easier to spot, as the different shades of
gray may pose a problem for some users.

These can always be configured via overrides.
2022-12-26 03:46:20 +02:00
Protesilaos Stavrou d8daaf85b9
Only allow 'unspecified' in palettes
Makes it easier to read for someone who is not familiar with what 't'
means for underlines.
2022-12-26 03:33:10 +02:00
Protesilaos Stavrou 9e4d1eb4c6
Remove duplicate TODOs 2022-12-25 14:49:24 +02:00
Protesilaos Stavrou fe2076c5a0
Use 'prose-block' mapping for markdown fenced block lang 2022-12-25 08:22:23 +02:00
Protesilaos Stavrou e478002d82
Use overrides for heading background and overline 2022-12-24 09:09:33 +02:00
Protesilaos Stavrou f7a4179bd2
Correct a typo 2022-12-24 08:51:02 +02:00
Protesilaos Stavrou 41a9d726a8
Reorganise the palettes 2022-12-24 08:49:24 +02:00
Protesilaos Stavrou 71674e0126
Add example of overrides for link underlines 2022-12-24 05:27:05 +02:00
Protesilaos Stavrou 4f3b512e17
Add example of overrides for colorful mode line 2022-12-24 05:26:55 +02:00
Protesilaos Stavrou 448701868a
Add example of overrides for borderless mode line 2022-12-24 05:26:33 +02:00
Protesilaos Stavrou e66a9903fc
Remove some extra spaces 2022-12-24 05:17:17 +02:00
Protesilaos Stavrou 30b7868fed
Rename accent mappings for consistency 2022-12-23 13:23:32 +02:00
Protesilaos Stavrou baa8dcec18
Expand link mappings; accept 't' and 'unspecified' values 2022-12-23 13:22:54 +02:00
Protesilaos Stavrou d7affae1b6
Add nuanced accented backgrounds 2022-12-23 13:16:10 +02:00
Protesilaos Stavrou 86547e4c21
Clarify doc strings of palette overrides 2022-12-23 12:34:58 +02:00
Protesilaos Stavrou 5c63e6d10b
Add override samples for syntax highlighting 2022-12-23 05:34:26 +02:00
Protesilaos Stavrou 24fd053845
Remove faint samples from the manual
Now we provide the modus-themes-preset-overrides-faint which the users
can assign to the user options for palette overrides.
2022-12-23 05:20:24 +02:00
Protesilaos Stavrou b9d1ba7f1b
Make all graphical buttons inherit a single face 2022-12-23 05:09:59 +02:00
Protesilaos Stavrou 55feec8859
Update description of faces' defgroup 2022-12-23 05:09:38 +02:00
Protesilaos Stavrou 6b842cc6c6
Use appropriate mappings for fill-column-indicator 2022-12-23 05:09:18 +02:00
Protesilaos Stavrou 9cd3314018
Deprecate modus-themes-links; use mappings instead 2022-12-22 12:15:15 +02:00
Protesilaos Stavrou c9950d3fce
Use appropriate mapping for separator-line face 2022-12-22 12:13:50 +02:00
Protesilaos Stavrou 5a12068494
Add presets of color overrides
Try either of those:

(setq modus-themes-common-palette-overrides modus-themes-preset-overrides-faint)
(setq modus-themes-common-palette-overrides modus-themes-preset-overrides-intense)
2022-12-22 08:07:18 +02:00
Protesilaos Stavrou 53e98dd349
Deprecate modus-themes-subtle-line-numbers; add mappings 2022-12-22 07:09:16 +02:00
Protesilaos Stavrou 53070c7d09
Add missing property drawers to the manual 2022-12-21 12:05:33 +02:00
Protesilaos Stavrou 718557503a
Make box buttons respond to palette overrides 2022-12-21 12:05:23 +02:00
Protesilaos Stavrou 37b634989c
Make it possible to also preview color mappings 2022-12-21 09:35:35 +02:00
Protesilaos Stavrou 92188a2113
Tweak some deuteranopia mappings 2022-12-21 09:03:05 +02:00
Protesilaos Stavrou aa8e982cbc
Add some practical examples of palette overrides 2022-12-20 11:53:05 +02:00
Protesilaos Stavrou 383836f6b8
Clarify wording about list colors buffer name 2022-12-20 11:51:59 +02:00
Protesilaos Stavrou 25a36d75ae
Make org-meta-line map to prose-metadata 2022-12-20 09:36:17 +02:00
Protesilaos Stavrou 912731d599
Sort date mappings A-Z 2022-12-20 09:16:39 +02:00
Protesilaos Stavrou 64ffc9d21d
Expand and refine mappings for dates 2022-12-20 09:06:05 +02:00
Protesilaos Stavrou c70713eecb
Add mappings for prose-done, prose-todo 2022-12-20 08:45:13 +02:00
Protesilaos Stavrou 76f81d0ad8
Add aliases for preview palette commands 2022-12-20 08:34:19 +02:00
Protesilaos Stavrou 3b40d82a92
Reorganise some palette mappings 2022-12-20 07:01:00 +02:00
Protesilaos Stavrou 0d49906db4
Rename 'tag' mapping to 'prose-tag' 2022-12-20 06:57:21 +02:00
Protesilaos Stavrou 3e2a8704ed
Add mappings for more prose constructs (e.g. org-mode) 2022-12-20 06:47:25 +02:00
Protesilaos Stavrou cdfbd26801
Introduce more colours (work-in-progress) 2022-12-20 06:37:33 +02:00
Protesilaos Stavrou 4d8b53ac85
Make modus-themes-theme ignore unused variables 2022-12-20 06:36:41 +02:00
Protesilaos Stavrou 87c14c3cf6
Add [tentative] support for menu, scroll-bar, tool-bar faces
Emacs does not have control over those GUI elements as they are drawn
by the underlying toolkit.  I built Emacs with Lucid and the 'menu'
and 'tool-bar' responded to those faces.  For the 'scroll-bar', Lucid
seems to only affect its background.

On GTK builds, the 'menu' and 'tool-bar' faces have no effect.  The
'scroll-bar' seems to affect both the background and foreground of the
given element.

Consider this change subject to review.
2022-12-20 05:16:27 +02:00
Protesilaos Stavrou 24e6b3e1e3
Re-order some entries in the palette 2022-12-20 04:43:46 +02:00
Protesilaos Stavrou ca4c8f6e31
Add support for font-lock-doc-markup-face
Thanks to Mattias Engdegård for bringing 'font-lock-doc-markup-face'
to my attention and for explaining the stylistic demands it has.
2022-12-19 16:38:42 +02:00
Protesilaos Stavrou b891d54771
Tweak magenta-faint across all themes 2022-12-19 13:17:35 +02:00
Protesilaos Stavrou 0a8c4cdcd4
Acknowledge James Ferguson for change to tab mappings
This was done in commit 889c5dc where I introduced palette entries
specifically for tabs and also refined how the mode line entries are
implemented.

James provided feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CCAMtGdSnrKDGdagT7vGC9DnBZnOvkbM%3D4Nxwn3ts2tdO8YmUnxw%40mail.gmail.com%3E>.
2022-12-19 06:25:14 +02:00
Protesilaos Stavrou 20b252ed29
Use faces instead of strings in rcirc-colors variable
The reason is that strings are hardcoded and thus do not respond to a
theme switch.  Whereas faces read their new value from the theme.

Thanks to Philip Kaludercic for the feedback on the mailing list and
for making the requisite changes to the 'rcirc-color' package:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87mt7m6k6z.fsf%40posteo.net%3E>.
2022-12-19 06:19:15 +02:00
Protesilaos Stavrou 898c4ceb7c
Define foregrounds as faces
Some variables need to inherit a face instead of taking a colour
value, as the latter does not respond to a theme switch without some
extra setup.  An example is the user option 'org-todo-keyword-faces'.
2022-12-19 06:17:12 +02:00
Protesilaos Stavrou 5fda403abd
Extend support for package-status-from-source face 2022-12-19 06:07:39 +02:00
Protesilaos Stavrou 889c5dc34e
Add tab colours to the palette 2022-12-19 05:41:37 +02:00
Protesilaos Stavrou dedbc595e4
Write entry in the manual about palette overrides 2022-12-18 09:32:33 +02:00
Protesilaos Stavrou 5f28f98709
Remove entry of obsolete user option 2022-12-18 08:45:34 +02:00
Protesilaos Stavrou 749322fdc3
Remove outdated information in sample config 2022-12-18 08:45:14 +02:00
Protesilaos Stavrou f01530e9b7
Update doc strings of individual theme overrides 2022-12-18 08:38:44 +02:00
Protesilaos Stavrou dab4cbfb33
Make overrides 'defcustom'; rename common overrides
Thanks to Philip Kaludercic for suggesting the conversion of these
variables to user options:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87wn6qgjkx.fsf%40posteo.net%3E#%3C87edsyvvsy.fsf@posteo.net%3E>.

They are now easier to discover through the Custom UI.  Their ':type'
can be refined.
2022-12-18 08:33:09 +02:00
Protesilaos Stavrou 29c7a68b03
Remove extra space 2022-12-18 07:27:47 +02:00
Protesilaos Stavrou 122591a350
modus-operandi-tinted: refine diff colours 2022-12-18 07:10:43 +02:00
Protesilaos Stavrou 3c47d71070
modus-vivendi-tinted: refine diff colours 2022-12-18 07:05:15 +02:00
Protesilaos Stavrou 7d4d93f9a8
Reposition "rx-*" mappings close to syntax entries 2022-12-18 07:04:33 +02:00
Protesilaos Stavrou 31c1ab8e92
Add support for rcirc-color
Thanks to Philip Kaludercic for bringing this matter to my attention:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87mt7m6k6z.fsf%40posteo.net%3E>.
2022-12-18 06:56:25 +02:00
Protesilaos Stavrou bd049491d5
Add warning in the README.md 2022-12-18 06:18:30 +02:00
Protesilaos Stavrou 3fcf136507
Deprecate modus-themes-fringes; add 'fringe' mapping
The user can thus override the 'fringe' mapping to whatever colour
they prefer, instead of us hardcoding it to two shades of gray.

To make the 'fringe' invisible, set it to the main background.

Video tutorial on colour mappings:
<https://protesilaos.com/codelog/2022-12-17-modus-themes-v4-demo/>.
2022-12-18 06:13:46 +02:00
Protesilaos Stavrou 6056ce8f62
Make minor tweaks to all-the-icons colours 2022-12-17 19:12:29 +02:00
Protesilaos Stavrou b9bbe2d3e5
Use appropriate deuteranopia graph colours 2022-12-17 18:56:16 +02:00
Protesilaos Stavrou 95bc61c7c0
Clarify the doc strings of all palette variables 2022-12-17 18:52:53 +02:00
Protesilaos Stavrou 3ebdcc4f5d
Tweak the deftheme doc of the deueteranopia themes 2022-12-17 18:48:53 +02:00
Philip Kaludercic af7eea1371
Add common overrides for all Modus themes 2022-12-17 18:40:57 +02:00
Protesilaos Stavrou 964ad36f63
Rename graph colours for consistency 2022-12-17 13:33:29 +02:00
Protesilaos Stavrou 0ec98f879e
Remove extra quote from doc string 2022-12-17 09:32:23 +02:00
Protesilaos Stavrou 8427640cfa
Use 'make-obsolete' for a function 2022-12-17 09:32:03 +02:00
Protesilaos Stavrou eb25d560e2
Make obsolete an unused face 2022-12-17 07:03:56 +02:00
Protesilaos Stavrou 372da155e5
Make git commit summary always blue
This is because we want optimal contrast when showing warnings about
excess characters and a non-empty second line.
2022-12-16 07:37:47 +02:00
Protesilaos Stavrou 60aed2bae6
Review hl-todo mappings for simplicity 2022-12-16 07:35:41 +02:00
Protesilaos Stavrou 1618160c24
modus-operandi-deuteranopia: tweak yellow hue 2022-12-16 07:28:52 +02:00
Protesilaos Stavrou b460f0950f
modus-operandi-deuteranopia: tweak mail-cite-3 mapping 2022-12-16 07:28:28 +02:00
Protesilaos Stavrou bb75e632f7
Make comments yellow in deuteranopia themes 2022-12-16 07:28:04 +02:00
Protesilaos Stavrou 1b4238f51d
Add deuteranopia THEMES; remove the user option
Providing bespoke themes gives us the freedom to implement changes
wherever necessary without making the code more complex.  The now
discontinued 'modus-themes-deuteranopia' was a user option with
limited scope: it simply replaced green with blue in some contexts.
But a proper design for deuteranopia requires more than that.  These
new themes are the right solution and I am sure the people who need
them will greatly appreciate them.
2022-12-16 05:58:12 +02:00
Protesilaos Stavrou a736eebd67
Allow any weight in all relevant user options
Prior to this change some user options provided for a 'bold' style
which would apply a heavy typographic weight.  Since we have the
mechanism to add an arbitrary font weight, there is no reason to limit
those options to 'bold'.
2022-12-16 04:14:17 +02:00
Protesilaos Stavrou 7021b96548
Ensure modus-themes-org-blocks doc is up-to-date 2022-12-16 03:41:49 +02:00
Protesilaos Stavrou f034b32d9b
Complete review of mu4e faces 2022-12-16 03:35:00 +02:00
Protesilaos Stavrou 996183764e
Remove TODO for emms (done in d2739d5) 2022-12-15 15:26:46 +02:00
Protesilaos Stavrou fefea89f4e
Review crontab-mode faces (they look same as before) 2022-12-15 15:25:29 +02:00
Protesilaos Stavrou 78bbebe356
Remove TODO for gnus (done in commit 633e275) 2022-12-15 15:08:20 +02:00
Protesilaos Stavrou 633e275f69
Make Gnus look like it did before (adapting to new palette) 2022-12-15 15:04:44 +02:00
Protesilaos Stavrou d2739d5de6
Remove all the rainbow mappings (not needed) 2022-12-15 14:49:52 +02:00
Protesilaos Stavrou 1687bd8e73
Tweak mail cite mappings to better distinguish levels 2022-12-15 13:31:25 +02:00
Protesilaos Stavrou 2555810dca
Make further refinements to main coloured backgrounds 2022-12-15 13:16:09 +02:00
Protesilaos Stavrou 87ea2fcf93
Remove the "search" entries from the palettes
There are too many interactions with other colours here.  It is better
to hardcode values, so I can predict the end results.
2022-12-15 12:59:20 +02:00
Protesilaos Stavrou f1e6e3aa2e
Revise coloured backgrounds in the light themes
You can play around with the following, changing "bg-cyan" to one of
bg-{red,green,yellow,blue,magenta}.

    (setopt modus-themes-to-toggle '(modus-operandi modus-operandi-tinted))
    (setopt modus-themes-to-toggle '(modus-vivendi modus-vivendi-tinted))

    (setq modus-operandi-palette-overrides '((bg-mode-line-active bg-cyan))
          modus-operandi-tinted-palette-overrides modus-operandi-palette-overrides
          modus-vivendi-palette-overrides modus-operandi-palette-overrides
          modus-vivendi-tinted-palette-overrides modus-operandi-palette-overrides)
2022-12-15 11:40:36 +02:00
Protesilaos Stavrou 53eddd0c6b
Revise coloured backgrounds in the dark themes
You can play around with the following, changing "bg-cyan" to one of
bg-{red,green,yellow,blue,magenta}.

    (setopt modus-themes-to-toggle '(modus-operandi modus-operandi-tinted))
    (setopt modus-themes-to-toggle '(modus-vivendi modus-vivendi-tinted))

    (setq modus-operandi-palette-overrides '((bg-mode-line-active bg-cyan))
          modus-operandi-tinted-palette-overrides modus-operandi-palette-overrides
          modus-vivendi-palette-overrides modus-operandi-palette-overrides
          modus-vivendi-tinted-palette-overrides modus-operandi-palette-overrides)
2022-12-15 11:38:53 +02:00
Protesilaos Stavrou 45d529d141
modus-vivendi-tinted: change cursor hue 2022-12-15 11:38:30 +02:00
Protesilaos Stavrou fe82f31cc1
modus-vivendi-tinted: tweak bg-completion 2022-12-15 11:17:34 +02:00
Protesilaos Stavrou e3cf3945f0
Revise bg-prompt hue from teal to violet
It fits better with the themes' aesthetics.  Besides, the user can now
easily override it with the expanded mechanism that "version-4"
provides.  Overview:
<https://protesilaos.com/codelog/2022-12-07-modus-themes-4-colour-values-mappings/>.
2022-12-15 11:13:46 +02:00
Protesilaos Stavrou cfae5212de
modus-operandi: tweak bg-completion 2022-12-15 11:12:45 +02:00
Protesilaos Stavrou 24af1c4dff
Remove obsolete references from the manual (more TODOs) 2022-12-15 11:06:57 +02:00
Protesilaos Stavrou 6bf02afced
Remove "accented" from modus-themes-completions
The user has the option to override the bg-completion colour, which
gives them all they need.  I had already deprecated the "intense"
style earlier, though not from the docs.
2022-12-15 11:04:06 +02:00
Protesilaos Stavrou 6ad6baf76f
Tweak identifier mapping for the light themes 2022-12-15 10:44:35 +02:00
Protesilaos Stavrou d0e8742f21
Remove bg-active-accent (see 5b73fc3) 2022-12-15 10:43:30 +02:00
Protesilaos Stavrou 5b73fc3059
Deprecate modus-themes-mode-line; add mode line mappings
Version 4 of the modus-themes is abstracting each theme's palette,
introduces semantic colour mappings, and expands the scope of the
palette overrides.  I am removing user options, but am actually giving
user more power over how to tweak the theme.  Overview:
<https://protesilaos.com/codelog/2022-12-07-modus-themes-4-colour-values-mappings/>.

As this diff demonstrates, we remove a lot of the complexity from the
themes.
2022-12-15 10:40:22 +02:00
Protesilaos Stavrou a7ff3db686
Make minor refinements to mail mappings 2022-12-13 17:55:47 +02:00
Protesilaos Stavrou 449a96ea19
Tweak light themes' fg-dim 2022-12-13 11:09:40 +02:00
Protesilaos Stavrou bfa626303a
Revise ioccur faces for consistency 2022-12-13 10:39:22 +02:00
Protesilaos Stavrou 5f011b4522
Use more appropriate names for search mappings 2022-12-13 10:28:03 +02:00
Protesilaos Stavrou a205d0680b
Reduce overall colouration of mail mappings 2022-12-13 10:19:55 +02:00
Protesilaos Stavrou f1d824f13c
Replace 'or' with 'and' in 'modus-themes--set-option' 2022-12-12 09:22:26 +02:00
Protesilaos Stavrou 2abec68c11
Refine link mappings; remove deprecated code 2022-12-12 08:19:24 +02:00
Protesilaos Stavrou a4a51097d0
Tweak border hue for the light themes 2022-12-12 08:18:34 +02:00
Protesilaos Stavrou 62d8acbad0
Make whitespace-mode less intense 2022-12-12 07:55:47 +02:00
Protesilaos Stavrou f64ef0dfae
Refine the light theme yellow hues 2022-12-12 06:12:29 +02:00
Protesilaos Stavrou 5853a39a08
Refine the dark theme yellow-{warmer,cooler}; remap 2022-12-12 06:04:42 +02:00
Protesilaos Stavrou 04e2c1e1d5
Reinstate functionality of auto theme reload upon option switch
The 'modus-themes-custom-auto-reload' is the successor to the
now-deprecated 'modus-themes-inhibit-reload'.  The new name is more
descriptive and easier to reason about.

The functionality is now enabled by default.  I am using it with
'setopt' (Emacs 29) and think it is a user-friendly feature.

Thanks to Philip Kaludercic for the feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87h6y3gyxx.fsf%40posteo.net%3E>.

Philip is the author of the original 'modus-themes-inhibit-reload' and
the relevant setup.  I just made some minor tweaks for this "version
4" rewrite of the themes.  Any mistakes are my own.
2022-12-12 05:28:53 +02:00
Protesilaos Stavrou e877742299
Remove bold from magit-diff-hunk-heading
Inactive diff hunk headings do not need to be bold, as they are
already easy to tell apart from their context.  The added bold is
useful for the currently selected diff hunk, as it draws attention to
it.
2022-12-11 13:33:23 +02:00
Protesilaos Stavrou ed0fcbd620
Fix incorrect colour variables 2022-12-11 10:42:13 +02:00
Protesilaos Stavrou ddf4a812af
Remove explicit support for icomplete-vertical (default is OK) 2022-12-11 09:16:47 +02:00
Protesilaos Stavrou e896bebd38
Remove support for hl-defined
I cannot find the package anymore.
2022-12-11 09:12:06 +02:00
Protesilaos Stavrou a044561789
Remove explicit support for forge (default is OK) 2022-12-11 09:06:39 +02:00
Protesilaos Stavrou 38523f05ac
Remove explicit support for freeze-it (default is OK) 2022-12-11 09:04:52 +02:00
Protesilaos Stavrou 961f58504f
Re-introduce calibredb but keep it disabled (read TODO) 2022-12-11 08:56:06 +02:00
Protesilaos Stavrou 35e67b0b94
Reinstate support for annotate
I removed lots of packages to make things work (they were using
colours that I removed).  Now that I have a stable basis, I am
bringing some of them back.
2022-12-11 08:48:29 +02:00
Protesilaos Stavrou 8f6854eb65
Simplify modus-themes-org-blocks 2022-12-11 08:37:47 +02:00
Protesilaos Stavrou 094464c6e9
Tweak dark themes' bg-{red,yellow}-subtle 2022-12-11 08:35:24 +02:00
Protesilaos Stavrou a3f97bf483
Make custom-state use warning mapping 2022-12-11 08:28:28 +02:00
Protesilaos Stavrou ff1b3ea8de
Tweak doc string of 'modus-themes' group 2022-12-11 08:28:12 +02:00
Protesilaos Stavrou a84a2b3eec
Fix diff-hl outline heading 2022-12-11 08:25:36 +02:00
Protesilaos Stavrou b9ec2d7a1a
Use link mapping for info-header-xref 2022-12-11 08:23:32 +02:00
Protesilaos Stavrou ab3cf42981
Tweak magit-diff-lines-heading contrast 2022-12-11 08:23:19 +02:00
Protesilaos Stavrou b660c76542
Update symbol of hook in a doc string 2022-12-11 08:16:49 +02:00
Protesilaos Stavrou b47cd0b962
Make notmuch-message-summary-face stand out more 2022-12-10 09:21:52 +02:00
Protesilaos Stavrou 2905104186
Add doc strings to "overrides" variables 2022-12-10 05:49:04 +02:00
Protesilaos Stavrou 6135aba08e
Add diff foregrounds for Magit
I am not adding them to diff-mode as it keeps fontification by
default.
2022-12-09 04:33:48 +02:00
Protesilaos Stavrou a3487366db
Add "weekend" mapping for Org agenda and Calendar 2022-12-09 03:53:23 +02:00
Protesilaos Stavrou 96ccfb51a5
Use alist-get instead of needless private function 2022-12-08 17:13:00 +02:00
Protesilaos Stavrou 67bcc044f8
Re-order some functions; tweak the outline 2022-12-08 17:03:30 +02:00
Protesilaos Stavrou c19a23f0ec
Use 'defvaralias' for hook alias 2022-12-08 16:54:16 +02:00
Protesilaos Stavrou 7003edbade
Remove modus-themes-headings foreground variants
The user has more flexibility now by overriding the colour mappings
directly.  The "rainbow" we provided before was limited to
predetermined colours.

Read this for the general idea (I will provided detailed documentation
as well): <https://protesilaos.com/codelog/2022-12-07-modus-themes-4-colour-values-mappings/>.
2022-12-08 09:17:46 +02:00
Protesilaos Stavrou 7c770559a6
Simplify modus-themes-region; refine colours 2022-12-08 09:01:15 +02:00
Protesilaos Stavrou f108f6554f
Add cursor mapping; tinted themes use accents for it 2022-12-07 18:47:18 +02:00
Protesilaos Stavrou 38aa4120f6
Remove superfluous headings from "*-theme.el" files* 2022-12-07 09:43:06 +02:00
Protesilaos Stavrou a722e8d041
Give meaningful names to mail mappings 2022-12-07 09:39:51 +02:00
Protesilaos Stavrou e819293f4b
Make "list colors" and "with colors" read overrides 2022-12-07 06:40:02 +02:00
Protesilaos Stavrou 6286d01fce
Make modus-themes-list-colors work with new design 2022-12-07 06:09:27 +02:00
Protesilaos Stavrou 6e54b6daea
Fix typo in doc string 2022-12-07 06:04:29 +02:00
Protesilaos Stavrou b14782498a
Update modus-themes-items to include new themes 2022-12-07 05:37:49 +02:00
Protesilaos Stavrou 23044f3f36
Add new themes: modus-{operandi,vivendi}-tinted
Also see commit 0d69160 which introduces the 'modus-themes-to-toggle'
option as well as the command 'modus-themes-select'.
2022-12-07 05:34:45 +02:00
Protesilaos Stavrou 0d69160328
Add modus-themes-select command; prepare for new themes 2022-12-07 05:34:08 +02:00
Protesilaos Stavrou b00294eb0a
Bring back support for palette overrides
I had removed it from the modus-themes.el as part of the refactoring
that (i) simplifies the main file, and (ii) introduces colour mapping
to each theme's palette.
2022-12-07 05:28:45 +02:00
Protesilaos Stavrou d58aac47b5
Use 'make-obsolete-variable' for variables
Thanks to Anders Johansson for pointing this out:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CCAKJdtO-dzvR%3D2BaSd5qPzwDE%3D%2BaJSR6js7ii1O6KD7oFOB7gDw%40mail.gmail.com%3E>.
2022-12-07 04:13:33 +02:00
Protesilaos Stavrou b32ebbade5
Revise bg-paren-match
Makes it easier to spot it and also to distinguish it from paren
mismatch.
2022-12-05 11:24:52 +02:00
Protesilaos Stavrou c3b517da8f
Tweak mappings for rainbows 2022-12-05 10:02:24 +02:00
Protesilaos Stavrou a0d7ef7585
Tweak 'name' mappings 2022-12-03 11:25:30 +02:00
Protesilaos Stavrou 1ae96698ec
Document indirect support for lin, pulsar (my packages)
Their faces are okay.
2022-12-03 11:25:04 +02:00
Protesilaos Stavrou 76929394f5
Remove support for Denote (I write Denote's faces)
It already uses styles that work well with the modus-themes.
2022-12-03 11:24:12 +02:00
Protesilaos Stavrou 7ac53f571e
Remove deprecated variables from code samples 2022-12-03 10:59:57 +02:00
Protesilaos Stavrou 3dfc5e4943
Deprecate modus-themes-paren-match; amplify colours 2022-12-03 10:55:41 +02:00
Protesilaos Stavrou 7a686388c8
Rename bg-hover-alt to bg-hover-secondary; adapt faces 2022-12-03 10:38:46 +02:00
Protesilaos Stavrou 45269556bc
Make bg-hover-alt look distinct from bg-hover 2022-12-03 10:35:34 +02:00
Protesilaos Stavrou 2d4ef7d90c
Add TODO about Gnus face review 2022-12-03 08:35:12 +02:00
Protesilaos Stavrou 3adce8484b
Bring back support for centaur-tabs
I removed earlier in this refactoring process because it was depending
on faces/colours that I have since removed.  Now that things are
clear, I can support it again.
2022-12-03 08:27:14 +02:00
Protesilaos Stavrou 5e9c375f0d
Bring back support for powerline
I removed earlier in this refactoring process because it was depending
on faces/colours that I have since removed.  Now that things are
clear, I will start reintroducing packages.
2022-12-03 07:25:08 +02:00
Protesilaos Stavrou 7f9170515c
Add TODO about private function refactoring 2022-12-03 06:58:36 +02:00
Protesilaos Stavrou 3a7b4bc704
Tweak a couple of deprecation messages 2022-12-03 06:56:48 +02:00
Protesilaos Stavrou 2e3c9c1af9
modus-vivendi: tweak bg-region 2022-12-03 06:52:07 +02:00
Protesilaos Stavrou 32d6360a5a
Refine bongo faces 2022-12-03 06:51:59 +02:00
Protesilaos Stavrou 30053282e4
Make keycast-key respect mode line padding (see 26c79c1) 2022-12-02 10:43:08 +02:00
Protesilaos Stavrou 26c79c1138
Make mode-line-highlight always have a border
This is because the background colour it is using now may not be
discernible against an accented mode line.

The use of ':box' ensures that the padding of the highlight is always
the same as that of the mode line, whereas before we had nested
padding values (a padded box inside a padded box).
2022-12-02 10:38:52 +02:00
Protesilaos Stavrou 887069ccd3
Remove unused private function 2022-12-02 10:37:47 +02:00
Protesilaos Stavrou 16d9365fb0
modus-operandi: tweak bg-active-accent (amend 5513b63) 2022-12-02 10:10:15 +02:00
Protesilaos Stavrou 2bc2522266
modus-vivendi: tweak accent-2 mappings 2022-12-02 10:04:31 +02:00
Protesilaos Stavrou 5513b63c46
Tweak bg-active-accent to work with new base backgrounds 2022-12-02 10:04:31 +02:00
Protesilaos Stavrou af620f1030
Add missing dots in modus-themes-headings docs 2022-12-02 05:41:26 +02:00
Protesilaos Stavrou e00fe9588a
Make modus-themes-headings affect Org agenda
This harmonises an inconsistency that existed before where those
headings were controlled by another user option.  That option is
deprecated in the interest of consistency and simplicity.
2022-12-02 05:27:40 +02:00
Protesilaos Stavrou 8f6f6669d4
Revise Org structure headings 2022-12-01 19:24:39 +02:00
Protesilaos Stavrou 423895b112
Refine modus-themes--heading condition for :inherit 2022-12-01 18:11:15 +02:00
Protesilaos Stavrou bb51e40f96
Simplify rainbow-delimiters-base-error-face 2022-12-01 18:09:37 +02:00
Protesilaos Stavrou 5e23203b43
Make calendar and Org agenda consistent (revise 3ca07ba) 2022-12-01 17:43:58 +02:00
Protesilaos Stavrou 88b435ef42
Remove obsolete inherit from bookmark-face 2022-12-01 17:42:22 +02:00
Protesilaos Stavrou 3ca07ba172
Make Org agenda weekends like those of M-x calendar
The calendar uses a more saturated red because its days occupy a small
surface area.  Also, the calendar does not have other elements that
compete for attention, whereas the agenda does.
2022-12-01 15:58:44 +02:00
Protesilaos Stavrou 17604072e4
Refine the red-faint values 2022-12-01 15:58:19 +02:00
Protesilaos Stavrou 992d5d83f4
Simplify Org agenda headings (amend 1b10127) 2022-12-01 15:48:16 +02:00
Protesilaos Stavrou 02c568bd6a
Tweak calendar-weekday-header foreground
Builds on commit 7f93b05.
2022-12-01 15:36:39 +02:00
Protesilaos Stavrou 1b101276a7
Tweak Org agenda headings 2022-12-01 15:25:46 +02:00
Protesilaos Stavrou 4610d1382c
Remove support for rainbow-blocks
Use prism.el by Adam Porter (alphapapa):
<https://github.com/alphapapa/prism.el>.
2022-12-01 15:09:35 +02:00
Protesilaos Stavrou efa98a9dbc
Reinstate org-habit faces 2022-12-01 12:02:23 +02:00
Protesilaos Stavrou c636f9c199
Deprecate modus-themes-org-agenda
It was complex and hard to maintain.
2022-12-01 12:01:48 +02:00
Protesilaos Stavrou 280c9e9094
Remove cfrs package
It was part of treemacs, which we no longer support.
2022-12-01 12:01:14 +02:00
Protesilaos Stavrou 7f93b0588b
Make calendar weekends stand out 2022-12-01 12:00:17 +02:00
Protesilaos Stavrou e5d336d143
Simplify all Commentary headers 2022-12-01 11:38:26 +02:00
Protesilaos Stavrou 2aecf26847
Deprecate all palette symbols
The colour palettes are now defined in the individual themes.  This
means that we can, in principle, introduce more themes without ever
expanding modus-themes.el (the user can also register their own Modus
theme variant, which we will eventually document in the manual).
2022-12-01 11:23:46 +02:00
Protesilaos Stavrou 8f8fcef637
Deprecate commands nobody used 2022-12-01 11:23:27 +02:00
Protesilaos Stavrou 4b2fd9f406
Revise modus-themes-completions
The intent is:

* Remove the subtle gray selection line.  It is not usable in several
  cases.

* Eliminate the distinction between 'selection' and 'popup'.  All UIs
  now have the same style.  This is not a problem in practice as I
  have revised the relevant colour values to work in both contexts.

* Remove the 'intense' variant, so as to reduce the number of colour
  combinations.  The code is simpler and we reduce the special colours
  that we would otherwise need to maintain.

Part of this refactoring for version 4.0.0 is to:

* Make the colour palettes smaller and more efficient.

* Introduce a mechanism of semantic colours (colour mappings), which
  lets us optimise for each theme and, potentially, introduce new
  themes.

* Amplify gray values to improve usability.

* Remove user options of dubious value and, generally, makes things
  easier to understand.
2022-12-01 11:10:47 +02:00
Protesilaos Stavrou 0cf013959f
modus-vivendi: amplify bg-region 2022-12-01 11:09:57 +02:00
Protesilaos Stavrou 8e7c1dc4e7
Add bg-accent mappings and adapt accordingly 2022-12-01 11:09:02 +02:00
Protesilaos Stavrou 549cbfccb2
Re-indent file 2022-12-01 10:11:02 +02:00
Protesilaos Stavrou af84ab4a14
Use appropriate faces for transient highlights 2022-12-01 10:09:14 +02:00
Protesilaos Stavrou 58cfe1b145
Make header-line background less intense 2022-12-01 10:00:26 +02:00
Protesilaos Stavrou 9bded22a00
Bring Magit blame faces closer to their defaults 2022-12-01 08:43:29 +02:00
Protesilaos Stavrou 2d4e7fb642
Make heading mappings look how they used to
The purpose of this refactoring is to improve the code, but otherwise
retain the themes' character.  There will still be some changes,
though those will be barely noticeable unless a side-by-side
comparison is performed.
2022-12-01 08:07:57 +02:00
Protesilaos Stavrou 1e39d0d0c6
modus-vivendi: refine magenta-faint 2022-12-01 08:07:57 +02:00
Protesilaos Stavrou 02d4dab903
modus-operandi: refine magenta-faint 2022-12-01 08:07:57 +02:00
Protesilaos Stavrou 2b70516efa
modus-operandi: refine all yellow hues 2022-12-01 08:07:57 +02:00
Protesilaos Stavrou 0be58ff03d
Tweak magit-filename foreground to avoid confusion 2022-12-01 08:07:57 +02:00
Protesilaos Stavrou 69e5eddb7c
Define 'tag' mapping and use it 2022-12-01 08:07:57 +02:00
Protesilaos Stavrou 3506d7f30e
Define 'identifier' mapping and use it 2022-12-01 08:07:57 +02:00
Protesilaos Stavrou 24ba4578a5
Tweak diredfl compressed file faces 2022-12-01 08:00:58 +02:00
Protesilaos Stavrou 882796dc92
Make edmacro-label stand out from its context
This is for Emacs 29.  We see it when editing keyboard
macros (e.g. with C-x C-k C-e (kmacro-edit-macro-repeat)).
2022-12-01 07:58:48 +02:00
Protesilaos Stavrou d43dc95945
Refine accent mappings 2022-12-01 06:34:46 +02:00
Protesilaos Stavrou d1b67e1ab2
Make mail mappings more consistent 2022-12-01 06:18:18 +02:00
Protesilaos Stavrou 128c386abd
modus-operandi: refine magenta-cooler value 2022-12-01 05:55:34 +02:00
Protesilaos Stavrou 002fb82f12
Tweak mail mappings 2022-12-01 05:55:12 +02:00
Protesilaos Stavrou 97e72cd027
Add TODO about eldoc and geiser faces 2022-11-30 09:35:02 +02:00
Protesilaos Stavrou 476ff24181
Replace deprecated faces with alternatives 2022-11-30 09:32:22 +02:00
Protesilaos Stavrou e33a760971
Update the docs to reflect current development
I will explain everything on my website as well as the change log,
once version 4.0.0 is released.  What I have here is not final and I
am still testing for regressions.
2022-11-30 09:18:44 +02:00
Protesilaos Stavrou 045806838d
modus-operandi: tweak green-faint 2022-11-30 09:12:55 +02:00
Protesilaos Stavrou ce46aeeac7
modus-operandi: tweak the cyan hues 2022-11-30 09:12:45 +02:00
Protesilaos Stavrou b05535788c
Refine bongo colours 2022-11-30 09:02:08 +02:00
Protesilaos Stavrou b9b42f3fc6
Revise org-tag foreground 2022-11-30 09:01:57 +02:00
Protesilaos Stavrou 327bfe563e
modus-operandi: change warning mapping 2022-11-30 09:01:41 +02:00
Protesilaos Stavrou c42f7c7bd3
Use better colours for doom-modeline bars 2022-11-30 08:40:02 +02:00
Protesilaos Stavrou 5004d91c85
Refine marginalia and diredfl mappings 2022-11-30 08:32:42 +02:00
Protesilaos Stavrou db8bfc7e42
Remove obsolete faces and replace it with current ones 2022-11-30 08:21:54 +02:00
Protesilaos Stavrou 36cfed176d
Refine header-line background 2022-11-30 08:06:47 +02:00
Protesilaos Stavrou e35272d3c7
modus-vivendi: tweak bg-completion 2022-11-30 07:08:54 +02:00
Protesilaos Stavrou bcb1be6769
modus-operandi: disambiguate bg-completion, bg-prompt 2022-11-30 07:08:24 +02:00
Protesilaos Stavrou 8c1ec2f0ee
Tweak mail-4 mapping 2022-11-30 06:53:36 +02:00
Protesilaos Stavrou f75e785bfa
Remove outdated statement in doc string 2022-11-30 05:30:31 +02:00
Protesilaos Stavrou fbf6552840
Make minor tweaks to the palettes 2022-11-30 05:29:58 +02:00
Protesilaos Stavrou 0a2a7698b8
Reorder rainbow mappings 2022-11-29 22:32:38 +02:00
Protesilaos Stavrou d8027894f9
Refine accent-3 mapping 2022-11-29 22:18:26 +02:00
Protesilaos Stavrou 3823b86f01
Simplify font-lock-negation-char-face 2022-11-29 22:03:38 +02:00
Protesilaos Stavrou 59a286c9ce
modus-vivendi: tweak red-cooler 2022-11-29 22:03:22 +02:00
Protesilaos Stavrou 5a4eb4594f
Tweak help-argument-name foreground 2022-11-29 21:57:34 +02:00
Protesilaos Stavrou 7c61950cca
Tweak prose-code mappings 2022-11-29 21:56:13 +02:00
Protesilaos Stavrou c6d62bd604
Use correct foreground in org-document-info 2022-11-29 21:43:46 +02:00
Protesilaos Stavrou 74e08cd5a1
Use distinct shade of gray for magit-diff-hunk-heading 2022-11-29 21:25:27 +02:00
Protesilaos Stavrou 5358ebfa2e
modus-operandi: refine diff added 2022-11-29 21:22:59 +02:00
Protesilaos Stavrou 147d4a73fb
Improve name of modus-themes--heading argument 2022-11-29 21:20:55 +02:00
Protesilaos Stavrou 4157d60099
modus-vivendi: tweak fg-alt 2022-11-29 21:20:30 +02:00
Protesilaos Stavrou a4855ab106
Revise heading mappings 2022-11-29 21:20:21 +02:00
Protesilaos Stavrou 551f65507c
modus-operandi: tweak fg-alt 2022-11-29 21:18:05 +02:00
Protesilaos Stavrou ddc9113ff2
modus-operandi: tweak yellow hues 2022-11-29 21:17:52 +02:00
Protesilaos Stavrou 0366d4e0dd
modus-operandi: tweak accent-1 2022-11-29 19:50:41 +02:00
Protesilaos Stavrou c92a4d493f
Refine mapping for git-commit-summary 2022-11-29 19:49:16 +02:00
Protesilaos Stavrou 28162edf23
modus-vivendi: tweak accent mappings 2022-11-29 19:48:13 +02:00
Protesilaos Stavrou 20aefac2e7
modus-vivendi: tweak the red foregrounds 2022-11-29 19:47:57 +02:00
Protesilaos Stavrou 14c4bb6c45
modus-operandi: reorder accent mappings 2022-11-29 19:47:39 +02:00
Protesilaos Stavrou 1efaa7ef79
Revise supported faces; LOTS OF DEPRECATIONS 2022-11-29 19:42:03 +02:00
Protesilaos Stavrou 50d22a76c4
Revise various internal functions 2022-11-29 19:41:54 +02:00
Protesilaos Stavrou 57e6a9a1ea
Rewrite helper functions for theme setup 2022-11-29 19:41:54 +02:00
Protesilaos Stavrou ab3f31a91f
Deprecate several user options 2022-11-29 19:40:52 +02:00
Protesilaos Stavrou a459c0c682
modus-vivendi: tweak cyan-faint 2022-11-29 19:39:20 +02:00
Protesilaos Stavrou 97a4511d9d
Use correct values for fg-dim and comment mapping 2022-11-29 19:38:38 +02:00
Protesilaos Stavrou 647addcf9f
modus-vivendi: tweak cyan-faint; map to docstring 2022-11-29 19:11:48 +02:00
Protesilaos Stavrou 1f77eb2239
Revise and simplify faces; LOTS OF DEPRECATIONS 2022-11-29 19:09:43 +02:00
Protesilaos Stavrou 9dc97b3978
Rewrite theme palettes
The intent is three-fold:

* Reduce the number of entries, which makes things easier to maintain,
  extend, configure.

* Introduce colour mappings, which allow us to optimise each theme
  when necessary.  For example, the mail-3 mapping is not shared
  between the two themes, simply because another hue is more
  appropriate.  There may be more such cases in the future.

* Make the palette easier to understand by using more meaningful names
  and colour associations.  This will eventually help us use the
  modus-themes.el as a basis for more themes.
2022-11-29 17:43:26 +02:00
Protesilaos Stavrou 866822a812
This rewrite is version 4.0.0, NOT v3 2022-11-29 12:34:49 +02:00
Protesilaos Stavrou 900fde1f6c
Remove support for centaur-tabs
I cannot support it anymore, as it requires extra testing.  The
built-in tab-bar-mode and tab-line-mode have superseded it.
2022-11-29 10:15:20 +02:00
Protesilaos Stavrou d4cfa3c178
Deprecate modus-themes-tabs-accented 2022-11-29 10:14:16 +02:00
Protesilaos Stavrou 3b88959d5e
Deprecate modus-themes-mail-citations 2022-11-29 09:06:32 +02:00
Protesilaos Stavrou eb74f0460d
Add mappings for emails; tweak accordingly 2022-11-29 08:59:48 +02:00
Protesilaos Stavrou 5458f6da59
Remove intense and gray from modus-themes-prompts
The intent is to reduce the number of possible combinations and,
generally, make it easier to maintain the themes.  Furthermore, some
of those combinations were simply not good enough.
2022-11-29 08:38:45 +02:00
Protesilaos Stavrou 6696daed99
Abstract some colours and mappings; make adjustments (WIP) 2022-11-29 08:29:10 +02:00
Protesilaos Stavrou 4df58c6e2e
Remove the "active" colours/faces
The idea is to reduce the entries in the colour palette and make
better use of the available colours.
2022-11-29 08:28:12 +02:00
Protesilaos Stavrou b84e53db50
Deprecate modus-themes-syntax
It was hard to maintain and, more importantly, not sufficiently
flexible.  The refactoring I am now doing will abstract the colour
mapping, making it easier for users to write their own derivative
themes.
2022-11-29 08:21:07 +02:00
Protesilaos Stavrou ab58eadae1
Deprecate modus-themes-lang-checkers
It is very hard to maintain, while not all permutations were nice to
work with.
2022-11-29 08:17:55 +02:00
Protesilaos Stavrou 7f620e2d24
Revise doom-modeline faces for simplicity 2022-11-29 08:14:51 +02:00
Protesilaos Stavrou abaa9a78d0
Remove support for Dired+
It is very hard to maintain.  There is no easy way to get the package,
while it introduces lots of changes that make it difficult for
non-users to test it thoroughly.
2022-11-29 08:13:49 +02:00
Protesilaos Stavrou 6bfd147671
Rewrite diredfl faces to be more abstract 2022-11-29 08:11:37 +02:00
Protesilaos Stavrou 975f087d1a
Define rainbow colour mappings 2022-11-29 08:08:51 +02:00
Protesilaos Stavrou 683a76686e
Remove optional background and overline from headings
The intent is to reduce all the possible colour combinations in the
interest of maintainability.
2022-11-29 08:06:07 +02:00
Protesilaos Stavrou c2b23efb9b
Redefine "intense" accents; remove odd names
Make necessary adjustments to affected faces.
2022-11-29 06:23:57 +02:00
Protesilaos Stavrou effce44cb8
Remove the tab foreground colours
The intent is to reduce the number of entries in the palette and to
make better use of fewer colour values.
2022-11-29 06:22:50 +02:00
Protesilaos Stavrou 138b7bfa03
Deprecate modus-themes-markup 2022-11-29 06:06:43 +02:00
Protesilaos Stavrou 5ed45c93a8
Use semantic names for entries in the colour palette 2022-11-29 06:06:04 +02:00
Protesilaos Stavrou 120dc0d1c4
Deprecate modus-themes-color, modus-themes-color-alts
Users should just use the 'modus-themes-with-colors' macro.  This
makes things easier to document and maintain.
2022-11-29 05:47:41 +02:00
Protesilaos Stavrou 08483f57df
Deprecate user options for colour overrides
This model was too difficult for users:

* One had to overwrite too many colours to get the desired results.
* It was not possible to change colour mappings so, for example,
  keywords would always be purple.

The purpose of the rewrite for version 3.0.0 is to abstract the colour
palette and create colour mappings of "semantic colours".  The user
can then edit an existing theme or derive one.  We will reduce the
number of entries in the palette and rename colours in the interest of
providing self-explanatory code.
2022-11-29 05:29:07 +02:00
Protesilaos Stavrou 42166f3ec3
Replace ",class" with ",c" across all faces 2022-11-29 05:25:36 +02:00
Protesilaos Stavrou 7e007910dc
Rewrite macros for theme creation and colour re-use 2022-11-29 05:24:53 +02:00
Protesilaos Stavrou 3acd53268c
Move colour palettes to individual theme files 2022-11-29 05:24:04 +02:00
Protesilaos Stavrou 18dd2457d2
Remove support for selectrum (deprecated in favour of Vertico) 2022-11-29 04:11:15 +02:00
Protesilaos Stavrou dd64df9213
Update the manual's acknowledgements
This is for wakamenod's report on the GitHub mirror about the bug
caused by commit f1cf9a1:
<https://github.com/protesilaos/modus-themes/issues/50>.

I have since reverted the offending commit.
2022-11-27 19:32:00 +02:00
Protesilaos Stavrou 502d619dcb
Revert "Expand deftheme with appropriate data"
This reverts commit f1cf9a1eb2.

The report in issue 50 on the GitHub mirror made me think that we
should not do this as it is backward incompatible:
<https://github.com/protesilaos/modus-themes/issues/50>.

Besides, the files already include theme properties in a different
way, per commit 5fee337.
2022-11-27 19:28:18 +02:00
Protesilaos Stavrou f1cf9a1eb2
Expand deftheme with appropriate data
This is for Emacs 29.  I tested it on Emacs 27 and there is no problem
with it.
2022-11-21 05:01:50 +02:00
Protesilaos Stavrou 7cc9bb0f41
Fix symbol in commit 606c774 2022-11-20 07:24:49 +02:00
Protesilaos Stavrou 606c774de4
Reword a statement in the manual 2022-11-20 07:16:30 +02:00
Protesilaos Stavrou 30b6228076
Add support for clojure-mode 2022-11-17 13:55:05 +02:00
Protesilaos Stavrou f1149c1800
Add support for agda2-mode
This is based on merge request 44 by Xinglu Chen on the GitLab mirror
from 2021-06-16:
<https://gitlab.com/protesilaos/modus-themes/-/merge_requests/44>.
That contribution could not be merged, as it exceeded the ~15 line
limit and thus required copyright assignment to the Free Software
Foundation.  The author became inactive soon thereafter despite their
stated intention to do the paperwork.

Thanks to Laith Bahodi for informing me about this in issue 48 on the
GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/48>.

In principle, the agda project should be inheriting from font-lock
faces instead of hardcoding their own colour values: those do not play
nicely with themes.  If anyone familiar with agda reads this, I
encourage you to work with upstream to make things better for all
themes.  Also consider that adga cannot be tested without an
established setup for Haskell, which adds to the burden of maintaining
those faces at the theme level (I could not test them and only went by
screenshots and prior experience).
2022-11-01 06:24:38 +02:00
Protesilaos Stavrou 3a8594884e
Update modus-themes--version for new release cycle 2022-10-30 16:52:00 +02:00
Protesilaos Stavrou c5c6a0f0ff
Acknowledge Aleksei Gusev for commit 5c9873c
This was done in pull request 47 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/pull/47>.

The contribution is on a single line and this is Aleksei's first
contribution to this project.  It thus does not require copyright
assignment to the Free Software Foundation.
2022-10-30 16:51:31 +02:00
Protesilaos Stavrou 26062fdc69
Merge pull request #47 from hron/fix/mc/cursor-bar-face
Fix multiple-cursors's `cursor-bar-face`
2022-10-30 16:48:02 +02:00
Aleksei Gusev 5c9873c17d Fix multiple-cursors's cursor-bar-face 2022-10-30 15:25:06 +02:00
Protesilaos Stavrou 0bf4095918
Also update modus-themes--version 2022-10-28 07:34:06 +03:00
Protesilaos Stavrou 66ff9ea64b
Update to modus-themes version 3.0.0 2022-10-28 06:48:46 +03:00
Protesilaos Stavrou 076a671f83
Add the backronym to the README and the manual 2022-10-28 06:30:33 +03:00
Protesilaos Stavrou 15f3ffa451
Tweak markup of all "nil" occurrences
This is to make the export to texinfo output:

     @code{nil}

Instead of a generic "nil".

This was already done in most placed, but some had escaped my
attention.  I was reminded to check again by commit 0f39eb3, courtesy
of Stefan Kangas.
2022-10-27 19:46:13 +03:00
Protesilaos Stavrou 8ce7e5c848
Recompile Info manual 2022-10-27 14:57:55 +03:00
Stefan Kangas 2a96ce0363
Use two spaces between sentences 2022-10-27 14:54:06 +03:00
Stefan Kangas 0f39eb3fd9
Properly quote non-nil in modus-themes.org
According to Emacs conventions, the generated texinfo should be:

    non-@code{nil}

We use the same solution as the Org manual to get that output.
2022-10-27 14:54:00 +03:00
Protesilaos Stavrou 38677234ad
Add support for new image-dired faces (Emacs 29) 2022-10-26 14:53:41 +03:00
Protesilaos Stavrou 638e92c481
Make olivetti-fringe use the main background
The previous style did not actually hide the fringes, as olivetti
would still fall back to reading the generic fringe face.

The intent of this change is to make the olivetti-fringe invisible.

Thanks to Matthias Fuchs for reporting the issue that helped me track
this problem.  This was done in issue 46 on the GitHub mirror:
<https://github.com/protesilaos/modus-themes/issues/46>.
2022-10-25 19:44:20 +03:00
Protesilaos Stavrou 1812d878fe
Use American English on 2 occasions in the manual
This is to conform with the standard in emacs.git.
2022-10-24 17:13:52 +03:00
Protesilaos Stavrou f900b843b2
Use the manual's "file" Org macro in two places
This is needed to output the correct '.texi' markup.
2022-10-24 17:11:22 +03:00
Protesilaos Stavrou c5c44fcd9e
Simplify wording of a statement in the manual 2022-10-24 17:09:21 +03:00
Protesilaos Stavrou 57599b1d73
Simplify diff-hl faces
The ones that are specific to Dired already inherit from where they
should.  This avoids the duplication.
2022-10-24 07:13:46 +03:00
Protesilaos Stavrou d784a1591d
Add support for olivetti 2022-10-23 11:26:27 +03:00
Protesilaos Stavrou b65dabc06b
Recompile Info manual 2022-10-23 04:11:49 +03:00
Protesilaos Stavrou bc8604e93e
BREAKING Make modus-themes-fringes visible
Change the default value so that the background is a subtle gray.  The
idea is to provide a more usable out-of-the-box experience for those
who are not aware that the themes are customisable.

To restore the old default with the invisible fringes, add this to the
init file before loading the theme:

    (setq modus-themes-fringes nil)

As with all user options for themes, changes are applied upon theme
reload.
2022-10-23 04:11:05 +03:00
Protesilaos Stavrou 3c272ec34a
BREAKING Make modus-themes-hl-line intense
Change the default value so that the background of the currently
highlighted line with 'hl-line-mode' is a more intense gray than the
previous design.  The idea is to provide a more usable out-of-the-box
experience for those who are not aware that the themes are
customisable.

To restore the old default with the more subtle gray, add this to the
init file before loading the theme:

    (setq modus-themes-hl-line nil)

As with all user options for themes, changes are applied upon theme
reload.
2022-10-23 03:58:36 +03:00
Protesilaos Stavrou 681e031739
BREAKING Make modus-themes-completions intense
Change the default value so that the background of the selected line
is a more intense gray than the previous design.  The idea is to
provide a more usable out-of-the-box experience for those who are not
aware that the themes are customisable.

To restore the old default with the more subtle gray, add this to the
init file before loading the theme:

    (setq modus-themes-completions nil)

As with all user options for themes, changes are applied upon theme
reload.
2022-10-23 03:50:22 +03:00
Protesilaos Stavrou 9f4cdec106
Make dev version 3.0.0 instead of 2.8.0
I plan to introduce some breaking changes (nothing major, but still)
so it is better to express this in the version number.  This will be
done in the interest of a better out-of-the-box experience for most
users.  I am timing it to coincide with the cut of the emacs-29
branch, which is expected in November.
2022-10-23 03:34:20 +03:00
Protesilaos Stavrou 8a5bfdd4fd
Change modus-themes-completion-match-1 from cyan to blue
This improves the legibility of those matches relative to
modus-themes-completion-match-0 and the other groups.
2022-10-23 03:29:32 +03:00
Protesilaos Stavrou cbd33fbd17
Remove old obsolete notices
Version 2.3.0 was released in April, 2.2.0 in February.  I think that
is plenty of time for users to make adjustments.
2022-10-22 15:36:09 +03:00
Protesilaos Stavrou a6fdd14ebb
Recompile Info manual 2022-10-22 06:16:25 +03:00
Protesilaos Stavrou 7e3d53f485
Amend commit 39830fc
It was just a rewording of the doc string.  No need to update the
version numbers.
2022-10-22 06:15:43 +03:00
Protesilaos Stavrou 39830fccef
Reword modus-themes-fringes docs for clarity 2022-10-22 04:26:06 +03:00
Protesilaos Stavrou b31564a2dd
Remove mct reference from modus-themes-completions
I have long deprecated that package.  I removed it from the themes in
commit d86f895 on 2022-07-26.
2022-10-22 03:54:47 +03:00
Protesilaos Stavrou b42b754e94
Simplify modus-themes-version 2022-10-22 03:29:39 +03:00
Protesilaos Stavrou 7dbd19f174
Tweak a couple of doc strings 2022-10-22 03:29:16 +03:00
Protesilaos Stavrou 8ce12ca687
Simplify telega-entity-type-pre face
The ':extend t' attribute does not work.  For it to have the desired
effect, the underlying fontification regexp must include the newline
character.  As a result, the face does not produce a code "block".
This new face is more appropriate in this regard.

Thanks to Pablo Stafforini for showing me screenshots of how it looks,
as I am not a telega/telegram user and cannot do this myself.  Done as
part of issue 170 on the GitLab mirror:
<https://gitlab.com/protesilaos/modus-themes/-/issues/170#note_1143975582>.
2022-10-21 05:06:49 +03:00
Protesilaos Stavrou 092a9048b3
Amend 4c45169
This is what I wanted to use.
2022-10-19 05:56:19 +03:00
Protesilaos Stavrou 0ff09b3ab6
Acknowledge Pablo Stafforini for the feedback in 4c45169
See https://gitlab.com/protesilaos/modus-themes/-/issues/170#note_1130421067
2022-10-19 05:54:48 +03:00
Protesilaos Stavrou 4f650af7ee
Remove comment from telega faces
It probably is okay after all those months where no-one has complained.
2022-10-19 05:53:08 +03:00
Protesilaos Stavrou 4c45169b3f
Tweak telega code and pre faces
The 'telega-entity-type-code' is now subject to the value of the user
option 'modus-themes-markup'.  By default, it looks like Org
=verbatim= entities.  The 'telega-entity-type-pre' has the same style
as fenced code blocks in Markdown.

We cannot inherit from Org or another package, as there is no
guarantee it has been loaded by the time the relevant telega buffer is
displayed (in general, we do not let faces inherit from arbitrary face
groups).

Thanks to Pablo Stafforini for the feedback in issue 170 on the GitLab
mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/170#note_1130421067>.
2022-10-19 05:52:04 +03:00
Protesilaos Stavrou d9e4546031
Revert modus-themes-toggle obsolete
The 'toggle-theme' is not functionally equivalent to the command
'modus-themes-toggle' due to the optional arguments it accepts.  With
'toggle-theme' we are prompted to confirm loading the theme.  We also
get a second prompt that tells us how unsafe themes can be...  This is
consistent with how 'load-theme' works, but is not what the user of
'modus-themes-toggle' has come to expect.

Users who do not like to maintain a 'custom-file' are thus penalised
each time they invoke the command.  I will proceed with this
deprecation, if there is, say, a user option in Emacs that disables
those prompts each time a theme is loaded.  Basically, we need an
arrangement that just toggles themes without questions.

This commit reverts 59da1b3, 0260109.

Read the discussion on the mailing list with the participation of
Philip Kaludercic and Rudolf Adamkovič:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C877d116lh4.fsf%40posteo.net%3E#%3Cm2lepgrd8l.fsf@me.com%3E>.
2022-10-18 11:00:22 +03:00
Protesilaos Stavrou 0260109d15
Amend 59da1b3
Sorry, I pushed the wrong code...
2022-10-16 18:29:14 +03:00
Protesilaos Stavrou 59da1b3511
Deprecate modus-themes-toggle in Emacs 29
This is done to be consistent with the work done in emacs.git.  Thanks
to Philip Kaludercic and Rudolf Adamkovič for their feedback on the
mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C877d116lh4.fsf%40posteo.net%3E>.
2022-10-16 18:16:58 +03:00
Protesilaos Stavrou 6783341110
Update modus-themes--version 2022-10-16 18:11:01 +03:00
Protesilaos Stavrou 73a6b71975
Remove attributes from textsec-suspicious face
It applies a background, but does not affect the foreground.  The
result is inaccessible.

There is no need for such a background though, as the warnings are
accompanied by the relevant emoji.
2022-10-16 18:06:28 +03:00
Philip Kaludercic 5fee33731e
Add theme property tags for modus-{operandi,vivendi}-theme
* modus-operandi-theme.el: Add autoloaded theme properties.
* modus-vivendi-theme.el: Add autoloaded theme properties.

As introduced in https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-10/msg00886.html.
2022-10-15 23:22:33 +03:00
Protesilaos Stavrou 7e0ea7c976
Remove some consult "preview" faces
This is to match the current style of the Consult project:
1343e39fef
2022-10-12 14:33:13 +03:00
Protesilaos Stavrou 72e1b47484
Fix modus-vivendi one-line description 2022-10-09 17:00:00 +03:00
Protesilaos Stavrou 7872863eda
Use bespoke colors for the highlight-regexp faces
We cannot use our ordinary entries from each theme's palette as those
are not designed to handle such an edge case.  Those faces need to use
the inverse-video attribute which, in turn, affects the combinations
of color we can apply.  Our accented backgrounds are designed to
contrast well with our nominal main foreground values, whereas this
case demands colored backgrounds that contrast well with what would
normally be the main background color.  Furthermore, this case
requires that colored backgrounds are faithful to their name so that,
say, hi-yellow is yellowish.

Thanks to Kevin Kainan Li for the feedback on the mailing list, where
they informed me that the previous design was too dark/mute (and I
agreed with that assessment) and provided feedback on my samples:
<https://lists.sr.ht/~protesilaos/modus-themes/%3CCAMTq2Vp3Nnzv-i9wJdq4-OJ4X_QfWXySpUtAieBy0dgKLEOSBg%40mail.gmail.com%3E>.
2022-10-04 05:41:43 +03:00
Protesilaos Stavrou 7b9304f668
Add support for the diff-changed-unspecified face
It was introduced in Emacs 28.
2022-10-02 19:49:49 +03:00
Protesilaos Stavrou ad5cb41daf
Fix some typos 2022-10-01 10:52:35 +03:00
Protesilaos Stavrou 05f331d061
Fix typo 2022-10-01 10:51:20 +03:00
Protesilaos Stavrou 0b42e595fb
Bump to 2.7.1 because I forgot all headers... 2022-10-01 10:42:07 +03:00
Protesilaos Stavrou 1d55785ab0
Update to version 2.7.0 2022-10-01 10:24:44 +03:00
Protesilaos Stavrou a7c17f36f1
Make minor rewordings in the manual 2022-10-01 10:23:54 +03:00
Protesilaos Stavrou c65ea67673
Make gnus-summary-low-unread inherit from italic
This helps differentiate it from the gnus-summary-high-unread face.

Thanks to Mark Simpson for pointing out the possibility of conflating
those two faces: <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2r0zszc2z.fsf@gmail.com%3E>.
2022-10-01 04:22:25 +03:00
Protesilaos Stavrou aed22dd122
Update Acknowledgements for commit b333550 2022-09-29 08:15:53 +03:00
Koen van Greevenbroek b333550383
Fix example configuration of circadian in modus manual 2022-09-29 08:15:10 +03:00
Protesilaos Stavrou 375450fbdb
Support log-edit-headers-separator (Emacs 29) 2022-09-27 15:57:30 +03:00
Protesilaos Stavrou ee35a9af34
Remove needless TODO
There has never been any demand for this.  No need to keep it around.
2022-09-21 16:23:28 +03:00
Protesilaos Stavrou 10a0c9f422
Reinstate support for centaur-tabs
I had removed support for centaur-tabs in commit 2235ce5 (done on
2022-08-02).  I wrote:

    centaur-tabs has a bug where it cannot read the value of a face if it
    uses the standard ':inherit' attribute.  I have sent a patch to fix it,
    but have received no response since February:
    <https://github.com/ema2159/centaur-tabs/pull/179>.

    Relevant reports:

    - <https://github.com/protesilaos/modus-themes/issues/30>
    - <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
    - <https://github.com/protesilaos/modus-themes/issues/15>

    I am happy to reinstate support for centaur-tabs as soon as the package
    gets the maintenance it needs.

My patch/pull-request is now merged and the package is actively
maintained once again.  Hence the decision to bring back support for it,
as promised.
2022-09-20 08:39:38 +03:00
Protesilaos Stavrou e4ee971f53
Add prescient to list of supported packages 2022-09-11 05:26:33 +03:00
Protesilaos Stavrou 56844e1f8f
Acknowledge okamsn for commit c58ef64
The contribution is below the ~15 line threshold and thus does not
require copyright assignment to the Free Software Foundation.
2022-09-11 05:23:45 +03:00
Protesilaos Stavrou 7db7f03026
Merge pull request #41 from okamsn/new-prescient
Move `selectrum-prescient` faces to `prescient`.
2022-09-11 05:21:03 +03:00
okamsn c58ef647a5 Move selectrum-prescient faces to prescient. 2022-09-10 22:07:10 -04:00
Protesilaos Stavrou 845a8bfd7b
Add support for icon-button (Emacs 29) 2022-09-05 05:57:44 +03:00
Protesilaos Stavrou d0a62f6c95
Add node to the manual about goto-address-mode 2022-09-03 08:23:20 +03:00
Protesilaos Stavrou ced0d8995d
Cover read-multiple-choice-face
The default attributes it has are technically okay, though I think this
makes the keys stand out more.  We use the same design for Org's export
dispatcher (the 'org-dispatcher-highlight').
2022-09-03 07:25:51 +03:00
Antonio Ruiz 6dd3c0ef81
Add support for crontab-mode 2022-09-02 05:32:12 +03:00
Protesilaos Stavrou c018c83c5e
Fix error by typo in c80eed8
Thanks to Luis Miguel Castañeda for reporting it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C7h7d2oudpb.fsf@imaginarymagnitude.net%3E>.
2022-08-31 09:36:57 +03:00
Protesilaos Stavrou c80eed8585
Remove obsolete AUCTeX face; add its underline face 2022-08-31 04:08:26 +03:00
Protesilaos Stavrou fb7e470f06
Add support for Company scrollbar faces 2022-08-30 05:06:44 +03:00
Protesilaos Stavrou 562ebb7e49
Refine modus-vivendi bg-diff-focus-removed
This makes the default removed diff background slightly more luminant.
The colour is seen in diff-mode, ediff, and the Magit focused diff hunk.

When the user option 'modus-themes-diffs' is set to either 'bg-only' or
'desaturated', this colour is used to highlight word-wise ("refined")
changes.  The increased luminance lets it stand out more compared to the
more subtle backdrop.

Thanks to Kévin Le Gouguec for bringing this issue to my attention and
for discussing it with me:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87bks4i9tg.fsf@gmail.com%3E>
2022-08-30 04:25:47 +03:00
Protesilaos Stavrou 330cf93d19
Make fill-column-indicator more noticeable
This is in response to private messages I received and this thread:
<https://lists.gnu.org/archive/html/help-gnu-emacs/2022-08/msg00255.html>.

The core idea is that the previous design is (1) "invisible" and (2)
prevents the customisation of display-fill-column-indicator-character.

I can address point 1, but point 2 puts us in an awkward spot as we
would then not have to use a background and a height value.  Not doing
so produces a dashed line by default, with the dashes further apart the
greater the line-spacing is.  It looks broken.
2022-08-26 04:29:24 +03:00
Protesilaos Stavrou 777089c0ff
Document support for spell-fu
Thanks to Antonio Ruiz for the patch:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87fshnq7uv.fsf%40purelymail.com%3E>.

It is below the ~15 line threshold and thus requires no copyright
assignment to the Free Software Foundation.
2022-08-23 22:19:26 +03:00
Antonio Ruiz e9ceaf902d
Add support for spell-fu 2022-08-23 22:18:03 +03:00
Protesilaos Stavrou e85d2c14dc
Fix even more typos in the manual 2022-08-19 15:29:06 +03:00
Protesilaos Stavrou ea07008020
Fix more typos in the manual 2022-08-19 15:27:58 +03:00
Protesilaos Stavrou e4d698d445
Fix a couple of typos 2022-08-19 15:24:11 +03:00
Protesilaos Stavrou 976f52b34a
Update to version 2.6.0 2022-08-19 12:26:20 +03:00
Protesilaos Stavrou d654f0e1a6
Clarify wording about solaire 2022-08-19 12:21:43 +03:00
Protesilaos Stavrou 4d8314d893
Make markdown-gfm-checkbox-face same as org-checkbox
This continues the work done in commit 2b0c31b.  The change comes from
the discussion on the mailing list where it became apparent that a bit
of colour is needed for such constructs (my suggestion for
'yellow-alt-other' was well received):
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2fsi9cja4.fsf%40me.com%3E>

Thanks to Rudolf Adamkovič, Christian Tietze, and Karthik Chikmagalur
for their participation.
2022-08-19 11:56:36 +03:00
Protesilaos Stavrou ad9fbc44ad
Fix typo in doc string 2022-08-19 11:03:05 +03:00
Protesilaos Stavrou d4e769910e
Fix double hyphen in commit 1609065 2022-08-19 10:49:55 +03:00
Protesilaos Stavrou 1609056946
Stop using deprecated alias of symbol in private fn 2022-08-19 10:48:43 +03:00
Protesilaos Stavrou 7e08e8b8e5
Add support for mu4e-related-face
Thanks to Simon Pugnet for the feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87edxhvqwp.fsf@polaris64.net%3E>
2022-08-15 11:56:02 +03:00
Protesilaos Stavrou d40d5a5a1e
Make font-lock-warning-face adapt to comments
This changes the face to a red hue when the user adds a value to
'modus-themes-syntax' which includes 'yellow-comments'.

Before, this face was indistinguishable from yellow comments.

Thanks to Augusto Stoffel for the feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87r11k1c22.fsf%40gmail.com%3E>
2022-08-13 17:15:42 +03:00
Protesilaos Stavrou 2b0c31b94d
Apply foreground colour to org-checkbox
This concerns checkboxes like:

- [ ] A list itme
- [ ] Another list itme
- [X] Completed list item

The idea is to let them stand out a bit, without drawing too much
attention to themselves.

The exact colour may not be final.

Thanks to Rudolf Adamkovič and Christian Tietze for their feedback on
the mailing list: <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2fsi9cja4.fsf%40me.com%3E>
2022-08-09 19:44:55 +03:00
Protesilaos Stavrou 418d9541e5
Add support for consult-preview-insertion face
There are two reasons for adding this:

1. It decouples it from the 'region' face, which means that the user
   option 'modus-themes-region' no longer has an effect on it.

2. It make it look consistent with the 'rectangle-preview' face (see it
   in action with C-x SPC, move point down a few lines, type C-t and then
   insert some text).  I feel these sort of previews need to look the same,
   though I don't have a strong attachment to the style now in use.
2022-08-06 20:40:08 +03:00
Protesilaos Stavrou a9399d08ce
Remove warning about solaire-mode from the README
I removed support for it in commit 7bc79ba.  Please read the commit
message for the explanation or check the manual:
<https://protesilaos.com/emacs/modus-themes#h:439c9e46-52e2-46be-b1dc-85841dd99671>.
2022-08-04 08:06:37 +03:00
Protesilaos Stavrou 974122a225
Avoid confusion in modus-themes--version docstring 2022-08-04 08:00:17 +03:00
Protesilaos Stavrou 4015c9dc04
Update the version for this development cycle 2022-08-04 07:59:28 +03:00
Protesilaos Stavrou 7a04a60292
Update acknowledgements
This is for commit 93c291e which is below the ~15 line threshold and
thus does not require copyright assignment to the free software
foundation.

The patch was sent by Paul David as pull request 39 over at the GitHub
mirror: <https://github.com/protesilaos/modus-themes/pull/39>
2022-08-04 07:57:09 +03:00
Protesilaos Stavrou 7d0cebf065
Add missing paren in the manual (same as 93c291e) 2022-08-04 07:56:09 +03:00
Protesilaos Stavrou 0d1d818884
Merge pull request #39 from toothbrush/patch-1
README: Trivial fix for missing parens.
2022-08-04 07:53:45 +03:00
paul david 93c291e10e
README: Trivial fix for missing parens. 2022-08-04 14:50:30 +10:00
Protesilaos Stavrou 7bc79ba94e
REMOVE support for solaire-mode
Quoting from the manual:

    The 'solaire-mode' package dims the background of what it considers
    ancillary buffers, such as the minibuffer and Dired buffers.  The
    Modus themes used to support Solaire on the premise that the user
    was (i) opting in to it, (ii) understood why certain buffers were
    more gray, and (iii) knew what other adjustments had to be made to
    prevent broken visuals (e.g. the default style of the
    'modus-themes-completions' uses a subtle gray background for the
    selection, which with Solaire becomes practically invisible).

    However, the assumption that users opt-in to this feature does not
    always hold true in many cases as it is enabled by default in at
    least the very popular Doom Emacs configuration.  Thus, the
    unsuspecting user who loads 'modus-operandi' or 'modus-vivendi'
    without the requisite customizations is getting a sub-par
    experience; an experience that we did not intend.

    Because the Modus themes are meant to work everywhere, we cannot
    make an exception for Doom Emacs users.  Furthermore, we shall not
    introduce hacks, such as by adding a check in all relevant faces to
    be adjusted based on Solaire or whatever other package.  Hacks of
    this sort are unsustainable and penalize all users.  Besides, the
    themes are built into Emacs and we must keep their standard high.

    As such, 'solaire-mode' is not---and will not be---supported by the
    Modus themes.  Users who want it must style the faces manually.
    Below is some sample code, based on what we cover at length
    elsewhere in this manual:

    [...]
2022-08-04 06:30:51 +03:00
Protesilaos Stavrou 63bdbe120d
Clarify need for theme re-load in the manual
It is already mentioned elsewhere, but it is good to repeat it here as
the reader may be missing the context.
2022-08-04 06:01:20 +03:00
Protesilaos Stavrou 64f9378a51
Update to version 2.5.0 2022-08-03 14:04:14 +03:00
Protesilaos Stavrou f04842805f
Refine highlight-thing face
This makes it stand out more and it also aligns it with the standard
'match' face, which is appropriate here.
2022-08-03 10:03:10 +03:00
Protesilaos Stavrou d3decb214d
Remove support for paradox
I periodically test the packages we support to see if they have any
updates we need to cover but also to confirm that they work.  When I
tried paradox, it took over my C-c g binding which I have for Magit.  As
an Emacs user, I consider this an unacceptable transgression.

Looking at paradox's git repo, the project is not maintained.  If things
change, I am happy to reinstate support for it.
2022-08-03 09:31:33 +03:00
Protesilaos Stavrou 9d3d2b04e1
Remove support for frog-menu
I have not seen this package being used anywhere.  I suspect it is
because it has not found a niche between transient, hydra, and embark.

If you think this is a mistake, please let me know: I shall reconsider
this decision.
2022-08-03 09:20:18 +03:00
Protesilaos Stavrou 2bb6d3487b
Make dired-git-info more colourful
It is easier to differentiate it from the Dired listing.
2022-08-03 09:15:46 +03:00
Protesilaos Stavrou d32abfe4b4
Remove explicit support for dynamic-ruler
1. The package does not build on my Emacs 29.
2. Its default faces are good enough even without our recolouring.
2022-08-03 09:11:58 +03:00
Protesilaos Stavrou 0a65330460
Increase intensity of easy-jekyll-help-face 2022-08-03 09:08:44 +03:00
Protesilaos Stavrou b9b95bf7d0
Add support for chart.el (built-in) 2022-08-03 07:07:49 +03:00
Protesilaos Stavrou 12e790f315
Recompile Info manual 2022-08-02 13:22:15 +03:00
Protesilaos Stavrou 2235ce5937
Remove support for centaur-tabs (unmaintained)
centaur-tabs has a bug where it cannot read the value of a face if it
uses the standard ':inherit' attribute.  I have sent a patch to fix it,
but have received no response since February:
<https://github.com/ema2159/centaur-tabs/pull/179>.

Relevant reports:

- <https://github.com/protesilaos/modus-themes/issues/30>
- <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
- <https://github.com/protesilaos/modus-themes/issues/15>

I am happy to reinstate support for centaur-tabs as soon as the package
gets the maintenance it needs.
2022-08-02 13:05:37 +03:00
Protesilaos Stavrou 935da3bc3f
Remove explicit support for emacs-dashboard
It is still indirectly supported as it default faces have nothing
faulty.
2022-08-02 13:01:34 +03:00
Protesilaos Stavrou 966a526006
Warn about limited color support for previews
This message is only shown when 'modus-themes-list-colors' (or the
alternative 'modus-themes-list-colors-current') is called in a terminal
with limited color support.
2022-07-31 09:42:03 +03:00
Protesilaos Stavrou 8939a32ced
Add support for edmacro-label face (Emacs 29) 2022-07-31 09:35:08 +03:00
Protesilaos Stavrou 4211bcd6db
Refactor color previewing buffer
This is the buffer which is produced by the commands
'modus-themes-list-colors' and 'modus-themes-list-colors-current'.

1. If color palette overrides are defined, show them instead of the
   original color.

2. Add a 'revert-buffer-function' to the buffer, which retains the
   effect that produced the buffer.

3. Simplify the 'modus-themes-list-colors' by moving its 'let' binding
   to 'modus-themes--list-colors-render'.
2022-07-27 09:06:51 +03:00
Protesilaos Stavrou 20d2942e8d
Tweak comment 2022-07-27 09:06:51 +03:00
Protesilaos Stavrou d2e057b370
Reformat line spacing 2022-07-27 08:22:49 +03:00
Protesilaos Stavrou 8567d60bf0
Introduce complete demo of palette overrides 2022-07-26 19:13:57 +03:00
Protesilaos Stavrou 2e27e1c612
Update the manual's "Acknowledgements" 2022-07-26 19:13:24 +03:00
Protesilaos Stavrou d86f895418
Remove outdated reference to mct in the manual 2022-07-26 16:09:49 +03:00
Protesilaos Stavrou e44e579381
Tweak default font-lock-warning-face foreground 2022-07-26 13:24:38 +03:00
Protesilaos Stavrou b36e06f007
Revise powerline faces
The previous design was misusing accent values and was thus incompatible
with something like:

    (setq modus-themes-mode-line '(accented))

Furthermore, the previous design was hardcoding the blue colour, which
is potentially inappropriate for those who want/need to use the color
overriding user options we provide.
2022-07-26 11:13:37 +03:00
Protesilaos Stavrou 00e30f1a1a
Note that Debian package is severely out-of-date
Even on Debian Sid, they are on version 1.0.2:
<https://packages.debian.org/sid/elpa-modus-themes>.

I don't think anyone should use that and will remove this entry from the
manual if things do not change in the near future.
2022-07-24 09:57:52 +03:00
Protesilaos Stavrou 960ddb7211
Prevent alt-syntax from desaturating yellow-comments
This applies to the user option 'modus-themes-syntax' when it contains
the 'alt-syntax' and 'yellow-comments' properties:

    (setq modus-themes-syntax '(alt-syntax faint yellow-comments))

The previous design was incorrect because it was using the faint variant
of the yellow comments, as if the user had specified:

    (setq modus-themes-syntax '(alt-syntax faint yellow-comments))
2022-07-23 11:35:19 +03:00
Protesilaos Stavrou c763a67768
Make rectangle-preview a bit more noticeable
The previous background was too subtle can could be hard to discern in
some contexts.
2022-07-23 09:26:54 +03:00
Protesilaos Stavrou 6ae36d5214
Fix typo in doc string
Thanks to Rudolf Adamkovič for mentioning it on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87bktlvgyy.fsf@rfc20.org%3E#%3Cm2v8rroa0z.fsf@me.com%3E>.
2022-07-20 22:37:43 +03:00
Protesilaos Stavrou 03c2457a89
Recompile Info manual 2022-07-20 16:30:57 +03:00
Protesilaos Stavrou b95c576fb6
Address byte compilation warnings in doc strings
Thanks to Matt Armstrong for the feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87bktlvgyy.fsf@rfc20.org%3E>.
2022-07-19 08:39:14 +03:00
Protesilaos Stavrou a08c9618cd
Remove outdated entries from the manual 2022-07-19 08:36:28 +03:00
Protesilaos Stavrou d4148687be
Refill a few lines for legibility 2022-07-16 17:52:41 +03:00
Protesilaos Stavrou a135569c37
Add more colour to date background in Org agenda
Makes it easier to discern where the highlight is, while it remains
close to the spirit of the previous design.  The idea is to not add too
much saturation here, because the buffer is already "busy" with lots of
highlights.

Thanks to Daniel Mendler for the feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C3d8b1096-a7db-1e08-fefe-d39bed4a7ea3@daniel-mendler.de%3E>.
2022-07-16 17:49:46 +03:00
Protesilaos Stavrou abe2047067
Refine colour of Compose key in PGTK builds
The underline seems to be hard-coded, so I am removing it from the face
here.
2022-07-14 14:15:20 +03:00
Protesilaos Stavrou bee9dda7ac
Revise man/woman faces; add more saturation
A while ago I desaturated the 'Man-overstrike' and 'woman-bold' on the
premise that the added bold weight would be sufficient.  However, the
bold weight may sometimes be insufficient, such as at small point sizes
or with certain font configurations.  As such, the added colour is
necessary.
2022-07-13 15:47:17 +03:00
Protesilaos Stavrou fc936326f9
Fix :link in defcustom for color overrides 2022-07-11 08:01:42 +03:00
Protesilaos Stavrou 2860a94f78
Set org-document-title via modus-themes-headings
The user option 'modus-themes-headings' now reads a level 0 heading.  It
accepts the same list of properties as all other levels.  Currently only
the Org document title is covered, but we may cover more faces if need
be.

Sample:

    (setq modus-themes-headings
          '((0 . (variable-pitch light (height 1.9)))
            (1 . (variable-pitch light (height 1.6) overline))
            (2 . (variable-pitch regular (height 1.4) overline))
            (3 . (variable-pitch regular (height 1.3) overline))
            (4 . (rainbow (height 1.2)))
            (5 . (rainbow (height 1.1)))
            (t . (variable-pitch extrabold (height 1.05)))))

Read the documentation of 'modus-themes-headings' for the technicalities.

Thanks to Rudolf Adamkovič for proposing the idea on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2y1x5tewl.fsf@me.com%3E>.

Given this change, I am also tweaking the default foreground value of
the org-document-title.  It is a bit more saturated, but remains close
to the spirit of the previous one.
2022-07-08 17:08:24 +03:00
Protesilaos Stavrou 64c8009b3e
Update lazy highlight colour (AMEND c0c542a)
I accidentaly kept a testing value.  This is the cool/cyan I wanted.
2022-07-08 15:50:44 +03:00
Protesilaos Stavrou e09ff58a20
Make selectrum quick keys look like Avy 2022-07-08 15:35:56 +03:00
Protesilaos Stavrou e4108585cb
Remove 'bold' from active/lazy search
As commits c0c542a and ffe8cbe improve the state of affairs with regard
to the applicable colours, the inclusion of the 'bold' face is no longer
necessary.  Before we needed the 'bold' because the colours were not
sufficiently distinct.

Also, the bold weight makes paragraphs rendered in the 'variable-pitch'
face (or proportional fonts in general) jump around as the user moves
between the matches.  This was reported by Augusto Stoffel on the
mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87sfnbswe9.fsf@gmail.com%3E>.
2022-07-08 15:24:57 +03:00
Protesilaos Stavrou ffe8cbe205
REVISE query-replace colours (read commit c0c542a)
These now use a red hue, as the yellow one is applied to the current
match (per commit c0c542a).
2022-07-08 15:23:06 +03:00
Protesilaos Stavrou c0c542a573
REVISE current and lazy search colours
The previous combinations were not optimal, as the default green and
cyan are too close to each other.  Depending on factors such
environmental lighting and the quality of the monitor, green and cyan
may be indistinguishable.

The previous combinations was also not ideal when the user option
'modus-themes-deuteranopia' was set to a non-nil value: blue compared to
a subtle teal can also be problematic under certain circumstances.

The new colours (intense yellow for active matches and cool/cyan for
lazy ones) are complementary, meaning that there are naturally easy to
tell apart.  These specific hues are also well-suited for users with
red-green colour deficiency: yellow stays as-is, while the cool colour
becomes a bit more grey though remains distinct.  As such, we do not
need to run the helper function 'modus-themes--deuteran' to set the
style based on the value of 'modus-themes-deuteranopia'.

The new colours do not clash with the style of the 'match' face, nor
with the various permutations of the 'region' face (subject to the user
option 'modus-themes-region').
2022-07-08 15:14:58 +03:00
Protesilaos Stavrou 7ff26d1267
Recompile Info manual 2022-07-06 15:33:39 +03:00
Protesilaos Stavrou edc2d2c922
Streamline sesman faces for theme-wide consistency 2022-07-06 15:29:09 +03:00
Protesilaos Stavrou b750324aba
REMOVE support for my mct package
A few months ago I announced that its development is discontinued.
Either use vertico or switch to what Emacs provides as a built-in
option:
<https://protesilaos.com/codelog/2022-04-14-emacs-discontinue-mct/>.
2022-07-06 15:27:53 +03:00
Protesilaos Stavrou d04a5f5251
REMOVE support for cursor-flash
Its default face should be visible enough.
2022-07-06 15:27:27 +03:00
Protesilaos Stavrou ef0e3f5229
Make denote-faces-keywords optionally bold
This means that it will inherit the 'bold' face only when the user
option 'modus-themes-bold-constructs' is non-nil.
2022-07-05 10:57:05 +03:00
Protesilaos Stavrou 7a1cbd71c7
Document support for denote as part of development 2022-07-05 10:54:54 +03:00
Protesilaos Stavrou 5b44ac6340
Add support for Denote
A package of mine that is available on GNU ELPA:
<https://protesilaos.com/emacs/denote>
2022-07-05 10:52:37 +03:00
Protesilaos Stavrou 563d00dafd
Make the manual's front matter easier to read 2022-07-01 07:51:58 +03:00
Protesilaos Stavrou 712a9f446b
Add support for leerzeichen
Package source: <https://github.com/fgeller/leerzeichen.el>.
2022-06-30 09:59:50 +03:00
Protesilaos Stavrou 7241ea0a41
Restore link to mailing list archive 2022-06-29 08:46:58 +03:00
Protesilaos Stavrou 9eda0afacf
Name the mailing list address as the "Maintainer:"
This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:
<https://lists.sr.ht/~protesilaos/general-issues/%3C875ykl84yi.fsf%40posteo.net%3E>.
2022-06-28 20:34:44 +03:00
Protesilaos Stavrou 5d35fed1ab
Make syslog error/info/warn inherit basic faces
It is better for theme-wide consistency.
2022-06-28 09:34:19 +03:00
Protesilaos Stavrou a840f0714d
Make speedbar highlight inherit from 'highlight'
No need for its own style here.
2022-06-28 09:33:45 +03:00
Protesilaos Stavrou e376f658a0
Use more consistent styles for org-noter
Inheriting the success face instead of hardcoding a green colour makes
things work properly with 'modus-themes-deuteranopia'.
2022-06-28 09:14:33 +03:00
Protesilaos Stavrou e207484039
Recompile Info manual 2022-06-28 08:58:41 +03:00
Protesilaos Stavrou a66b30547e
REMOVE support for org-treescope
The package points to a GitHub repo, which is archived.  The current
source is on GitLab, but the package is not updated accordingly.  This
makes me believe it is not actively maintained and am thus removing it
from the list.
2022-06-28 08:56:48 +03:00
Protesilaos Stavrou 70bdd38d93
Refine Deft faces 2022-06-28 08:50:04 +03:00
Protesilaos Stavrou 8fb0e4abca
Mention the fontaine package in the manual
I am its author.
2022-06-26 17:47:57 +03:00
Protesilaos Stavrou 58402fbddb
Mention the lin package in the manual
I am its author.
2022-06-26 17:47:28 +03:00
Protesilaos Stavrou 6f0eda73a7
Revise all 'hi-*' faces using bespoke colours
Notice the use of :inverse-video as a means of preventing hl-line-mode
from overriding the background.  This is necessary due to the particular
requirements of this interface.

With default key bindings, type M-s h C-h to see relevant commands that
use these faces.

Thanks to Damien Cassou for the feedback on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87bkuk1o24.fsf%40cassou.me%3E>.
2022-06-23 16:01:52 +03:00
Protesilaos Stavrou 469ff07139
Enhance colour of list-packages available package 2022-06-23 09:05:56 +03:00
Protesilaos Stavrou e7b6c2c3ff
Make package help headers same as in message.el
This ensures theme-wide consistency.
2022-06-23 09:04:29 +03:00
Protesilaos Stavrou 2def36d538
Use consistent colours for list-packages status 2022-06-23 09:02:18 +03:00
Protesilaos Stavrou 74e773a8a4
Warn Doom Emacs users about Solaire 2022-06-23 06:19:11 +03:00
Protesilaos Stavrou e342e3568c
Add support for info+
As is the case with PACKAGE+ packages from the Emacs Wiki, info+ defines
lots of faces that hardcode colour values instead of inheriting from
basic faces.  It does so for no good reason.  Furthermore, these faces
colourise too much, making the buffer harder to read.

Some of the changes I introduce here outright remove colouration, while
others align the various constructs with the overall aesthetic of the
themes.

Note that, by default, info+ adds clickable buttons to glossary terms.
This produces awkward combinations such as by buttonising the "string"
component inside of what actually is a function's argument.  So you
have, say, FORMAT-[STRING] where "[]" represents the button: the FORMAT
gets one face and the [STRING] another, even though they are part of a
single argument.  To me this looks broken and is counter-productive,
though it is not up to the theme to decide how packages fontify the
various constructs.  At any rate, button styles at the theme level are
controlled by the user option 'modus-themes-box-buttons'.

Thanks to Jonas Collberg for the feedback in issue 33 over at the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/33>.
2022-06-14 10:23:44 +03:00
Protesilaos Stavrou 554a75fba9
Make the hard reset retain default font family
This should fix the issue reported by André Alexandre Gomes:

* <https://lists.sr.ht/~protesilaos/modus-themes/%3C874k1d9utu.fsf%40gmail.com%3E>
* <https://github.com/magit/magit/discussions/4696>

[ We use the reset to ensure that overlays are not affected by the
  underlying face attributes (e.g. bigger font size, italics, ...). ]
2022-06-14 08:59:41 +03:00
Protesilaos Stavrou d68d0b64a6
Update theme sources in the README 2022-06-14 08:15:29 +03:00
Protesilaos Stavrou 5d68eda096
Fix line-number scale of modus-themes-mixed-fonts
We want 'display-line-numbers-mode' to scale harmoniously with the rest
of the buffer when the user invokes 'text-scale-adjust'.  Before, this
would not happen if the user option 'modus-themes-mixed-fonts' was
non-nil.
2022-06-11 09:57:55 +03:00
Protesilaos Stavrou 6f2b048528
Remove support for built-in vc-annotate
It has not been working properly for a long time now.  Colours are unset
and are not re-applied when switching between modus-operandi and
modus-vivendi.

Furthermore, the way vc-annotate-color-map intersects with
vc-annotate-background-mode puts us in an awkward spot: when the mode is
non-nil, the mapped values are used as backgrounds WITHOUT giving us the
chance to make the appropriate adjustments to the foreground (so we end
up with inaccessible colour combinations).  This means that we must fix
a problem which is not ours by overriding the user option of the
background altogether.  A theme outright disabling user options is bad
form.

Even documenting a user-level set of configurations will not suffice, as
the results are unreliable.  I tried the code which I copy further below
to test annotation with/without background, plus the change in values
when switching between modus-operandi and modus-vivendi.  Again, colours
are not updated properly (I know the buffer of M-x vc-annotate needs to
be generated again), as modus-operandi may retain the values set by
modus-vivendi or vice-versa.

Ultimately, I feel vc-annotate needs to be refactored to use ordinary
faces in ordinary ways.  Or, at least, not try to outsmart the
user/theme about the choice of colours.

Thanks to Philip Kaludercic for starting the thread about the
vc-annotate-background-mode which reminded me about this problem:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C875ylfxkgi.fsf@posteo.net%3E>.

The code I alluded to:

    (setq vc-annotate-background-mode nil)

    (defun my-modus-themes-vc-annotate ()
      ;; Actual values are for demo purposes
      (modus-themes-with-colors
        (if vc-annotate-background-mode
            (setq vc-annotate-background bg-alt
                  vc-annotate-color-map
                  `((20 .  ,red-intense-bg)
                    (40 .  ,red-subtle-bg)
                    (60 .  ,red-refine-bg)
                    (80 .  ,yellow-intense-bg)
                    (100 . ,yellow-subtle-bg)
                    (120 . ,yellow-refine-bg)
                    (140 . ,magenta-intense-bg)
                    (160 . ,magenta-subtle-bg)
                    (180 . ,magenta-refine-bg)
                    (200 . ,cyan-intense-bg)
                    (220 . ,cyan-subtle-bg)
                    (240 . ,cyan-refine-bg)
                    (260 . ,green-intense-bg)
                    (280 . ,green-subtle-bg)
                    (300 . ,green-refine-bg)
                    (320 . ,blue-intense-bg)
                    (340 . ,blue-subtle-bg)
                    (360 . ,blue-refine-bg)))
          (setq vc-annotate-background nil
                vc-annotate-color-map
                `((20 . ,red)
                  (40 . ,magenta)
                  (60 . ,magenta-alt)
                  (80 . ,red-alt)
                  (100 . ,yellow)
                  (120 . ,yellow-alt)
                  (140 . ,fg-special-warm)
                  (160 . ,fg-special-mild)
                  (180 . ,green)
                  (200 . ,green-alt)
                  (220 . ,cyan-alt-other)
                  (240 . ,cyan-alt)
                  (260 . ,cyan)
                  (280 . ,fg-special-cold)
                  (300 . ,blue)
                  (320 . ,blue-alt)
                  (340 . ,blue-alt-other)
                  (360 . ,magenta-alt-other))))))

    (add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-vc-annotate)
2022-06-05 20:14:33 +03:00
Protesilaos Stavrou 467aab7137
Bump to 2.4.1 2022-06-01 13:45:45 +03:00
Protesilaos Stavrou 7401a62378
Make modus-themes-report-bug interactive 2022-06-01 13:38:47 +03:00
Protesilaos Stavrou 191f2a6856
Update to version 2.4.0 2022-06-01 13:05:51 +03:00
Protesilaos Stavrou 7be6ff01d0
Explain "version" in 'modus-themes--version' 2022-06-01 10:06:29 +03:00
Protesilaos Stavrou 1901552a97
Clarify note about git-gutter tweaks in Doom Emacs 2022-06-01 09:53:56 +03:00
Protesilaos Stavrou 9958ecd45a
Remove accidentally added face 2022-05-27 17:25:08 +03:00
Protesilaos Stavrou 3f593fd4e0
Add support for EIN (Emacs IPython Notebook)
Thanks to Maxime Tréca for the feedback in issue 31 over at the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/31>.
2022-05-27 17:23:53 +03:00
Protesilaos Stavrou 810a035768
Add note about custom hl-todo colours 2022-05-26 08:17:52 +03:00
Protesilaos Stavrou cf4f308ad1
Add minor tweak for commit 11c701a 2022-05-23 09:14:53 +03:00
Protesilaos Stavrou 11c701a9ac
Make deuteranopia combine with modus-themes-diffs
Before, when modus-themes-deuteranopia was non-nil it would affect diffs
by forcibly applying the default style of modus-themes-diffs with the
sole difference of replacing greens with blues.

Now all these combinations work as intended:

    (setq modus-themes-deuteranopia t
          modus-themes-diffs 'desaturated) ; nil, 'desaturated, 'bg-only

Thanks to Kevin Le Gouguec for the feedback:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C878rqt4jhm.fsf@gmail.com%3E>.
2022-05-23 08:44:17 +03:00
Protesilaos Stavrou 9c80eba37d
Update manual's Acknowledgements
Adding Manuel Giraud for commits 04a70d2, aadf178.
2022-05-20 06:50:04 +03:00
Protesilaos Stavrou 9f1ad6e731
Comment on 'default' fallback for 'line-number' 2022-05-20 06:45:11 +03:00
Manuel Giraud aadf1788b7
Tweak how 'org-date' uses optional fixed-pitch
No need to use a condition when 'modus-themes-fixed-pitch' does that
already.

This is relevant when 'modus-themes-mixed-fonts' is non-nil.
2022-05-20 06:41:32 +03:00
Manuel Giraud 04a70d256e
Make key bindings use optional fixed-pitch
This applies when 'modus-themes-mixed-fonts' is non-nil.
2022-05-20 06:38:58 +03:00
Protesilaos Stavrou b6285162d8
Add note in manual about git-gutter on Doom Emacs
Thanks to Gonçalo Marrafa for reporting the issue, testing the code on
Doom Emacs, and suggesting the inclusion of the reference to the
'after!' call.
2022-05-12 21:08:04 +03:00
Protesilaos Stavrou 0494b9bfa0
Recompile manual 2022-05-12 13:07:53 +03:00
Protesilaos Stavrou 1a900505bd
Document how to deal with byte compilation errors 2022-05-12 13:07:38 +03:00
Protesilaos Stavrou 5795c7c29e
Reword a sentence; remove outdated phrase 2022-05-12 13:06:39 +03:00
Protesilaos Stavrou b1f94b20a9
Revert "Disable byte compilation"
This reverts commit 3d6221e284.  Upon
further inspection, the issue is specific to Emacs 29.  I tried to build
the package with Emacs 27, 28, 29, and only the latter produces the
error.
2022-05-12 11:57:40 +03:00
Protesilaos Stavrou 3d6221e284
Disable byte compilation
Commit f067d2e explains at length the rationale for wrapping the
reification of the themes in 'eval-and-compile'.  While that appears to
solve the problem documented therein, it creates a new one: when we try
to byte compile a theme, we get:

    Error: Lisp nesting exceeds ‘max-lisp-eval-depth’

I think byte compilation is nice to have, but it keeps giving us
problems.  I am thus disabling it until further notice.

[ Themes shipped with Emacs are not byte compiled (includes
  modus-operandi and modus-vivendi).  I have seen third-party themes do
  the same, such as Bozhidar Batsov's zenburn. ]

Thanks to Omar Antolín Camarena (@oantolin) for reporting the
aforementioned error.
2022-05-11 19:18:18 +03:00
Protesilaos Stavrou d00946e80b
Tweak format of internal function 2022-05-10 17:32:39 +03:00
Protesilaos Stavrou 6117ec171b
Add note in manual about PHP multiline comments 2022-05-10 06:32:44 +03:00
Protesilaos Stavrou 4da9042dbc
Simplify variants of font-lock-warning-face 2022-05-08 12:09:44 +03:00
Protesilaos Stavrou 5cd7f47e6e
Refine some colour combinations for "alt syntax"
These are relevant when value of the user option 'modus-themes-syntax'
includes the symbol 'alt-syntax' (and combinations thereof).
2022-05-06 09:16:25 +03:00
Protesilaos Stavrou e034dcaa16
Acknowledge Andrew Tropin for Guix package
Current patch: <https://issues.guix.gnu.org/55268>.
2022-05-05 21:41:27 +03:00
Protesilaos Stavrou 842c672a81
Use correct order of inheritance for markup faces
This fixes a problem where not all typographic attributes where applied
to the faces when 'modus-themes-mixed-fonts' was non-nil and the value
of 'modus-themes-markup' included '(bold italic)'.
2022-05-05 10:37:34 +03:00
Protesilaos Stavrou ee0670f85b
Recompile Info manual 2022-05-04 07:38:45 +03:00
Protesilaos Stavrou 522da95261
Add links to two more articles on the themes 2022-05-04 07:38:25 +03:00
Protesilaos Stavrou 14161b3c08
Reword a statement in the manual 2022-05-04 07:37:56 +03:00
Protesilaos Stavrou f50c7bb579
Remove outdated docs about Avy
Its colours have been reviewed.  Read:
<https://protesilaos.com/codelog/2022-04-20-modus-themes-case-study-avy/>.
2022-05-04 07:33:24 +03:00
Protesilaos Stavrou 94f39c7c6f
Disable keycast padding in lieu of better solution 2022-05-03 18:28:24 +03:00
Protesilaos Stavrou 493c8e8cc6
Make fountain comments same as other comments
Avoids the creation of inconsistencies, such as when the user has the
following:

    (setq modus-themes-syntax '(yellow-comments))
2022-05-02 08:13:05 +03:00
Protesilaos Stavrou 40b5b7497b
Make git commit/rebase comments inherit font-lock
This makes it possible to customise 'font-lock-comment-face' and have
the changes apply to those faces as well.  Such a customisation can, for
example, involve the change of the font family or the addition of a
background colour.  We want the whole comment block, including those
special keywords from Git, to look consistent.

This change also makes git-{commit,rebase}-comment-heading attain the
foreground colour of comments, instead of the default one (black or
white).  It makes it look part of the comment block.
2022-05-02 08:05:28 +03:00
Protesilaos Stavrou a42c171038
Stop using 'inverse-video' in powerline
We now apply the colours directly.  The reason is that 'inverse-video'
makes it tricky to override the face as it swaps the foreground with the
background.  That behaviour is only needed in special cases: powerline
is not one of them.

Thanks to Thibaut Verron for the feedback in issue 305 over at the
GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/305>.
2022-04-27 17:14:20 +03:00
Protesilaos Stavrou 29b8a11504
Tweak foreground of calibredb library name
Thanks to Ivan Popovych for the feedback:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87czhcdk8b.fsf%40protesilaos.com%3E#%3C87ee1my87s.fsf@gmail.com%3E>.
2022-04-25 06:33:50 +03:00
Protesilaos Stavrou f2445a43d8
Cover new calibredb faces
See: <https://github.com/chenyanming/calibredb.el/pull/60>.
2022-04-23 06:40:45 +03:00
Protesilaos Stavrou a1752787db
Add support for calibredb
I have tried to limit the wanton use of colour in the relevant buffers
and also align the package with the overall style of the themes.

The currently selected line is affected by the user option
'modus-themes-hl-line'.

Thanks to Ivan Popovych for the feedback over at the official mailing
list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87zgkgroi7.fsf%40gmail.com%3E>.
2022-04-22 08:52:46 +03:00
Protesilaos Stavrou af3b52ac79
Remove supported packages from the Commentary
That sort of information belongs to the manual.
2022-04-22 08:29:21 +03:00
Protesilaos Stavrou e8f1b89974
Clarify a statement in the manual 2022-04-21 13:21:08 +03:00
Protesilaos Stavrou 173c6685ac
Escape URLs in README.md to avoid 404 errors 2022-04-21 10:57:14 +03:00
Protesilaos Stavrou c71114127c
Make package sources easier to find 2022-04-21 10:04:40 +03:00
Protesilaos Stavrou 5738d159d7
Review Avy by using bespoke colours
Please read the analysis:
<https://protesilaos.com/codelog/2022-04-20-modus-themes-case-study-avy/>.

Thanks to Daniel Mendler and Damien Cassou for their feedback:

* <https://lists.sr.ht/~protesilaos/modus-themes/%3C83f18e2e-d726-0248-72f5-95e896cbcf4c%40daniel-mendler.de%3E>
* <https://lists.sr.ht/~protesilaos/modus-themes/%3C87czhgt5nm.fsf%40cassou.me%3E>
2022-04-20 11:54:29 +03:00
Protesilaos Stavrou 0751e31230
Support face rotation in highlight-changes-mode
This is done with the 'highlight-changes-rotate-faces' command when
'highlight-changes-mode' is enabled (the mode is built into Emacs).

Thanks to Philip Kaludercic for the feedback on the mailing list:
https://lists.sr.ht/~protesilaos/modus-themes/<878rs14il4.fsf@posteo.net>
2022-04-19 11:50:32 +03:00
Protesilaos Stavrou 9928e20172
Make vertico-quick blue consistent with avy's
Read the message in commit 872b717.
2022-04-18 19:49:07 +03:00
Protesilaos Stavrou 872b71772e
Make the avy "blue" colour more readable
Relevant quote and my explanation:

    > it feels to me that the colors used for avy aren't easy to read,
    > especially the black foreground on blue background. I'm using
    > modus-themes because I have a problem seeing contrast with an overall
    > bad vision and I'm usually very happy with the colors you pick: I'm
    > wondering why this is different with these colors.

    I see what you mean.  Here we have a case where the 7:1 ratio is not
    consistent with the legibility we perceive.  The blue and the black have
    a 10:1 contrast, but it still feels inadequate:

        (modus-themes-contrast "#77baff" "#000000")
        ;; => 10.251949912839315

    My hypothesis is that this is because of colour perception: blue is the
    darkest colour so blue and black feels like "dark and dark".

I have had at least one more case where the modus-themes-intense-blue
felt hard to read while using modus-operandi.  I had already reviewed
the blue-intense-bg, but I plan to do so again.  Though I also need to
analyse how it is used.  For the time being, I feel this problem is
specific to Avy, due to the visuals of its interaction model.

Any small surface area with an intense background that contains a single
character can be harder to read, as the eye may blend everything into a
solid block (especially for black on blue).  When the area is larger,
the eye no longer blends the foreground and the background, making
everything appear at its nominal contrast ratio, which in our particular
case is > 10:1 (i.e. very high).

Thanks to Damien Cassou for the feedback:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87czhgt5nm.fsf%40cassou.me%3E>.
2022-04-18 19:31:38 +03:00
Protesilaos Stavrou 2329803b86
Add modus-themes-report-bug, modus-themes-version
The 'modus-themes-version' should be helpful for those who follow the
Git repo and need to report a bug.

The 'modus-themes-report-bug' might help users find the email address of
the mailing list and get started there.
2022-04-17 10:59:02 +03:00
Protesilaos Stavrou 7f9ee33e8f
Remove outdated reference to variable 2022-04-15 05:36:05 +03:00
Daniel Mendler 15fe9503c3
Do not require seq at runtime 2022-04-14 12:22:23 +03:00
Protesilaos Stavrou dd2b51a76f
Note that egerit is indirectly supported
This is a new package by Niklas Eklund which provides an Emacs interface
to Gerrit: <https://gitlab.com/niklaseklund/egerrit>.
2022-04-13 21:44:46 +03:00
Protesilaos Stavrou df59b4ca8d
Stop using a timestamp
It can lead to situations where there is a mismatch between the latest
change and the recorded time.  It also introduces a barrier to entry for
contributors, as they need to set up 'time-stamp.el'.
2022-04-11 08:12:50 +03:00
Protesilaos Stavrou 9c17c57889
Remove needless list from single item inherit 2022-04-11 08:12:13 +03:00
Protesilaos Stavrou 7184ef2eed
Add mailing list link; update docs 2022-04-11 08:09:16 +03:00
Protesilaos Stavrou ea65e7de40
Placate the compiler regarding a spurious warning 2022-04-11 08:06:57 +03:00
Nicolas De Jaeghere 7cdf9302a3
Harmonize file-name-shadow face 2022-04-09 16:14:19 +03:00
Protesilaos Stavrou a3a12c0afb
Make regexp constructs optionally bold
This means that they will use a bold weight when the user option
'modus-themes-bold-constructs' is non-nil.  This design is consistent
with all other aspects of syntax highlighting.  These specific faces
were unconditionally bold due to a mistake of mine.

[ Remember to check the manual on what "a bold weight" means, as we make
everything easy to customise:
<https://protesilaos.com/emacs/modus-themes#h:2793a224-2109-4f61-a106-721c57c01375>. ]
2022-04-08 12:41:08 +03:00
Protesilaos Stavrou cf04c27f4f
Make tree-sitter operator optionally bold
They will get a bold weight only when 'modus-themes-bold-constructs' are
non-nil.

Thanks to Przemysław Kryger for the feedback in issue 303 over at the
GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/303>.
2022-04-08 12:06:16 +03:00
Protesilaos Stavrou b5aa33d2df
Add support for tree-sitter
My intent was to reduce the overall colouration produced by the default
tree-sitter faces.  These tweaks give us good results, though there
still are some cases where tree-sitter exaggerates the styles it uses,
such as by combining types with constants to produce ad-hoc (anonymous)
faces.  We cannot do anything about anonymous faces at the theme level.
As such, we may get an extra bold weight[1] when we would rather not
have it and/or a different colour than the one desired.

Thanks to Przemysław Kryger for the feedback in issue 303 over at the
GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/303>.

[1] When 'modus-themes-bold-constructs' is non-nil.
2022-04-08 09:46:16 +03:00
Protesilaos Stavrou 874a2834b5
Update link to official repo in CHANGELOG 2022-04-07 13:42:23 +03:00
15 changed files with 22448 additions and 14939 deletions

File diff suppressed because it is too large Load diff

View file

@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
modus-themes
Copyright (C) 2019-2022 Free Software Foundation, Inc.
Copyright (C) 2019-2023 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
modus-themes Copyright (C) 2019-2022 Free Software Foundation, Inc.
modus-themes Copyright (C) 2019-2023 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

321
README.md
View file

@ -1,230 +1,137 @@
# Modus themes for GNU Emacs (Modus Operandi and Modus Vivendi)
# Modus themes for GNU Emacs
A pair of highly accessible themes that conform with the WCAG AAA
standard for colour contrast between background and foreground
combinations (a minimum contrast of 7:1---the highest standard of its
kind). The Modus themes also strive to empower users with red-green
color deficiency: this is achieved through customisation options that
replace all relevant instances of green with blue, as well as the
overall design of the themes which relies mostly on colours that cover
the blue-cyan-magenta side of the spectrum.
IMAGES HERE: <https://protesilaos.com/emacs/modus-themes-pictures>.
The themes are built into GNU Emacs 28 (development target). They are
also distributed in several packages formats.
Highly accessible themes, conforming with the highest standard for
colour contrast between background and foreground values (WCAG AAA).
They also are optimised for users with red-green colour deficiency.
+ `modus-operandi` is light.
+ `modus-vivendi` is dark.
The themes are very customisable and provide support for a very wide
range of packages. Their manual is detailed so that new users can get
started, while it also provides custom code for all sorts of more
advanced customisations.
For some demo content, check:
Since August 2020, the original Modus themes (`modus-operandi`,
`modus-vivendi`) are built into Emacs version 28 or higher. Emacs 28
ships with `modus-themes` version `1.6.0`. Emacs 29 includes version
`3.0.0`. Emacs 30 provides a newer, refactored version that
thoroughly refashions how the themes are implemented and customized.
Such major versions are not backward-compatible due to the limited
resources at my disposal to support multiple versions of Emacs and of
the themes across the years.
+ The screenshots of the themes <https://protesilaos.com/emacs/modus-themes-pictures/>.
+ My videos on Emacs <https://protesilaos.com/code-casts/>.
Starting with version `5.0.0` of the `modus-themes`, other packages
can be built on top to provide their own "Modus" derivative themes.
The manual has a section about building on top of Modus. My
`ef-themes` and `standard-themes` are done in this way (versions
`2.0.0` and `3.0.0`, respectively).
## Quick setup for the latest version
### Built-in version
For the themes that are built into Emacs you cannot `require` the
package. Use the following instead.
With `use-package`:
```elisp
(use-package emacs
:init
;; Add all your customizations prior to loading the themes
(setq modus-themes-italic-constructs t
modus-themes-bold-constructs nil
modus-themes-region '(bg-only no-extend))
:config
;; Load the theme of your choice:
(load-theme 'modus-operandi) ;; OR (load-theme 'modus-vivendi)
:bind ("<f5>" . modus-themes-toggle)
```
Without `use-package`:
```elisp
;; Add all your customizations prior to loading the themes
(setq modus-themes-italic-constructs t
modus-themes-bold-constructs nil
modus-themes-region '(bg-only no-extend))
;; Load the theme of your choice:
(load-theme 'modus-operandi) ;; OR (load-theme 'modus-vivendi)
(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
```
### Packaged version
With `use-package`:
+ Package name (GNU ELPA): `modus-themes`
+ Official manual: <https://protesilaos.com/emacs/modus-themes>
+ Change log: <https://protesilaos.com/emacs/modus-themes-changelog>
+ Colour palette: <https://protesilaos.com/emacs/modus-themes-colors>
+ Sample pictures: <https://protesilaos.com/emacs/modus-themes-pictures>
+ Git repositories:
+ GitHub: <https://github.com/protesilaos/modus-themes>
+ GitLab: <https://gitlab.com/protesilaos/modus-themes>
+ Backronym: My Old Display Unexpectedly Sharpened ... themes.
```elisp
(use-package modus-themes
:ensure
:ensure t
:demand t
:init
;; Add all your customizations prior to loading the themes
(setq modus-themes-italic-constructs t
modus-themes-bold-constructs nil
modus-themes-region '(bg-only no-extend))
;; Load the theme files before enabling a theme
(modus-themes-load-themes)
;; Starting with version 5.0.0 of the `modus-themes', other packages
;; can be built on top to provide their own "Modus" derivatives.
;; For example, this is what I do with my `ef-themes' and
;; `standard-themes' (starting with versions 2.0.0 and 3.0.0,
;; respectively).
;;
;; The `modus-themes-include-derivatives-mode' makes all Modus
;; commands that act on a theme consider all such derivatives, if
;; their respective packages are available and have been loaded.
;;
;; Note that those packages can even completely take over from the
;; Modus themes such that, for example, `modus-themes-rotate' only
;; goes through the Ef themes (to this end, the Ef themes provide
;; the `ef-themes-take-over-modus-themes-mode' and the Standard
;; themes have the `standard-themes-take-over-modus-themes-mode'
;; equivalent).
;;
;; If you only care about the Modus themes, then (i) you do not need
;; to enable the `modus-themes-include-derivatives-mode' and (ii) do
;; not install and activate those other theme packages.
(modus-themes-include-derivatives-mode 1)
:bind
(("<f5>" . modus-themes-rotate)
("C-<f5>" . modus-themes-select)
("M-<f5>" . modus-themes-load-random))
:config
;; Load the theme of your choice:
(modus-themes-load-operandi) ;; OR (modus-themes-load-vivendi)
:bind ("<f5>" . modus-themes-toggle))
;; Your customizations here. All customizations must evaluated
;; BEFORE loading the theme.
(setq modus-themes-to-toggle '(modus-operandi modus-vivendi)
modus-themes-to-rotate modus-themes-items
modus-themes-mixed-fonts t
modus-themes-variable-pitch-ui t
modus-themes-italic-constructs t
modus-themes-bold-constructs t
modus-themes-completions '((t . (bold)))
modus-themes-prompts '(bold)
modus-themes-headings
'((agenda-structure . (variable-pitch light 2.2))
(agenda-date . (variable-pitch regular 1.3))
(t . (regular 1.15))))
(setq modus-themes-common-palette-overrides nil)
;; Finally, load your theme of choice (or a random one with
;; `modus-themes-load-random', `modus-themes-load-random-dark',
;; `modus-themes-load-random-light').
(modus-themes-load-theme 'modus-operandi))
```
Without `use-package`:
## Links to other projects
```elisp
(require 'modus-themes)
In this section I collect links to other themes built on top of Modus,
have Modus as a dependency, or are porting Modus to some other
platform. You are welcome to append your project to the relevant list.
;; Add all your customizations prior to loading the themes
(setq modus-themes-italic-constructs t
modus-themes-bold-constructs nil
modus-themes-region '(bg-only no-extend))
In linking to these projects, I am not endorsing anybody's views.
;; Load the theme files before enabling a theme
(modus-themes-load-themes)
### Emacs themes based on Modus
;; Load the theme of your choice:
(modus-themes-load-operandi) ;; OR (modus-themes-load-vivendi)
This is not an exhaustive list. You are welcome to add your package
here. Newer projects are at the bottom and are added as I am made
aware of them.
(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
```
- `ef-themes` by Protesilaos <https://github.com/protesilaos/ef-themes>
- `standard-themes` by Protesilaos <https://github.com/protesilaos/standard-themes>
- `modus-ewal-theme` by Oliwier Czerwiński <https://github.com/deadendpl/modus-ewal-theme>
- `modus-flexoki` by Derek Passen <https://github.com/dpassen/modus-flexoki>
- `faff-theme` (since version 4) by James Ferguson <https://github.com/WJCFerguson/emacs-faff-theme>
- `modus-catpuccin` by Magnus Therning <https://gitlab.com/magus/modus-catppuccin>
- `pixel-themes` by Lucas <https://github.com/lucasobx/pixel-themes>
- `modus-nordic` (`modus-nordic-night` and `modus-nordic-midnight`) by Ashton Wiersdorf <https://codeberg.org/ashton314/modus-nordic-night>
- `folio-theme` by kn66 (nobu43) <https://github.com/kn66/folio-theme.el>
- `modus-alabaster` by Derek Passen <https://github.com/dpassen/modus-alabaster>
- `modus-vague` by Ashish Panigrahi <https://github.com/paniash/modus-vague.git>
- `peppers-theme` by Joar von Arndt <https://codeberg.org/joar/peppers-theme>
Note: make sure that you **do not customise** `custom-theme-load-path`
or `custom-theme-directory` _after_ the themes' package declaration.
That will lead to failures in loading the files. If you must change
those variables, do it before the package declaration.
### Other Emacs packages based on Modus
## All customisations in short
- `modus-themes-exporter` by Protesilaos <https://github.com/protesilaos/modus-themes-exporter>
While you should read the manual for all the details (see next section),
here is a snippet with all current customisation options and their
possible values. Note that those settings are only for purposes of
demonstration:
### Projects inspired by the Modus themes
```elisp
(setq modus-themes-italic-constructs t
modus-themes-bold-constructs nil
modus-themes-mixed-fonts nil
modus-themes-subtle-line-numbers nil
modus-themes-intense-mouseovers nil
modus-themes-deuteranopia t
modus-themes-tabs-accented t
modus-themes-variable-pitch-ui nil
modus-themes-inhibit-reload t ; only applies to `customize-set-variable' and related
This is not an exhaustive list. You are welcome to add your project here.
modus-themes-fringes nil ; {nil,'subtle,'intense}
;; Options for `modus-themes-lang-checkers' are either nil (the
;; default), or a list of properties that may include any of those
;; symbols: `straight-underline', `text-also', `background',
;; `intense' OR `faint'.
modus-themes-lang-checkers nil
;; Options for `modus-themes-mode-line' are either nil, or a list
;; that can combine any of `3d' OR `moody', `borderless',
;; `accented', a natural number for extra padding (or a cons cell
;; of padding and NATNUM), and a floating point for the height of
;; the text relative to the base font size (or a cons cell of
;; height and FLOAT)
modus-themes-mode-line '(accented borderless (padding . 4) (height . 0.9))
;; Same as above:
;; modus-themes-mode-line '(accented borderless 4 0.9)
;; Options for `modus-themes-markup' are either nil, or a list
;; that can combine any of `bold', `italic', `background',
;; `intense'.
modus-themes-markup '(background italic)
;; Options for `modus-themes-syntax' are either nil (the default),
;; or a list of properties that may include any of those symbols:
;; `faint', `yellow-comments', `green-strings', `alt-syntax'
modus-themes-syntax nil
;; Options for `modus-themes-hl-line' are either nil (the default),
;; or a list of properties that may include any of those symbols:
;; `accented', `underline', `intense'
modus-themes-hl-line '(underline accented)
;; Options for `modus-themes-paren-match' are either nil (the
;; default), or a list of properties that may include any of those
;; symbols: `bold', `intense', `underline'
modus-themes-paren-match '(bold intense)
;; Options for `modus-themes-links' are either nil (the default),
;; or a list of properties that may include any of those symbols:
;; `neutral-underline' OR `no-underline', `faint' OR `no-color',
;; `bold', `italic', `background'
modus-themes-links '(neutral-underline background)
;; Options for `modus-themes-box-buttons' are either nil (the
;; default), or a list that can combine any of `flat', `accented',
;; `faint', `variable-pitch', `underline', `all-buttons', the
;; symbol of any font weight as listed in `modus-themes-weights',
;; and a floating point number (e.g. 0.9) for the height of the
;; button's text.
modus-themes-box-buttons '(variable-pitch flat faint 0.9)
;; Options for `modus-themes-prompts' are either nil (the
;; default), or a list of properties that may include any of those
;; symbols: `background', `bold', `gray', `intense', `italic'
modus-themes-prompts '(intense bold)
;; The `modus-themes-completions' is an alist that reads three
;; keys: `matches', `selection', `popup'. Each accepts a nil
;; value (or empty list) or a list of properties that can include
;; any of the following (for WEIGHT read further below):
;;
;; `matches' - `background', `intense', `underline', `italic', WEIGHT
;; `selection' - `accented', `intense', `underline', `italic', `text-also' WEIGHT
;; `popup' - same as `selected'
;; `t' - applies to any key not explicitly referenced (check docs)
;;
;; WEIGHT is a symbol such as `semibold', `light', or anything
;; covered in `modus-themes-weights'. Bold is used in the absence
;; of an explicit WEIGHT.
modus-themes-completions '((matches . (extrabold))
(selection . (semibold accented))
(popup . (accented intense)))
modus-themes-mail-citations nil ; {nil,'intense,'faint,'monochrome}
;; Options for `modus-themes-region' are either nil (the default),
;; or a list of properties that may include any of those symbols:
;; `no-extend', `bg-only', `accented'
modus-themes-region '(bg-only no-extend)
;; Options for `modus-themes-diffs': nil, 'desaturated, 'bg-only
modus-themes-diffs 'desaturated
modus-themes-org-blocks 'gray-background ; {nil,'gray-background,'tinted-background}
modus-themes-org-agenda ; this is an alist: read the manual or its doc string
'((header-block . (variable-pitch 1.3))
(header-date . (grayscale workaholic bold-today 1.1))
(event . (accented varied))
(scheduled . uniform)
(habit . traffic-light))
modus-themes-headings ; this is an alist: read the manual or its doc string
'((1 . (overline background variable-pitch 1.3))
(2 . (rainbow overline 1.1))
(t . (semibold))))
```
## Further information
Read the [Info manual HTML](https://protesilaos.com/emacs/modus-themes)
version for how to install, load, enable, and customise the themes. If
you are using the latest version of the themes, you already have the
manual installed: evaluate `(info "(modus-themes) Top")` to start
reading it.
The themes cover a broad range of packages and are highly customisable.
- `hugo-modus` by Yejun Su is a theme for the Hugo static site
generator: <https://github.com/goofansu/hugo-modus>. It uses colours
from the Modus themes.
- `modus-themes.nvim` by Miika Nissi and others is a port for NeoVim:
<https://github.com/miikanissi/modus-themes.nvim>.
- `zed-modus-themes` by Vitaly Slobodin is a port for the Zed editor:
<https://github.com/vitallium/zed-modus-themes>.
- `word-smith` by Sadsnake1 is a distraction-free writing for Obsidian
that includes ports of the Modus themes: <https://github.com/Sadsnake1/word-smith>
- `omarchy-modus-themes` by Dhavan Vaidya: <https://github.com/codingquark/omarchy-modus-themes>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,95 @@
;;; modus-operandi-deuteranopia-theme.el --- Deuteranopia-optimized theme with a white background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(defcustom modus-operandi-deuteranopia-palette-user nil
"Like the `modus-operandi-deuteranopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-deuteranopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-deuteranopia-palette-overrides nil
"Overrides for `modus-operandi-deuteranopia-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-operandi-deuteranopia
'modus-themes
"Deuteranopia-optimized theme with a white background.
This variant is optimized for users with red-green color
deficiency (deuteranopia). It 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)."
'light
'modus-themes-operandi-deuteranopia-palette
'modus-operandi-deuteranopia-palette-user
'modus-operandi-deuteranopia-palette-overrides
'modus-themes-faces-deuteranopia)
(provide 'modus-operandi-deuteranopia-theme)
;;; modus-operandi-deuteranopia-theme.el ends here

View file

@ -1,11 +1,10 @@
;;; modus-operandi-theme.el --- Elegant, highly legible and customizable light theme -*- lexical-binding:t -*-
;;; modus-operandi-theme.el --- Elegant, highly legible theme with a white background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2022 Free Software Foundation, Inc.
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://git.sr.ht/~protesilaos/modus-themes
;; Version: 2.3.2
;; Package-Requires: ((emacs "27.1"))
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
@ -25,48 +24,69 @@
;;; Commentary:
;;
;; Modus Operandi is the light variant of the Modus themes (Modus
;; Vivendi is the dark one). The themes are designed for color-contrast
;; accessibility. More specifically:
;;
;; 1. Provide a consistent minimum contrast ratio between background
;; and foreground values of 7:1 or higher. This meets the highest
;; such accessibility criterion per the guidelines of the Worldwide
;; Web Consortium's Working Group on Accessibility (WCAG AAA
;; standard).
;;
;; 2. Offer as close to full face coverage as possible. The list is
;; already quite long, with more additions to follow as part of the
;; ongoing development process.
;;
;; For a complete view of the project, also refer to the following files
;; (should be distributed in the same repository/directory as the
;; current item):
;;
;; - modus-themes.el (Main code shared between the themes)
;; - modus-vivendi-theme.el (Dark theme)
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(eval-and-compile
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(deftheme modus-operandi
"Elegant, highly legible and customizable light theme.
(defcustom modus-operandi-palette-user nil
"Like the `modus-operandi-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-palette-overrides nil
"Overrides for `modus-operandi-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-operandi
'modus-themes
"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)."
'light
'modus-themes-operandi-palette
'modus-operandi-palette-user
'modus-operandi-palette-overrides)
(modus-themes-theme modus-operandi)
(provide-theme 'modus-operandi))
(provide 'modus-operandi-theme)
;;; modus-operandi-theme.el ends here

View file

@ -0,0 +1,92 @@
;;; modus-operandi-tinted-theme.el --- Elegant, highly legible theme with a light ochre background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(defcustom modus-operandi-tinted-palette-user nil
"Like the `modus-operandi-tinted-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-tinted-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-tinted-palette-overrides nil
"Overrides for `modus-operandi-tinted-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-operandi-tinted
'modus-themes
"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)."
'light
'modus-themes-operandi-tinted-palette
'modus-operandi-tinted-palette-user
'modus-operandi-tinted-palette-overrides)
(provide 'modus-operandi-tinted-theme)
;;; modus-operandi-tinted-theme.el ends here

View file

@ -0,0 +1,95 @@
;;; modus-operandi-tritanopia-theme.el --- Tritanopia-optimized theme with a white background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(defcustom modus-operandi-tritanopia-palette-user nil
"Like the `modus-operandi-tritanopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-tritanopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-tritanopia-palette-overrides nil
"Overrides for `modus-operandi-tritanopia-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-operandi-tritanopia
'modus-themes
"Tritanopia-optimized theme with a white background.
This variant is optimized for users with blue-yellow color
deficiency (tritanopia). It 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)."
'light
'modus-themes-operandi-tritanopia-palette
'modus-operandi-tritanopia-palette-user
'modus-operandi-tritanopia-palette-overrides
'modus-themes-faces-tritanopia)
(provide 'modus-operandi-tritanopia-theme)
;;; modus-operandi-tritanopia-theme.el ends here

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,95 @@
;;; modus-vivendi-deuteranopia-theme.el --- Deuteranopia-optimized theme with a black background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(defcustom modus-vivendi-deuteranopia-palette-user nil
"Like the `modus-vivendi-deuteranopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi-deuteranopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-deuteranopia-palette-overrides nil
"Overrides for `modus-vivendi-deuteranopia-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-vivendi-deuteranopia
'modus-themes
"Deuteranopia-optimized theme with a black background.
This variant is optimized for users with red-green color
deficiency (deuteranopia). It 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)."
'dark
'modus-themes-vivendi-deuteranopia-palette
'modus-vivendi-deuteranopia-palette-user
'modus-vivendi-deuteranopia-palette-overrides
'modus-themes-faces-deuteranopia)
(provide 'modus-vivendi-deuteranopia-theme)
;;; modus-vivendi-deuteranopia-theme.el ends here

View file

@ -1,11 +1,10 @@
;;; modus-vivendi-theme.el --- Elegant, highly legible and customizable light theme -*- lexical-binding:t -*-
;;; modus-vivendi-theme.el --- Elegant, highly legible theme with a black background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2022 Free Software Foundation, Inc.
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://git.sr.ht/~protesilaos/modus-themes
;; Version: 2.3.2
;; Package-Requires: ((emacs "27.1"))
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
@ -25,48 +24,69 @@
;;; Commentary:
;;
;; Modus Vivendi is the dark variant of the Modus themes (Modus Operandi
;; is the light one). The themes are designed for color-contrast
;; accessibility. More specifically:
;;
;; 1. Provide a consistent minimum contrast ratio between background
;; and foreground values of 7:1 or higher. This meets the highest
;; such accessibility criterion per the guidelines of the Worldwide
;; Web Consortium's Working Group on Accessibility (WCAG AAA
;; standard).
;;
;; 2. Offer as close to full face coverage as possible. The list is
;; already quite long, with more additions to follow as part of the
;; ongoing development process.
;;
;; For a complete view of the project, also refer to the following files
;; (should be distributed in the same repository/directory as the
;; current item):
;;
;; - modus-themes.el (Main code shared between the themes)
;; - modus-operandi-theme.el (Light theme)
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(eval-and-compile
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(deftheme modus-vivendi
"Elegant, highly legible and customizable dark theme.
(defcustom modus-vivendi-palette-user nil
"Like the `modus-vivendi--palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi--palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-palette-overrides nil
"Overrides for `modus-vivendi-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-vivendi
'modus-themes
"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)."
'dark
'modus-themes-vivendi-palette
'modus-vivendi-palette-user
'modus-vivendi-palette-overrides)
(modus-themes-theme modus-vivendi)
(provide-theme 'modus-vivendi))
(provide 'modus-vivendi-theme)
;;; modus-vivendi-theme.el ends here

View file

@ -0,0 +1,92 @@
;;; modus-vivendi-tinted-theme.el --- Elegant, highly legible theme with a night sky background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(defcustom modus-vivendi-tinted-palette-user nil
"Like the `modus-vivendi-tinted-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi-tinted-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-tinted-palette-overrides nil
"Overrides for `modus-vivendi-tinted-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-vivendi-tinted
'modus-themes
"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)."
'dark
'modus-themes-vivendi-tinted-palette
'modus-vivendi-tinted-palette-user
'modus-vivendi-tinted-palette-overrides)
(provide 'modus-vivendi-tinted-theme)
;;; modus-vivendi-tinted-theme.el ends here

View file

@ -0,0 +1,95 @@
;;; modus-vivendi-tritanopia-theme.el --- Tritanopia-optimized theme with a black background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2026 Free Software Foundation, Inc.
;; Author: Protesilaos <info@protesilaos.com>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The Modus themes conform with the highest standard for
;; color-contrast accessibility between background and foreground
;; values (WCAG AAA). They are also highly customizable and can even
;; be used as the basis for other themes. Please refer to the official
;; Info manual for further documentation (distributed with the themes,
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
;;; Code:
(unless (and (fboundp 'require-theme)
load-file-name
(equal (file-name-directory load-file-name)
(expand-file-name "themes/" data-directory))
(require-theme 'modus-themes t))
(require 'modus-themes))
(defcustom modus-vivendi-tritanopia-palette-user nil
"Like the `modus-vivendi-tritanopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi-tritanopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-tritanopia-palette-overrides nil
"Overrides for `modus-vivendi-tritanopia-palette'.
Mirror the elements of the aforementioned palette, overriding
their value.
For overrides that are shared across all of the Modus themes,
refer to `modus-themes-common-palette-overrides'.
Theme-specific overrides take precedence over shared overrides.
The idea of common overrides is to change semantic color
mappings, such as to make the cursor red. Wherea theme-specific
overrides can also be used to change the value of a named color,
such as what hexadecimal RGB value the red-warmer symbol
represents."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type '(repeat (list symbol (choice symbol string)))
:link '(info-link "(modus-themes) Palette overrides"))
(modus-themes-theme
'modus-vivendi-tritanopia
'modus-themes
"Tritanopia-optimized theme with a black background.
This variant is optimized for users with blue-yellow color
deficiency (tritanopia). It 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)."
'dark
'modus-themes-vivendi-tritanopia-palette
'modus-vivendi-tritanopia-palette-user
'modus-vivendi-tritanopia-palette-overrides
'modus-themes-faces-tritanopia)
(provide 'modus-vivendi-tritanopia-theme)
;;; modus-vivendi-tritanopia-theme.el ends here

372
tests/modus-themes-test.el Normal file
View file

@ -0,0 +1,372 @@
;;; modus-themes-test.el --- Unit tests for the Modus themes -*- lexical-binding: t -*-
;; Copyright (C) 2025-2026 Free Software Foundation, Inc.
;; Author: Protesilaos <info@protesilaos.com>,
;; Rudolf Adamkovič <rudolf@adamkovic.org>
;; Maintainer: Protesilaos <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; This file is NOT part of GNU Emacs.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;; Tests for the Modus themes. Note that we are using Shorthands in
;; this file, so the "mtt-" prefix really is "modus-themes-test-".
;; Evaluate the following to learn more:
;;
;; (info "(elisp) Shorthands")
;;; Code:
(require 'ert)
(require 'modus-themes)
(defmacro mtt-define-test (symbol &rest body)
"Write test for SYMBOL with BODY forms.
If the `car' of BODY is a string, use it as the docstring of the test.
Else provide a generic snippet of text."
(declare (doc-string 2) (indent defun))
(let* ((first (car body))
(has-docstring (stringp first))
(docstring (if has-docstring
first
(format "Test that `%s' does the right thing." symbol)))
(body (if has-docstring (cdr body) body)))
`(ert-deftest ,(intern (format "mtt-%s" symbol)) ()
,docstring
,@body)))
(mtt-define-test modus-themes--color-hex-p
(should (modus-themes--color-hex-p "#123"))
(should (modus-themes--color-hex-p "#123456"))
(should (modus-themes--color-hex-p "#abc"))
(should (modus-themes--color-hex-p "#ABCDEF"))
(should-not (modus-themes--color-hex-p "abc"))
(should-not (modus-themes--color-hex-p "#abcd"))
(should-not (modus-themes--color-hex-p "#12345"))
(should-not (modus-themes--color-hex-p "#1234567"))
(should-not (modus-themes--color-hex-p "#zzz"))
(should-not (modus-themes--color-hex-p "#zzz"))
(should-not (modus-themes--color-hex-p "#12g456")))
(mtt-define-test modus-themes--hex-or-name-to-rgb
(should (equal (modus-themes--hex-or-name-to-rgb "#fff") (list 1.0 1.0 1.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#000") (list 0.0 0.0 0.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#f00") (list 1.0 0.0 0.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#0f0") (list 0.0 1.0 0.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#00f") (list 0.0 0.0 1.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#ffffff") (list 1.0 1.0 1.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#000000") (list 0.0 0.0 0.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#ff0000") (list 1.0 0.0 0.0)))
(should (equal (modus-themes--hex-or-name-to-rgb "#00ff00") (list 0.0 1.0 0.0)))
;; NOTE 2026-04-12: I do not need it to be precise here, hence the `format'.
(let ((rgb-rounded-fn
(lambda (hex)
(let ((rgb (modus-themes--hex-or-name-to-rgb hex)))
(mapcar (lambda (float) (string-to-number (format "%.2f" float))) rgb)))))
(should (equal (funcall rgb-rounded-fn "#800000") (list 0.5 0.0 0.0)))
(should (equal (funcall rgb-rounded-fn "#008000") (list 0.0 0.5 0.0)))
(should (equal (funcall rgb-rounded-fn "#000080") (list 0.0 0.0 0.5))))
(should-error (modus-themes--hex-or-name-to-rgb ""))
(should-error (modus-themes--hex-or-name-to-rgb "#"))
(should-error (modus-themes--hex-or-name-to-rgb "#1"))
(should-error (modus-themes--hex-or-name-to-rgb "#12"))
(should-error (modus-themes--hex-or-name-to-rgb "#1234"))
(should-error (modus-themes--hex-or-name-to-rgb "#12345"))
(should-error (modus-themes--hex-or-name-to-rgb "#gggggg"))
(should-error (modus-themes--hex-or-name-to-rgb (list 1.0 1.0 1.0))))
(mtt-define-test modus-themes-wcag-formula
"Test that `modus-themes-wcag-formula' does the right thing.
Also see `modus-themes-test--modus-themes--hex-to-rgb'."
(should (= (modus-themes-wcag-formula "#ffffff") 1.0))
(should (= (modus-themes-wcag-formula "#000000") 0.0))
(should-error (modus-themes-wcag-formula "#00000")))
(mtt-define-test modus-themes-contrast
"Test that `modus-themes-contrast' works as intended.
Also see `modus-themes-test--modus-themes--hex-to-rgb'."
(should (= (modus-themes-contrast "#ffffff" "#000000") 21.0))
(should (= (modus-themes-contrast "#000000" "#ffffff") 21.0))
;; NOTE 2026-04-12: I do not need it to be precise here, hence the `format'.
(let ((float-2-fn (lambda (hex1 hex2) (string-to-number (format "%.2f" (modus-themes-contrast hex1 hex2))))))
(should (= (funcall float-2-fn "#ff0000" "#ffffff") 4.0))
(should (= (funcall float-2-fn "#00ff00" "#ffffff") 1.37))
(should (= (funcall float-2-fn "#0000ff" "#ffffff") 8.59))
(should (= (funcall float-2-fn "#ffff00" "#ffffff") 1.07))
(should (= (funcall float-2-fn "#00ffff" "#ffffff") 1.25))
(should (= (funcall float-2-fn "#ff00ff" "#ffffff") 3.14)))
(should-error (modus-themes-contrast "#ffffff" "#00000"))
(should-error (modus-themes-contrast "#fffff" "#00000")))
(mtt-define-test modus-themes--color-eight-to-six-digits
(should (string= (modus-themes--color-eight-to-six-digits "#f00") "#f00"))
(should (string= (modus-themes--color-eight-to-six-digits "#ff1919") "#ff1919"))
(should (string= (modus-themes--color-eight-to-six-digits "#ffff19991999") "#ff1919")))
(mtt-define-test modus-themes-adjust-value
"Test that `modus-themes-adjust-value' does the right thing.
Also see `modus-themes-test--modus-themes--hex-to-rgb'."
(should (string= (modus-themes-adjust-value "#ff0000" 10) "#ff1919"))
(should (string= (modus-themes-adjust-value "#505050" 100) "#ffffff"))
(should (string= (modus-themes-adjust-value "#505050" -100) "#000000"))
(should (string= (modus-themes-adjust-value "#505050" 0) "#505050"))
(should-error (modus-themes-adjust-value "#ff00" 10)))
(mtt-define-test modus-themes-activate
(if (custom-theme-p 'modus-operandi-tritanopia)
(should-not (modus-themes-activate 'modus-operandi-tritanopia))
(should (custom-theme-p 'modus-operandi-tritanopia))))
(mtt-define-test modus-themes--belongs-to-family-p
(should (modus-themes--belongs-to-family-p 'modus-operandi 'modus-themes))
(should-not (modus-themes--belongs-to-family-p 'my-fancy-theme 'modus-themes))
(should-not (modus-themes--belongs-to-family-p 'modus-operandi 'my-fancy-themes)))
(mtt-define-test modus-themes-get-all-known-themes
(should (equal (modus-themes-get-all-known-themes) modus-themes-items))
(should-not (modus-themes-get-all-known-themes 'my-fancy-themes)))
(mtt-define-test modus-themes--background-p
(should (modus-themes--background-p 'modus-operandi 'light))
(should-not (modus-themes--background-p 'modus-operandi 'dark))
(should-not (modus-themes--background-p 'modus-operandi t))
(should-not (modus-themes--background-p 'modus-operandi :light)))
(mtt-define-test modus-themes-sort
(let ((first-has-prefix-fn (lambda (themes prefix)
(when-let* ((first (car themes))
(name (symbol-name first)))
(string-match-p prefix name)))))
(should (funcall first-has-prefix-fn (modus-themes-sort (reverse modus-themes-items) 'light) "modus-operandi"))
(should (funcall first-has-prefix-fn (modus-themes-sort modus-themes-items 'dark) "modus-vivendi"))))
(mtt-define-test inheritance
"Ensure all faces inherit from valid faces."
;; Third-party packages, loaded if possible to better test face inheritance.
(require 'font-latex nil t)
(let ((current-theme (modus-themes-get-current-theme)))
(unwind-protect
(progn
(modus-themes-load-theme 'modus-operandi)
(should-not (seq-filter
(lambda (face)
;; The face either has no parent ...
(if-let* ((parent (face-attribute face :inherit)))
(and (symbolp parent)
(not (eq parent 'unspecified))
;; ... or its parent is a valid face.
(not (facep parent)))))
(face-list))))
(modus-themes-load-theme current-theme))))
(mtt-define-test color-dark-p
(let ((modus-operandi-sample-foregrounds
'("#a60000"
"#972500"
"#a0132f"
"#7f0000"
"#006800"
"#316500"
"#00663f"
"#2a5045"
"#6f5500"
"#884900"
"#7a4f2f"
"#624416"
"#0031a9"
"#3548cf"
"#0000b0"
"#003497"
"#721045"
"#8f0075"
"#531ab6"
"#7c318f"
"#005e8b"
"#3f578f"
"#005f5f"
"#005077"))
(modus-vivendi-sample-foregrounds
'("#ff5f59"
"#ff6b55"
"#ff7f86"
"#ff9580"
"#44bc44"
"#70b900"
"#00c06f"
"#88ca9f"
"#d0bc00"
"#fec43f"
"#dfaf7a"
"#d2b580"
"#2fafff"
"#79a8ff"
"#00bcff"
"#82b0ec"
"#feacd0"
"#f78fe7"
"#b6a0ff"
"#caa6df"
"#00d3d0"
"#4ae2f0"
"#6ae4b9"
"#9ac8e0")))
(should (seq-every-p #'modus-themes-color-dark-p modus-operandi-sample-foregrounds))
(should-not (seq-every-p #'modus-themes-color-dark-p modus-vivendi-sample-foregrounds))))
(mtt-define-test get-readable-foreground
(let ((modus-operandi-sample-foregrounds
'("#a60000"
"#972500"
"#a0132f"
"#7f0000"
"#006800"
"#316500"
"#00663f"
"#2a5045"
"#6f5500"
"#884900"
"#7a4f2f"
"#624416"
"#0031a9"
"#3548cf"
"#0000b0"
"#003497"
"#721045"
"#8f0075"
"#531ab6"
"#7c318f"
"#005e8b"
"#3f578f"
"#005f5f"
"#005077"))
(modus-vivendi-sample-foregrounds
'("#ff5f59"
"#ff6b55"
"#ff7f86"
"#ff9580"
"#44bc44"
"#70b900"
"#00c06f"
"#88ca9f"
"#d0bc00"
"#fec43f"
"#dfaf7a"
"#d2b580"
"#2fafff"
"#79a8ff"
"#00bcff"
"#82b0ec"
"#feacd0"
"#f78fe7"
"#b6a0ff"
"#caa6df"
"#00d3d0"
"#4ae2f0"
"#6ae4b9"
"#9ac8e0")))
(should (seq-every-p
(lambda (value)
(string= value "#ffffff"))
(mapcar #'modus-themes-get-readable-foreground modus-operandi-sample-foregrounds)))
(should (seq-every-p
(lambda (value)
(string= value "#000000"))
(mapcar #'modus-themes-get-readable-foreground modus-vivendi-sample-foregrounds)))))
(mtt-define-test complete-palette-mappings
"Ensure all built-in palettes contain entries for all palette mappings.
This computes a complete list of mapping names from the built-in palettes
and then cross-checks the palettes against the list. This should help ensure
consistency and completeness where adding a new mapping in one palette will
fail this test until it is added in all palettes."
(let* ((operandi-names (seq-uniq (mapcar #'car modus-themes-operandi-palette)))
(operandi-tinted-names (seq-uniq (mapcar #'car modus-themes-operandi-tinted-palette)))
(operandi-deuteranopia-names (seq-uniq (mapcar #'car modus-themes-operandi-deuteranopia-palette)))
(operandi-tritanopia-names (seq-uniq (mapcar #'car modus-themes-operandi-tritanopia-palette)))
(vivendi-names (seq-uniq (mapcar #'car modus-themes-vivendi-palette)))
(vivendi-tinted-names (seq-uniq (mapcar #'car modus-themes-vivendi-tinted-palette)))
(vivendi-deuteranopia-names (seq-uniq (mapcar #'car modus-themes-vivendi-deuteranopia-palette)))
(vivendi-tritanopia-names (seq-uniq (mapcar #'car modus-themes-vivendi-tritanopia-palette)))
(all-names (seq-uniq (append operandi-names
operandi-tinted-names
operandi-deuteranopia-names
operandi-tritanopia-names
vivendi-names
vivendi-tinted-names
vivendi-deuteranopia-names
vivendi-tritanopia-names))))
(should (seq-empty-p (seq-difference all-names operandi-names)))
(should (seq-empty-p (seq-difference all-names operandi-tinted-names)))
(should (seq-empty-p (seq-difference all-names operandi-deuteranopia-names)))
(should (seq-empty-p (seq-difference all-names operandi-tritanopia-names)))
(should (seq-empty-p (seq-difference all-names vivendi-names)))
(should (seq-empty-p (seq-difference all-names vivendi-tinted-names)))
(should (seq-empty-p (seq-difference all-names vivendi-deuteranopia-names)))
(should (seq-empty-p (seq-difference all-names vivendi-tritanopia-names)))))
(mtt-define-test modus-themes-generate-palette
"Ensure `modus-themes-generate-palette' provides enough mapping coverage
such that the generated palette does not inherit explicit color values
from a parent core palette."
(let* ((generated-palette (modus-themes-generate-palette
'((fg-main "#ffffff")
(bg-main "#000000")
(red "#ff0000")
(green "#00ff00")
(yellow "#ffff00")
(blue "#0000ff")
(magenta "#ff00ff")
(cyan "#00ffff"))))
;; These are colors we expect to have an explicit hex value,
;; either because they were provided explicitly in the call to
;; `modus-themes-generate-palette' above, or because we expect
;; `modus-themes-generate-palette' to generate the color.
(explicit-colors '( fg-main bg-main
fg-alt fg-dim bg-inactive bg-active bg-dim border
;; cyan
cyan bg-cyan-nuanced bg-cyan-subtle bg-cyan-intense
cyan-intense cyan-faint cyan-cooler cyan-warmer
;; magenta
magenta bg-magenta-nuanced bg-magenta-subtle bg-magenta-intense
magenta-intense magenta-faint magenta-cooler magenta-warmer
;; blue
blue bg-blue-nuanced bg-blue-subtle bg-blue-intense
blue-intense blue-faint blue-cooler blue-warmer
;; yellow
yellow bg-yellow-nuanced bg-yellow-subtle bg-yellow-intense
yellow-intense yellow-faint yellow-cooler yellow-warmer
;; green
green bg-green-nuanced bg-green-subtle bg-green-intense
green-intense green-faint green-cooler green-warmer
;; red
red bg-red-nuanced bg-red-subtle bg-red-intense
red-intense red-faint red-cooler red-warmer)))
;; Ensure all other colors in the palette map to a color name and not an
;; explicit hex value. If this check fails, the offending color should
;; be mapped to an appropriate color name in `modus-themes-generate-palette'.
(should (seq-empty-p (seq-remove (lambda (elem)
(or (member (car elem) explicit-colors)
(symbolp (cadr elem))))
generated-palette)))))
(provide 'modus-themes-test)
;;; modus-themes-test.el ends here
;; Local Variables:
;; read-symbol-shorthands: (("mtt" . "modus-themes-test-"))
;; End: