From 16c2c667c4e65a242ca69bcd536b9a902dabae6f Mon Sep 17 00:00:00 2001 From: Protesilaos Stavrou Date: Sat, 1 Nov 2025 07:12:53 +0200 Subject: [PATCH] Update to modus-themes version 5.0.0 --- CHANGELOG.org | 399 ++++++++++++++++++++++++++++++++++++++++++ doc/modus-themes.info | 271 ++++++++++++++-------------- doc/modus-themes.org | 14 +- modus-themes.el | 2 +- 4 files changed, 536 insertions(+), 150 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 7aaef24..663bb2d 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -15,6 +15,405 @@ For further details, please consult these additional resources: + Manual :: + Screenshots :: +* 5.0.0 on 2025-11-01 +:PROPERTIES: +:CUSTOM_ID: h:9232615a-02d7-4376-90a6-7e7570ac1c1e +:END: + +This is a major release. There are some small breaking changes. The +big new feature is that Modus can be used as the basis for other theme +projects. Two of my other theme packages, the ~ef-themes~ and the +~standard-themes~ are already done in this way: their next major +versions will formalise what I have been developing for a while now +(though the ~doric-themes~ will remain their own thing for the time +being). + +** Build on top of Modus +:PROPERTIES: +:CUSTOM_ID: h:269cd2f9-604d-4e9b-87c8-d9d91fb6d355 +:END: + +This is of immediate interest to package developers or advanced users. +It changes nothing for existing users of the Modus themes. Please +refer to the manual on the matter and feel welcome to contact me if +you have any questions---I am happy to help. + +Evaluate: + +#+begin_src emacs-lisp +(info "(modus-themes) Build on top of the Modus themes") +#+end_src + +Or visit: . + +Why build on top of Modus? To benefit from (i) the wide face coverage +and extensive detail-oriented testing, (ii) the use of palette +mappings, (iii) the palette preview done with +~modus-themes-list-colors~ or related, (iv) the inclusion of the +derivative theme in the workings of all Modus commands that load a +theme, like ~modus-themes-rotate~ and ~modus-themes-select~ (see the +new minor mode ~modus-themes-include-derivatives-mode~). + +Derivative themes can be as simple as a few extra colours on top of, +say, ~modus-operandi~. They can also be more involved, with new +palette mappings and custom faces that use them. Such themes can +define commands which load only their own themes (see +~modus-themes-define-derivative-command~) and they can even take over +the Modus themes completely, in terms of becoming the only ones that +are exposed to the commands that load a theme, like +~modus-themes-rotate~ and ~modus-themes-select~. + +Thanks to Suleyman Boyar for fixing an intermediate omission with an +earlier version of the code that derives a theme. I did eventually +change the whole approach to use a function instead of a macro, but +Suleyman's contribution was still useful at the time. This was done in +pull request 156: . +The change is small, meaning that Suleyman does not need to assign +copyright to the Free Software Foundation. + +** Colours can be copied from the palette preview buffer +:PROPERTIES: +:CUSTOM_ID: h:27ae691a-50bc-4339-af36-7e09e6060f8e +:END: + +The commands ~modus-themes-list-colors~ and ~modus-themes-list-colors-current~ +display the given theme's palette in a tabulated listing. Each line +visualises the colour it references. From that buffer it is now +possible to call the following commands (bound to the ~modus-themes-preview-mode-map~): + +| Default key binding | Name of the command | +|---------------------+----------------------------------------| +| =w= | ~modus-themes-preview-mode-copy-color~ | +| =W= | ~modus-themes-preview-mode-copy-entry~ | +| =m= | ~modus-themes-preview-mode-mark~ | +| =M= | ~modus-themes-preview-mode-mark-all~ | +| =u= | ~modus-themes-preview-mode-unmark~ | +| =U= | ~modus-themes-preview-mode-unmark-all~ | + +The ~modus-themes-preview-mode-copy-color~ and its +~modus-themes-preview-mode-copy-entry~ counterpart work on the line at +point or those that are marked. The first copies the resolved colour +value, as a string ("resolved" here means that it will find what a +palette mapping actually stands for). The second gets the complete +palette entry, as it appears in the underlying definition. This is a +starting point for writing palette overrides. + +Thanks to shimeike for reporting a problem with a regression I +introduced by mistake in one of the development versions of the +function that handles the creation of the tabulated list. This was +done in issue 163: . + +** New semantic palette mappings for programming contexts +:PROPERTIES: +:CUSTOM_ID: h:66f43975-2e97-41e6-85ec-c29e0505bd80 +:END: + +The ~fnname-call~ and ~variable-use~ are now available. They are +applied to faces that are used by major modes which build on top of +~tree-sitter~ program as well as the Emacs Lisp semantic highlighting +feature of Emacs 31. + +By default, these colours are more subtle than their ~fnname~ and +~variable~ counterparts. The reason is that I want to avoid +exaggerations with the wanton application of colour ("avoiding +exaggerations" is one of the design principles of the Modus themes). + +Because of the commitment to the highest legibility standard for +colour contrast, we are using colours that stand out in their context, +yet are still harmonious with each other. This is due to (i) careful +consideration of colour harmonies, (ii) enforced uniformity of styles +where necessary to avoid emphasising the emphasis or stating the +obvious, and (ii) the fact that not too many intense colours appear in +close proximity to each other in most Emacs major modes. If a major +mode or other feature adds colours virtually everywhere, then the +Modus themes are no longer true to their character and become +borderline unusable. + +The more subtle colours for ~fnname-call~ and ~variable-use~ do not +prevent exaggerations, though they do make them less egregious. + +[ Note that themes do not control which face is applied where. That is + the job of a major mode or specialised minor modes. When in doubt, + work with the rule that fewer colours are better than many. ] + +** Support for Emacs Lisp semantic highlighting +:PROPERTIES: +:CUSTOM_ID: h:a14057b4-f7e9-4ff7-b40c-7640559f04dc +:END: + +This is built into Emacs version 31. What it does is make different +parts of the Elisp syntax stand out visually. It also augments them +with a mouse tooltip (technically a =help-echo=) that provides +valuable insights about what the thing is. + +Thanks to Eshel Yaron, the author of this feature, for (i) asking me +to review the relevant faces, (ii) helping me understand what +"semantic highlighting" is intended for, and (iii) explaining to me +how some faces are meant to be used. This was done in the context of +Emacs bug 79677 and in an aside about a change to my minimalist +~doric-themes~ package: + +- . +- . + +I wrote to Eshel that I do not want many colours clustered together. +This design is more suitable to themes with low intensity. All my +themes exacerbate the effect of dense colouration due to their primary +design goal: legibility. + +Currently the added colouration of semantic highlighting is noticeable +far more than I like. This is a compromise on my end. Future versions +of the themes might set more semantic faces to ~nil~ (or anyhow make +them subtle), subject to further review and user feedback. + +This is not a position against semantic highlighting, but a comment on +inconsiderate themes. + +** More elements are optionally bold or italic +:PROPERTIES: +:CUSTOM_ID: h:d351403d-97d7-4c7d-b431-f9153201fc1c +:END: + +I have revised all supported faces to make them more conservative +about when they apply typographic qualities that deviate from the +default font. Many faces that were unconditionally rendered with a +bold weight or an italic slant are now subject to the user options +~modus-themes-bold-constructs~ and ~modus-themes-italic-constructs~. + +This means that they are like the default font family by default and +will become bold/italic if the relevant user option is set to a +non-~nil~ value. + +Faces that are semantically bold or italic and/or which genuinely +benefit from such typographic attributes out-of-the-box are exempt +from this. + +Headings are also exempt because they are anyway subject to the user +option ~modus-themes-headings~ which covers the height and weight of +each heading level's text. + +Thanks to chainedghost for reporting a regression in one of the +commits I made. This was done in issue 167: + + +** Support for ~lsp-mode~ and ~lsp-ui~ packages +:PROPERTIES: +:CUSTOM_ID: h:4e9b6d96-d760-40b9-b293-609bf76ba569 +:END: + +Thanks to Jimmy Yuen Ho Wong for the initial contribution in pull +request 142: . +I made some changes on top to use semantic palette mappings, where +applicable, and other such tweaks. + +** The ~minibuffer-nonselected~ face is supported +:PROPERTIES: +:CUSTOM_ID: h:8f2422e7-66cc-42d4-8d9f-8a4ad255b3eb +:END: + +This is coming in Emacs version 31: it highlights the active +minibuffer when the cursor is in another window. The face is designed +to be as noticeable as possible because this kind of scenario usually +leads to mistakes or confusion. + +** Refinements to supported packages or face groups +:PROPERTIES: +:CUSTOM_ID: h:81607d59-176a-4fad-aacd-0f946e228682 +:END: + +- The ~markdown-code-face~ uses the same semantic palette mapping as + ~org-block~. This was always the intent. Thanks to Frédéric Giquel + for the fix in pull request 160: . + The change is small and thus does not require copyright assignment + to the Free Software Foundation. + +- Fixed a word in the symbol of the ~flymake-warning-echo-at-eol~. Thanks to + Eric Ottosson for the patch in pull request 145: . + No copyright assignment is required. + +- The two new Emacs 31 faces for packages that are marked for + installation or deletion in the =M-x list-packages= buffer are now + included. Thanks to Gautier Ponsinet for sending me the patch. + Gautier has assigned copyright to the Free Software Foundation. + +- The ~hs-ellipsis~ in Emacs 31 from the built-in ~hideshow~ package + is also covered. It is made to conform with established patterns + across conceptually equivalent faces (e.g. Org folded headings) + rather than do its own thing. + +- The ~widget-field~ uses an underline to be easier to spot. On + supported Emacs displays (generally graphical Emacs) the underline + is at the descent line, meaning that it does not cross through + characters with descenders like =g=. + +- The ~git-commit~ and ~log-edit~ faces for writing commit messages in + Magit and VC are tweaked to avoid exaggerations. + +- The Magit section headings have a slightly modified foreground + value. + +- The ~org-list-dt~ face for list definition terms has a slightly + modified foreground value to (i) be easier to spot while (ii) being + less intense overall. + +- The ~calendar-today~ in the =M-x calendar= interface now has a box + around it on supported displays (graphical Emacs) to better stand + out from its context. On unsupported displays, the face still gets + an appropriate background value. + +- The ~org-date-selected~ and ~calendar-today~ should look the same, + contrary to how they did before. This is done in the interest of + theme-wide consistency (i.e. the kind of detail you appreciate once + it is no longer there). + +- The mode lines use an underline on displays that cannot render a + box. This way, the faces remain distinct from their context. + +- All interface buttons, like those that appear in the Custom buffers, + will be rendered with an underline on displays that cannot handle + boxes. + +- The ~notmuch-message-summary-face~, which is used in threaded + message views, now has an overline on supported displays (graphical + Emacs). Individual messages in the thread should thus be more + discernible. + +- The ~tab-bar-tab-highlight~ is directly covered to make sure all + mouse hover effects are consistent across similar interfaces. + +- Some faces that had specific colour values (e.g. ~cyan-cooler~) are + revised to use semantic palette mappings instead. This ensures + thematic consistency. The most obvious beneficiaries are users of + the deuteranopia- and tritanopia- optimised themes + (deuteranopia-friendly themes cannot work with red and green while + tritanopia-friendly themes must not rely on yellow and blue). + +** The ~modus-themes-custom-auto-reload~ is obsolete +:PROPERTIES: +:CUSTOM_ID: h:a82d2ccb-dd26-410e-8fc8-6f45813b4e00 +:END: + +Plus all our user options no longer specify a =:set= function. This +means that the theme will never be reloaded automatically when using +the Custom interface or ~setopt~ to configure one of the theme's user +options. Reloading the theme is what applies the new styles. The idea +of this feature is good, but the implementation was problematic. Maybe +I will reinstate it in the future, though I cannot let it block this +major release. + +** Several =modus-themes-*= faces are obsolete +:PROPERTIES: +:CUSTOM_ID: h:d5de3be7-5fdc-407b-81fc-aeb99ad528f7 +:END: + +In previous versions I was defining faces that were used to apply +uniform styles across many packages. This was the old way of doing +things before version =4.0.0= of the themes that introduced palettes +with semantic mappings and, optionally, user-defined overrides to +them. + +I have deprecated all of the following and made all the necessary +changes (i.e. several thousands of them), to make palette mappings the +norm everywhere. In general, I encourage you not to rely on any faces +defined by Modus: they are really intended for internal use. + +- ~modus-themes-fg-blue~ +- ~modus-themes-fg-blue-cooler~ +- ~modus-themes-fg-blue-faint~ +- ~modus-themes-fg-blue-intense~ +- ~modus-themes-fg-blue-warmer~ +- ~modus-themes-fg-cyan~ +- ~modus-themes-fg-cyan-cooler~ +- ~modus-themes-fg-cyan-faint~ +- ~modus-themes-fg-cyan-intense~ +- ~modus-themes-fg-cyan-warmer~ +- ~modus-themes-fg-green~ +- ~modus-themes-fg-green-cooler~ +- ~modus-themes-fg-green-faint~ +- ~modus-themes-fg-green-intense~ +- ~modus-themes-fg-green-warmer~ +- ~modus-themes-fg-magenta~ +- ~modus-themes-fg-magenta-cooler~ +- ~modus-themes-fg-magenta-faint~ +- ~modus-themes-fg-magenta-intense~ +- ~modus-themes-fg-magenta-warmer~ +- ~modus-themes-fg-red~ +- ~modus-themes-fg-red-cooler~ +- ~modus-themes-fg-red-faint~ +- ~modus-themes-fg-red-intense~ +- ~modus-themes-fg-red-warmer~ +- ~modus-themes-fg-yellow~ +- ~modus-themes-fg-yellow-cooler~ +- ~modus-themes-fg-yellow-faint~ +- ~modus-themes-fg-yellow-intense~ +- ~modus-themes-fg-yellow-warmer~ +- ~modus-themes-intense-blue~ +- ~modus-themes-intense-cyan~ +- ~modus-themes-intense-green~ +- ~modus-themes-intense-magenta~ +- ~modus-themes-intense-red~ +- ~modus-themes-intense-yellow~ +- ~modus-themes-key-binding~ +- ~modus-themes-lang-error~ +- ~modus-themes-lang-note~ +- ~modus-themes-lang-warning~ +- ~modus-themes-mark-alt~ +- ~modus-themes-mark-del~ +- ~modus-themes-mark-sel~ +- ~modus-themes-nuanced-blue~ +- ~modus-themes-nuanced-cyan~ +- ~modus-themes-nuanced-green~ +- ~modus-themes-nuanced-magenta~ +- ~modus-themes-nuanced-red~ +- ~modus-themes-nuanced-yellow~ +- ~modus-themes-prominent-error~ +- ~modus-themes-prominent-note~ +- ~modus-themes-prominent-warning~ +- ~modus-themes-prose-code~ +- ~modus-themes-prose-macro~ +- ~modus-themes-prose-verbatim~ +- ~modus-themes-search-current~ +- ~modus-themes-search-lazy~ +- ~modus-themes-search-replace~ +- ~modus-themes-search-rx-group-0~ +- ~modus-themes-search-rx-group-1~ +- ~modus-themes-search-rx-group-2~ +- ~modus-themes-search-rx-group-3~ +- ~modus-themes-search-static~ +- ~modus-themes-subtle-blue~ +- ~modus-themes-subtle-cyan~ +- ~modus-themes-subtle-green~ +- ~modus-themes-subtle-magenta~ +- ~modus-themes-subtle-red~ +- ~modus-themes-subtle-yellow~ + +Thanks to Kevin Fleming and Jimmy Yuen Ho Wong for fixing two cases of +unbalanced/faulty parentheses caused by the aforementioned. These were +done as pull requests 166 and 168, respectively: + +- . +- . + +Both changes are small: no copyright assignment to the Free Software +Foundation is needed (and I think both authors are covered, anyway). + +** All =:inherit= face attributes are reviewed and kept to a minimum +:PROPERTIES: +:CUSTOM_ID: h:45ecd8f2-509b-4519-bd62-087031b0c1b8 +:END: + +The themes now use the =:inherit= attribute much more cautiously than +before. This is because of the reliance on semantic palette mappings: +those give us more control and usually are explicit about the desired +result. + +Face inheritance can become circular in some cases. Newer Emacs +versions throw an error accordingly. This was discussed in Emacs bug +79672, with participation from Eli Zaretskii, JD Smith, Manuel Giraud, +Stephane Marks, and Steven Allen: . + +Thanks to everybody involved! + * 4.8.0 on 2025-06-11 :PROPERTIES: :CUSTOM_ID: h:a8d31a81-5283-494a-bfb0-982206bcb2bd diff --git a/doc/modus-themes.info b/doc/modus-themes.info index 4bf256a..8a8cd05 100644 --- a/doc/modus-themes.info +++ b/doc/modus-themes.info @@ -43,11 +43,11 @@ customization options for the Modus themes, and provides every other piece of information pertinent to them. The documentation furnished herein corresponds to stable version -4.8.0, released on 2025-06-11. Any reference to a newer feature which +5.0.0, released on 2025-11-01. Any reference to a newer feature which does not yet form part of the latest tagged commit, is explicitly marked as such. - Current development target is 5.0.0-dev. + Current development target is 5.1.0-dev. • Package name (GNU ELPA): ‘modus-themes’ • Official manual: @@ -895,9 +895,7 @@ File: modus-themes.info, Node: Option for which themes to rotate, Next: Mixed 4.5 Option for which themes to rotate ===================================== -[ Default value and behaviour changed as part of 5.0.0-dev. ] - - Brief: Specify which themes to rotate through when using the command +Brief: Specify which themes to rotate through when using the command ‘modus-themes-rotate’. Symbol: ‘modus-themes-to-rotate’ (‘list’ type) @@ -1465,9 +1463,7 @@ File: modus-themes.info, Node: Commands for the preview palette buffer, Up: Pr 5.1 Commands for the preview palette buffer =========================================== -[ This is part of 5.0.0-dev. ] - - The palette preview buffer uses the major mode +The palette preview buffer uses the major mode ‘modus-themes-preview-mode’, which provides the ‘modus-themes-preview-mode-map’ (*note Preview theme colors::). The following key bindings are available by default: @@ -4317,10 +4313,7 @@ File: modus-themes.info, Node: Build on top of the Modus themes, Next: Face co 8 Build on top of the Modus themes ********************************** -[ Building on top of the Modus themes is made possible as part of -5.0.0-dev. ] - - This section concerns package developers or advanced users. +This section concerns package developers or advanced users. The Modus themes can be used as the basis for another theme. The ‘ef-themes’ and ‘standard-themes’ packages (also by Protesilaos), are @@ -4677,7 +4670,7 @@ have lots of extensions, so the "full support" may not be 100% true… • golden-ratio-scroll-screen • helpful • hexl-mode - • hideshow [ Part of 5.0.0-dev. ] + • hideshow • highlight-numbers • highlight-parentheses (*note Note on highlight-parentheses.el: Note on highlight-parenthesesel.) @@ -6711,7 +6704,7 @@ B.1 Function index * modus-themes-get-color-value: Get a single color from the palette with modus-themes-get-color-value. (line 6) * modus-themes-get-themes: Option for which themes to rotate. - (line 19) + (line 17) * modus-themes-get-themes <1>: Determine what counts as a Modus theme. (line 12) * modus-themes-include-derivatives-mode: Determine what counts as a Modus theme. @@ -6725,28 +6718,28 @@ B.1 Function index * modus-themes-preview-colors: Preview theme colors. (line 19) * modus-themes-preview-colors-current: Preview theme colors. (line 19) * modus-themes-preview-mode: Commands for the preview palette buffer. - (line 8) + (line 6) * modus-themes-preview-mode-copy-color: Commands for the preview palette buffer. - (line 22) + (line 20) * modus-themes-preview-mode-copy-entry: Commands for the preview palette buffer. - (line 29) + (line 27) * modus-themes-preview-mode-mark: Commands for the preview palette buffer. - (line 36) + (line 34) * modus-themes-preview-mode-mark-all: Commands for the preview palette buffer. - (line 36) + (line 34) * modus-themes-preview-mode-unmark: Commands for the preview palette buffer. - (line 36) + (line 34) * modus-themes-preview-mode-unmark-all: Commands for the preview palette buffer. - (line 36) + (line 34) * modus-themes-rotate: Enable and load. (line 94) * modus-themes-rotate <1>: Disable other themes. (line 15) * modus-themes-rotate <2>: Option for which themes to rotate. - (line 8) + (line 6) * modus-themes-select: Enable and load. (line 94) * modus-themes-select <1>: Enable and load. (line 94) * modus-themes-select <2>: Disable other themes. (line 15) * modus-themes-theme: Build on top of the Modus themes. - (line 17) + (line 14) * modus-themes-toggle: Enable and load. (line 94) * modus-themes-toggle <1>: Disable other themes. (line 15) * modus-themes-toggle <2>: Option for which themes to toggle. @@ -6783,14 +6776,14 @@ B.2 Variable index * modus-themes-common-palette-user: Palette extension. (line 16) * modus-themes-completions: Completion UIs. (line 6) * modus-themes-custom-variables: Build on top of the Modus themes. - (line 62) + (line 59) * modus-themes-disable-other-themes: Disable other themes. (line 6) * modus-themes-faces: Build on top of the Modus themes. - (line 56) + (line 53) * modus-themes-headings: Heading styles. (line 6) * modus-themes-italic-constructs: Italic constructs. (line 6) * modus-themes-items: Option for which themes to rotate. - (line 17) + (line 15) * modus-themes-mixed-fonts: Mixed fonts. (line 6) * modus-themes-org-blocks: Org mode blocks. (line 6) * modus-themes-post-load-hook: Enable and load. (line 86) @@ -6803,12 +6796,12 @@ B.2 Variable index * modus-themes-preset-overrides-warmer: DIY Palette override presets. (line 29) * modus-themes-preview-mode-map: Commands for the preview palette buffer. - (line 8) + (line 6) * modus-themes-prompts: Command prompts. (line 6) * modus-themes-registered-items: Build on top of the Modus themes. - (line 17) + (line 14) * modus-themes-to-rotate: Option for which themes to rotate. - (line 11) + (line 9) * modus-themes-to-toggle: Option for which themes to toggle. (line 9) * modus-themes-variable-pitch-ui: UI typeface. (line 6) @@ -6912,116 +6905,116 @@ Node: Bold constructs31245 Node: Italic constructs32117 Node: Option for which themes to toggle32945 Node: Option for which themes to rotate33708 -Node: Mixed fonts34772 -Node: Command prompts35826 -Node: Completion UIs37667 -Node: Org mode blocks40516 -Node: Heading styles41159 -Node: UI typeface45585 -Node: Palette overrides46558 -Node: Palette extension50915 -Node: Preview theme colors53391 -Node: Commands for the preview palette buffer55046 -Node: Use colors from the Modus themes palette57160 -Node: Get a single color from the palette with modus-themes-get-color-value58024 -Node: Use theme colors in code with modus-themes-with-colors60385 -Node: Advanced customization62639 -Node: DIY Palette override presets64417 -Node: DIY Add support for engrave-faces67251 -Node: DIY Stylistic variants using palette overrides77234 -Node: DIY Make the mode line borderless79293 -Node: DIY Make the active mode line colorful80668 -Node: DIY Make the tab bar more or less colorful82886 -Node: DIY Make the fringe invisible or another color84823 -Node: DIY Make links use subtle or no underlines86020 -Node: DIY Make prompts more or less colorful87138 -Node: DIY Make completion matches more or less colorful88461 -Node: DIY Make comments yellow and strings green92020 -Node: DIY Make code syntax use the old alt-syntax style93727 -Node: DIY Make use of alternative styles for code syntax96840 -Node: DIY Make matching parenthesis more or less intense100302 -Node: DIY Make box buttons more or less gray101674 -Node: DIY Make TODO and DONE more or less intense102687 -Node: DIY Make headings more or less colorful104188 -Node: DIY Make Org block colors more or less colorful106305 -Node: DIY Make Org agenda more or less colorful110677 -Node: DIY Make inline code in prose use alternative styles113852 -Node: DIY Make mail citations and headers more or less colorful116092 -Node: DIY Make the region preserve text colors plus other styles118492 -Node: DIY Make mouse highlights more or less colorful120048 -Node: DIY Make language underlines less colorful121061 -Node: DIY Make line numbers use alternative styles122213 -Node: DIY Make diffs use only a foreground123856 -Node: DIY Make deuteranopia diffs red and blue instead of yellow and blue126743 -Node: DIY More accurate colors in terminal emulators129215 -Node: DIY Range of color with terminal emulators130523 -Node: DIY Per-theme customization settings133310 -Node: DIY Do not extend the region background134743 -Node: DIY Add padding to the mode line135541 -Node: DIY Remap face with local value138469 -Node: DIY Font configurations for Org and others141008 -Ref: DIY Font configurations for Org and others-Footnote-1143991 -Node: DIY Configure bold and italic faces144178 -Node: DIY Custom Org todo keyword and priority faces148800 -Node: DIY Custom Org emphasis faces152541 -Node: DIY Use colored Org source blocks per language157418 -Node: DIY Measure color contrast162058 -Node: DIY Load theme depending on time of day164775 -Node: DIY Backdrop for pdf-tools165803 -Node: DIY Toggle themes without reloading them168964 -Node: DIY Use more spacious margins or padding in Emacs frames170273 -Node: DIY Custom hl-todo colors174510 -Node: DIY Add support for solaire-mode176327 -Node: DIY Add support for meow-mode179419 -Node: DIY Add support for combobulate181229 -Node: DIY Use a hook at the post-load-theme phase184852 -Node: DIY A theme-agnostic hook for theme loading186973 -Node: Build on top of the Modus themes189604 -Node: Determine what counts as a Modus theme195108 -Node: Create convenience commands to load a derivative theme198300 -Node: Face coverage200352 -Node: Supported packages200814 -Node: Indirectly covered packages206654 -Node: Notes on individual packages208010 -Node: Note on calendarel weekday and weekend colors209112 -Node: Note on git-gutter in Doom Emacs210262 -Node: Note on php-mode multiline comments212764 -Node: Note on underlines in compilation buffers213526 -Node: Note on inline Latex in Org buffers214400 -Node: Note on dimmerel215012 -Node: Note on display-fill-column-indicator-mode216499 -Node: Note on highlight-parenthesesel217952 -Node: Note on mmm-modeel background colors224031 -Node: Note for prism226385 -Node: Note on company-mode overlay pop-up229599 -Ref: Note on company-mode overlay pop-up-Footnote-1230329 -Ref: Note on company-mode overlay pop-up-Footnote-2230396 -Node: Note on ERC escaped color sequences230451 -Ref: Note on ERC escaped color sequences-Footnote-1231881 -Node: Note on powerline or spaceline231991 -Node: Note on SHR colors232407 -Node: Note on SHR fonts232829 -Node: Note on Ement colors and fonts233518 -Node: Note on pdf-tools link hints235024 -Node: Note on the Notmuch logo237482 -Node: Note on goto-address-mode faces238016 -Node: Frequently Asked Questions239136 -Node: Is the contrast ratio about adjacent colors?239767 -Node: What does it mean to avoid exaggerations?241276 -Node: Why are colors mostly variants of blue magenta cyan?243126 -Node: What is the best setup for legibility?247460 -Node: Are these color schemes?250102 -Node: Port the Modus themes to other platforms?253756 -Node: Contributing256590 -Node: Sources of the themes256989 -Node: Issues you can help with257885 -Node: Patches require copyright assignment to the FSF259277 -Node: Acknowledgements261499 -Node: GNU Free Documentation License266019 -Node: Indices291182 -Node: Function index291361 -Node: Variable index295556 -Node: Concept index299919 +Node: Mixed fonts34705 +Node: Command prompts35759 +Node: Completion UIs37600 +Node: Org mode blocks40449 +Node: Heading styles41092 +Node: UI typeface45518 +Node: Palette overrides46491 +Node: Palette extension50848 +Node: Preview theme colors53324 +Node: Commands for the preview palette buffer54979 +Node: Use colors from the Modus themes palette57057 +Node: Get a single color from the palette with modus-themes-get-color-value57921 +Node: Use theme colors in code with modus-themes-with-colors60282 +Node: Advanced customization62536 +Node: DIY Palette override presets64314 +Node: DIY Add support for engrave-faces67148 +Node: DIY Stylistic variants using palette overrides77131 +Node: DIY Make the mode line borderless79190 +Node: DIY Make the active mode line colorful80565 +Node: DIY Make the tab bar more or less colorful82783 +Node: DIY Make the fringe invisible or another color84720 +Node: DIY Make links use subtle or no underlines85917 +Node: DIY Make prompts more or less colorful87035 +Node: DIY Make completion matches more or less colorful88358 +Node: DIY Make comments yellow and strings green91917 +Node: DIY Make code syntax use the old alt-syntax style93624 +Node: DIY Make use of alternative styles for code syntax96737 +Node: DIY Make matching parenthesis more or less intense100199 +Node: DIY Make box buttons more or less gray101571 +Node: DIY Make TODO and DONE more or less intense102584 +Node: DIY Make headings more or less colorful104085 +Node: DIY Make Org block colors more or less colorful106202 +Node: DIY Make Org agenda more or less colorful110574 +Node: DIY Make inline code in prose use alternative styles113749 +Node: DIY Make mail citations and headers more or less colorful115989 +Node: DIY Make the region preserve text colors plus other styles118389 +Node: DIY Make mouse highlights more or less colorful119945 +Node: DIY Make language underlines less colorful120958 +Node: DIY Make line numbers use alternative styles122110 +Node: DIY Make diffs use only a foreground123753 +Node: DIY Make deuteranopia diffs red and blue instead of yellow and blue126640 +Node: DIY More accurate colors in terminal emulators129112 +Node: DIY Range of color with terminal emulators130420 +Node: DIY Per-theme customization settings133207 +Node: DIY Do not extend the region background134640 +Node: DIY Add padding to the mode line135438 +Node: DIY Remap face with local value138366 +Node: DIY Font configurations for Org and others140905 +Ref: DIY Font configurations for Org and others-Footnote-1143888 +Node: DIY Configure bold and italic faces144075 +Node: DIY Custom Org todo keyword and priority faces148697 +Node: DIY Custom Org emphasis faces152438 +Node: DIY Use colored Org source blocks per language157315 +Node: DIY Measure color contrast161955 +Node: DIY Load theme depending on time of day164672 +Node: DIY Backdrop for pdf-tools165700 +Node: DIY Toggle themes without reloading them168861 +Node: DIY Use more spacious margins or padding in Emacs frames170170 +Node: DIY Custom hl-todo colors174407 +Node: DIY Add support for solaire-mode176224 +Node: DIY Add support for meow-mode179316 +Node: DIY Add support for combobulate181126 +Node: DIY Use a hook at the post-load-theme phase184749 +Node: DIY A theme-agnostic hook for theme loading186870 +Node: Build on top of the Modus themes189501 +Node: Determine what counts as a Modus theme194921 +Node: Create convenience commands to load a derivative theme198113 +Node: Face coverage200165 +Node: Supported packages200627 +Node: Indirectly covered packages206443 +Node: Notes on individual packages207799 +Node: Note on calendarel weekday and weekend colors208901 +Node: Note on git-gutter in Doom Emacs210051 +Node: Note on php-mode multiline comments212553 +Node: Note on underlines in compilation buffers213315 +Node: Note on inline Latex in Org buffers214189 +Node: Note on dimmerel214801 +Node: Note on display-fill-column-indicator-mode216288 +Node: Note on highlight-parenthesesel217741 +Node: Note on mmm-modeel background colors223820 +Node: Note for prism226174 +Node: Note on company-mode overlay pop-up229388 +Ref: Note on company-mode overlay pop-up-Footnote-1230118 +Ref: Note on company-mode overlay pop-up-Footnote-2230185 +Node: Note on ERC escaped color sequences230240 +Ref: Note on ERC escaped color sequences-Footnote-1231670 +Node: Note on powerline or spaceline231780 +Node: Note on SHR colors232196 +Node: Note on SHR fonts232618 +Node: Note on Ement colors and fonts233307 +Node: Note on pdf-tools link hints234813 +Node: Note on the Notmuch logo237271 +Node: Note on goto-address-mode faces237805 +Node: Frequently Asked Questions238925 +Node: Is the contrast ratio about adjacent colors?239556 +Node: What does it mean to avoid exaggerations?241065 +Node: Why are colors mostly variants of blue magenta cyan?242915 +Node: What is the best setup for legibility?247249 +Node: Are these color schemes?249891 +Node: Port the Modus themes to other platforms?253545 +Node: Contributing256379 +Node: Sources of the themes256778 +Node: Issues you can help with257674 +Node: Patches require copyright assignment to the FSF259066 +Node: Acknowledgements261288 +Node: GNU Free Documentation License265808 +Node: Indices290971 +Node: Function index291150 +Node: Variable index295345 +Node: Concept index299708  End Tag Table diff --git a/doc/modus-themes.org b/doc/modus-themes.org index 92bd3e7..d470a9c 100644 --- a/doc/modus-themes.org +++ b/doc/modus-themes.org @@ -4,9 +4,9 @@ #+language: en #+options: ':t toc:nil author:t email:t num:t #+startup: content -#+macro: stable-version 4.8.0 -#+macro: release-date 2025-06-11 -#+macro: development-version 5.0.0-dev +#+macro: stable-version 5.0.0 +#+macro: release-date 2025-11-01 +#+macro: development-version 5.1.0-dev #+macro: file @@texinfo:@file{@@$1@@texinfo:}@@ #+macro: space @@texinfo:@: @@ #+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@ @@ -698,8 +698,6 @@ Possible values: :CUSTOM_ID: h:a10c0202-3683-4fad-9897-433c25e255f6 :END: -[ Default value and behaviour changed as part of {{{development-version}}}. ] - #+findex: modus-themes-rotate Brief: Specify which themes to rotate through when using the command ~modus-themes-rotate~. @@ -1311,8 +1309,6 @@ the palette (named colors as well as semantic color mappings) and :CUSTOM_ID: h:4952cd81-8a9a-4a4e-9867-3e63b9ef2f7e :END: -[ This is part of {{{development-version}}}. ] - #+findex: modus-themes-preview-mode #+vindex: modus-themes-preview-mode-map The palette preview buffer uses the major mode ~modus-themes-preview-mode~, @@ -4163,8 +4159,6 @@ need to (provided they understand the implications). :CUSTOM_ID: h:86eb375b-9be4-43ce-879a-0686a524a63b :END: -[ Building on top of the Modus themes is made possible as part of {{{development-version}}}. ] - This section concerns package developers or advanced users. The Modus themes can be used as the basis for another theme. The @@ -4521,7 +4515,7 @@ have lots of extensions, so the "full support" may not be 100% true… + golden-ratio-scroll-screen + helpful + hexl-mode -+ hideshow [ Part of {{{development-version}}}. ] ++ hideshow + highlight-numbers + highlight-parentheses ([[#h:24bab397-dcb2-421d-aa6e-ec5bd622b913][Note on highlight-parentheses.el]]) + highlight-thing diff --git a/modus-themes.el b/modus-themes.el index e9132e6..4a57941 100644 --- a/modus-themes.el +++ b/modus-themes.el @@ -5,7 +5,7 @@ ;; Author: Protesilaos Stavrou ;; Maintainer: Protesilaos Stavrou ;; URL: https://github.com/protesilaos/modus-themes -;; Version: 4.8.1 +;; Version: 5.0.0 ;; Package-Requires: ((emacs "28.1")) ;; Keywords: faces, theme, accessibility