dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

CHANGELOG.org (395865B)


      1 #+TITLE: Change log of the Modus Themes for GNU Emacs
      2 #+AUTHOR: Protesilaos Stavrou
      3 #+EMAIL: info@protesilaos.com
      4 #+OPTIONS: ':nil toc:nil num:nil author:nil email:nil
      5 
      6 This document contains the release notes that are included in each
      7 tagged commit on the project's main git repository:
      8 <https://git.sr.ht/~protesilaos/modus-themes>.
      9 
     10 The newest release is at the top.  Since the notes are meant to be in
     11 plain text format, I copy them verbatim.
     12 
     13 For further details, please consult these additional resources:
     14 
     15 + Manual :: <https://protesilaos.com/emacs/modus-themes>
     16 + Screenshots :: <https://protesilaos.com/emacs/modus-themes-pictures>
     17 
     18 * 4.3.0
     19 :PROPERTIES:
     20 :CUSTOM_ID: h:4783bc29-3055-426d-9acb-51e4d0741871
     21 :END:
     22 
     23 ** All themes except the tritanopia ones have a new hover colour
     24 :PROPERTIES:
     25 :CUSTOM_ID: h:b92b176e-3e9a-420d-bbbe-3c3e38b47027
     26 :END:
     27 
     28 The previous colour was not sufficiently distinct from what each theme
     29 defines for the =bg-completion= palette entry (preview a palette with
     30 =M-x modus-themes-preview-colors= or =M-x modus-themes-preview-colors-current=).
     31 This would make it hard to spot the difference while, for example,
     32 using ~vertico-mode~ in tandem with ~vertico-mouse-mode~.
     33 
     34 Same principle for the difference between the mouse hover and lazy
     35 isearch highlights (e.g. in Dired or Occur buffers).
     36 
     37 Changing the hue here follows the same principle that underpinned the
     38 redesign of the grey backgrounds for version 4 of the project:
     39 depending on hardware capabilities, colour reproduction may not be
     40 optimal, so we need to be more considerate with the choice of colour
     41 values, erring on the side of caution.
     42 
     43 The ~modus-operandi-tritanopia~ and ~modus-vivendi-tritanopia~ themes
     44 are not affected by this initiative, as they already used highly distinct hues.
     45 
     46 Thanks to Daniel Mendler for bringing this matter to my attention and
     47 for testing the proposed alternatives.  This was done via a private
     48 channel and the information is shared with permission.  Daniel is the
     49 developer of ~vertico~, among many other excellent packages:
     50 <https://github.com/minad>
     51 
     52 ** Japanese holidays have the expected style
     53 :PROPERTIES:
     54 :CUSTOM_ID: h:2de9cef6-c6f1-4c2e-97ce-46d8a7306bae
     55 :END:
     56 
     57 Japanese calendars style Saturdays uniquely and the Modus themes now
     58 do the same for those who use the ~japanese-holidays~ package.
     59 Saturdays show up in a blue colour (which changes to cyan for the
     60 ~modus-operandi-tritanopia~, ~modus-vivendi-tritanopia~ themes).
     61 
     62 Each theme's palette has a new semantic colour mapping called
     63 =date-holiday-other=, just in case we ever encounter another scenario
     64 like this one (users can override any entry in the palette---consult
     65 the manual for the technicalities).
     66 
     67 Thanks to Olaf Meeuwissen for bringing this package to my attention
     68 and showing me how traditional Japanese calendars style Saturdays.
     69 This was done in issue 311 on the GitLab mirror:
     70 <https://gitlab.com/protesilaos/modus-themes/-/issues/311>.
     71 
     72 ** Each theme has semantic colour mappings for terminal emulators
     73 :PROPERTIES:
     74 :CUSTOM_ID: h:f3ae786a-9e01-4363-ae98-898f2ad34f7b
     75 :END:
     76 
     77 These are used by ~ansi-term~, ~vterm~, and the like.  The idea is to
     78 empower users to differentiate background and foreground values,
     79 should they ever encounter a need to do so (when in doubt, do
     80 nothing).
     81 
     82 By convention, terminal emulators use the same value for both
     83 background and foreground, although this is not optimal with high
     84 contrast themes because what works as a foreground does not
     85 necessarily look nice as a background.
     86 
     87 The default values of the new mappings retain the prior state, just to
     88 not break existing configurations.  Consider this a tacit user option
     89 for those who really need it.
     90 
     91 Thanks to Tony Zorman for reporting the problem that provided the
     92 impetus for this change:
     93 <https://lists.sr.ht/~protesilaos/modus-themes/%3C87fs4wforf.fsf%40hyperspace%3E>.
     94 
     95 ** All theme definitions conform with the latest standard for metadata
     96 :PROPERTIES:
     97 :CUSTOM_ID: h:2af0114f-b96a-4e89-ad2f-850d53538efa
     98 :END:
     99 
    100 Themes are expected to declare their background type and affinity,
    101 such that the built-in command ~theme-choose-variant~ can do what it
    102 describes (switch between related themes).  I was already doing this,
    103 though I had to make some adjustments.  This is in response to Emacs
    104 bug#65468: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65468>.
    105 Thanks to Mauro Aranda for bringing the matter to my attention.
    106 
    107 ** Proper colours for the inline preview of the ~corfu~ top candidate
    108 :PROPERTIES:
    109 :CUSTOM_ID: h:89d40a68-7573-4994-9ecc-fea40c823472
    110 :END:
    111 
    112 The ~corfu-candidate-overlay~ package is used in tandem with the
    113 ~corfu~ package to create an inline preview of the first matching
    114 candidate.  Thanks to Nicolas Semrau for bringing this matter to my
    115 attention in issue 89 on the GitHub mirror:
    116 <https://github.com/protesilaos/modus-themes/issues/89>.
    117 
    118 ** Context indicators for the mode-line or header-line (breadcrumb.el)
    119 :PROPERTIES:
    120 :CUSTOM_ID: h:dc391e85-650f-444e-b909-849d659921fb
    121 :END:
    122 
    123 I added support for the new ~breadcrumb~ package by João Távora.  It
    124 displays information about where we are in the given file, such as
    125 under which Org heading or inside which function.  The indicator can
    126 be shown on the mode-line or the header-line.  Either way, it will now
    127 be legible and consistent with its surroundings.
    128 
    129 ** The new family of nerd-icons is covered by the themes
    130 :PROPERTIES:
    131 :CUSTOM_ID: h:0409d429-5307-43d6-9bf4-fabc958c2540
    132 :END:
    133 
    134 This is a new set of packages: ~nerd-icons~, ~nerd-icons-completion,
    135 ~nerd-icons-dired~, ~nerd-icons-ibuffer~.  A popular package that uses
    136 the Nerd icons is ~doom-modeline~, which the themes support as well.
    137 
    138 ** All icons look as intended again
    139 :PROPERTIES:
    140 :CUSTOM_ID: h:a01075c6-b931-4b35-bdbd-2d1223101560
    141 :END:
    142 
    143 Some faces from the ~all-the-icons~ package were not configured
    144 because I accidentally changed their name from something like
    145 ~all-the-icons-red-alt~ to ~all-the-icons-red-warmer~.  I did that
    146 while renaming the colours defined in each theme's palette, to make
    147 them more meaningful ("warmer red" can hint at something whereas "alt
    148 red" is more abstract).
    149 
    150 ** Corrected the documentation about custom Org faces
    151 :PROPERTIES:
    152 :CUSTOM_ID: h:5c254346-370e-4510-bcc7-70a1cca2c5a0
    153 :END:
    154 
    155 The Modus themes manual shows how to configure arbitrary TODO keywords
    156 to inherit the style of an arbitrary face (get the list of faces
    157 present in your Emacs with =M-x list-faces-display=).  The previous
    158 value I used was faulty.  It now is as intended.  Thanks to
    159 soaringbird for reporting the issue on the mailing list:
    160 <https://lists.sr.ht/~protesilaos/modus-themes/%3CNXPVkVk--3-9%40tuta.io%3E>.
    161 
    162 ** The colours used by =avy= are better for users with tritanopia
    163 :PROPERTIES:
    164 :CUSTOM_ID: h:3605693e-bd6d-40a0-a1d4-199684c89081
    165 :END:
    166 
    167 I changed the sequence of colours displayed by commands such as
    168 ~avy-goto-char-timer~ such that each individual background does not
    169 blend with the ones adjacent to it, while respecting the overall needs
    170 of a tritanopia-friendly design.  I also tweaked the colour values to
    171 achieve the desired result.  The backgrounds remain distinct from
    172 their context but now also work harmoniously together.
    173 
    174 ** The =bg-dim= palette entry is marginally brighter in all Modus operandi variants
    175 :PROPERTIES:
    176 :CUSTOM_ID: h:8a3cb4f1-e7f8-48f1-832c-27e64b126b2d
    177 :END:
    178 
    179 After extensive testing and side-by-side comparisons, I have concluded
    180 that the marginal increase in brightness improves the affected
    181 interfaces.
    182 
    183 The =bg-dim= background is used, among others, in the header-line, the
    184 popup of the ~company~ and ~corfu~ packages, as well as the Org source
    185 blocks (when the user option ~modus-themes-org-blocks~ is configured
    186 appropriately).
    187 
    188 ** The "intense" palette override preset has new colours for tables and prose metadata
    189 :PROPERTIES:
    190 :CUSTOM_ID: h:3a990310-337c-457f-8f40-1af6d1b557f6
    191 :END:
    192 
    193 This concerns the ~modus-themes-preset-overrides-intense~ (refer to
    194 its documentation on how to use it).  The primary target of these
    195 changes is Org mode and the overall effect is subtle.  The previous
    196 colours did not combine nicely with all structural elements.  For
    197 example, Org clocktables would obscure timestamps by being the same
    198 colour as them, while the table formula would not stand out.  These
    199 styles did not fit into the concept of "intense" colours.
    200 
    201 ** The "warmer" palette override preset has more legible strings
    202 :PROPERTIES:
    203 :CUSTOM_ID: h:64cbd701-1344-48cc-8bcf-fc9712438013
    204 :END:
    205 
    206 The ~modus-themes-preset-overrides-warmer~ uses a more prominent warm
    207 green value for strings in programming modes.  The effect is subtle,
    208 though it fits in better with the overall aesthetic of these palette
    209 overrides.
    210 
    211 ** Org document keywords like =#+author= are optionally monospaced
    212 :PROPERTIES:
    213 :CUSTOM_ID: h:096b75ec-802c-43e4-81ed-6db92b45654c
    214 :END:
    215 
    216 When the user option ~modus-themes-mixed-fonts~ is non-nil, all Org
    217 document keywords will be rendered with the ~fixed-pitch~ face.  This
    218 ensures consistency between keywords such as =#+author= and "meta
    219 lines" like =#+texinfo=.  Thanks to user fluentpwn for the change: it
    220 is one line and thus the author does not need to assign copyright to
    221 the Free Software Foundation.
    222 
    223 ** Git commit summary lines have a more precise style
    224 :PROPERTIES:
    225 :CUSTOM_ID: h:2aecd902-3a0b-4544-98f4-dbb42cbad672
    226 :END:
    227 
    228 This concerns the first line in a Git commit message, as seen while
    229 working with the ~magit~ package.  Same principle for the ~log-edit~
    230 buffer used by the built-in VC framework.  Before, I was hardcoding a
    231 blue colour value, whereas now I apply the ~success~ face.  The
    232 ~success~ face is designed to contrast with the ~warning~ face that is
    233 used to show overlong summaries.  Furthermore, the added indirection
    234 makes it possible to particularise the colour value, which I do for
    235 the tritanopia themes that cannot use blue.
    236 
    237 ** Miscellaneous
    238 :PROPERTIES:
    239 :CUSTOM_ID: h:7391fd7d-6e70-4419-a8d6-f34d9ae075b1
    240 :END:
    241 
    242 - Removed explicit support for the built-in ~css-mode~.  Its default
    243   faces are decent.  They inherit from standard font-lock faces that
    244   the themes already cover.
    245 
    246 - Recalibrated wordwise ("refined") diffs for deuteranopia.  The
    247   ~modus-operandi-deuteranopia~ and ~modus-vivendi-deuteranopia~ have
    248   a little bit more intense colour values applied to wordwise, else
    249   "refined", diffs.  These concern removed lines.  The effect is
    250   visible while using ~magit~ or the built-in ~diff-mode~.
    251 
    252 - Backported emacs.git commit =4cf33b6bd02b868ebbf112da7926d7c3c64517ce=.
    253   It removed the space from the front matter of the =modus-themes.org=
    254   file (i.e. the manual) because the Org export did not produce the
    255   right results, per Emacs bug#64548.  Thanks to Stephen Berman for
    256   reporting the issue and making the requisite change.
    257 
    258 - Added support for the `erts-mode`.  Thanks to Kevin Fleming for
    259   informing me about this built-in mode.  This was done in issue 85 on
    260   the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/85>.
    261 
    262 - Fixed a typo in the ~modus-themes-preset-overrides-intense~ doc
    263   string.  Thanks to Nicolas Semrau for bringing this matter to my
    264   attention.  It was done in issue 90 on the GitHub mirror:
    265   <https://github.com/protesilaos/modus-themes/issues/90>.
    266 
    267 - Made all commands that prompt for a theme (~modus-themes-select~,
    268   ~modus-themes-preview-colors~) apply the =theme= category to the
    269   available candidates.  This allows the user to target said category
    270   to affect the relevant functions.  For example, to set completion
    271   styles with ~completion-category-overrides~ or to define a custom
    272   annotation function with the ~marginalia~ package.
    273 
    274 - Added support for new ~appt-notification~ face (Emacs 30).  Change
    275   upstream by me.
    276 
    277 * 4.2.0
    278 :PROPERTIES:
    279 :CUSTOM_ID: h:29370d83-23c4-415b-afbf-ad85d4296c86
    280 :END:
    281 
    282 ** I won a Google award for the Modus themes
    283 :PROPERTIES:
    284 :CUSTOM_ID: h:1ffc8660-511d-4fa8-aff4-11da8246a186
    285 :END:
    286 
    287 Report here: <https://protesilaos.com/codelog/2023-05-25-emacs-google-award/>.
    288 
    289 This is not a "change" per se, but it is worth documenting here.  It
    290 shows how important accessibility can be in empowering people to use
    291 their computer and, in our case, to exercise their software freedoms.
    292 
    293 The Modus themes tend to one aspect of accessibility.  They do not
    294 exhaust the topic, though they should at least raise awareness about
    295 the significance of tending to the usability needs of everyone.  The
    296 effort I put into documenting the themes (and my other packages)
    297 should be understood in this light as a means of helping people enjoy
    298 their software freedom by learning how to use and extend the program
    299 in question.
    300 
    301 ** New tritanopia-optimised themes
    302 :PROPERTIES:
    303 :CUSTOM_ID: h:b92706b0-9d53-4015-8916-9db3c0c87068
    304 :END:
    305 
    306 I have created a pair of light and dark themes that are intended for
    307 people with blue-yellow colour deficiency (tritanopia).  These are
    308 ~modus-operandi-tritanopia~ (light) and ~modus-vivendi-tritanopia~
    309 (dark).  Screenshots of all the Modus themes are available on my
    310 website: <https://protesilaos.com/emacs/modus-themes-pictures>.
    311 
    312 The entire collection is now described in the manual as follows:
    313 
    314 #+begin_quote
    315 The Modus themes consist of eight themes, divided into four subgroups.
    316 
    317 - Main themes :: ~modus-operandi~ is the project's main light theme,
    318   while ~modus-vivendi~ is its dark counterpart.  These two themes are
    319   part of the project since its inception.  They are designed to cover
    320   a broad range of needs and are, in the opinion of the author, the
    321   reference for what a highly legible "default" theme should look
    322   like.
    323 
    324 - Tinted themes :: ~modus-operandi-tinted~ and ~modus-vivendi-tinted~
    325   are variants of the two main themes.  They slightly tone down the
    326   intensity of the background and provide a bit more color variety.
    327   ~modus-operandi-tinted~ has a set of base tones that are shades of
    328   light ochre (earthly colors), while ~modus-vivendi-tinted~ gives a
    329   night sky impression.
    330 
    331 - Deuteranopia themes :: ~modus-operandi-deuteranopia~ and its
    332   companion ~modus-vivendi-deuteranopia~ are optimized for users with
    333   red-green color deficiency.  This means that they do not use red and
    334   green hues for color-coding purposes, such as for diff removed and
    335   added lines.  Instead, they implement colors that are discernible by
    336   users with deueteranopia or deuteranomaly (mostly yellow and blue
    337   hues).
    338 
    339 - Tritanopia themes :: ~modus-operandi-tritanopia~ and its counterpart
    340   ~modus-vivendi-tritanopia~ are optimized for users with blue-yellow
    341   color deficiency.  The idea is the same as with the deuteranopia
    342   variants: color coding relies only on hues that are accessible to
    343   people with tritanopia or tritanomaly, namely, shades of red and
    344   cyan.
    345 #+end_quote
    346 
    347 ** Recalibrated the "graph" colours in all themes
    348 :PROPERTIES:
    349 :CUSTOM_ID: h:60bb2797-2db6-4d47-9d27-7d1f32291707
    350 :END:
    351 
    352 The new palette subset improves the contrast of all the relevant
    353 colours when presented side-by-side.  These are most notably used by
    354 the ~org-habit~ consistency graph, which is displayed in the Org
    355 agenda.  The deuteranopia and tritanopia themes have their own bespoke
    356 colours for this purpose, due to their specific requirements for
    357 colour coding (e.g. they cannot use green).
    358 
    359 ** Faces or face groups
    360 :PROPERTIES:
    361 :CUSTOM_ID: h:4b68159e-d998-4781-b202-74a3dcc8ae8e
    362 :END:
    363 
    364 - Introduced a subtle 3D effect for clickable buttons, replacing the
    365   previous 2D design.  I realised the flat style creates ambiguity
    366   between the button and the text fields.  This happens, for example,
    367   with =M-x customize-variable= for ~org-capture-templates~ which has
    368   lots of button and text field combinations.  The added sense of
    369   depth helps with the usability of these buttons because it makes
    370   them unambiguous.  Personally, I prefer the 2D approach, but here we
    371   have a trade-off between usability and aesthetics.  According to
    372   what I state in the manual:
    373 
    374   #+begin_quote
    375   If there arises an inescapable trade-off between usability and
    376   stylistic considerations, we will always opt for the former.
    377   #+end_quote
    378 
    379 - Refashioned the ~whitespace-mode~ to be much more subtle and added
    380   the concomitant semantic colour mappings.
    381 
    382   The previous style involved the use of a dim grey background for
    383   each invisible character.  While this is was good to spot invisible
    384   characters quickly, it was a major hindrance for users who want to
    385   run ~whitespace-mode~ at all times (e.g. for the Python programming
    386   language which is space-sensitive).
    387 
    388   We thus remove the backgrounds by default but provide the option to
    389   reinstate them via palette overrides (as documented at length in the
    390   manual).  To this end, we have two new semantic colour mappings for
    391   ordinary space, its invisible characters, as well as space errors.
    392 
    393   Thanks to Christian Tietze and Oliver Epper for their feedback in
    394   issue 80 on the GitHub mirror:
    395   <https://github.com/protesilaos/modus-themes/issues/80>.
    396 
    397 - Applied a more subtle background for faces ~menu-bar-mode~,
    398   ~tool-bar-mode~, ~scroll-bar-mode~.  They do not need to stand out
    399   so much because the toolkit already takes care of that.  Also, we do
    400   not want to dillute the semantic value of either ~bg-tab-bar~ or
    401   ~fringe~ palette colour mappings that I was wrongly using before in
    402   this context.  Note that those faces may not apply, depending on the
    403   underlying tool kit.  For example, I encounter them with the Lucid
    404   build of Emacs, though not with the GTK one.
    405 
    406 - Fix the critical typo of 'widget-buton', which prevented the actual
    407   ~widget-button~ face from being affected by the themes.  Thanks to
    408   Steve Downey for pointing it out in issue 73 on the GitHub mirror:
    409   <https://github.com/protesilaos/modus-themes/issues/73>.
    410 
    411 - Added support for the ~disk-usage~ package.  It is made to look like
    412   Dired, to the extent possible.  Thanks to Nacho Barrientos for the
    413   patch: <https://lists.sr.ht/~protesilaos/modus-themes/patches/39822>.
    414   The change is small and does not require copyright assignment to the
    415   Free Software Foundation.
    416 
    417 - Made the ~eglot-diagnostic-tag-unnecessary-face~ look like a
    418   warning.  By default it inherits the ~shadow~ face, which makes it
    419   counter-intuitive as it dims the text instead of bringing it to our
    420   attention.  The intent of ~eglot-diagnostic-tag-unnecessary-face~ is
    421   to highlight unused symbols, so this is better presented as a
    422   warning.
    423 
    424   Thanks to Augusto Stoffel for bringing this matter to my attention.
    425   This was done via a private channel and the information is shared
    426   with permission.
    427 
    428 - Changed the ~smerge-markers~ to inherit from ~diff-header~ instead
    429   of ~diff-heading~.  Thanks to Steve Downey for the contribution.
    430   This was done in pull request 74 on the GitHub mirror:
    431   <https://github.com/protesilaos/modus-themes/pull/74>.  The change
    432   is small and does not require copyright assignment to the Free
    433   Software Foundation.
    434 
    435 - Added support for the ~jinx~ package.  This was originally done by
    436   Tomasz Hołubowicz in pull request 71 on the GitHub mirror:
    437   <https://github.com/protesilaos/modus-themes/pull/71>.  The change
    438   is small and does not require copyright assignment to the Free
    439   Software Foundation.  I then modified it to make the underlines look
    440   like warnings instead of errors.  This is because of how the package
    441   works: it automatically highlights misspellings in the visible
    442   portion of the buffer.  There are cases where this results in a very
    443   intense presentation, which can be distracting.  We want to reduce
    444   the overall intensity and not draw too much attention to those
    445   highlights.
    446 
    447 - Extended coverage of Org to the new ~org-agenda-calendar-daterange~
    448   face (part of Org version 9.7).  Thanks to Gautier Ponsinet for the
    449   patch, which I received via a private channel.  The change is small
    450   and does not require copyright assignment to the Free Software
    451   Foundation.  In addition to this, I introduced a new semantic colour
    452   mapping in the themes' palette called ~date-range~.  This can be
    453   used with the palette overrides, which are documented at length in
    454   the manual (there are lots of copy-pastable examples as well).
    455 
    456 - Supported all of the new faces of the built-in ~proced~ package.
    457   These are part of Emacs 29 and make the ~proced~ buffers more
    458   colourful, subject to the user option ~proced-enable-color-flag~.
    459   As always, the themes strive to avoid exaggerations, meaning that I
    460   apply colour with restraint: not all faces need to stand out.
    461 
    462 - Included the ~rst-mode~ in the list of explicitly supported
    463   packages, making its heading look like those of Org, Markdown, etc.
    464   Thanks to David Edmondson for the patch:
    465   <https://lists.sr.ht/~protesilaos/modus-themes/patches/40625>.  I
    466   believe David has already assigned copyright to the Free Software
    467   Foundation, though this patch is small anyway.
    468 
    469 - Covered all the new faces of the built-in ~flymake~ package.  These
    470   concern the inline feedback messages (Emacs 30) as well as those
    471   that appear in the echo area (Emacs 29).  The former are subject to
    472   the user option ~flymake-show-diagnostics-at-end-of-line~.
    473 
    474 - Reduced the intensity of the ~which-key~ prefix descriptions.  Those
    475   are the keymaps that displayed by ~which-key~ to hint that typing
    476   the given key will open a new ~which-key~ page with more keys.
    477 
    478 - Configured new ~vundo-saved~ and ~vundo-last-saved~ faces of the
    479   ~vundo~ package.  They are designed to be easy to read, without
    480   going over-the-top.  Thanks to Nicolas Semrau for bringing this
    481   matter to my attention in issue 79 on the GitHub mirror:
    482   <https://github.com/protesilaos/modus-themes/issues/79>.
    483 
    484 - Removed the deprecated ~consult-preview-cursor~ face and made the
    485   requisite adjustments to the ~consult~ faces.  This was done in
    486   commit =267b0c9= of the Consult Git repository.  Discussed here:
    487   <https://github.com/minad/consult/issues/764#issuecomment-1537491625>.
    488 
    489 - Instructed the ~shr-selected-link~ face of the built-in ~shr~
    490   package to use a "mark selection" style instead of the semantically
    491   incorrect "intense red" it had before.  This change is helpful for
    492   those who override the palette of their Modus theme of choice, while
    493   it also allows us to have varied colours depending on the
    494   requirements of each theme (e.g. deuteranopia/tritanopia compared to
    495   the defaults).
    496 
    497 - Did the same as above, mutatis mutandis, for the faces
    498   ~transient-disabled-suffix~, ~web-mode-error-face~,
    499   ~erc-dangerous-host-face~, ~aw-minibuffer-leading-char-face~,
    500   ~binder-sidebar-highlight~, ~binder-sidebar-missing~,
    501   ~image-dired-thumb-flagged~, ~image-dired-thumb-mark~,
    502   ~info-menu-star~, ~rainbow-delimiters-mismatched-face~,
    503   ~evil-ex-substitute-matches~, ~iedit-occurrence~,
    504   ~iedit-read-only-occurrence~, ~pgtk-im-0~, ~dired-narrow-blink~.
    505 
    506 - Enhanced the ~image-dired~ mark faces with a box border, as the use
    507   of a background alone can be obscured by the underlying image
    508   thumbnail, depending on its figures/colours.
    509 
    510 - Removed the backgrounds from the ~powerline-evil~ faces and
    511   simplified their overral presentation in the interest of
    512   maintainability.  The old styles were hard to predict and test.
    513   There could easily be conflicts, such as if the user would override
    514   the colours of the mode line.
    515 
    516 - Ensured that ~diary~ and ~holiday~ colours are distinct and legible,
    517   without being too intense.
    518 
    519 ** Changes to the manual or other documentation
    520 :PROPERTIES:
    521 :CUSTOM_ID: h:d3c12dd0-4231-420b-a212-b6bd571c5c34
    522 :END:
    523 
    524 - Updated the doc string of the primary customisation group defined by
    525   the themes to reflect the support for the case of tritanopia.
    526 
    527 - Included links to the web page of the manual and the one with the
    528   sample pictures in the customisation groups.  Those links appear in
    529   the various Custom UI buffers.
    530 
    531 - Introduced an annotation function for all commands that involve
    532   minibuffer completion.  The annotations display the one-line
    533   description of each theme, making it easier for a user to pick their
    534   preferred choice (e.g. when using the ~modus-themes-select~
    535   command).
    536 
    537 - Defined semantic colour mappings for "marks".  These are used by
    538   ~dired~, ~trashed~, ~proced~, and others.  These is no change to the
    539   default appearance of what users are already familiar with, though
    540   it is now possible to override those styles.
    541 
    542 - Complemented the subset of semantic colour mappings for
    543   errors/warnings with "prominent" variants.  Those employ a
    544   background and foreground combination.  They are used in all sorts
    545   of contexts, such as for fringe errors (~flymake~, ~flycheck~, ...),
    546   ~query-replace~, ~isearch-fail~, and others.
    547 
    548 - Wrote sample code on how to add "padding" to the Emacs frame and the
    549   space between the Emacs windows.  This makes for a presentation that
    550   some users find easier to work with.
    551 
    552 - Corrected the sample code for ~git-gutter~ to use the appropriate
    553   symbols from the theme palette.  Thanks to Christian Tietze for the
    554   patch: <https://lists.sr.ht/~protesilaos/modus-themes/patches/40354>.
    555   The change is small and does not require copyright assignment to the
    556   Free Software Foundation.
    557 
    558 - Removed ~moody~ from the list of packages explicitly supported by
    559   the themes.  We stopped supporting it since version 4 that removed
    560   the relevant user option for the mode line.  The idea is that the
    561   mode line is better handled by the user without interference from
    562   the theme, due to the number of options available (and how brittle
    563   those can be when interacting with unpredictable face definitions).
    564   Thanks to Nicolas De Jaeghere for reminding me to remove ~moody~
    565   from the manual:
    566   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cypi9jzyclqxy.fsf%40gmail.com%3E#%3C87jzybdgg1.fsf@dejaeghe.re%3E>.
    567 
    568 ** Miscellaneous
    569 :PROPERTIES:
    570 :CUSTOM_ID: h:7240990a-2b4d-442c-a15c-84c8d8b26622
    571 :END:
    572 
    573 - Added two new preset palette overrides to make the overall
    574   presentation "warmer" or "cooler".  Those are called
    575   ~modus-themes-preset-overrides-warmer~ and
    576   ~modus-themes-preset-overrides-cooler~, respectively.  The manual
    577   explains how those presets can be used.  I suggest the user does not
    578   add such overrides if they intend to load any of the deuteranopia or
    579   tritanopia themes, due to the specific requirements of their design.
    580 
    581 - Refined the deuteranopia yellows for warnings, errors, and comments.
    582   These otherwise slight adjustments make it considerably easier to
    583   tell apart distinct elements that may be positioned close together.
    584 
    585 - Tweaked the deuteranopia semantic colour mappings for emails.  The
    586   subject line use a more appropriate colour value, while level 3
    587   quotes stand out a bit more than they did before, without being
    588   needlessly intense.
    589 
    590 - Arranged for the ~modus-themes-load-theme~ function return the value
    591   of the =THEME= argument it accepts.  The intent is to allow other
    592   functions that call this one to capture the return value for their
    593   purposes (such as with a ~let~ binding).  Thank to Oliver Epper for
    594   the feedback in issue 78 on the GitHub mirror:
    595   <https://github.com/protesilaos/modus-themes/issues/78>.
    596 
    597 * 4.1.0
    598 :PROPERTIES:
    599 :CUSTOM_ID: h:d028f117-8a74-4c0c-b838-9f6bf2b43c19
    600 :END:
    601 
    602 ** Recursive semantic colour mapping
    603 :PROPERTIES:
    604 :CUSTOM_ID: h:262e2f5f-4db0-4549-a5ba-4e57cd2edc6a
    605 :END:
    606 
    607 Version 4 of the Modus themes changed how all colour-related
    608 customisations are done.  Instead of multiple user options with
    609 hard-coded stylistic presets, users have access to a comprehensive
    610 system of "named colours" and "semantic colour mappings".  The former
    611 is an association between a name, like =blue-warmer=, and a colour
    612 value such as =#3548cf=.  While semantic colour mappings are
    613 associations between syntactic/interface constructs and named colours,
    614 such as what value level 2 headings have.
    615 
    616 When overriding the palette users can now define semantic colour
    617 mappings whose value is another such mapping.  This recursion
    618 simplifies how multiple overrides are defined.
    619 
    620 The manual offers extensive guidance on the topic of palette
    621 overrides.  There are many sections that include code samples that are
    622 ready for use.
    623 
    624 The addition of recursive semantic colour mappings solves a problem
    625 reported by Imran Khan on the mailing list where they were trying to
    626 do what made sense (recursion) but the old code did not permit as
    627 much:
    628 <https://lists.sr.ht/~protesilaos/modus-themes/%3Cb7ca4702162fd575593f8ded28d9a888.contact%40imrankhan.live%3E>.
    629 
    630 I was aware of that constraint from before the release of version
    631 4.0.0 but was hesitant to implement recursion prior to getting some
    632 feedback on the new palette overriding feature.
    633 
    634 Also thanks to Christian Tietze for participating in that discussion
    635 on the mailing list.
    636 
    637 ** Extract an arbitrary colour from a given theme's palette
    638 :PROPERTIES:
    639 :CUSTOM_ID: h:6ba1437f-e55f-4c3a-9c03-b0035293b4a2
    640 :END:
    641 
    642 I formalised the function ~modus-themes-get-color-value~ and
    643 documented it at length.  It accepts a =COLOR= argument, which
    644 represents an entry in the palette (named colour or semantic colour
    645 value), as well as optional =OVERRIDES= and =THEME= arguments.  When
    646 =OVERRIDES= is non-nil, ~modus-themes-get-color-value~ will read from
    647 the overrides, otherwise it will only consult the default palette
    648 value.  The =THEME= argument specifies which theme's palette to use.
    649 In the absence of =THEME=, the current one is used.
    650 
    651 I already had the "get colour" functionality internally, but was
    652 inspired to make it public after checking Sacha Chua's blog post
    653 "Making highlight-sexp follow modus-themes-toggle":
    654 <https://sachachua.com/blog/2023/01/making-highlight-sexp-follow-modus-themes-toggle/>.
    655 Sacha was using a private function from the themes, which would have
    656 been problematic if I would ever move things around.
    657 
    658 Remember to read the documentation of ~modus-themes-list-colors~.
    659 That command shows a preview of the named colours.  When called with a
    660 prefix argument (=C-u= by default), it shows a preview of the semantic
    661 colour mappings.
    662 
    663 ** Option to disable other themes while loading Modus
    664 :PROPERTIES:
    665 :CUSTOM_ID: h:5af072da-38f6-44d0-9342-e799f0196006
    666 :END:
    667 
    668 In the past, we used to disable all other themes while loading a Modus
    669 theme.  I revised this for version 4 because I learnt that some users
    670 use "themes" as bundles of arbitrary configurations.
    671 
    672 With the addition of the ~modus-themes-disable-other-themes~ user
    673 option, which is non-nil by default, I am restoring the old behaviour:
    674 when loading a Modus theme all other themes are disabled.
    675 
    676 This happens when the theme is loaded with the commands
    677 ~modus-themes-toggle~ and ~modus-themes-select~, or via Lisp with the
    678 function ~modus-themes-load-theme~.
    679 
    680 Users who need to run multiple themes can set this option to a nil
    681 value.  (Personally, I use minor modes for such stylistic bundles and
    682 never have to worry about ~(mapc #'disable-theme custom-enabled-themes)~.)
    683 
    684 Thanks to Tony Zorman for the feedback on the mailing list, which led
    685 me to the introduction of this user option:
    686 <https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E#%3C87bkne84d2.fsf@hyperspace%3E>.
    687 
    688 ** Renamed the named colours for bg-{added,changed,removed}-intense
    689 :PROPERTIES:
    690 :CUSTOM_ID: h:d43ef5cb-10dd-4c33-9429-2289a5fb2506
    691 :END:
    692 
    693 They are now called ~bg-added-fringe~, ~bg-changed-fringe~,
    694 ~bg-removed-fringe~.  Please update any palette overrides to reflect
    695 this renaming.
    696 
    697 ** Documented how to override diffs for more optional combinations
    698 :PROPERTIES:
    699 :CUSTOM_ID: h:220d4361-7245-4632-998e-c0e2ee3b5f7d
    700 :END:
    701 
    702 The manual includes details (with copy-pastable code) on how to
    703 achieve foreground-only diffs and/or how to have red+blue diffs
    704 instead of the default red+green or the deuteranopia yellow+blue.
    705 
    706 Thanks to Andrew Tropin for requesting this feature.  We used to
    707 provide this style in earlier versions of the themes, but now it is
    708 much more flexible.  Andrew's request was done via a private channel
    709 and the information is shared with permission.
    710 
    711 [ Since we are here, also thanks to Andrew for keeping the Guix
    712   package of the Modus themes up to date. ]
    713 
    714 ** Stylistic changes
    715 :PROPERTIES:
    716 :CUSTOM_ID: h:fdcff629-22c1-4203-9104-4f732c59f731
    717 :END:
    718 
    719 - Guaranteed consistency between all of the line-related faces of the
    720   ~consult~ package.  We use the ~shadow~ face in all interfaces where
    721   line numbers are contextual information (Occur, Grep,...).  With
    722   Consult, this was not the case for commands like ~consult-line~.
    723 
    724   Thanks to Daniel Mendler (also known as @minad) for bringing this
    725   matter to my attention:
    726   <https://lists.sr.ht/~protesilaos/ef-themes/%3Cb03413a6-cb77-615d-145d-db4eb710bfca%40daniel-mendler.de%3E>.
    727 
    728 - Refined all diff colours for fringes and reduced the saturation for
    729   added lines in ~modus-operandi-deuteranopia~, ~modus-vivendi-deuteranopia-theme~.
    730   Thanks to Andrew Tropin for showing me some usability issues with
    731   the previous styles.  This was done via a private channel and the
    732   information is shared with permission.
    733 
    734 - Instructed the ~dashboard~ icons to retain their underlying colour.
    735   The default value of the ~dashboard-items-face~ made all icons use
    736   the same colour, detracting from their distinctiveness.  Thanks to
    737   Thanos Apollo for bringing this matter to my attention.  It was done
    738   via a private channel and the information is shared with permission.
    739 
    740 - Amplified the intensity of the =#+begin_src= text when the user
    741   option opts for ~(setq modus-themes-org-blocks 'gray-background)~.
    742   The text is now easier to discern.  That user option makes the
    743   inside of the block have a gray background and the begin/end lines
    744   to have a more intense gray, giving off a "blocky" impression.
    745 
    746 - Made the ~compilation-warning~ face also inherit the
    747   ~modus-themes-bold~ face.  This means that it responds to the value
    748   of the user option ~modus-themes-bold-constructs~, the same way the
    749   other compilation-related mode line faces do.  Thanks to Manuel
    750   Giraud for informing me about the inconsistency in
    751   ~compilation-warning~.  This was done via a private channel and the
    752   information is shared with permission.
    753 
    754 - Calibrated the hueness of the "nuanced" backgrounds in the
    755   ~modus-operandi-tinted~ and ~modus-vivendi-tinted~ themes.  These
    756   tweaks are necessary to retain thematic consistency.
    757 
    758 - Reset ~mu4e-header-highlight-face~ to its intended style.  I made a
    759   mistake before: I did not want the ~highlight~ face to be used in
    760   this case as it is too intense.  Sorry!
    761 
    762 - Toned down the highlight line of the ~ctrlf~ and ~swiper~ packages.
    763   I mistakenly used the ~highlight~ before, which is too intense for
    764   the purposes of an ancillary background colour.
    765 
    766 - Applied "nuanced" backgrounds to the tinted Org blocks.  This fixes
    767   an error of mine where I amplified the background colouration of Org
    768   blocks.  This concerns the case where the user option
    769   ~modus-themes-org-blocks~ has a =tinted-background= value.  Thanks
    770   to Mark Bestley for informing me about this in issue 60 on the
    771   GitHub mirror:
    772   <https://github.com/protesilaos/modus-themes/issues/60#issuecomment-1374530488>.
    773 
    774 - Removed the hardcoding of the ~italic~ style in three faces, opting
    775   instead to make them subject to the user option ~modus-themes-italic-constructs~.
    776   The faces are  ~marginalia-documentation~, ~markup-attribute-face~,
    777   and ~org-agenda-calendar-sexp~.
    778 
    779 - Tweaked the Org agenda deadline and today schedule to use a bold
    780   weight only when the user option ~modus-themes-bold-constructs~ is
    781   set to a non-nil value.  Thanks to Marko Kocic for reporting an
    782   issue that brought this matter to my attention:
    783 
    784   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C35588839.256749.1673272214728%40office.mailbox.org%3E>
    785   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C874jszvk5g.fsf%40protesilaos.com%3E>
    786   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87ilhfu101.fsf%40protesilaos.com%3E>
    787 
    788 - Enforced the main foreground colour in the faces =highlight= and
    789   =secondary-selection=.  This should have always been there to avoid
    790   awkward colour combinations.  I realised it was missing after
    791   corresponding with Edgar Vincent on a relevant topic:
    792   <https://lists.sr.ht/~protesilaos/modus-themes/%3C878ri95h1q.fsf%40posteo.net%3E#%3C87ilhc7usc.fsf@posteo.net%3E>.
    793 
    794 - Made the ~eglot-mode-line~ face conditionally bold, by subjecting it
    795   to the user option ~modus-themes-bold-constructs~.
    796 
    797 - Ensure that the background of the ~company~ package's popup is the
    798   same as that of the ~corfu~ package.  This is a subtle neutral
    799   value.
    800 
    801 - Fixed the hue of the ~org-habit~ "ready" faces.  It should be green
    802   and I made a mistake here.  The ~modus-operandi-deuteranopia~ and
    803   ~modus-vivendi-deuteranopia~ themes do change the underlying hues
    804   though, as green is not suitable for them.
    805 
    806 - Simplified the ~keycast~ faces so that (i) they do not use a =:box=
    807   attribute that can look awkward in some cases and (ii) the name of
    808   the given command is not colourised to avoid exaggerations with the
    809   use of colour.
    810 
    811 - Made the ~powerline-active1~ face inherit from ~mode-line~ instead
    812   of ~mode-line-active~.  The latter only exists in newer versions of
    813   Emacs and we do not want to make the themes break in older versions.
    814   Thanks to TitusMu for identifying this and reporting it in issue 64 on
    815   the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/64>.
    816 
    817 - Decoupled all ~ediff~ faces from their ~diff-mode~ counterparts.
    818   Ediff does not depend on ~diff-mode~, so we want to make each set of
    819   faces stand on its own.  Thanks to Bernd Rellermeyer for pointing
    820   out this implicit dependency in issue 68 on the GitHub mirror:
    821   <https://github.com/protesilaos/modus-themes/issues/68>.
    822 
    823 ** Miscellaneous
    824 :PROPERTIES:
    825 :CUSTOM_ID: h:14d1f1b0-00e0-4275-a06c-9e34daf6411a
    826 :END:
    827 
    828 - Improved the clarity and robustness of the code that does the work
    829   of ~modus-themes-list-colors~.
    830 
    831 - Refined the colour value of the =blue-warmer= named colour for all
    832   the light themes.  It is a tiny bit darker than before.
    833 
    834 - Introduced a ~t~ fallback value for the user option
    835   ~modus-themes-completions~.  It makes it easier to apply the same
    836   styles for the selection line and matching characters.
    837 
    838 - Documented how to not extend the active region background.
    839 
    840 - Explained how to make tabs more or less colourful by using palette
    841   overrides.
    842 
    843 - Removed obsolete and redundant statements from the documentation the
    844   user option ~modus-themes-completions~.  There was (i) an outdated
    845   reference to the =background= value, which is no longer supported,
    846   and (ii) a statement about the standard Completions' buffer that was
    847   not useful.  Thanks to Rudolf Adamkovič for informing me about this:
    848   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2tu1211qz.fsf%40me.com%3E>.
    849 
    850 - Rephrase the statement ="*Completions* buffer"= in the documentation
    851   in the interest of clarity.  Thanks to Rudolf Adamkovič for the
    852   suggestion:
    853   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2tu1211qz.fsf%40me.com%3E#%3Cm2eds43htz.fsf@me.com%3E>.
    854 
    855 - Updated the sample configuration of the themes with ~use-package~ in
    856   the interest of simplicity.  Thanks to Sergey Nichiporchik for the
    857   contribution.  Sergey's contribution is within the ~15 line limit
    858   and thus does not require copyright assignment to the Free Software
    859   Foundation.
    860 
    861   This was done in merge request 59 on the GitLab mirror:
    862   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/59>.
    863 
    864   The prepatory discussion took place in issue 310 on the same mirror:
    865   <https://gitlab.com/protesilaos/modus-themes/-/issues/310>.
    866 
    867   Weeks later I further simplified the relevant samples for the sake
    868   of uniformity with the generic package setup.  Thanks to Zoltan
    869   Kiraly for informing me about the fact that the ~:bind~ keyword
    870   delays the load of the package until the given command is invoked:
    871   <https://github.com/protesilaos/modus-themes/pull/67>.
    872 
    873   Streamlining the configuration makes it easier for me to propose one
    874   set of basic configurations without the need to know what a
    875   configuration macro is doing behind the scenes.
    876 
    877 - Fixed an example colour in the documentation.  Thanks to Russell Sim
    878   for spotting the error of me using =bg-blue= instead of
    879   =bg-blue-intense=:
    880   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cyger0wa9gsn.fsf%40simopolis.xyz%3E>.
    881 
    882 - Defined the missing =modus-themes-nuanced-{red,green,yellow,blue,magenta,cyan}= faces.
    883   Those are used internally to avoid repetition, though users can also
    884   rely on them for their personal configurations (same for all other
    885   Modus faces).
    886 
    887 - Improved the documentation on how to have a borderless mode line
    888   style by using the palette overrides.
    889 
    890 - Updated the manual's entry on the ~pdf-tools~ backdrop to make it
    891   use the new conventions that have been in place since version 4 of
    892   the themes.  Thanks to Utkarsh Singh for the patches:
    893   <https://lists.sr.ht/~protesilaos/modus-themes/patches/37902>.
    894 
    895 - Add an explicit notice that the version of the themes that is built
    896   into Emacs must use the ~require-theme~ function instead of the
    897   familiar ~require~.  Built-in themes are not considered "code", due
    898   to old conventions, and are not part of the ~load-path~ that
    899   ~require~ reads from.  This is not up to the theme to decide.
    900   Interested users must simply know about this important technicality.
    901   Thanks to Koen van Greevenbroek for reporting the problem that
    902   helped me identify this issue:
    903   <https://lists.sr.ht/~protesilaos/modus-themes/%3C31038fd76868fa3d07c9a429dfed8fd6ac374bb8.camel%40posteo.net%3E>.
    904 
    905 - Clarified the wording of the ~modus-themes-with-colors~ setup for
    906   custom faces.  It explains when this macro should be called.  Thanks
    907   to user bangedorrunt for the feedback in issue 59 on the GitHub
    908   mirror: <https://github.com/protesilaos/modus-themes/issues/59>.
    909 
    910 * 4.0.0
    911 :PROPERTIES:
    912 :CUSTOM_ID: h:cd353ccc-daf5-4ee5-885a-b3f21be92b66
    913 :END:
    914 
    915 This is the biggest release in the history of the project.
    916 Previously, a new version would consist of about 100 commits to the
    917 Git repository.  This one includes 400+ of them in the span of one
    918 month.  The out-of-the-box looks of the themes are largely the same as
    919 before, though I have made a lot of internal changes that affect how
    920 the themes are instantiated and customised.
    921 
    922 As part of this development cycle, I produced publications informing
    923 users of the upcoming changes, while demonstrating the new feature of
    924 overriding the colour palette and its semantic mappings.
    925 
    926 - 2022-12-03 Emacs: breaking changes coming to 'modus-themes' version 4 :: <https://protesilaos.com/codelog/2022-12-03-modus-themes-v4-development/>
    927 - 2022-12-07 Emacs: change colour values and mappings in Modus themes version 4 :: <https://protesilaos.com/codelog/2022-12-07-modus-themes-4-colour-values-mappings/>
    928 - 2022-12-17 Emacs: modus-themes version 4 demo [video] :: <https://protesilaos.com/codelog/2022-12-17-modus-themes-v4-demo/>
    929 - 2022-12-28 Emacs: note for MELPA or Git users of the Modus themes ahead of version 4 :: <https://protesilaos.com/codelog/2022-12-28-note-modus-themes-4-melpa/>
    930 
    931 I did this in the hope of preparing users for the refactored Modus
    932 themes, though I understand that not everyone has had the chance to
    933 consult those entries.  The general idea is that *old custom code will
    934 not work* and most user options are either removed or confined to a
    935 more precise scope.
    936 
    937 Custom code will not work because the named colours of the palettes
    938 have changed.  Many user options are made redundant by the new
    939 overrides' system.  Specifically, if an option pertains to
    940 colouration, it is now done via overrides instead of the old method of
    941 me hardcoding styles (e.g. for stuff like "rainbow" headings).
    942 
    943 More details below.  This is a long entry.  Please take your time to
    944 study it before upgrading to the new version of the themes.
    945 
    946 ** There now are six Modus themes for more legibility needs
    947 :PROPERTIES:
    948 :CUSTOM_ID: h:f305dd08-a713-4369-a16d-af9403ab6c22
    949 :END:
    950 
    951 Quoting from the manual's "Overview" section:
    952 
    953 #+begin_quote
    954 The Modus themes consist of six themes, divided into three subgroups.
    955 
    956 - Main themes :: ~modus-operandi~ is the project's main light theme,
    957   while ~modus-vivendi~ is its dark counterpart.  These two themes are
    958   part of the project since its inception.  They are designed to cover
    959   a broad range of needs and are, in the opinion of the author, the
    960   reference for what a highly legible "default" theme should look
    961   like.
    962 
    963 - Tinted themes :: ~modus-operandi-tinted~ and ~modus-vivendi-tinted~
    964   are variants of the two main themes.  They slightly tone down the
    965   intensity of the background and provide a bit more color variety.
    966   ~modus-operandi-tinted~ has a set of base tones that are shades of
    967   light ochre (earthly colors), while ~modus-vivendi-tinted~ gives a
    968   night sky impression.
    969 
    970 - Deuteranopia themes :: ~modus-operandi-deuteranopia~ and its
    971   companion ~modus-vivendi-deuteranopia~ are optimized for users with
    972   red-green color deficiency.  This means that they do not use red and
    973   green hues for color-coding purposes, such as for diff removed and
    974   added lines.  Instead, they implement colors that are discernible by
    975   users with deueteranopia or deuteranomaly (mostly yellow and blue
    976   hues).
    977 #+end_quote
    978 
    979 All six themes will be included in Emacs 30 (~modus-operandi~ and
    980 ~modus-vivendi~ are in Emacs since August 2020).  I asked about it on
    981 the emacs-devel mailing list and received the approval of Eli
    982 Zaretskii, one of the Emacs maintainers.  The full thread:
    983 <https://lists.gnu.org/archive/html/emacs-devel/2022-12/msg00834.html>.
    984 
    985 *** New command to select one of the Modus themes
    986 :PROPERTIES:
    987 :CUSTOM_ID: h:e4f011c4-46d3-4e4f-ad3e-9a609ef8bd5e
    988 :END:
    989 
    990 The ~modus-themes-select~ command uses minibuffer completion to load
    991 one of the six themes in the collection.  Loading a Modus theme
    992 disables all other Modus themes.
    993 
    994 NOTE that Emacs can load multiple themes, which typically produces
    995 undesirable results and undoes the work of the designer.  Use the
    996 ~disable-theme~ command if you are trying other themes beside the
    997 Modus collection.
    998 
    999 *** New user option to specify themes to toggle
   1000 :PROPERTIES:
   1001 :CUSTOM_ID: h:c4efdaca-505b-4724-81b4-4a5340cbcaba
   1002 :END:
   1003 
   1004 The ~modus-themes-to-toggle~ is a variable that affects the command
   1005 ~modus-themes-toggle~.  By default, the toggling happens between the
   1006 ~modus-operandi~ and ~modus-vivendi~ themes, as was always the case.
   1007 Though with the addition of new themes, it is possible to change this
   1008 to something like:
   1009 
   1010 #+begin_src emacs-lisp
   1011 (setq modus-themes-to-toggle '(modus-operandi-deuteranopia modus-vivendi-deuteranopia))
   1012 #+end_src
   1013 
   1014 If ~modus-themes-to-toggle~ does not specify two Modus themes, the
   1015 ~modus-themes-toggle~ command will prompt with completion for a theme
   1016 among the collection (this is practically the same as the aforementioned
   1017 ~modus-themes-select~ command).
   1018 
   1019 ** Colour palettes and their overrides are much more powerful
   1020 :PROPERTIES:
   1021 :CUSTOM_ID: h:c20673d3-d992-4827-bd24-80329962dc8e
   1022 :END:
   1023 
   1024 In previous versions, there were options to override colour values.
   1025 Those were difficult to use as they (i) required expertise on picking
   1026 the correct values and (ii) it was not clear which colour was used
   1027 where.
   1028 
   1029 The new version broadens the colour palette to include *named colours*
   1030 and *semantic colour mappings*.  Named colours are associations
   1031 between a symbol and a colour value, such as =(blue-warmer "#354fcf")=.
   1032 While semantic colour mappings apply those named colours to specific
   1033 constructs such as =(heading-2 yellow-faint)= for all level 2 headings.
   1034 
   1035 What this means is that overrides can now be targeted at semantic
   1036 mappings as well to refashion practically every aspect of the themes.
   1037 The manual provides lots of examples that can be copied and used
   1038 directly.  For example, it is possible to change the sequence of
   1039 colours in headings so that, say, there is a colour-coding that
   1040 denotes depth.  Links to relevant entries are included in this
   1041 document.
   1042 
   1043 The ~modus-themes-common-palette-overrides~ user option contains
   1044 entries that are shared between all the themes.  While there also
   1045 exist theme-specific options such as ~modus-operandi-palette-overrides~.
   1046 
   1047 For technical insight into the palette overrides, consult the manual:
   1048 <https://protesilaos.com/emacs/modus-themes#h:34c7a691-19bb-4037-8d2f-67a07edab150>.
   1049 
   1050 For practical examples check "Stylistic variants using palette
   1051 overrides" and its subsections:
   1052 <https://protesilaos.com/emacs/modus-themes#h:df1199d8-eaba-47db-805d-6b568a577bf3>.
   1053 
   1054 ** Preset overrides for faint or intense colouration
   1055 :PROPERTIES:
   1056 :CUSTOM_ID: h:5ba76bb2-9ca8-4202-aca3-31aaca239d94
   1057 :END:
   1058 
   1059 The palette overrides are comprehensive and can be tweaked in a
   1060 detailed way.  Still, users may prefer to use the presets for a
   1061 "faint" or "intense" style.  These presets showcase the new feature by
   1062 styling elements that were previously not subject to configuration.
   1063 They also provide the convenience of a common set of stylistic
   1064 patterns.
   1065 
   1066 Read the "Palette override presets" section in the manual for how to
   1067 use and/or extend those:
   1068 <https://protesilaos.com/emacs/modus-themes#h:b0bc811c-227e-42ec-bf67-15e1f41eb7bc>.
   1069 
   1070 ** Named colours are more meaningful
   1071 :PROPERTIES:
   1072 :CUSTOM_ID: h:94e59644-8ef8-4a46-9666-a241ba04b21a
   1073 :END:
   1074 
   1075 In the past, the variants of the main accent colours were named like:
   1076 
   1077 - =red=
   1078 - =red-alt=
   1079 - =red-alt-other=
   1080 
   1081 The improved naming scheme changes those to:
   1082 
   1083 - =red=
   1084 - =red-warmer=
   1085 - =red-cooler=
   1086 
   1087 Semantically, the "warmer" variants have more yellow or red while the
   1088 "cooler" ones have greater contribution of cyan or blue.  As such, the
   1089 user can expect =green-warmer= to be an olive green and =green-cooler=
   1090 to be that of the pine (though olive trees can have blue-green
   1091 colouration and pine trees can be "warmer", but I digress).
   1092 
   1093 Named colours can be previewed with the commands
   1094 ~modus-themes-list-colors~ (alias ~modus-themes-preview-colors~) and
   1095 ~modus-themes-list-colors-current~ (alias
   1096 ~modus-themes-preview-colors-current~).
   1097 
   1098 Those commands accept a =C-u= prefix argument, in which case they show
   1099 the semantic colour mappings.
   1100 
   1101 ** Rationalisation of the colour palette
   1102 :PROPERTIES:
   1103 :CUSTOM_ID: h:cb378214-54a1-4b5b-a801-aa206b94ae38
   1104 :END:
   1105 
   1106 In previous versions, there were a lot of named colours that were
   1107 added ad-hoc, such as =fg-special-cold= and =bg-special-calm-faint=.
   1108 There was no clear design pattern behind them, nor was it obvious
   1109 where those colours should be used.  Furthermore, there were colours
   1110 that were reserved for the various permutations of user options.
   1111 
   1112 This was too complex for users who wanted/needed to refashion aspects
   1113 of the themes.  It was also difficult to maintain.
   1114 
   1115 The new palettes are more streamlined and their application is more
   1116 predictable.  This only matters to users who tweak the themes: it
   1117 makes their life easier, although it does render inapplicable any
   1118 previous custom code.
   1119 
   1120 ** Deprecation of user options
   1121 :PROPERTIES:
   1122 :CUSTOM_ID: h:fcaa0f80-7e78-44b1-ab04-90acb0046139
   1123 :END:
   1124 
   1125 The following subsections explain the topics in further detail.  The
   1126 general idea for this change is that palette overrides provide a more
   1127 powerful, more flexible, and less complex alternative.  The code base
   1128 is considerably smaller.
   1129 
   1130 With overrides, I can now provide support to cases such as:
   1131 
   1132 - Users who need different sets of greys as their monitor has
   1133   inadequate colour reproduction (this is much more common than you
   1134   think).
   1135 - Users who want to make individual elements stand out, such as to
   1136   turn the delimiters of Org source blocks (the =#+begin_src= and
   1137   =#+end_src= lines) into, say, a shade of red.
   1138 - Users who want to tone down the =TODO= and =DONE= keywords while
   1139   making headings more colourful.  Or the inverse, or any combination
   1140   in-between the extremes.
   1141 - Users who want Org property drawers to be more colourful but inline
   1142   code to be faint.
   1143 
   1144 You get the idea...  All these and many more are now possible.
   1145 Whereas in the past I would either have to tell people that it is not
   1146 possible or hardcode a stylistic alternative via user options, thus
   1147 further complicating the code base.
   1148 
   1149 Catering to all those use-cases is important due to the maximalist
   1150 scope of the Modus themes: I cannot tell people to use another theme,
   1151 because here is where they come for their legibility needs.  This is
   1152 consistent with my experience that accessibility is not a
   1153 one-size-fits-all and that the most accessible design is that which is
   1154 flexible, ceteris paribus.
   1155 
   1156 *** ~modus-themes-intense-mouseovers~
   1157 :PROPERTIES:
   1158 :CUSTOM_ID: h:7f4a658a-613b-4ab9-bc05-d9aa6179830b
   1159 :END:
   1160 
   1161 This user option would amplify the background colour of mouse hover
   1162 effects (technically, the ~highlight~ and ~mode-line-highlight~
   1163 faces).  It always used a blue colour.
   1164 
   1165 The same effect can now be achieved via overrides, except it is now
   1166 possible to use any background colour or level of intensity that is
   1167 provided by the themes' palette.  The manual provides concrete
   1168 examples: <https://protesilaos.com/emacs/modus-themes#h:b5cab69d-d7cb-451c-8ff9-1f545ceb6caf>.
   1169 
   1170 *** ~modus-themes-org-agenda~
   1171 :PROPERTIES:
   1172 :CUSTOM_ID: h:778abb81-4bcb-4a5c-85eb-eec9f417a443
   1173 :END:
   1174 
   1175 This was a complex user option that was hard to test, document, and
   1176 maintain.  Most aspects of the Org agenda can be affected via
   1177 overrides, as demonstrated in the manual:
   1178 <https://protesilaos.com/emacs/modus-themes#h:a5af0452-a50f-481d-bf60-d8143f98105f>.
   1179 
   1180 *** ~modus-themes-fringes~
   1181 :PROPERTIES:
   1182 :CUSTOM_ID: h:b1ee38d7-45a0-474b-8c97-774f61462cc6
   1183 :END:
   1184 
   1185 This user option provided two shades of grey and the option for an
   1186 invisible background for the Emacs fringe.  The same and better can be
   1187 done via overrides, as shown in the manual:
   1188 <https://protesilaos.com/emacs/modus-themes#h:c312dcac-36b6-4a1f-b1f5-ab1c9abe27b0>.
   1189 
   1190 *** ~modus-themes-lang-checkers~
   1191 :PROPERTIES:
   1192 :CUSTOM_ID: h:ad06917b-a078-48c8-97e8-1182e085a15c
   1193 :END:
   1194 
   1195 This was another complex user option that offered several stylistic
   1196 variants of dubious value.  The main problem it had is that linter
   1197 highlights are often applied automatically, so any super intense style
   1198 becomes unusable.  Same when a file has lots of warnings/errors.
   1199 
   1200 The semantic colour mappings I provide for this case are limited to
   1201 underlines, which I think is the most usable/legible design.  The
   1202 manual provides concrete examples on how to tweak those:
   1203 <https://protesilaos.com/emacs/modus-themes#h:03dbd5af-6bae-475e-85a2-cec189f69598>.
   1204 
   1205 *** ~modus-themes-mode-line~
   1206 :PROPERTIES:
   1207 :CUSTOM_ID: h:1b82b764-97f5-406a-8440-bae415c7d294
   1208 :END:
   1209 
   1210 Yet another very complex user option that I removed in the interest of
   1211 maintainability.  All its stylistic permutations (and more) for
   1212 colours are possible via overrides:
   1213 
   1214 - Make the mode line borderless :: <https://protesilaos.com/emacs/modus-themes#h:80ddba52-e188-411f-8cc0-480ebd75befe>
   1215 - Make the active mode line colorful :: <https://protesilaos.com/emacs/modus-themes#h:e8d781be-eefc-4a81-ac4e-5ed156190df7>
   1216 
   1217 It is also possible to add padding to the mode line, though I explain
   1218 why this was always a dirty hack:
   1219 <https://protesilaos.com/emacs/modus-themes#h:5a0c58cc-f97f-429c-be08-927b9fbb0a9c>.
   1220 
   1221 *** ~modus-themes-diffs~
   1222 :PROPERTIES:
   1223 :CUSTOM_ID: h:dd2879a4-37c1-4ded-bc7e-24a217248961
   1224 :END:
   1225 
   1226 I have redesigned all diff-related colours to improve their usability.
   1227 They are less intense than before, but still stand out clearly.  I am
   1228 purposefully not documenting how to use overrides here as I want users
   1229 to give this redesign a try.  We can always document and refine things
   1230 at a later point.
   1231 
   1232 *** ~modus-themes-subtle-line-numbers~
   1233 :PROPERTIES:
   1234 :CUSTOM_ID: h:bcce1b94-a223-4324-b0a6-940e389819a8
   1235 :END:
   1236 
   1237 This was a simple, but ultimately very limited option.  We can do much
   1238 better with overrides because we can tweak every aspect of this
   1239 interface without making the code more complex.  The manual shows how
   1240 to do it in style:
   1241 <https://protesilaos.com/emacs/modus-themes#h:b6466f51-cb58-4007-9ebe-53a27af655c7>.
   1242 
   1243 *** ~modus-themes-markup~
   1244 :PROPERTIES:
   1245 :CUSTOM_ID: h:5eedfd24-9480-4b76-8b64-e625d3220a8d
   1246 :END:
   1247 
   1248 This was a poorly named user option that only affected inline code
   1249 elements in prose.  The new semantic colour mappings provide more
   1250 points of entry and thus make it easier to tweak things to one's
   1251 liking (including tables, property drawers, source block delimiters
   1252 (the =#+begin_src= and =#+end_src= lines)), and more.  The manual
   1253 shows how:
   1254 <https://protesilaos.com/emacs/modus-themes#h:bb5b396f-5532-4d52-ab13-149ca24854f1>.
   1255 
   1256 *** ~modus-themes-paren-match~
   1257 :PROPERTIES:
   1258 :CUSTOM_ID: h:8dbe54c3-5bfc-424c-8952-f68015f6c6c4
   1259 :END:
   1260 
   1261 The colouration of matching parentheses of the ~show-paren-mode~ can
   1262 still be affected via overrides:
   1263 <https://protesilaos.com/emacs/modus-themes#h:259cf8f5-48ec-4b13-8a69-5d6387094468>.
   1264 
   1265 *** ~modus-themes-syntax~
   1266 :PROPERTIES:
   1267 :CUSTOM_ID: h:22910131-87bf-4c03-bbf4-aac3010b570a
   1268 :END:
   1269 
   1270 This was a user option that controlled the colouration of programming
   1271 modes.  We can reproduce it with overrides, except we now also have
   1272 the freedom to adapt things further:
   1273 
   1274 - Make comments yellow and strings green :: <https://protesilaos.com/emacs/modus-themes#h:26f53daa-0065-48dc-88ab-6a718d16cd95>
   1275 - Make code syntax use the old alt-syntax style :: <https://protesilaos.com/emacs/modus-themes#h:c8767172-bf11-4c96-81dc-e736c464fc9c>
   1276 - Make use of alternative styles for code syntax :: <https://protesilaos.com/emacs/modus-themes#h:943063da-7b27-4ba4-9afe-f8fe77652fd1>
   1277 
   1278 *** ~modus-themes-links~
   1279 :PROPERTIES:
   1280 :CUSTOM_ID: h:68d41ee9-d277-45f9-a6cd-543dac9282c8
   1281 :END:
   1282 
   1283 The colouration of links can now be affected via palette overrides, as
   1284 documented in the manual:
   1285 <https://protesilaos.com/emacs/modus-themes#h:6c1d1dea-5cbf-4d92-b7bb-570a7a23ffe9>.
   1286 
   1287 *** ~modus-themes-region~
   1288 :PROPERTIES:
   1289 :CUSTOM_ID: h:b97b78df-9ed9-4173-8de2-303851231e06
   1290 :END:
   1291 
   1292 Overrides can be used to affect the region's colouration and/or to
   1293 prevent the active region highlight from changing the underlying text
   1294 colour.  As always, the manual covers the details:
   1295 <https://protesilaos.com/emacs/modus-themes#h:c8605d37-66e1-42aa-986e-d7514c3af6fe>.
   1296 
   1297 *** ~modus-themes-deuteranopia~
   1298 :PROPERTIES:
   1299 :CUSTOM_ID: h:e5fee2a1-2ace-4b4b-9aea-554d2b4a7c2d
   1300 :END:
   1301 
   1302 Instead of this rather limited option, users are advised to use the
   1303 new bespoke themes: ~modus-operandi-deuteranopia~ and
   1304 ~modus-vivendi-deuteranopia~.  They are designed to cater to the needs
   1305 of people with red-green colour deficiency.
   1306 
   1307 *** ~modus-themes-mail-citations~
   1308 :PROPERTIES:
   1309 :CUSTOM_ID: h:bb8a81c5-d0c1-4150-bf7a-254d1684d95e
   1310 :END:
   1311 
   1312 All parts of an email composition buffer (per the standard
   1313 =message.el= library) are configurable via palette overrides.  Not
   1314 just citation lines, but also message headers.  The manual shows
   1315 several stylistic alternatives:
   1316 <https://protesilaos.com/emacs/modus-themes#h:7da7a4ad-5d3a-4f11-9796-5a1abed0f0c4>.
   1317 
   1318 Note that apart from this change, I also redesigned several faces that
   1319 affect emails.  This was done in the interest of consistency and to
   1320 avoid some exaggerations.
   1321 
   1322 *** ~modus-themes-tabs-accented~
   1323 :PROPERTIES:
   1324 :CUSTOM_ID: h:1574b5bc-d615-4053-9bbf-79396745519b
   1325 :END:
   1326 
   1327 I do not provide documentation on how to reproduce this style because
   1328 I think it was not widely used.  It is possible to do it with
   1329 overrides.  If anyone needs it, they are invited to contact me about
   1330 it.
   1331 
   1332 *** ~modus-themes-box-buttons~
   1333 :PROPERTIES:
   1334 :CUSTOM_ID: h:19c81a75-a65e-49cb-83e5-c44167821865
   1335 :END:
   1336 
   1337 All "graphical" buttons use a proportionately spaced font
   1338 (~variable-pitch~) by default as it helps with legibility.  The
   1339 colours of those buttons can be changed by overriding the relevant
   1340 entries:
   1341 <https://protesilaos.com/emacs/modus-themes#h:4f6b6ca3-f5bb-4830-8312-baa232305360>.
   1342 
   1343 [ Use my ~fontaine~ package to affect fonts via faces and to apply
   1344   presets for various contexts. ]
   1345 
   1346 ** Changes to remaining user options
   1347 :PROPERTIES:
   1348 :CUSTOM_ID: h:c93db0f4-1032-411a-881e-0c5fd23480cf
   1349 :END:
   1350 
   1351 *** The ~modus-themes-headings~ also affects the Org agenda
   1352 :PROPERTIES:
   1353 :CUSTOM_ID: h:c2f088b6-dc84-4285-9ece-c877be6b274f
   1354 :END:
   1355 
   1356 This user option applies to heading level 0 through 8 and also to the
   1357 agenda date and structure constructs.  Here is a complete example:
   1358 
   1359 #+begin_src emacs-lisp
   1360 (setq modus-themes-headings ; read the manual's entry of the doc string
   1361       '((0 . (variable-pitch light 1.9))
   1362         (1 . (variable-pitch light 1.8))
   1363         (2 . (variable-pitch regular 1.7))
   1364         (3 . (variable-pitch regular 1.6))
   1365         (4 . (variable-pitch regular 1.5))
   1366         (5 . (variable-pitch 1.4)) ; absence of weight means `bold'
   1367         (6 . (variable-pitch 1.3))
   1368         (7 . (variable-pitch 1.2))
   1369         (agenda-date . (semilight 1.5))
   1370         (agenda-structure . (variable-pitch light 1.9))
   1371         (t . (variable-pitch 1.1))))
   1372 #+end_src
   1373 
   1374 *** The ~modus-themes-headings~ no longer affects colours
   1375 :PROPERTIES:
   1376 :CUSTOM_ID: h:bb0bac60-ad22-4699-9579-881431972294
   1377 :END:
   1378 
   1379 All colour-related changes can be done via palette overrides.  This
   1380 gives the user maximum flexibility on the choice of applied colours
   1381 (e.g. to have alternating contrasting foregrounds or shades of the
   1382 same hue).  The manual shows several examples:
   1383 <https://protesilaos.com/emacs/modus-themes#h:11297984-85ea-4678-abe9-a73aeab4676a>.
   1384 
   1385 *** The ~modus-themes-completions~ is simpler
   1386 :PROPERTIES:
   1387 :CUSTOM_ID: h:0b29c525-7def-4149-a26b-70ca5e021a27
   1388 :END:
   1389 
   1390 It no longer covers =popup= entries as distinct from =selection=.
   1391 This is because I revised all the applicable colours and faces to
   1392 consolidate styles.
   1393 
   1394 The =matches= and =selection= keys now read the same list of values.
   1395 
   1396 All changes to colours are done through palette overrides, as
   1397 demonstrated in the manual (again, far more flexible):
   1398 <https://protesilaos.com/emacs/modus-themes#h:d959f789-0517-4636-8780-18123f936f91>.
   1399 
   1400 *** The ~modus-themes-prompts~ is simpler
   1401 :PROPERTIES:
   1402 :CUSTOM_ID: h:7e5b9fea-b696-4e8a-bebe-a7fbb0eb460a
   1403 :END:
   1404 
   1405 This user option now only affects the typographic features of prompts.
   1406 It can read any font weight, as explained in its documentation.
   1407 Colours are influenced by semantic colour mappings in the palette and
   1408 can be overridden accordingly.  The manual shows several styles:
   1409 <https://protesilaos.com/emacs/modus-themes#h:bd75b43a-0bf1-45e7-b8b4-20944ca8b7f8>.
   1410 
   1411 *** Auto-reload theme when configuring via Custom
   1412 :PROPERTIES:
   1413 :CUSTOM_ID: h:b26a2a1f-ee1e-4001-a3d0-4d4d7cb4fd5f
   1414 :END:
   1415 
   1416 The user option ~modus-themes-custom-auto-reload~ supersedes the old
   1417 ~modus-themes-inhibit-reload~.  It is now set to a non-~nil~ value by
   1418 default.
   1419 
   1420 We do this as a convenience for users who tweak theme settings via the
   1421 Custom UI and who do not know that all modifications to user options
   1422 require a theme re-load for changes to take effect.  Read more in the
   1423 manual:
   1424 <https://protesilaos.com/emacs/modus-themes#h:9001527a-4e2c-43e0-98e8-3ef72d770639>.
   1425 
   1426 ** Deprecation of public functions
   1427 :PROPERTIES:
   1428 :CUSTOM_ID: h:8167bf46-7a43-4b46-b2ed-a66e5d73bb96
   1429 :END:
   1430 
   1431 The ~modus-themes-color~ and ~modus-themes-color-alts~ are deprecated.
   1432 Users are invited to concentrate on the ~modus-themes-with-colors~
   1433 macro.  The manual provides several examples on that front.
   1434 
   1435 The ~modus-themes-load-themes~ is no longer necessary due to the
   1436 refactoring of the code base.
   1437 
   1438 The ~modus-themes-load-operandi~ and ~modus-themes-load-vivendi~ are
   1439 superseded by the general ~modus-themes-load-theme~.  It accepts the
   1440 symbol of a Modus theme as its argument.
   1441 
   1442 The command ~modus-themes-report-bug~ is no more.  Just send an email
   1443 to the mailing list or to me privately.  Find the information with
   1444 =M-x describe-package= and then specify =modus-themes=.
   1445 Alternatively, check my website: <https://protesilaos.com/contact>.
   1446 
   1447 ** Removed support for some packages
   1448 :PROPERTIES:
   1449 :CUSTOM_ID: h:34ffc5ed-574d-44f1-8a27-c2e6bb8c69e0
   1450 :END:
   1451 
   1452 These are the most notable packages that are no longer supported:
   1453 
   1454 - ~dired+~
   1455 - ~lsp-mode~
   1456 - ~helm~
   1457 - ~treemacs~
   1458 
   1459 The reason is that they are very hard to use for me as an outsider.
   1460 They provide lots of features, which means that I cannot easily
   1461 identify faces in their context unless I become an expert in the
   1462 relevant functionality.
   1463 
   1464 Other removed packages:
   1465 
   1466 - ~artbollocks-mode~.  Use ~writegood-mode~.
   1467 - ~apropos~.  Its default faces are fine.
   1468 - ~awesome-tray~.
   1469 - ~bbdb~ and ~ebdb~.  They are hard to set up, but their faces are
   1470   usable.
   1471 - ~calfw~.  Hard to set up and also seems to no longer be maintained.
   1472 - ~easy-jekyll~
   1473 - ~dir-treeview~
   1474 - ~eros~
   1475 - ~eshell-git-prompt~
   1476 - ~eshell-prompt-extras~
   1477 - ~eshell-syntax-highlighting~
   1478 - ~evil-goggles~
   1479 - ~evil-snipe~
   1480 - ~evil-visual-mark-mode~
   1481 - ~fountain-mode~.  I need someone who uses it to help me test it.
   1482 - ~macrostep~
   1483 - ~mentor~
   1484 - ~mini-modeline~
   1485 - ~mmm-mode~.  I need someone who uses it to help me test it.
   1486 - ~org-table-sticky-header~.
   1487 - ~phi-grep~
   1488 - ~pomidor~
   1489 - ~rainbow-blocks~.  Use Adam Porter's (aka alphapapa) =prism.el=.
   1490 - ~semantic~
   1491 - ~smartparens~
   1492 - ~spaceline~
   1493 - ~sx~
   1494 - ~telephone-line~
   1495 - ~tomatinho~
   1496 - ~winum~
   1497 - ~xterm-color~.
   1498 
   1499 ** Thanks for their feedback on the development of version 4
   1500 :PROPERTIES:
   1501 :CUSTOM_ID: h:bdaa3eaf-67e8-4de8-b8d5-7b11fa28dbcd
   1502 :END:
   1503 
   1504 In alphabetical order:
   1505 
   1506 - Aleksei Pirogov :: Noticed that there were no semantic colour
   1507   mappings for the ~rainbow-delimiters~ (and related), thus reminding
   1508   me to make the requisite arrangements.  Aleksei also spotted a
   1509   regression during the development of the "faint" overrides' preset.
   1510   These were done on the GitHub mirror:
   1511 
   1512   - <https://github.com/protesilaos/modus-themes/issues/54>
   1513   - <https://github.com/protesilaos/modus-themes/issues/55>
   1514 
   1515 - Anders Johansson :: Pointed out some irregularities with the use of
   1516   ~make-obsolete~ in the =version-4= development branch.  I should be
   1517   using ~make-obsolete-variable~ in some cases:
   1518   <https://lists.sr.ht/~protesilaos/modus-themes/%3CCAKJdtO-dzvR%3D2BaSd5qPzwDE%3D%2BaJSR6js7ii1O6KD7oFOB7gDw%40mail.gmail.com%3E>
   1519 
   1520 - Charlotte Van Petegem :: Reminded me to document how to reproduce
   1521   the old "alt-syntax" style by using palette overrides:
   1522   <https://lists.sr.ht/~protesilaos/modus-themes/%3C877cy917jw.fsf%40vanpetegem.me%3E>
   1523 
   1524 - Christian Tietze :: Spotted a bug in how shared palette overrides
   1525   would not be read in certain scenaria.  Also suggested tweaks to the
   1526   documentation, which reminded me of tasks that still had to be done:
   1527 
   1528   - <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1cz81rq9m.fsf%40christiantietze.de%3E>
   1529   - <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1fscxrr0s.fsf%40christiantietze.de%3E>
   1530   - <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1ilhtrs09.fsf%40christiantietze.de%3E>
   1531 
   1532 - Daniel Mendler (aka @minad on GitHub) :: Contacted me to comment on
   1533   the general redesign.  From the discussion I learnt that preset
   1534   overrides would be useful.  This information is shared with
   1535   permission, as it was done via a private channel.
   1536 
   1537 - James Ferguson :: Commented on the colours of the tab-bar and thus
   1538   inspired me to define relevant semantic colour mappings:
   1539   <https://lists.sr.ht/~protesilaos/modus-themes/%3CCAMtGdSnrKDGdagT7vGC9DnBZnOvkbM%3D4Nxwn3ts2tdO8YmUnxw%40mail.gmail.com%3E>
   1540 
   1541 - Philip Kaludercic :: Opined that the ~modus-themes-inhibit-reload~
   1542   should not be deprecated in the interest of usability.  As noted
   1543   above, its functionality is preserved and now enabled by default in
   1544   ~modus-themes-custom-auto-reload~.  Through the discussion we also
   1545   arrived at the concept of shared palette overrides instead of only
   1546   having theme-specific ones:
   1547 
   1548   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87h6y3gyxx.fsf%40posteo.net%3E>
   1549   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87wn6qgjkx.fsf%40posteo.net%3E>
   1550 
   1551 - Tony Zorman :: Noted that there was no clear upgrade path to
   1552   version 4.  This helped me explain some of the technicalities of
   1553   packaging and of the themes' redesign, but also to update the
   1554   manual:
   1555   <https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E>.
   1556 
   1557 - a1ks :: Reported a bug caused by the typo of an extra backtick.
   1558   This was done on the GitHub mirror:
   1559   <https://github.com/protesilaos/modus-themes/issues/53>.
   1560 
   1561 - soaringbind :: Identified some omissions in the code where I forgot
   1562   to update certain Avy and Org faces.  This continued in a second
   1563   thread about the use of some obsolete faces:
   1564 
   1565   - <https://lists.sr.ht/~protesilaos/modus-themes/%3CNKXY2k1--3-9%40tuta.io%3E>
   1566   - <https://lists.sr.ht/~protesilaos/modus-themes/%3CNKd3jM_--3-9%40tuta.io%3E>
   1567 
   1568 - tumashu :: Experimented with the overrides and thus helped me
   1569   identify an area where the documentation could be improved.  This
   1570   was done on the GitHub mirror:
   1571 
   1572   - <https://github.com/protesilaos/modus-themes/issues/56>
   1573   - <https://github.com/protesilaos/modus-themes/issues/57>
   1574 
   1575 - wakamenod :: Encountered a bug that was caused by a mistake of mine
   1576   that affected how themes are instantiated.  This was done on the
   1577   GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/50>.
   1578 
   1579 ** The largest release to date
   1580 :PROPERTIES:
   1581 :CUSTOM_ID: h:54a6bcd1-6ba0-42ed-8fdd-b83ee3efee73
   1582 :END:
   1583 
   1584 There are many more changes that I did not describe.  This already
   1585 lengthy document is me covering just the headline features.  The gist
   1586 is that I spent the last month refactoring and testing the themes to
   1587 ensure they can cope with the needs of users for years to come.
   1588 
   1589 I understand that the palette overrides are a new way of doing things
   1590 and that some users may be inconvenienced over the short-term as they
   1591 update their configurations.  I strongly believe that this system is
   1592 better and the Modus themes can now cover all the legibility needs of
   1593 users, while also catering to their aesthetic preferences.
   1594 
   1595 + Package name (GNU ELPA): ~modus-themes~
   1596 + Official manual: <https://protesilaos.com/emacs/modus-themes>
   1597 + Change log: <https://protesilaos.com/emacs/modus-themes-changelog>
   1598 + Colour palette: <https://protesilaos.com/emacs/modus-themes-colors>
   1599 + Sample pictures: <https://protesilaos.com/emacs/modus-themes-pictures>
   1600 + Git repo on SourceHut: <https://git.sr.ht/~protesilaos/modus-themes>
   1601   - Mirrors:
   1602     + GitHub: <https://github.com/protesilaos/modus-themes>
   1603     + GitLab: <https://gitlab.com/protesilaos/modus-themes>
   1604 + Mailing list: <https://lists.sr.ht/~protesilaos/modus-themes>
   1605 + Backronym: My Old Display Unexpectedly Sharpened ... themes
   1606 
   1607 * 3.0.0
   1608 :PROPERTIES:
   1609 :CUSTOM_ID: h:6829db8d-52c5-43a8-a026-f213dcfaced9
   1610 :END:
   1611 
   1612 #+begin_src text
   1613 Modus themes version 3.0.0
   1614 
   1615 By Protesilaos Stavrou <info@protesilaos.com> on 2022-10-28
   1616 
   1617 
   1618 The version that will ship with Emacs 29
   1619 ========================================
   1620 
   1621 The 'modus-operandi' and 'modus-vivendi' themes (package name is
   1622 'modus-themes') have been a part of Emacs since August 2020.  Emacs 28
   1623 ships with version 1.6.0 of the themes.  Emacs 29 will include version
   1624 3.0.0.
   1625 
   1626 There is no clean upgrade path from the old version of the themes to
   1627 the current one.  Users are advised to review their configurations and
   1628 consult with the detailed manual of the themes.
   1629 
   1630 I am available to answer any questions, either via my personal email
   1631 or on the official sources of the themes.  Find the full list here:
   1632 <https://protesilaos.com/emacs>.
   1633 
   1634 
   1635 Minor breaking changes
   1636 ======================
   1637 
   1638 I have changed the default value of the following user options:
   1639 
   1640 1. 'modus-themes-hl-line'
   1641 2. 'modus-themes-completions'
   1642 3. 'modus-themes-fringes'
   1643 
   1644 In the case of the first two, the background of the highlighted line
   1645 is made to look a bit more intense.
   1646 
   1647 For the fringes, this tweak makes them visible, using a subtle grey
   1648 colour.  By default, "fringe" is an 8-pixel-wide area to the left and
   1649 right side of an Emacs window.
   1650 
   1651 The intent of these changes is to make the out-of-the-box experience
   1652 consistent with the accessibility considerations of the Modus themes.
   1653 Specifically because some users may not realise that the themes are
   1654 highly customisable.
   1655 
   1656 To revert to the old defaults, users must include this (or equivalent)
   1657 in their init file:
   1658 
   1659     (setq modus-themes-completions nil
   1660           modus-themes-hl-line nil
   1661           modus-themes-fringes nil)
   1662 
   1663 As always, changes to theme user options take effect upon a reload of
   1664 the theme.
   1665 
   1666 This was announced on my website:
   1667 <https://protesilaos.com/codelog/2022-10-23-breaking-modus-themes-3-0-0-notice/>.
   1668 
   1669 
   1670 Support for new faces or changes to existing ones
   1671 =================================================
   1672 
   1673 ,* Refined the 'telega' faces for inline code and preformatted
   1674   elements.  The faces are 'telega-entity-type-code' and
   1675   'telega-entity-type-pre', respectively.  This change makes them
   1676   subject to the style specified in the user option
   1677   'modus-themes-markup'.
   1678 
   1679   Thanks to Pablo Stafforini for showing me screenshots of how they
   1680   look, as I am not a telega/telegram user and cannot do this myself.
   1681   Done as part of issue 170 on the GitLab mirror:
   1682   <https://gitlab.com/protesilaos/modus-themes/-/issues/170#note_1143975582>.
   1683 
   1684 ,* Removed all attributes from the 'textsec-suspicious' face.  By
   1685   default, it applies a background, but does not affect the
   1686   foreground.  The result is thus inaccessible in many cases
   1687   (e.g. blue links against a red background).  There is no need for
   1688   such a background though, as the warnings are accompanied by the
   1689   relevant emoji: ⚠️.
   1690 
   1691   To support this face, we need it to affect the foreground as well.
   1692 
   1693 ,* Deleted some 'consult' "preview" faces in the interest of
   1694   consistency.  This is to match the current style of the project:
   1695   <https://github.com/minad/consult/commit/1343e39fefcf8a28a7a415aa4b0a8ff7094370bf>.
   1696 
   1697 ,* Expanded support of the built-in 'diff-mode' faces to include the
   1698   'diff-changed-unspecified'.  It is made to look the same as
   1699   'diff-changed', i.e. yellow-tinted.  There is a good chance that a
   1700   user will never see this face in action (I only encountered it
   1701   once).
   1702 
   1703 ,* Reworked all the 'highlight-regexp' faces (like 'hi-yellow') to use
   1704   bespoke colour values.
   1705 
   1706   These faces need to have a background that is consistent with their
   1707   semantics.  Furthermore, they need to use the 'inverse-video'
   1708   attribute which, in turn, affects the combinations of colour we can
   1709   apply.  Our accented backgrounds are designed to contrast well with
   1710   our nominal main foreground values, whereas this case demands
   1711   coloured backgrounds that contrast nicely with what would normally
   1712   be the main background colour.  As such, we cannot apply our
   1713   ordinary entries from each theme's palette.  It would be inefficient
   1714   to expand the palette of each theme just for this edge case.
   1715 
   1716   Thanks to Kevin Kainan Li for the feedback on the mailing list, where
   1717   they informed me that the previous design was too dark/mute (and I
   1718   agreed with that assessment) and provided feedback on my samples:
   1719   <https://lists.sr.ht/~protesilaos/modus-themes/%3CCAMTq2Vp3Nnzv-i9wJdq4-OJ4X_QfWXySpUtAieBy0dgKLEOSBg%40mail.gmail.com%3E>.
   1720 
   1721 ,* Recoloured the 'modus-themes-completion-match-1' to use a shade of
   1722   blue instead of cyan.  This contributes to the distinctiveness of
   1723   those matches relative to 'modus-themes-completion-match-0' and the
   1724   other groups.  These faces are used in completion User Interfaces,
   1725   such as 'vertico', 'corfu', 'orderless'.  They are subject to the
   1726   user option 'modus-themes-completions'.
   1727 
   1728 ,* Added support for the 'olivetti-fringe' face.  Its background is the
   1729   same as the main background, meaning that the fringes are invisible
   1730   when 'olivetti-mode' is enabled.  Thanks to Matthias Fuchs for
   1731   producing a report that helped me track this problem.  It was done
   1732   in issue 46 on the GitHub mirror:
   1733   <https://github.com/protesilaos/modus-themes/issues/46>.
   1734 
   1735 
   1736 Miscellaneous
   1737 =============
   1738 
   1739 ,* Added the new Emacs 29 theme properties to 'modus-operandi' and
   1740   'modus-vivendi'.  These make the themes work with the new built-in
   1741   command 'toggle-theme'.  Thanks to Philip Kaludercic for the patch
   1742   and for the work on this in emacs.git:
   1743   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-10/msg00886.html>.
   1744 
   1745 ,* Refrained from deprecating the 'modus-themes-toggle' command in
   1746   favour of the new generic 'toggle-theme'.
   1747 
   1748   The 'toggle-theme' is not functionally equivalent to the command
   1749   'modus-themes-toggle' due to the optional arguments it accepts.
   1750   With 'toggle-theme' we are prompted to confirm loading the theme,
   1751   due to how unsafe themes can be...  Further, we are asked to add the
   1752   loaded theme to the list of "safe" themes.  This only applies to the
   1753   packaged version of the 'modus-themes', not the items that are built
   1754   into Emacs.
   1755 
   1756   These prompts are consistent with how 'load-theme' works, but not
   1757   with what the user of 'modus-themes-toggle' has come to expect.
   1758 
   1759   Users who do not like to maintain a 'custom-file' (like me) are thus
   1760   penalised each time they invoke the command.
   1761 
   1762   The 'modus-themes-toggle' will only be deprecated if there is, say,
   1763   a user option in Emacs that disables those prompts each time a theme
   1764   is loaded.  Basically, we need an arrangement that just toggles
   1765   themes without questions.
   1766 
   1767   Thanks to Rudolf Adamkovič for suggesting the idea and to Philip
   1768   Kaludercic for the 'toggle-theme' (and related functionality):
   1769   <https://lists.sr.ht/~protesilaos/modus-themes/%3C877d116lh4.fsf%40posteo.net%3E#%3Cm2lepgrd8l.fsf@me.com%3E>.
   1770 
   1771 ,* Corrected the one-line description of the 'modus-vivendi' theme,
   1772   which was describing itself as a "light" theme.
   1773 
   1774 ,* Ensured that the manual and all doc strings in the code use American
   1775   English, per the convention of emacs.git (my CHANGELOG still uses
   1776   what I prefer).  Thanks to Stefan Kangas for contributing to this
   1777   effort with a patch that properly renders 'non-nil' in the texinfo
   1778   output as 'non-@code{nil}'.
   1779 
   1780 ,* Made other minor tweaks and refinements.
   1781 #+end_src
   1782 
   1783 * 2.7.0
   1784 :PROPERTIES:
   1785 :CUSTOM_ID: h:4d86106c-1df5-4f5f-bc6c-f14f5d13403b
   1786 :END:
   1787 
   1788 #+begin_src text
   1789 Modus themes version 2.7.0
   1790 
   1791 By Protesilaos Stavrou <info@protesilaos.com> on 2022-10-01
   1792 
   1793 
   1794 Support for packages or faces
   1795 =============================
   1796 
   1797 ,* Reinstated support for 'centaur-tabs'.  I had removed it in commit
   1798   2235ce5 (done on 2022-08-02) for version 2.5.0 of the modus-themes.
   1799   At the time I wrote:
   1800 
   1801       centaur-tabs has a bug where it cannot read the value of a face if it
   1802       uses the standard ':inherit' attribute.  I have sent a patch to fix it,
   1803       but have received no response since February:
   1804       <https://github.com/ema2159/centaur-tabs/pull/179>.
   1805 
   1806       Relevant reports:
   1807 
   1808       - <https://github.com/protesilaos/modus-themes/issues/30>
   1809       - <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
   1810       - <https://github.com/protesilaos/modus-themes/issues/15>
   1811 
   1812       I am happy to reinstate support for centaur-tabs as soon as the package
   1813       gets the maintenance it needs.
   1814 
   1815   My patch/pull-request is now merged and the package is actively
   1816   maintained once again.  Hence the decision to bring back support for
   1817   it, as promised.
   1818 
   1819 ,* Applied styles for the 'icon-button' face of Emacs 29.
   1820 
   1821 
   1822 ,* Styled the 'log-edit-headers-separator' face of Emacs 29 (it was
   1823   introduced upstream by a patch of mine).
   1824 
   1825 ,* Made the 'gnus-summary-low-unread' face inherit from the 'italic'
   1826   face like the rest of that subgroup of faces.  This helps
   1827   differentiate it from the 'gnus-summary-high-unread' face.  Thanks
   1828   to Mark Simpson for pointing out the possibility of conflating those
   1829   two faces: <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2r0zszc2z.fsf@gmail.com%3E>.
   1830 
   1831 ,* Covered the 'read-multiple-choice-face' by adding a noticeable
   1832   background colour to it.  The default attributes it has, which look
   1833   like other key bindings (bold and blue) plus an underline are
   1834   technically okay, though the context of this face is in the echo
   1835   area which is one line tall.  Moreover, the highlighted keys are
   1836   inlined with other text.  These make it difficult to spot the
   1837   highlights without some extra spacing.  I use the addition of a
   1838   background in Org's export dispatcher interface which also has some
   1839   unique requirements (the 'org-dispatcher-highlight' face).  The
   1840   principle is to have theme-wide consistency (e.g. "all key bindings
   1841   must look the same") EXCEPT when the specifics require a different
   1842   set of styles in the interest of usability.
   1843 
   1844 ,* Extended the coverage of the 'auctex' package's faces to include the
   1845   'font-latex-underline-face'.  Thanks to Luis Miguel Castañeda for
   1846   reporting a typo I made which caused an error:
   1847   <https://lists.sr.ht/~protesilaos/modus-themes/%3C7h7d2oudpb.fsf@imaginarymagnitude.net%3E>
   1848 
   1849 ,* Added support for 'crontab-mode'.  Thanks to Antonio Ruiz for the
   1850   patch: <https://lists.sr.ht/~protesilaos/modus-themes/patches/35080>.  It
   1851   is below the ~15 line threshold and thus requires no copyright
   1852   assignment to the Free Software Foundation.
   1853 
   1854 ,* Extended support for the 'company' package's 'company-scrollbar-bg'
   1855   and 'company-scrollbar-fg' faces.
   1856 
   1857 ,* Added support for the 'spell-fu' package.  Thanks to Antonio Ruiz
   1858   for the patch: <https://lists.sr.ht/~protesilaos/modus-themes/%3C87fshnq7uv.fsf%40purelymail.com%3E>.
   1859   Same as further above for Antonio's copyright status.
   1860 
   1861 ,* Moved the 'selectrum-prescient' faces to the 'prescient' group, to
   1862   be consistent with changes in the respective upstream packages.
   1863   Thanks to okamsn for the contribution, which was done in pull
   1864   request 41 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/pull/41>.
   1865   The user okamsn has assigned copyright assignment to the Free
   1866   Software Foundation, although this patch is within the allowed
   1867   limits.
   1868 
   1869 
   1870 Change to 'fill-column-indicator'
   1871 =================================
   1872 
   1873 Made the 'fill-column-indicator' face more noticeable.  It is what the
   1874 'display-fill-column-indicator-mode' uses to draw a line on where the
   1875 'fill-column' is.
   1876 
   1877 This change is in response to private messages I received as well as
   1878 this, at parts impolite and toxic, thread that I refrained from
   1879 participating in:
   1880 <https://lists.gnu.org/archive/html/help-gnu-emacs/2022-08/msg00255.html>.
   1881 
   1882 [ I do not follow that mailing list, by the way.  All my projects have
   1883   multiple communication channels and I always reply in a timely
   1884   fashion.  Social media, fora about Emacs, generic mailing lists,
   1885   etc. are not among those channels.
   1886   <https://protesilaos.com/codelog/2022-07-24-report-issues-official-channels/>. ]
   1887 
   1888 The core idea is that the previous design was (1) considered
   1889 "invisible" and (2) it prevented the customisation of the user option
   1890 'display-fill-column-indicator-character'.
   1891 
   1892 I am addressing point 1, but point 2 puts us in an awkward spot as we
   1893 would then not be allowed to use a background and a height value.  Not
   1894 doing so produces a dashed line by default, with the dashes further
   1895 apart the greater the line-spacing is (especially in, say, Org
   1896 headings that can have a greater height than paragraph text).  It
   1897 looks broken and I keep getting requests to fix what is not the
   1898 themes' fault.  So no, the themes will remain opinionated in this
   1899 regard by ignoring 'display-fill-column-indicator-character' through
   1900 the styling they apply to make the line contiguous.
   1901 
   1902 For context, also read Emacs bug#57424 and please don't take my words
   1903 in a private message out of context.  If I need to state my opinion in
   1904 a public setting, I know how to do it.
   1905 <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=57424>.
   1906 
   1907 
   1908 Refinement to modus-vivendi 'bg-diff-focus-removed' colour
   1909 ==========================================================
   1910 
   1911 Made the default removed diff background slightly more luminant.  The
   1912 colour is seen in diff-mode, ediff, and the Magit focused diff hunk.
   1913 
   1914 When the user option 'modus-themes-diffs' is set to either 'bg-only' or
   1915 'desaturated', this colour is used to highlight word-wise ("refined")
   1916 changes.  The increased luminance lets it stand out more compared to the
   1917 more subtle backdrop.
   1918 
   1919 Thanks to Kévin Le Gouguec for bringing this issue to my attention and
   1920 for discussing it with me:
   1921 <https://lists.sr.ht/~protesilaos/modus-themes/%3C87bks4i9tg.fsf@gmail.com%3E>
   1922 
   1923 
   1924 Note about 'goto-address-mode'
   1925 ==============================
   1926 
   1927 Quote from the manual:
   1928 
   1929     The built-in 'goto-address-mode' uses heuristics to identify URLs and
   1930     email addresses in the current buffer.  It then applies a face to them
   1931     to change their style.  Some packages, such as 'notmuch', use this
   1932     minor-mode automatically.
   1933 
   1934     The faces are not declared with 'defface', meaning that it is better
   1935     that the theme does not modify them.  The user is thus encouraged to
   1936     consider including (or equivalent) this in their setup:
   1937 
   1938         (setq goto-address-url-face 'link
   1939               goto-address-url-mouse-face 'highlight
   1940               goto-address-mail-face 'link
   1941               goto-address-mail-mouse-face 'highlight)
   1942 
   1943     My personal preference is to set 'goto-address-mail-face' to nil, as
   1944     it otherwise adds too much visual noise to the buffer (email addresses
   1945     stand out more, due to the use of the uncommon '@' character but also
   1946     because they are often enclosed in angled brackets).
   1947 
   1948 
   1949 Changes to the manual
   1950 =====================
   1951 
   1952 ,* Fixed a few typos and ensured that spelling using American English
   1953   as that is what emacs.git requires.
   1954 
   1955 ,* Added the missing ':config' keywords from the example configuration
   1956   of the 'circadian' package.  Thanks to Koen van Greevenbroek for the
   1957   patch: <https://lists.sr.ht/~protesilaos/modus-themes/%3C8735cb6zm3.fsf%40posteo.net%3E>.
   1958 #+end_src
   1959 
   1960 * 2.6.0
   1961 :PROPERTIES:
   1962 :CUSTOM_ID: h:fc108f65-3e0b-4e28-8030-86c797cb2b25
   1963 :END:
   1964 
   1965 #+begin_src text
   1966 Modus themes version 2.6.0
   1967 
   1968 By Protesilaos Stavrou <info@protesilaos.com> on 2022-08-19
   1969 
   1970 
   1971 Changes to supported faces or face groups
   1972 =========================================
   1973 
   1974 ,* Made the 'font-lock-warning-face' adapt to comments.  This changes the
   1975   face from a yellow to a red hue when the user adds a value to
   1976   'modus-themes-syntax' which includes 'yellow-comments' property.
   1977   Before, this face was indistinguishable from yellow comments due to a
   1978   regression in version 2.5.0 of the themes.  Thanks to Augusto Stoffel
   1979   and Manuel Uberti for their feedback on the mailing list:
   1980   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87r11k1c22.fsf%40gmail.com%3E>.
   1981 
   1982 ,* Applied a consistent foreground color (a not-so-intense yellow hue) to
   1983   the 'org-checkbox' and 'markdown-gfm-checkbox-face'.  The change comes
   1984   from the discussion on the mailing list where it became apparent that
   1985   a bit of colour is needed for such constructs:
   1986   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2fsi9cja4.fsf%40me.com%3E>.
   1987 
   1988   Thanks to Rudolf Adamkovič, Christian Tietze, and Karthik Chikmagalur
   1989   for their participation.
   1990 
   1991 ,* Added support for the 'mu4e-related-face'.  Thanks to Simon Pugnet for
   1992   the feedback on the mailing list:
   1993   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87edxhvqwp.fsf@polaris64.net%3E>.
   1994 
   1995 ,* Included support for the 'consult-preview-insertion' face.  There are
   1996   two reasons for adding this:
   1997 
   1998   1. It decouples it from the 'region' face, which means that the user
   1999      option 'modus-themes-region' no longer has an unintended effect on
   2000      it.
   2001 
   2002   2. It makes it look consistent with the 'rectangle-preview' face (see
   2003      it in action with C-x SPC, move point down a few lines, type C-t
   2004      and then insert some text).  I feel these sort of previews need to
   2005      look the same, though I don't have a strong attachment to the style
   2006      now in use.
   2007 
   2008 
   2009 Removed support for the 'solaire' package
   2010 =========================================
   2011 
   2012 The 'solaire-mode' package dims the background of what it considers
   2013 ancillary "UI" buffers, such as the minibuffer and Dired buffers.  The
   2014 Modus themes used to support Solaire on the premise that the user was
   2015 (i) opting in to it, (ii) understood why certain buffers were more gray,
   2016 and (iii) knew what other adjustments had to be made to prevent broken
   2017 visuals (e.g. the default style of the 'modus-themes-completions' uses a
   2018 subtle gray background for the selection, which with Solaire becomes
   2019 practically invisible).
   2020 
   2021 However, the assumption that users opt in to this feature does not
   2022 always hold true.  There are cases where it is enabled by default such
   2023 as in the popular Doom Emacs configuration.  Thus, the unsuspecting user
   2024 who loads 'modus-operandi' or 'modus-vivendi' without the requisite
   2025 customizations is getting a sub-par experience; an experience that we
   2026 did not intend and cannot genuinely fix.
   2027 
   2028 [ Relevant reading about "The case of git-gutter, the modus-themes, and
   2029   Doom Emacs":
   2030   <https://protesilaos.com/codelog/2022-08-04-doom-git-gutter-modus-themes/> ]
   2031 
   2032 Because the Modus themes are meant to work everywhere, we cannot make an
   2033 exception for Doom Emacs and/or Solaire users.  Furthermore, we shall
   2034 not introduce hacks, such as by adding a check in all relevant faces to
   2035 be adjusted based on Solaire or whatever other package.  Hacks of this
   2036 sort are unsustainable and penalize the entire userbase.  Besides, the
   2037 themes are built into Emacs and we must keep their standard high.
   2038 
   2039 The fundamental constraint with Solaire is that Emacs does not have a
   2040 real distinction between "content" and "UI" buffers.  For themes to work
   2041 with Solaire, they need to be designed around that package.  Such is an
   2042 arrangement that compromises on our accessibility standards and/or
   2043 hinders our efforts to provide the best possible experience while using
   2044 the Modus themes.
   2045 
   2046 As such, 'solaire-mode' is not---and will not be---supported by the
   2047 Modus themes (or any other of my themes, for that matter).  Users who
   2048 want it must style the faces manually.  Below is some sample code, based
   2049 on what we cover at length in the manual:
   2050 
   2051     (defun my-modus-themes-custom-faces ()
   2052       (modus-themes-with-colors
   2053         (custom-set-faces
   2054          `(solaire-default-face ((,class :inherit default :background ,bg-alt :foreground ,fg-dim)))
   2055          `(solaire-line-number-face ((,class :inherit solaire-default-face :foreground ,fg-unfocused)))
   2056          `(solaire-hl-line-face ((,class :background ,bg-active)))
   2057          `(solaire-org-hide-face ((,class :background ,bg-alt :foreground ,bg-alt))))))
   2058 
   2059     (add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
   2060 
   2061 
   2062 Changes to the manual
   2063 =====================
   2064 
   2065 ,* Added a missing parenthesis to a sample code block.  Thanks to Paul
   2066   David for the contribution in pull request 39 on the GitHub mirror:
   2067   <https://github.com/protesilaos/modus-themes/pull/39>.
   2068 
   2069 ,* Clarified the wording of individual statements pertaining to the need
   2070   of reloading a theme for changes to user options to become effective.
   2071 #+end_src
   2072 
   2073 * 2.5.0
   2074 :PROPERTIES:
   2075 :CUSTOM_ID: h:32438044-6eee-4909-8e5a-860ce1457049
   2076 :END:
   2077 
   2078 #+begin_src text
   2079 Modus themes version 2.5.0
   2080 
   2081 By Protesilaos Stavrou <info@protesilaos.com> on 2022-08-03
   2082 
   2083 This entry documents the changes made to the project since the
   2084 publication of version 2.4.0 on 2022-06-01.  It spans more than 60
   2085 commits to an already stable project.
   2086 
   2087 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   2088 (latest stable release) or later, and are available on GNU ELPA as well
   2089 as other archives.  Emacs-28 ships version 1.6.0, while the current
   2090 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   2091 latest tagged release.  The packaged version is available as
   2092 'modus-themes'.
   2093 
   2094 Read the manual inside Emacs by evaluating:
   2095 
   2096     (info "(modus-themes) Top")
   2097 
   2098 Or visit: <https://protesilaos.com/emacs/modus-themes> (the website only
   2099 documents the latest version).
   2100 
   2101 
   2102 Enhancement to the user option 'modus-themes-headings'
   2103 ======================================================
   2104 
   2105 The user option 'modus-themes-headings' now reads a level 0 heading in
   2106 addition to numbers 1--8.  Heading 0 accepts the same list of properties
   2107 as all other levels (please consult the doc string of the user option or
   2108 the corresponding entry in the manual).  Currently only the value of the
   2109 Org #+title is affected (face is 'org-document-title'), but we may cover
   2110 more faces if needed.
   2111 
   2112 Sample configuration:
   2113 
   2114     ;; The `modus-themes-headings' is an alist with lots of possible
   2115     ;; combinations, including per-heading-level tweaks: read the
   2116     ;; manual or its doc string.
   2117     (setq modus-themes-headings
   2118           '((0 . (variable-pitch light (height 2.2)))
   2119             (1 . (rainbow variable-pitch light (height 1.6)))
   2120             (2 . (rainbow variable-pitch light (height 1.4)))
   2121             (3 . (rainbow variable-pitch regular (height 1.3)))
   2122             (4 . (rainbow regular (height 1.2)))
   2123             (5 . (rainbow (height 1.1)))
   2124             (t . (variable-pitch extrabold)))
   2125 
   2126 Given this change, I am also tweaking the default foreground value of
   2127 the 'org-document-title'.  It is a bit more saturated than before, but
   2128 remains close to the spirit of the previous one.
   2129 
   2130 Thanks to Rudolf Adamkovič for proposing the idea on the mailing list:
   2131 <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2y1x5tewl.fsf@me.com%3E>.
   2132 
   2133 
   2134 Stylistic tweak to the user option 'modus-themes-syntax'
   2135 ========================================================
   2136 
   2137 Prevented the 'alt-syntax' property from desaturating the effect of the
   2138 'yellow-comments' property when the two would be combined.  Such as:
   2139 
   2140     (setq modus-themes-syntax '(alt-syntax yellow-comments))
   2141 
   2142 The previous design was incorrect because it was always using the faint
   2143 variant of the yellow comments, as if the user had specified:
   2144 
   2145     (setq modus-themes-syntax '(alt-syntax faint yellow-comments))
   2146 
   2147 [ Read the doc string of 'modus-themes-syntax' or the manual for an
   2148   explanation of all properties and their combinations. ]
   2149 
   2150 
   2151 Review of the Isearch (and related) colours
   2152 ===========================================
   2153 
   2154 Emacs' standard search has a face for the currently matched query and
   2155 all its inactive matches.  The faces are 'isearch' and 'lazy-highlight',
   2156 respectively.  Before, we were using a green background by default for
   2157 the 'isearch' face and a cyan background for the 'lazy-highlight'.  This
   2158 was a choice that was made in the early days of the project when the
   2159 palette was not yet fully realised.
   2160 
   2161 Green and cyan do not always contrast well side-by-side (subject to
   2162 hardware capabilities and environmental lighting), so the 'isearch' face
   2163 also had an added bold weight.  This was not my preference, but it was
   2164 necessary under the circumstances.  The previous combinations were also
   2165 not ideal when the user option 'modus-themes-deuteranopia' was set to a
   2166 non-nil value: the blue background which was used instead of the green
   2167 one could be conflated with the subtle teal of the 'lazy-highlight'
   2168 under certain circumstances, such as poor colour reproduction at the
   2169 monitor level or in terminal emulators with limited colour support.
   2170 
   2171 The new colours (intense yellow for active matches and subtle cyan for
   2172 lazy ones) are complementary, meaning that they are naturally easy to
   2173 tell apart.
   2174 
   2175 [ Read "Colour theory and techniques used in the Modus themes":
   2176   <https://protesilaos.com/codelog/2022-04-21-modus-themes-colour-theory/> ]
   2177 
   2178 These specific hues are also well-suited for users with red-green colour
   2179 deficiency: yellow stays as-is, while the cyan colour becomes a bit more
   2180 grey though remains distinct.  As such, we do not need to run the helper
   2181 function 'modus-themes--deuteran' to set the style based on the value of
   2182 'modus-themes-deuteranopia'.
   2183 
   2184 The new colours do not clash with the style of the relevant 'match' face
   2185 (used by 'M-x occur', 'M-x grep', and related), nor with the various
   2186 permutations of the 'region' face (subject to the user option
   2187 'modus-themes-region').
   2188 
   2189 Finally, the bold weight has been removed from the 'isearch' face.  It
   2190 was always a kludge.  Also, it would make paragraphs rendered in the
   2191 'variable-pitch' face (or proportional fonts in general) jump around as
   2192 the user would move between the matches, because bold letters occupy
   2193 more space than their regular weight counterparts so they affect the
   2194 length of the line.  This problem was reported by Augusto Stoffel on the
   2195 mailing list: <https://lists.sr.ht/~protesilaos/modus-themes/%3C87sfnbswe9.fsf@gmail.com%3E>.
   2196 
   2197 
   2198 Rewrote parts of the colour preview commands
   2199 ============================================
   2200 
   2201 The 'modus-themes-list-colors', 'modus-themes-list-colors-current' are
   2202 commands that produce a buffer which shows previews of every entry in
   2203 the palette.  Their code has been simplified and they now produce a
   2204 warning when the display terminal has limited colour support.
   2205 Furthermore, they read any overrides as specified in the user options
   2206 'modus-themes-operandi-color-overrides', 'modus-themes-vivendi-color-overrides'.
   2207 
   2208 
   2209 The "summertime" re-spin of colour overrides
   2210 ============================================
   2211 
   2212 The manual now includes a complete hand-crafted example of a pair of
   2213 themes that override the default palette.  This is done as a technology
   2214 demonstration.  It is not considered an "official" extension of the
   2215 Modus themes and will never be part of the code base as it does not
   2216 conform with our lofty accessibility standards.  However, I took great
   2217 care in picking the colour overrides in the hope that users will (i)
   2218 have a usable theme, should they opt for it, and (ii) they recognise the
   2219 potential of our colour-overriding feature.
   2220 
   2221 Screenshots and related information:
   2222 <https://protesilaos.com/codelog/2022-07-26-modus-themes-color-override-demo/>.
   2223 
   2224 Thanks to user “Summer Emacs” for (i) suggesting the name “summertime”,
   2225 (ii) testing variants of this in her setup, and (iii) sending me
   2226 feedback on possible tweaks and refinements. All errors are my own.
   2227 
   2228 The idea for this project came from an exchange where Summer discovered
   2229 an old theme of mine (from my pre-Emacs days) and asked if I had
   2230 anything like it for Emacs.  Voilà!
   2231 
   2232 [ This information is shared with permission. ]
   2233 
   2234 As for whether I have more plans... "Perhaps!" ;)
   2235 
   2236 
   2237 Removed support for certain packages or face groups
   2238 ===================================================
   2239 
   2240 I periodically install and use the packages we support to see if they
   2241 have any updates we need to cover but also to confirm that they work.
   2242 Usually, the user does not learn about this work, as I don't need to
   2243 make any changes or will make some minor tweaks.  When I think that the
   2244 package is not in a good shape, I remove it from the list of explicitly
   2245 supported packages, meaning that the modus-themes no longer cover the
   2246 faces it defines.  The removal of any package is done on a case-by-case
   2247 basis.  If you disagree with this decision, please inform me about and I
   2248 shall reconsider.
   2249 
   2250 ,* centaur-tabs :: Those of you who have been reading these release notes
   2251   are aware of a bug in centaur-tabs which basically prevents us from
   2252   using the standard ':inherit' attribute to style the centaur-tabs
   2253   faces.  I have sent a patch to fix it, but have received no response
   2254   since February: <https://github.com/ema2159/centaur-tabs/pull/179>.
   2255   To me, this gives the package the "unmaintained" status, though I am
   2256   happy to revert the change as soon as it gets the maintenance it
   2257   needs.
   2258 
   2259   Relevant reports (and I got many others in my private inbox):
   2260 
   2261   - <https://github.com/protesilaos/modus-themes/issues/30>
   2262   - <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
   2263   - <https://github.com/protesilaos/modus-themes/issues/15>
   2264 
   2265 ,* cursor-flash :: its default face should be visible enough.
   2266 
   2267 ,* dynamic-ruler :: The package does not build on my Emacs 29.  Also, its
   2268   default faces are usable even without our recolouring.
   2269 
   2270 ,* emacs-dashboard :: Its default faces inherit from basic faces that we
   2271   already support.
   2272 
   2273 ,* frog-menu :: I have not seen this package being used anywhere.  I
   2274   suspect it is because it has not found a niche between transient,
   2275   hydra, and embark.
   2276 
   2277 ,* mct :: A few months ago I announced that its development is
   2278   discontinued.  Either use vertico or switch to what Emacs provides as
   2279   a built-in option: <https://protesilaos.com/codelog/2022-04-14-emacs-discontinue-mct/>.
   2280 
   2281 ,* org-treescope :: The package points to a GitHub repo, which is
   2282   archived.  The current source is on GitLab, but the package is not
   2283   updated accordingly.  This makes me believe it is not actively
   2284   maintained and am thus removing it from the list.
   2285 
   2286 ,* paradox :: When I tried paradox, it took over my C-c g binding which I
   2287   have for Magit.  As an Emacs user, I consider this an unacceptable
   2288   transgression.  Looking at paradox's git repo, the project is not
   2289   maintained.  If things change, I am happy to reinstate support for it.
   2290 
   2291 ,* vc-annotate (built-in) :: It has not been working properly for a long
   2292   time now.  Colours are unset and are not re-applied when switching
   2293   between the 'modus-operandi' and 'modus-vivendi' themes.
   2294 
   2295   Furthermore, the way 'vc-annotate-color-map' intersects with
   2296   'vc-annotate-background-mode' puts us in an awkward spot: when the
   2297   mode is non-nil, the mapped values are used as backgrounds WITHOUT
   2298   giving us the chance to make the appropriate adjustments to the
   2299   foreground (so we end up with inaccessible colour combinations).  This
   2300   means that we must fix a problem which is not ours by overriding the
   2301   user option of the background altogether.  A theme outright disabling
   2302   user options is bad form.
   2303 
   2304   Even documenting a user-level set of configurations will not suffice,
   2305   as the results are unreliable.  I tried the code which I copy further
   2306   below to test annotation with/without background, plus the change in
   2307   values when switching between modus-operandi and modus-vivendi.
   2308   Again, colours are not updated properly (I know the buffer of 'M-x
   2309   vc-annotate' needs to be generated again), as 'modus-operandi' may
   2310   retain the values set by 'modus-vivendi' or vice-versa.
   2311 
   2312   Ultimately, I feel 'vc-annotate' needs to be refactored to use
   2313   ordinary faces in ordinary ways.  Or, at least, not try to outsmart
   2314   the user/theme about the choice of colours.
   2315 
   2316   Thanks to Philip Kaludercic for starting the thread about the
   2317   'vc-annotate-background-mode' which reminded me about this problem:
   2318   <https://lists.sr.ht/~protesilaos/modus-themes/%3C875ylfxkgi.fsf@posteo.net%3E>.
   2319 
   2320   The code I alluded to:
   2321 
   2322       (setq vc-annotate-background-mode nil)
   2323 
   2324       (defun my-modus-themes-vc-annotate ()
   2325         ;; Actual values are for demo purposes
   2326         (modus-themes-with-colors
   2327           (if vc-annotate-background-mode
   2328               (setq vc-annotate-background bg-alt
   2329                     vc-annotate-color-map
   2330                     `((20 .  ,red-intense-bg)
   2331                       (40 .  ,red-subtle-bg)
   2332                       (60 .  ,red-refine-bg)
   2333                       (80 .  ,yellow-intense-bg)
   2334                       (100 . ,yellow-subtle-bg)
   2335                       (120 . ,yellow-refine-bg)
   2336                       (140 . ,magenta-intense-bg)
   2337                       (160 . ,magenta-subtle-bg)
   2338                       (180 . ,magenta-refine-bg)
   2339                       (200 . ,cyan-intense-bg)
   2340                       (220 . ,cyan-subtle-bg)
   2341                       (240 . ,cyan-refine-bg)
   2342                       (260 . ,green-intense-bg)
   2343                       (280 . ,green-subtle-bg)
   2344                       (300 . ,green-refine-bg)
   2345                       (320 . ,blue-intense-bg)
   2346                       (340 . ,blue-subtle-bg)
   2347                       (360 . ,blue-refine-bg)))
   2348             (setq vc-annotate-background nil
   2349                   vc-annotate-color-map
   2350                   `((20 . ,red)
   2351                     (40 . ,magenta)
   2352                     (60 . ,magenta-alt)
   2353                     (80 . ,red-alt)
   2354                     (100 . ,yellow)
   2355                     (120 . ,yellow-alt)
   2356                     (140 . ,fg-special-warm)
   2357                     (160 . ,fg-special-mild)
   2358                     (180 . ,green)
   2359                     (200 . ,green-alt)
   2360                     (220 . ,cyan-alt-other)
   2361                     (240 . ,cyan-alt)
   2362                     (260 . ,cyan)
   2363                     (280 . ,fg-special-cold)
   2364                     (300 . ,blue)
   2365                     (320 . ,blue-alt)
   2366                     (340 . ,blue-alt-other)
   2367                     (360 . ,magenta-alt-other))))))
   2368 
   2369       (add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-vc-annotate)
   2370 
   2371 
   2372 Revised supported faces or face groups
   2373 ======================================
   2374 
   2375 ,* Enhanced the default background colour of the current date in the Org
   2376   agenda.  This is a subtle change, all things considered, which makes
   2377   it easier to discern where the highlight is while it remains close to
   2378   the spirit of the previous design.  The idea is to not add too much
   2379   saturation here, because the buffer is already "busy" with lots of
   2380   highlights.  Thanks to Daniel Mendler for the feedback on the mailing
   2381   list: <https://lists.sr.ht/~protesilaos/modus-themes/%3C3d8b1096-a7db-1e08-fefe-d39bed4a7ea3@daniel-mendler.de%3E>.
   2382 
   2383 ,* Restyled the 'M-x man' and 'M-x woman' faces to have a bit more
   2384   saturation.  A while ago I desaturated the 'Man-overstrike' and
   2385   'woman-bold' faces on the premise that the added bold weight would be
   2386   sufficient.  However, the bold weight may sometimes not draw the
   2387   desired attention, such as at small point sizes or with certain font
   2388   configurations.  As such, the added intensity in colour is necessary.
   2389 
   2390 ,* Changed the Selectrum quick key faces ('selectrum-quick-keys-match'
   2391   and 'selectrum-quick-keys-highlight') to have the same style as Avy,
   2392   Vertico's own "quick keys", and related.  For a technical analysis,
   2393   read "Modus themes: case study on Avy faces and colour combinations":
   2394   <https://protesilaos.com/codelog/2022-04-20-modus-themes-case-study-avy/>.
   2395 
   2396 ,* Made internal adjustments so that 'M-x list-packages' inherits from
   2397   the standard 'success', 'warning', and 'error' faces instead of adding
   2398   its own face attributes.  In practice, the user will notice a change
   2399   for new packages in the listing if 'modus-themes-deuteranopia' is
   2400   non-nil.
   2401 
   2402 ,* Introduced the same inheritance rules as above for the 'syslog'
   2403   package (mutatis mutandis).
   2404 
   2405 ,* Increased the saturation of the 'package-status-available' face, which
   2406   is shown in the 'M-x list-packages' buffer.  The overall effect is
   2407   subtle, though sufficiently noticeable.
   2408 
   2409 ,* Revised the faces of the 'deft' package to make it look consistent
   2410   with the rest of the theme's relevant interfaces (to the extent
   2411   possible as Deft uses a non-standard presentation).
   2412 
   2413 ,* Aligned the 'speedbar-highlight-face' with the user option
   2414   'modus-themes-intense-mouseovers'.
   2415 
   2416 ,* Refined the 'highlight-thing' face (see package of the same name).
   2417   This makes it stand out more and it also aligns it with the standard
   2418   'match' face, which is pertinent here.
   2419 
   2420 ,* Amplified the saturation of the 'dired-git-info' face.  Makes it
   2421   easier to differentiate the Git commit text from the Dired listing,
   2422   without drawing too much attention to itself.
   2423 
   2424 ,* Adjusted the hue of the 'easy-jekyll-help-face' from teal to blue.
   2425   This makes it look more like the standard 'help-key-binding' face,
   2426   although 'easy-jekyll' does not align with upstream Emacs in this
   2427   regard.
   2428 
   2429 ,* Intensified the background of 'rectangle-preview' to work even in
   2430   cases where a grey background is already on display.  This face is
   2431   used for the 'string-rectangle' command (e.g. C-x SPC to draw a
   2432   rectangle and C-t to insert text in its stead---works as a simple
   2433   "multiple cursors" on a straight line).
   2434 
   2435 
   2436 Support for new faces or face groups
   2437 ====================================
   2438 
   2439 ,* chart (built-in)
   2440 ,* denote
   2441 ,* edmacro-label (Emacs 29)
   2442 ,* info+
   2443 ,* leerzeichen
   2444 
   2445 A comment on 'info+'.  As is the case with PACKAGE+ packages from the
   2446 Emacs Wiki, info+ defines lots of faces that hardcode colour values
   2447 instead of inheriting from basic faces.  It does so for no good reason
   2448 and the results will likely not look decent in any theme.  Furthermore,
   2449 these faces colourise too much even when the colour values can be
   2450 appropriately combined (ceteris paribus), making the buffer harder to
   2451 read.
   2452 
   2453 The support I add for info+ is consistent with the design principles of
   2454 the modus-themes, one of which is to avoid exaggerations as those
   2455 indirectly affect legibility.  As such, some of the changes I introduce
   2456 here outright remove colouration, while others align the various
   2457 constructs with the overall aesthetic of the themes.
   2458 
   2459 Note that, by default, info+ adds clickable buttons to glossary terms.
   2460 This produces awkward combinations such as by buttonising the "string"
   2461 component inside of what actually is a function's argument.  So you
   2462 have, say, FORMAT-[STRING] where "[]" represents the button: the FORMAT
   2463 gets one face and the [STRING] another, even though they are part of a
   2464 single argument.  To me this looks broken and is counter-productive,
   2465 though it is not up to the theme to decide how packages fontify the
   2466 various constructs.  At any rate, button styles at the theme level are
   2467 controlled by the user option 'modus-themes-box-buttons'.
   2468 
   2469 Thanks to Jonas Collberg for the feedback in issue 33 over at the GitHub
   2470 mirror: <https://github.com/protesilaos/modus-themes/issues/33>.
   2471 
   2472 
   2473 Miscellaneous
   2474 =============
   2475 
   2476 ,* Named the mailing list address as the =Maintainer:= of Denote.
   2477   Together with the other package headers, they help the user find our
   2478   primary sources and/or communication channels.  This change conforms
   2479   with work being done upstream in package.el by Philip Kaludercic.  I
   2480   was informed about it here:
   2481   <https://lists.sr.ht/~protesilaos/general-issues/%3C875ykl84yi.fsf%40posteo.net%3E>.
   2482 
   2483 ,* Addressed byte compilation warnings in doc strings pertaining to the
   2484   use of literal quotes.  Thanks to Matt Armstrong and Rudolf Adamkovič
   2485   for the feedback on the mailing list:
   2486   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87bktlvgyy.fsf@rfc20.org%3E>.
   2487 
   2488 ,* Fixed the ':link' value in the declaration of the user options
   2489   'modus-themes-operandi-color-overrides', 'modus-themes-vivendi-color-overrides'.
   2490   It once again directs to the correct heading in the manual.
   2491 
   2492 ,* Documented all the aforementioned, where necessary.
   2493 
   2494 ,* Mentioned my 'fontaine' and 'lin' packages in the relevant sections of
   2495   the manual.  The former helps set fonts and switch between font
   2496   presents.  The latter is a stylistic variant of hl-line (its
   2497   documentation explains its raison d'être).
   2498 #+end_src
   2499 
   2500 * 2.4.0
   2501 :PROPERTIES:
   2502 :CUSTOM_ID: h:ee0dcce9-3481-4533-8ded-a9a1f5269a41
   2503 :END:
   2504 
   2505 #+begin_src text
   2506 Modus themes version 2.4.0
   2507 
   2508 By Protesilaos Stavrou <info@protesilaos.com> on 2022-06-01
   2509 
   2510 This entry documents the changes made to the project since the
   2511 publication of version 2.3.0 on 2022-04-01.  It spans more than 60
   2512 commits to an already stable project.
   2513 
   2514 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   2515 (next stable release) or later, and are available on GNU ELPA as well as
   2516 other archives.  Emacs-28 ships version 1.6.0, while the current
   2517 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   2518 latest tagged release.  The packaged version is available as
   2519 'modus-themes'.
   2520 
   2521 Read the manual inside Emacs by evaluating:
   2522 
   2523     (info "(modus-themes) Top")
   2524 
   2525 Or visit: <https://protesilaos.com/emacs/modus-themes>.
   2526 
   2527 
   2528 Migration to SourceHut
   2529 ======================
   2530 
   2531 The sources of the project are as follows:
   2532 
   2533 - Git repo on SourceHut: <https://git.sr.ht/~protesilaos/modus-themes>
   2534   - Mirrors:
   2535     - GitHub: <https://github.com/protesilaos/modus-themes>
   2536     - GitLab: <https://gitlab.com/protesilaos/modus-themes>
   2537 - Mailing list: <https://lists.sr.ht/~protesilaos/modus-themes>
   2538 
   2539 - Official manual: <https://protesilaos.com/emacs/modus-themes>
   2540 - Change log: <https://protesilaos.com/emacs/modus-themes-changelog>
   2541 - Colour palette: <https://protesilaos.com/emacs/modus-themes-colors>
   2542 - Sample pictures: <https://protesilaos.com/emacs/modus-themes-pictures>
   2543 
   2544 It is still possible to open issues on either of the mirrors and I will
   2545 handle them in a timely fashion, though I encourage you to at least try
   2546 the mailing list workflow---it is ordinary email (just remember to
   2547 "reply to all").
   2548 
   2549 Further reading that is relevant to SourceHut:
   2550 
   2551 - Moving all my Emacs projects to SourceHut:
   2552   <https://protesilaos.com/codelog/2022-04-07-all-emacs-projects-sourcehut/>
   2553 
   2554 - Primer on formatting Git patches with Emacs (Magit):
   2555   <https://protesilaos.com/codelog/2022-04-09-simple-guide-git-patches-emacs/>
   2556 
   2557 
   2558 Problems with byte compilation on Emacs 29
   2559 ==========================================
   2560 
   2561 For some time between mid-April to mid-May, users of Emacs 29 could not
   2562 byte compile the Modus themes.  This has now been fixed in emacs.git,
   2563 per bug#55414: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55414>.
   2564 Thanks to everyone involved (A-Z): Alan Mackenzie, Eli Zaretskii, Lars
   2565 Ingebrigtsen, Mattias Engdegård, Stefan Monnier.
   2566 
   2567 
   2568 Messages about invalid face attributes while using the centaur-tabs
   2569 ===================================================================
   2570 
   2571 I mentioned this issue in the previous change log as well: upstream does
   2572 not allow us to use indirection in faces (the ':inherit' attribute).
   2573 This is not our bug.  It is standard behaviour for themes to use
   2574 inheritance.
   2575 
   2576 I have an open pull request on the matter (since 2022-02-24):
   2577 <https://github.com/ema2159/centaur-tabs/pull/179>.
   2578 
   2579 Relevant reports:
   2580 
   2581 - <https://github.com/protesilaos/modus-themes/issues/30>
   2582 - <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
   2583 - <https://github.com/protesilaos/modus-themes/issues/15>
   2584 
   2585 
   2586 Support for new faces or face groups
   2587 ====================================
   2588 
   2589 Directly supported
   2590 ------------------
   2591 
   2592 These are packages whose faces we override to make them work with the
   2593 themes.
   2594 
   2595 - 'calibredb'.  I have tried to limit the wanton use of colour in the
   2596   relevant buffers and also align the package with the overall style of
   2597   the themes.  The currently selected line is affected by the user
   2598   option 'modus-themes-hl-line'.
   2599 
   2600   Thanks to Ivan Popovych for the feedback on the official mailing list:
   2601   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87zgkgroi7.fsf%40gmail.com%3E>.
   2602 
   2603   Ivan also introduced some new faces to 'calibredb', which I helped
   2604   test.  See: <https://github.com/chenyanming/calibredb.el/pull/60>.
   2605 
   2606 - 'ein' (Emacs IPython Notebook).  We support its code blocks with the
   2607   appropriate colouration, while avoiding exaggerations.  Thanks to
   2608   Maxime Tréca for the feedback in issue 31 over at the GitHub mirror:
   2609   <https://github.com/protesilaos/modus-themes/issues/31>.
   2610 
   2611 - 'tree-sitter'.  My intent was to reduce the overall colouration
   2612   produced by the default 'tree-sitter' faces.  These tweaks give us
   2613   good results, though there still are some cases where 'tree-sitter'
   2614   exaggerates the styles it uses, such as by combining types with
   2615   constants to produce ad-hoc (anonymous) faces.  We cannot do anything
   2616   about anonymous faces at the theme level.  As such, we may get an
   2617   additional bold weight (when 'modus-themes-bold-constructs' is
   2618   non-nil) when we would rather not have it and/or a different colour
   2619   than the one desired.
   2620 
   2621   Thanks to Przemysław Kryger for the feedback in issue 303 over at the
   2622   GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/303>.
   2623 
   2624   If you are involved in the 'tree-sitter' project, please eliminate all
   2625   anonymous faces and replace them with symbols (i.e. defface) that are
   2626   editable by the user/theme.  You are welcome to contact me if you need
   2627   help/ideas.
   2628 
   2629 - 'vundo'
   2630 
   2631 
   2632 Indirectly supported
   2633 --------------------
   2634 
   2635 These are packages that either (i) inherit from base faces we already
   2636 support, or (ii) use colours from the Modus themes' palette.  A list of
   2637 them is available in the manual.
   2638 
   2639 - egerrit.  an in-development package by Niklas Eklund which provides an
   2640   Emacs interface to Gerrit: <https://git.sr.ht/~niklaseklund/egerrit>.
   2641 
   2642 
   2643 Changes to supported face
   2644 =========================
   2645 
   2646 - Reworked the internal functions that handle the styling of diffs to
   2647   allow the user option 'modus-themes-deuteranopia' to combine with the
   2648   styles of the 'modus-themes-diffs' option.
   2649 
   2650   Before, when 'modus-themes-deuteranopia' was non-nil it would affect
   2651   diffs by forcibly applying the default style of 'modus-themes-diffs'
   2652   (fairly prominent background colours) with the primary difference of
   2653   replacing greens with blues.
   2654 
   2655   Now all combinations work as expected.  For example:
   2656 
   2657       (setq modus-themes-deuteranopia t
   2658             modus-themes-diffs 'desaturated) ; nil, 'desaturated, 'bg-only
   2659 
   2660   Thanks to Kevin Le Gouguec for the feedback on the mailing list:
   2661   <https://lists.sr.ht/~protesilaos/modus-themes/%3C878rqt4jhm.fsf@gmail.com%3E>
   2662 
   2663 - Conducted a major (and highly demanding) review of the colours used by
   2664   Avy in the interest of optimising the contrast between its constructs.
   2665   Read the analysis: <https://protesilaos.com/codelog/2022-04-20-modus-themes-case-study-avy/>.
   2666 
   2667   Thanks to Daniel Mendler and Damien Cassou for their feedback on the
   2668   mailing list:
   2669 
   2670   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C83f18e2e-d726-0248-72f5-95e896cbcf4c%40daniel-mendler.de%3E>
   2671   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87czhgt5nm.fsf%40cassou.me%3E>
   2672 
   2673 - Updated the 'vertico-quick' faces to be consistent with Avy.
   2674 
   2675 - Made the 'line-number' face conform with the user option
   2676   'modus-themes-mixed-fonts'.  This means that if the user option is
   2677   non-nil, line numbers of 'display-line-numbers-mode' will use a
   2678   monospaced typeface at all times (inheriting the 'fixed-pitch' face,
   2679   as explained in the themes' manual).  Otherwise they use whatever font
   2680   the 'default' face has.  This makes it better when the user enables
   2681   'variable-pitch-mode' but still wants spacing-sensitive constructs to
   2682   remain monospaced.
   2683 
   2684   Thanks to Christopher League for the feedback in issue 302 over at the
   2685   GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/302>.
   2686 
   2687 - Aligned the regexp construct faces with the meaning of the user option
   2688   'modus-themes-bold-constructs'.  They will use a bold weight only when
   2689   the user option is non-nil.  This design is consistent with all other
   2690   aspects of syntax highlighting.  These specific faces were
   2691   unconditionally bold due to a mistake of mine.
   2692 
   2693   Remember to check the manual on what "a bold weight" means, as we make
   2694   everything easy to customise (e.g. if you prefer a semibold weight):
   2695   <https://protesilaos.com/emacs/modus-themes#h:2793a224-2109-4f61-a106-721c57c01375>.
   2696 
   2697 - Removed the typographic emphasis from the 'file-name-shadow' face by
   2698   no longer inheriting the 'italic' face.  Thanks to Nicolas De Jaeghere
   2699   for the patch.
   2700 
   2701   [ Nicolas has assigned copyright to the Free Software Foundation. ]
   2702 
   2703 - Stopped using the 'inverse-video' face attribute in 'powerline'.  We
   2704   now apply the colours directly.  The reason is that 'inverse-video'
   2705   makes it tricky to override the face as it swaps the foreground with
   2706   the background.  That behaviour is only needed in special cases:
   2707   'powerline' is not one of them.
   2708 
   2709   Thanks to Thibaut Verron for the feedback in issue 305 over at the
   2710   GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/305>.
   2711 
   2712 - Ensured that git commit/rebase comments (as seen in the workflow of
   2713   the 'magit' package) inherit from appropriate font-lock faces.  This
   2714   makes it possible to customise 'font-lock-comment-face' and have the
   2715   changes apply to those elements as well.  Such a customisation can,
   2716   for example, involve the change of the font family or the addition of
   2717   a background colour.  We want the whole comment block, including those
   2718   special keywords from Git, to look consistent. This change also makes
   2719   git-{commit,rebase}-comment-heading attain the foreground colour of
   2720   comments, instead of the default one (black or white), making it look
   2721   part of the comment block.
   2722 
   2723 - Tweaked the 'fountain' package comments to be the same as all others.
   2724   This avoids inconsistencies, such as when the user opts for something
   2725   like the following:
   2726 
   2727       (setq modus-themes-syntax '(yellow-comments))
   2728 
   2729 - Disabled padding in the 'keycast' package, meaning that the box around
   2730   the key indicator always has the same height, even if the user opts
   2731   for a padding value in 'modus-themes-mode-line' (read the manual or
   2732   its doc string for how to assign a padding).
   2733 
   2734   This is in response to a change upstream that introduces the
   2735   'keycast-tab-bar-mode', which re-uses the faces that were originally
   2736   intended for the mode line in the tab-bar.  Ideally, upstream will
   2737   provide distinct faces for each context so that we can have padding in
   2738   the mode line but not the tab-bar.  However, I have not had the
   2739   opportunity to suggest such a change and/or prepare the relevant patch
   2740   (it is not straightforward).
   2741 
   2742 - Refined some colour combinations for the "alternative syntax" style
   2743   that is available when the user option 'modus-themes-syntax' includes
   2744   the 'alt-syntax' property.  These tweaks pertain to changes in hue
   2745   that improve the appearance of certain faces in their context.
   2746 
   2747 - Enabled conditional use of 'fixed-pitch' for key bindings.  This
   2748   happens when the user option 'modus-themes-mixed-fonts' is non-nil
   2749   (all spacing-sensitive elements become monospaced even if the user
   2750   opts for a default font that is proportionately spaced or activates
   2751   the 'variable-pitch-mode').  Thanks to Manuel Giraud for the patch.
   2752 
   2753   [ Manuel has assigned copyright to the Free Software Foundation. ]
   2754 
   2755 - Covered the face rotation option of 'highlight-changes-mode'.  It is
   2756   done with the 'highlight-changes-rotate-faces' command when
   2757   'highlight-changes-mode' is enabled (the mode is built into Emacs).
   2758 
   2759   Thanks to Philip Kaludercic for the feedback on the mailing list:
   2760   https://lists.sr.ht/~protesilaos/modus-themes/<878rs14il4.fsf@posteo.net>
   2761 
   2762 
   2763 Updates to the manual
   2764 =====================
   2765 
   2766 - Acknowledged Andrew Tropin as one of the contributors to the Guix
   2767   package of the Modus themes.  The latest patch to that end:
   2768   <https://issues.guix.gnu.org/55268>.
   2769 
   2770 - Rewrote the note on 'fill-column-indicator' to show how the user can
   2771   use a thicker line than the one we style by default.
   2772 
   2773 - Wrote a note in manual about 'php-mode' multiline comments which use
   2774   the 'font-lock-doc-face' instead of 'font-lock-comment-face'.  Sample
   2775   code is provided to ensure consistency between all types of comments.
   2776 
   2777 - Added note about custom 'hl-todo' colours, specifically the user
   2778   option 'hl-todo-keyword-faces' (which the themes customise as an
   2779   exception to the rule, otherwise the default colours would not always
   2780   be accessible).
   2781 
   2782   This is in relation to the mailing list thread on the matter with
   2783   feedback from Vincent Foley and Christian Tietze:
   2784   <https://lists.sr.ht/~protesilaos/modus-themes/%3C871qwh1r88.fsf%40era.co%3E>.
   2785 
   2786 - Elaborated on the style of 'git-gutter' faces in Doom Emacs, which are
   2787   not as the Modus themes intend.  Basically, the problem is that Doom
   2788   changes the way that package draws its bitmaps: the faces we configure
   2789   no longer appear as intended and sensitive colouration is lost.
   2790 
   2791   Thanks to Gonçalo Marrafa for reporting the issue, testing the code we
   2792   recommend on Doom Emacs, and suggesting the inclusion of the reference
   2793   to the 'after!' call (a macro that Doom defines).
   2794 
   2795 
   2796 Miscellaneous
   2797 =============
   2798 
   2799 - Dedicated the colours of the Modus themes---just the colours---to the
   2800   public domain.  The Emacs package as a whole is still distributed
   2801   under the terms of the GNU General Public License.  The announcement:
   2802   <https://protesilaos.com/codelog/2022-05-10-modus-themes-palette-cc0/>
   2803 
   2804 - Stopped using a timestamp in the modus-themes.el file.  It could lead
   2805   to situations where there was a mismatch between the latest change and
   2806   the recorded time.  It also introduced a barrier to entry for
   2807   contributors, as they need to set up 'time-stamp.el'.
   2808 
   2809 - Removed the unnecessary 'require' call to the 'seq' library and made
   2810   the necessary changes.  Thanks to Daniel Mendler for the patch.
   2811 
   2812   [ Daniel has assigned copyright to the Free Software Foundation. ]
   2813 
   2814 - Applied the correct order of inheritance for all markup faces.  This
   2815   fixes a problem where not all typographic attributes where applied to
   2816   the faces when 'modus-themes-mixed-fonts' was non-nil and the value of
   2817   'modus-themes-markup' included '(bold italic)'.
   2818 
   2819 - Tweaked how 'org-date' conditionally uses 'fixed-pitch'.  Basically,
   2820   we remove an internal stylistic inconsistency.  There is no
   2821   user-facing change.  Thanks to Manuel Giraud for the patch.
   2822 
   2823 - Implemented the command 'modus-themes-report-bug'.  It might help
   2824   users find the email address of the mailing list and get started with
   2825   the email-centric workflow of SourceHut.  Note this is but a first
   2826   step in that direction.  If you think it can be improved, please
   2827   report as much (or send a patch).
   2828 
   2829 - Included the command 'modus-themes-version', which prints in the echo
   2830   area the current version of the package.  With an optional prefix
   2831   argument, it inserts the string at point.
   2832 
   2833   The version either is the last tagged release, such as '2.4.0', or an
   2834   in-development version like '2.5.0-dev'.  As we use semantic
   2835   versioning, tags of the '2.4.1' sort are not considered: those would
   2836   count as part of '2.5.0-dev'.
   2837 #+end_src
   2838 
   2839 * 2.3.0
   2840 :PROPERTIES:
   2841 :CUSTOM_ID: h:f95fb7e2-fcc8-43f6-bde5-27fe51b1bdd5
   2842 :END:
   2843 
   2844 #+begin_src text
   2845 Modus themes version 2.3.0
   2846 
   2847 By Protesilaos Stavrou <info@protesilaos.com> on 2022-04-01
   2848 
   2849 This entry documents the changes made to the project since the
   2850 publication of version 2.2.0 on 2022-02-23.  It spans more than 70
   2851 commits.
   2852 
   2853 To access the URL of the manual visit:
   2854 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   2855 Info reader by evaluating:
   2856 
   2857     (info "(modus-themes) Top")
   2858 
   2859 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   2860 (next stable release) or later, and are available on GNU ELPA as well as
   2861 other archives.  Emacs-28 ships version 1.6.0, while the current
   2862 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   2863 latest tagged release.
   2864 
   2865 
   2866 Customisation options
   2867 =====================
   2868 
   2869 ,* The 'modus-themes-completions' now accepts a 'text-also' property for
   2870   the 'selection' key.  This has the effect of colourising the current
   2871   line's text.  Whereas the default does not change the text colour,
   2872   re-using whatever underlying colours are available.  Consult the doc
   2873   string of this user option, as it provides for fine-grained control of
   2874   how completion UIs may look.  Thanks to Morgan Willcock whose feedback
   2875   in issue 278 inspired me to add the 'text-also' property:
   2876   <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   2877 
   2878 ,* The 'modus-themes-box-buttons' now accepts an 'all-buttons' property.
   2879   It applies whatever other style is used for the boxed buttons to the
   2880   generic 'widget.el'.  By default, the faces of 'widget.el' do not look
   2881   like graphical buttons: they have a bold weight and a foreground
   2882   colour instead.  Examples where those are used are the Notmuch "hello"
   2883   buffer and the main view of the 'elfeed-summary' package.  Thanks to
   2884   Daniel Mendler, Rudolf Adamkovič, and Tony Zorman for their feedback
   2885   in issue 296: <https://gitlab.com/protesilaos/modus-themes/-/issues/296>.
   2886 
   2887 ,* The 'modus-themes-intense-mouseovers' is a boolean user option which
   2888   makes mouse hover effects more intense when set to a non-nil value.
   2889   By default, mouseovers use a cyan background value.  This changes it
   2890   to a more prominent blue.  Thanks to John Haman for the feedback in
   2891   issue 290: <https://gitlab.com/protesilaos/modus-themes/-/issues/290>.
   2892 
   2893 ,* The user options 'modus-themes-box-buttons', 'modus-themes-mode-line',
   2894   'modus-themes-org-agenda', and 'modus-themes-headings' can now read a
   2895   number value as a cons cell.  The old method of a plain number
   2896   continues to work.  This makes it possible to be more descriptive on
   2897   what a given value signifies.  Each doc string describes the
   2898   technicalities.  Here are samples that yield identical results:
   2899 
   2900       (setq modus-themes-mode-line '(accented 0.9 borderless 2))
   2901       (setq modus-themes-mode-line '(accented (heigh 0.9) borderless (padding 2)))
   2902 
   2903   Thanks to Daniel Mendler for proposing this idea in issue 282:
   2904   <https://gitlab.com/protesilaos/modus-themes/-/issues/282#note_842257619>
   2905 
   2906 
   2907 Attempted bug fix for byte compiled files
   2908 =========================================
   2909 
   2910 Quoting from the git log:
   2911 
   2912     commit f067d2ef39c22174b95584f2cba7942aaf03bcca
   2913     Author: Protesilaos Stavrou <info@protesilaos.com>
   2914     Date:   Thu Mar 3 06:52:31 2022 +0200
   2915 
   2916         Reify themes with eval-and-compile
   2917 
   2918         This is an attempt to fix a bug that has existed since version 1.2.0 of
   2919         the themes or even earlier.
   2920 
   2921         The bug is about a mismatch between compiled code and runtime
   2922         dependencies.  The runtime expects the current version while the
   2923         compiled code only furnishes an outdated one, thus resulting in an
   2924         error.  This only happens when:
   2925 
   2926         1. Private functions change to accept more/fewer arguments.
   2927         2. Variables change their acceptable value (e.g. from symbol to list).
   2928         3. The user is installing the package via the package.el mechanism which
   2929            takes care of byte compilation (though anything that mimics
   2930            package.el should exhibit the same behaviour).
   2931 
   2932         My understanding is that the cause was the limited scope of the
   2933         'eval-and-compile' we had before: it would run the 'require' also at
   2934         compile time, whereas the 'modus-themes-theme' macro, which reifies the
   2935         actual theme, would only be evaluated at runtime.  Hence the mismatch as
   2936         'require' would read the already installed byte code while the macro
   2937         would expect newer forms.
   2938 
   2939         Wrapping everything in the 'eval-and-compile' should address this
   2940         problem.  Hopefully it will not engender new ones...
   2941 
   2942         ,* * *
   2943 
   2944         The latest reports about this bug:
   2945 
   2946         ,* GitLab issue 287 with Mark Bestley and Daniel Mendler:
   2947           <https://gitlab.com/protesilaos/modus-themes/-/issues/287>.
   2948 
   2949         ,* GitHub issue 22 with Rytis Paškauskas:
   2950           <https://github.com/protesilaos/modus-themes/issues/22>.
   2951 
   2952      doc/modus-themes.info   | 30 +++++++++++++++---------------
   2953      doc/modus-themes.org    | 15 ++++++++-------
   2954      modus-operandi-theme.el | 10 +++++-----
   2955      modus-vivendi-theme.el  | 10 +++++-----
   2956      4 files changed, 33 insertions(+), 32 deletions(-)
   2957 
   2958 After nearly one month, no problem has been observed as a result of this
   2959 change.
   2960 
   2961 
   2962 Newly supported packages
   2963 ========================
   2964 
   2965 These are added to the already comprehensive coverage we guarantee.
   2966 
   2967 Directly supported:
   2968 
   2969 ,* devdocs.  Thanks to Augusto Stoffel, its developer, for the feedback
   2970   which was sent via email.
   2971 
   2972 ,* mini-modeline.  Thanks to Julio C. Villasante for the feedback in
   2973   issue 24 over at the GitHub mirror:
   2974   <https://github.com/protesilaos/modus-themes/issues/24>.
   2975 
   2976 Indirectly supported (they use faces that we already cover):
   2977 
   2978 ,* elfeed-summary
   2979 ,* undo-hl
   2980 
   2981 
   2982 Changes to supported faces or packages
   2983 ======================================
   2984 
   2985 ,* Improved the colours used by 'avy' to always guarantee constrast in
   2986   hueness between side-by-side characters with a variety of user
   2987   settings.  I tried various styles, such as:
   2988 
   2989       (setq avy-style 'pre)
   2990       (setq avy-style 'at-full)
   2991 
   2992   For the sake of completeness, I also ran tests by modifying the
   2993   'avy-lead-faces' (which is a 'defconst', not a 'defcustom'):
   2994 
   2995       (setq avy-lead-faces
   2996             '(avy-lead-face
   2997               avy-lead-face-0
   2998               avy-lead-face-2
   2999               avy-lead-face
   3000               avy-lead-face-0
   3001               avy-lead-face-2))
   3002 
   3003       (setq avy-lead-faces
   3004             '(avy-lead-face
   3005               avy-lead-face-1
   3006               avy-lead-face-1
   3007               avy-lead-face-1
   3008               avy-lead-face-1))
   3009 
   3010       (setq avy-lead-faces
   3011             '(avy-lead-face
   3012               avy-lead-face-2
   3013               avy-lead-face-2
   3014               avy-lead-face-2
   3015               avy-lead-face-2))
   3016 
   3017 ,* Updated the 'vertico-quick' faces to keep them aligned with the new
   3018   Avy styles.  Thanks to Daniel Mendler (Vertico's developer) for the
   3019   reminder:
   3020   <https://gitlab.com/protesilaos/modus-themes/-/commit/404a9658196debdde95a51148fc62c5b2faccfb9#note_856454659>.
   3021 
   3022 ,* Applied warmer though still not saturated colours for Org clocking
   3023   overlays.  The previous style could be mistaken for a mouse highlight
   3024   or the highlighted line if 'modus-themes-hl-line' included the
   3025   properties 'intense' and 'accented'.  Thanks to Rudolf Adamkovič for
   3026   the feedback in issue 293:
   3027   <https://gitlab.com/protesilaos/modus-themes/-/issues/293>.
   3028 
   3029 ,* Broadened coverage of the built-in 'shr.el' library to include the new
   3030   'shr-code' face (Emacs 29).
   3031 
   3032 ,* Expanded support for the 'embark' package by covering its new
   3033   'embark-collect-marked' face.  Thanks to Daniel Mendler for the
   3034   feedback in issue 299:
   3035   <https://gitlab.com/protesilaos/modus-themes/-/issues/299>.
   3036 
   3037 ,* Made the 'fill-column-indicator' a contiguous line.  It was a dashed
   3038   line before, per the Emacs defaults, which led to awkward results
   3039   depending on the font family and value of 'line-spacing'.  Thanks to
   3040   Daniel Mendler for the feedback in issue 297:
   3041   <https://gitlab.com/protesilaos/modus-themes/-/issues/297>.
   3042 
   3043 ,* Added explicit support for the built-in 'separator-line' face in order
   3044   to refine its presentation.  This is present in 'M-x shortdoc' buffers
   3045   (Emacs 28).  Thanks to Daniel Mendler for the feedback in issue 297:
   3046   <https://gitlab.com/protesilaos/modus-themes/-/issues/297>.
   3047 
   3048 ,* Applied explicit styling to the generic 'underline' face in order to
   3049   ensure its consistent colouration.  The problem before was that an
   3050   underline that spanned text with distinct colours would inherit the
   3051   colour of the affected character.  A uniform presentation makes
   3052   everything easier to read.
   3053 
   3054 ,* The 'ement.el' Matrix client now uses a subtle background for username
   3055   mentions and/or quoted text.  This is consistent with how other Matrix
   3056   clients style such constructs.  Thanks to Adam Porter (aka
   3057   "alphapapa"), the developer of ement.el, for explaining the
   3058   technicalities and providing the relevant feedback in issue 25 over at
   3059   the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/25>.
   3060 
   3061 ,* Enforced consistency between 'icomplete' and 'ido'.  The first match
   3062   was coloured differently in 'ido-mode' by mistake.  Thanks to Morgan
   3063   Willcock for the feedback in issue 278:
   3064   <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3065 
   3066 ,* Used the main foreground for Company's tooltip.  This is how it should
   3067   have been.  Corfu is designed that way as well.  Thanks to user okamsn
   3068   for the feedback in issue 278:
   3069   <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3070 
   3071 ,* Corrected an omission whereby the AUCTeX verbatim face was not
   3072   consistent with other such faces.  Now it too is governed by the user
   3073   option 'modus-themes-markup'.
   3074 
   3075 ,* Fixed the 'centaur-tabs' invalid background message.  Thanks to
   3076   Lennart C. Karssen for reporting the bug in issue 288:
   3077   <https://gitlab.com/protesilaos/modus-themes/-/issues/288>.  Note,
   3078   however, that the problem is due to some decisions made upstream.  My
   3079   patch has not been merged yet (open since 2022-02-24):
   3080   <https://github.com/ema2159/centaur-tabs/pull/179>.  Given this
   3081   opportunity, always anticipate that faces may ':inherit' from others
   3082   and thus functions like 'face-background' might return an undesirable
   3083   nil value if used without a fallback.
   3084 
   3085 
   3086 Miscellaneous
   3087 =============
   3088 
   3089 ,* Made the 'modus-themes--current-theme' return the first Modus theme
   3090   instead of the 'car' of 'custom-enabled-themes'.  This makes the
   3091   themes work at all times even when the user has multiple of them
   3092   enabled.  Thanks to Pierre Téchoueyres for the patch, which was sent
   3093   via email with regard to Emacs bug#54598:
   3094   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54598>.
   3095 
   3096 ,* Implemented compile-time requirement for built-in libraries to be sure
   3097   that the themes work in all cases.  Thanks to Antonio Hernández Blas
   3098   for reporting in issue 292 the bug with the old design that assumed
   3099   the 'cl-lib' and 'subr-x' as already loaded:
   3100   <https://gitlab.com/protesilaos/modus-themes/-/issues/292>.
   3101 
   3102 ,* Wrote in the manual how to achieve a monochrome style (with
   3103   permutations) for code syntax highlighting.  Thanks to Augusto Stoffel
   3104   for sharing the idea via an email exchange (this information is
   3105   divulged with permission).
   3106 
   3107 ,* Clarified some statements in the manual's section about the nuances in
   3108   "enabling" and "loading" a theme.
   3109 
   3110 ,* Documented how the applicable palette affects the outer boundaries of
   3111   the colour range that terminal emulators set when Emacs is ran without
   3112   a GUI.  Here "the palette" refers to the relevant 16 ANSI escape
   3113   sequences (terminal colours 0 through 15).  For the sake of
   3114   convenience, the node includes ready-to-use palettes for XTerm, which
   3115   can be adapted to other terminal emulators.  This entry complements an
   3116   existing one on improving the colour accuracy in terminal emulators.
   3117 
   3118 ,* Used American English constructions in a few places such as "color"
   3119   instead of "colour" as that is what core Emacs expects (and the themes
   3120   are part of emacs.git).
   3121 
   3122 ,* Updated the description of the themes to be more user-friendly.
   3123   Instead of "Highly accessible themes (WCAG AAA)" we now have "Elegant,
   3124   highly legible and customizable themes".  Nothing changes in terms of
   3125   substance.  Thanks to Jorge Morais for the feedback.
   3126 
   3127 ,* Clarified that the version of the themes which is built into Emacs
   3128   does not use 'require'.  It is in response to this thread:
   3129   <https://lists.gnu.org/archive/html/help-gnu-emacs/2022-03/msg00049.html>.
   3130   Thanks to Philip Kaludercic for bringing the issue to my attention.
   3131 
   3132 ,* Improved the code samples that show how to set up the package.
   3133 
   3134 ,* Wrote the correct symbols for some obsoletion forms.
   3135 
   3136 Thanks once again to everyone involved!
   3137 #+end_src
   3138 
   3139 * 2.2.0
   3140 :PROPERTIES:
   3141 :CUSTOM_ID: h:251849ee-3328-48c7-af5f-d1d6daca3a97
   3142 :END:
   3143 
   3144 #+begin_src text
   3145 Modus themes version 2.2.0
   3146 
   3147 By Protesilaos Stavrou <info@protesilaos.com> on 2022-02-23
   3148 
   3149 The present entry records the changes made to the project since the
   3150 publication of version 2.1.0 on 2022-02-17.  This spans about 10 commits
   3151 (though one of them is massive).  Normally the release cycle occurs over
   3152 periods of 4-5 weeks.  This is a necessary exception.
   3153 
   3154 To access the URL of the manual visit this web page:
   3155 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   3156 Info reader by evaluating this form:
   3157 
   3158     (info "(modus-themes) Top")
   3159 
   3160 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   3161 (next stable release) or later, and are available on GNU ELPA as well as
   3162 other archives.  Emacs-28 ships version 1.6.0, while the current
   3163 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   3164 latest tagged release.
   3165 
   3166 
   3167 Initialisation of user options
   3168 ==============================
   3169 
   3170 Removed a superfluous default value that hampered the initialisation of
   3171 defcustom forms in the M-x customize interface.  Things would still
   3172 work, but the interface was not looking right while editing the relevant
   3173 variables.  Thanks to Gustavo Barros for reporting the bug in issue 267:
   3174 <https://gitlab.com/protesilaos/modus-themes/-/issues/267>.
   3175 
   3176 
   3177 Refactor 'modus-themes-completions'
   3178 ===================================
   3179 
   3180 Implemented thoroughgoing reforms across all completion User Interfaces
   3181 (UIs) in order to make them more flexible/powerful and harmonise their
   3182 looks.
   3183 
   3184 'modus-themes-completions' now accepts an alist instead of a symbol.
   3185 Each cons cell is in the form of '(key . list-of-properties)'.  The doc
   3186 string describes all the details.
   3187 
   3188 In terms of out-of-the-box appearences, all completion UIs have a subtle
   3189 aesthetic.  This was always the case for the likes of Vertico, Icomplete
   3190 (Fido), and related, though it constitutes a marked departure from what
   3191 Ivy and Helm used to look like.  Users of the latter two can still get
   3192 the more colourful or intense style with something like this:
   3193 
   3194     (setq modus-themes-completions '((matches . (background intense))
   3195                                      (selection . (accented intense))
   3196                                      (popup . (accented intense))))
   3197 
   3198 Or simply:
   3199 
   3200     (setq modus-themes-completions '((t background intense accented)))
   3201 
   3202 The documentation explains all those associations in-depth.  There also
   3203 are other styles on offer (and combinations thereof).
   3204 
   3205 Furthermore, the new 'modus-themes-completions' encompasses more UIs
   3206 than its predecessor, including Company and Corfu.
   3207 
   3208 In the interest of theme-wide consistency, all applicable faces have
   3209 been reviewed.
   3210 
   3211 Finally, note that the previous tagged release also made changes on this
   3212 front, but it did not disrupt the status quo that was in place from
   3213 before the release of version 1.0.0 of the themes (more than a year
   3214 ago).  In other words, it tried to make unnecessary compromises within
   3215 the confines of an outdated design that did not fit in with the rest of
   3216 the code base.  The new 'modus-themes-completions' might require manual
   3217 intervention from users who want to customise things to their liking,
   3218 though I feel this change is to our long-term benefit.
   3219 
   3220 Thanks to Daniel Mendler and Rudolf Adamkovič for their feedback in
   3221 issue 278: <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3222 And thanks to Kenta Usami for recommending the use of a warning in issue
   3223 286: <https://gitlab.com/protesilaos/modus-themes/-/issues/286>.
   3224 
   3225 
   3226 Miscellaneous changes
   3227 =====================
   3228 
   3229 + Removed the pseudo-button effect from the 'org-checkbox' face.  It was
   3230   not up-to-date with the current style of the rest of the themes,
   3231   including the Org constructs for source block delimiters, the TODO
   3232   keywords, the priority cookies (e.g. '[#A]'), and others.
   3233 
   3234 + Introduced a section in the manual which provides an alternative to
   3235   the standard 'modus-themes-toggle' that leverages 'enable-theme'
   3236   instead of 'load-theme' under the hood.  These technicalities are all
   3237   explained in the manual.
   3238 
   3239 + Provided an alternative greyscale palette subset for 'modus-operandi'
   3240   in the manual's section about overriding colours.
   3241 
   3242 + Added support for the built-in 'custom-variable-obsolete' face.
   3243 
   3244 + Fixed typo in the 'modus-themes-box-buttons' variable.  Thanks to
   3245   Illia Ostapyshyn for the patch in merge request 58:
   3246   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/58>.
   3247 #+end_src
   3248 
   3249 * 2.1.0
   3250 :PROPERTIES:
   3251 :CUSTOM_ID: h:15098250-7b41-404b-86e1-9a99984976b9
   3252 :END:
   3253 
   3254 #+begin_src text
   3255 Modus themes version 2.1.0
   3256 
   3257 By Protesilaos Stavrou <info@protesilaos.com> on 2022-02-17
   3258 
   3259 The present entry records the changes made to the project since the
   3260 publication of version 2.0.0 on 2021-12-24.  There have been more than
   3261 110 commits in the meantime (and this log is close to 5000 words).
   3262 
   3263 All modifications of colour combinations mentioned herein are made in
   3264 accordance with the primary accessibility objective of the themes for a
   3265 minimum contrast ratio of 7:1 between background and foreground values
   3266 in their given combination (the WCAG AAA standard for relative colour
   3267 luminance).  Edits also account for colour-coding that is optimised for
   3268 the needs of users with red-green colour deficiency (deuteranopia).
   3269 
   3270 To access the URL of the manual visit this web page:
   3271 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   3272 Info reader by evaluating this form:
   3273 
   3274     (info "(modus-themes) Top")
   3275 
   3276 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   3277 (next stable release) or later, and are available on GNU ELPA as well as
   3278 other archives.  Emacs-28 ships version 1.6.0, while the current
   3279 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   3280 latest tagged release.
   3281 
   3282 
   3283 Commands
   3284 ========
   3285 
   3286 The following produce a buffer that previews the colour palette of the
   3287 given theme ('modus-operandi' or 'modus-vivendi').
   3288 
   3289 ,* 'modus-themes-list-colors' prompts for a theme before producing the
   3290   preview.
   3291 
   3292 ,* 'modus-themes-list-colors-current' uses the current Modus theme.
   3293 
   3294 These commands are useful to anyone who wants to reference a named
   3295 colour from the themes or copy a colour value, such as for the purposes
   3296 of user-level customisation (as documented at length in the manual
   3297 across several use-cases and with the inclusion of custom code).
   3298 
   3299 The commands are not bound to any key.
   3300 
   3301 
   3302 Customisation options
   3303 =====================
   3304 
   3305 ,* Implemented the 'modus-themes-markup' variable, which supersedes the
   3306   now-deprecated 'modus-themes-intense-markup'.  The new user option
   3307   accepts a list of properties (symbols).  It affects constructs such as
   3308   Org's =verbatim=, ~code~, and macro (with three pairs of braces).  By
   3309   default, when this user option is either nil or an empty list, the
   3310   affected constructs only have a foreground colour (e.g. Org verbatim
   3311   is magenta).  Properties that change this style are:
   3312 
   3313   1. 'italic' for an added slant to the text.
   3314   2. 'bold' for a heavier weight.
   3315   3. 'background' to add a background colour.
   3316   4. 'intense' to amplify the colouration (especially of 'background').
   3317 
   3318   As with all user options which accept a list of properties, the order
   3319   of the symbols is no significant.  In user configurations it may look
   3320   like this:
   3321 
   3322       (setq modus-themes-markup '(background intense bold))
   3323 
   3324   [ Read the manual for bold and italic fonts.  We do not hardcode a
   3325     :weight or :slant, instead giving the user the option to set their
   3326     own values.  The defaults are what you would normally expect from
   3327     "bold" and "italic". ]
   3328 
   3329   Thanks to Rudolf Adamkovič for reporting some problems with the old
   3330   design in issue 274:
   3331   <https://gitlab.com/protesilaos/modus-themes/-/issues/274>.
   3332 
   3333 ,* Added the 'modus-themes-box-buttons' which affects all pseudo
   3334   graphical buttons, such as those found in Custom UI buffers or EWW web
   3335   pages which include search forms and the like.  The variable accepts a
   3336   list of properties as its value.  By default (nil or empty list),
   3337   buttons have a grey background and the familiar 3D effect.  Valid
   3338   properties are:
   3339 
   3340   1. 'flat' to remove the 3D effect.
   3341   2. 'accented' to shift the colouration away from grey.
   3342   3. 'faint' to reduce the overall colouration (e.g. grey becomes white).
   3343   4. 'variable-pitch' to apply a proportionately spaced font.
   3344   5. 'underline' to draw a line instead of applying a 3D or flat box
   3345      (particularly useful for those who use Emacs in a terminal emulator).
   3346   6. The symbol of a font weight, such as 'bold', 'semibold', 'light' or
   3347      any one among those included in the 'modus-themes-weights' constant
   3348      (the underlying font family has to support the given weight).
   3349   7. A number, expressed as a floating point (e.g. 0.9), which adjusts
   3350      the height of the button’s text to that many times the base font
   3351      size.  The default height is the same as 1.0, though it need not be
   3352      explicitly stated.
   3353 
   3354   The order in which those symbols appear in the list is not
   3355   significant.  If 'underline' and 'flat' are both specified, the former
   3356   takes precedence.  In user init files the form may look like this:
   3357 
   3358     (setq modus-themes-box-buttons '(variable-pitch flat semilight 0.9))
   3359 
   3360   Thanks to Daniel Mendler for suggesting this user option and providing
   3361   the relevant feedback in issue 282:
   3362   <https://gitlab.com/protesilaos/modus-themes/-/issues/282>.
   3363 
   3364 ,* Expanded the 'modus-themes-mail-citations' with an 'intense' variant.
   3365   For example:
   3366 
   3367       (setq modus-themes-mail-citations 'intense)
   3368 
   3369   The default is a moderately coloured style.  Other variants include
   3370   'faint' for subtle colouration and 'monochrome' for an all-grey look.
   3371 
   3372 ,* Reviewed the 'modus-themes-completion' option and harmonised all the
   3373   face specifications it governs.  The variable now accepts a fourth
   3374   stylistic variant in 'super-opinionated': it is like the 'opinionated'
   3375   one though some details are even more pronounced.  Other noteworthy
   3376   items:
   3377 
   3378   [ Remember to read the doc string of 'modus-themes-completions', which
   3379     explains the grouping of the completion UIs. ]
   3380 
   3381   - The (setq modus-themes-completions 'moderate) style is more-or-less
   3382     the same across all completion UIs.  The highlight applied to the
   3383     current line is a bespoke shade of blue, the characters are less
   3384     saturated than before and their hues are different, though the
   3385     overall effect should still feel "sufficiently colourful, but not
   3386     overdone".
   3387 
   3388   - The (setq modus-themes-completions nil) is the same as before.
   3389     However:
   3390 
   3391       - The current line in Ivy now uses a shade of blue that is
   3392         specific to completion UIs instead of an intense cyan
   3393         background.  This is for theme-wide consistency.
   3394 
   3395       - Helm's current line has the same bespoke blue for its current
   3396         line instead of another shade of blue it was using before.
   3397 
   3398   - The (setq modus-themes-completions 'opinionated) should be the same
   3399     as before, notwithstanding the aforementioned tweaks to Ivy/Helm.
   3400 
   3401   - The (setq modus-themes-completions 'super-opinionated) for
   3402     Icomplete, Vertico, Selectrum, Mct uses the same blue for the
   3403     current line as is the default of Ivy and Helm.
   3404 
   3405   Miscellaneous:
   3406 
   3407   - The relevant private helper functions were rewritten.
   3408 
   3409   - We declare a few faces to help streamline certain styles.
   3410 
   3411   - Ivy action keys now inherit from 'modus-themes-key-binding'.  We
   3412     generally try to make all keys look the same, except when that would
   3413     be detrimental to the usability of the given context/interface.
   3414 
   3415   - Some Ivy faces are simplified or otherwise tweaked to fit in with
   3416     the rest of the theme.
   3417 
   3418   Thanks to Rudolf Adamkovič for the feedback about Vertico in issues
   3419   214 and 278 which prompted me to review all completion UIs:
   3420 
   3421   - <https://gitlab.com/protesilaos/modus-themes/-/issues/214>
   3422   - <https://gitlab.com/protesilaos/modus-themes/-/issues/278>
   3423 
   3424 ,* Adjusted the applicable hues in some 'modus-themes-syntax' variants.  In
   3425   particular:
   3426 
   3427   - The strings' hue has more hints of blue when 'modus-themes-syntax'
   3428     includes the 'green-strings' property.  Such as:
   3429 
   3430       (setq modus-themes-syntax '(green-strings))
   3431       (setq modus-themes-syntax '(alt-syntax green-strings))
   3432       (setq modus-themes-syntax '(alt-syntax green-strings faint))
   3433       (setq modus-themes-syntax '(alt-syntax green-strings faint yellow-comments))
   3434 
   3435   - Strings are more orange/yellow than red when 'modus-themes-syntax'
   3436     includes the 'alt-syntax' property but NOT the 'green-strings'.  For
   3437     example:
   3438 
   3439       (setq modus-themes-syntax '(alt-syntax))
   3440       (setq modus-themes-syntax '(alt-syntax yellow-comments))
   3441       (setq modus-themes-syntax '(alt-syntax yellow-comments faint))
   3442 
   3443   - Backslashes for regexp constructs are coloured appropriately to look
   3444     distinct from the rest of the string and from the escaped construct in
   3445     all cases.
   3446 
   3447 ,* Removed background colours from the the default style of Org block
   3448   delimiters.
   3449 
   3450   As I explained in Emacs bug#52587,[1] Org has code that overrides
   3451   themes which prefer not to extend the block delimiter faces to the
   3452   edge of the window (as we would like to do by default).  This
   3453   practically means that we cannot have backgrounds for those lines and
   3454   keep them limited to the stretch of area covered by their text.
   3455 
   3456   As such, the default for Org block delimiter lines now is a gray
   3457   foreground with no distinct background colour.  The user option
   3458   'modus-themes-org-blocks' provides "blocky" alternatives that use
   3459   background colours---those extend to the edge of the window.
   3460 
   3461   [1] <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52587#46>
   3462 
   3463 ,* Deleted the compatibility layer for all user options that used to
   3464   accept symbols in the past but now expect a list of symbols.  The
   3465   manual contains a snippet with all customisation options for those who
   3466   do not want to read all the relevant doc strings.  Evaluate this:
   3467 
   3468       (info "(modus-themes) Customization Options")
   3469 
   3470   Or visit: <https://protesilaos.com/emacs/modus-themes#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f>.
   3471 
   3472   The original plan was to remove those during the transition to version
   3473   2.0.0 (about a month ago) though I changed my mind thinking they would
   3474   not pose a longer-term problem.
   3475 
   3476   New information by Mark Bestley in issue 272 shows that this kind of
   3477   complexity can lead to errors:
   3478   <https://gitlab.com/protesilaos/modus-themes/-/issues/272#note_826725412>.
   3479 
   3480   So it is better to keep things simple and ask users to configure all
   3481   user options based on the up-to-date documentation.
   3482 
   3483   Also thanks to Saša Janiška for the feedback in issue 272.
   3484 
   3485 
   3486 New packages, faces, or face groups
   3487 ===================================
   3488 
   3489 ,* all-the-icons-dired.
   3490 
   3491 ,* all-the-icons-ibuffer.
   3492 
   3493 ,* 'child-frame-border' face (Emacs 28).
   3494 
   3495 ,* 'citar' package.  Thanks to Rudolf Adamkovič for the feedback in issue
   3496   280: <https://gitlab.com/protesilaos/modus-themes/-/issues/280>.
   3497 
   3498 ,* 'elisp-shorthand-font-lock-face' (Emacs 29).  Read the manual by
   3499   evaluating:
   3500 
   3501       (info "(elisp) Shorthands")
   3502 
   3503 ,* 'ement' (ement.el) Matrix client, though it is not listed in any
   3504   archive yet: <https://github.com/alphapapa/ement.el>.
   3505 
   3506   Thanks to Samuel Culpepper for the feedback in issue 279:
   3507   <https://gitlab.com/protesilaos/modus-themes/-/issues/279>.
   3508 
   3509   Also check the Ement issue tracker on the matter:
   3510   <https://github.com/alphapapa/ement.el/issues/53>.
   3511 
   3512 ,* 'mct' package.
   3513 
   3514 ,* 'menu' face (built-in) which is used in the menu-bar when Emacs runs
   3515   without a graphical toolkit.
   3516 
   3517 ,* 'pgtk-im-0' face (Emacs 29).  This is shown as a single-character-long
   3518   block when you type the Compose key followed by the composable
   3519   characters.
   3520 
   3521 ,* 'pyim' (an input method for CJK characters).  Thanks to Yuanchen Xie for
   3522   the contribution in merge request 57:
   3523   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/57>.
   3524   The patch is small and is thus excluded from the requirement for
   3525   copyright assignment to the FSF (remember that the themes are built
   3526   into Emacs and any major contribution needs such copyright
   3527   assignment---read the relevant entry in the themes' manual).
   3528 
   3529 ,* 'slime' and 'sly' packages.  Thanks to John Haman for the feedback
   3530   which was done via email due to some problems with the web UI on
   3531   GitLab (this information is shared with permission).  Please note that
   3532   I am not familiar with Common Lisp and could not test these
   3533   thoroughly.  Any mistakes or omissions are my own.
   3534 
   3535   Concerning the web UI, there is a fully functional mirror of the
   3536   themes on GitHub, while email is always an option.  Use whatever works
   3537   for you to report an issue or send a patch.
   3538 
   3539 ,* 'textsec' package (Emacs 29).
   3540 
   3541 New indirectly supported packages
   3542 ---------------------------------
   3543 
   3544 These inherit from base faces and look good enough already or use
   3545 appropriate colours from the Modus themes:
   3546 
   3547 ,* dtache
   3548 ,* org-remark
   3549 
   3550 
   3551 Changes to supported faces or face groups
   3552 =========================================
   3553 
   3554 ,* Stopped making key bindings look like boxes.  We revert to the old
   3555   style we were using before the introduction of the 'help-key-binding'
   3556   face (Emacs 28).
   3557 
   3558   By default Emacs 28 or higher will render all key bindings it
   3559   identifies with a box around them.  The idea is to make them look like
   3560   keys on a keyboard, which I never really liked because without
   3561   generous padding you get a very tight space between the character and
   3562   the box's borders which can look weird at small point sizes (Emacs
   3563   faces do not have padding in the same way CSS does).
   3564 
   3565   I tried following the default style for a few months and have concluded
   3566   that it is not good enough for our purposes (my preferences
   3567   notwithstanding):
   3568 
   3569   - The box attribute does not work in terminal emulators.  This means
   3570     that keys only get a subtle grey background and the default
   3571     foreground, which can be hard to make them stand out from their
   3572     surrounding text if the font height is small and/or the keybinding is
   3573     short (e.g. a single character).
   3574 
   3575   - The box and grey background combination limits our options when we
   3576     need to colour-code different types of keys.  For example, the
   3577     'which-key' package can show TAB as T and applies to it a different
   3578     face to make the distinction obvious.  In that case, the presence of
   3579     the tight box makes the use of a bold weight inappropriate: the
   3580     character and the box's borders seem to overlap.  While the grey
   3581     background limits our choice of colour as, for instance, yellow
   3582     never looks good against it.  Same principle for interfaces that can
   3583     have colour-coded keys like 'transient' and 'hydra', where we lose
   3584     much-needed flexibility.
   3585 
   3586 ,* Adjusted the brightness of the 'which-key-special-key-face'.  This is
   3587   the face that applies to special keys.  For example:
   3588 
   3589       (setq which-key-special-keys '("SPC" "TAB" "RET" "ESC" "DEL"))
   3590 
   3591 ,* Made 'transient' faces which are supposed to be de-emphasise certain
   3592   elements inherit the 'shadow' face.  This is an implicit customisation
   3593   option, as it allows the user to adjust the foreground value of all
   3594   "less important" constructs simply by changing the 'shadow' face.
   3595 
   3596 ,* Covered the 'transient-purple' face (these are like the colour-coding
   3597   of 'hydra').
   3598 
   3599 ,* Tweaked the 'transient-argument' and 'transient-value' faces to make
   3600   things look a bit more consistent with the other transient faces.
   3601   This is to avoid potential conflicts with the highlighted key
   3602   bindings, especially when transient uses hydra-style colour-coded
   3603   keys.
   3604 
   3605 ,* Applied the same metaphors for key bindings to 'marginalia-key'
   3606   ('marginalia' package) and 'embark-keybinding' ('embark' package).
   3607   They inherit the 'modus-themes-key-binding' when possible.  The only
   3608   exception is with (setq modus-themes-completions nil) where conflicts
   3609   may arise between the key's style and matching characters of the
   3610   ongoing completion session.
   3611 
   3612   Thanks to Rudolf Adamkovič for pointing out the inconsistency in issue
   3613   278: <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3614 
   3615 ,* Refrained from treating LaTeX sections as headings.  This is because
   3616   unlike Org/Outline/Markdown Latex is basically source code, so the
   3617   sectioning does not work the same way it does for those lightweight
   3618   markup/outlining modes.
   3619 
   3620   Furthermore, font-latex.el defines 'font-latex-fontify-sectioning'
   3621   which can be used to control the scale of those sections.  It makes
   3622   sense for the themes to not interfere with that design and just allow
   3623   users to customise things uniformly regardless of the active theme.
   3624 
   3625   Thanks to Gustavo Barros for the detailed feedback in issue 265:
   3626   <https://gitlab.com/protesilaos/modus-themes/-/issues/265>.
   3627 
   3628 ,* Reviewed the hues of 'all-the-icons' and related packages.
   3629 
   3630 ,* Applied the correct style to 'info-menu-header', meaning that it now
   3631   only uses a bold weight as it is not a real heading, instead of being
   3632   affected by the user option 'modus-themes-headings'.
   3633 
   3634 ,* Included new 'telega-entity-type-spoiler' face.  Thanks to bit9tream
   3635   for informing me about it in issue 271:
   3636   <https://gitlab.com/protesilaos/modus-themes/-/issues/271>.  The
   3637   conclusion:
   3638 
   3639       Tricky though perhaps dull
   3640 
   3641       I understand this is not an interesting topic and it probably is
   3642       too difficult to relate to the various data points without
   3643       visualising them and comparing the before and after
   3644       states. Furthermore, data can be deceptive and I have always
   3645       maintained that theme development stands at the intersection of
   3646       science and art (at least for the purposes of conforming with the
   3647       rigorous accessibility standards of the Modus themes).
   3648 
   3649       That granted, I wanted to shed light on the “behind the scenes”
   3650       work that is not immediately obvious when one checks a diff that
   3651       introduces some seemingly trivial tweaks like '#49d239'->'#49c029'
   3652       or '#7fcfff'->'#8fbfff'.
   3653 
   3654 ,* Tweaked the hues of all graph colours, which are used in the
   3655   'org-habit' table.  The changes are subtle and should improve the
   3656   overall usability of the graph.  For the technicalities, read:
   3657   <https://protesilaos.com/codelog/2022-01-02-review-modus-themes-org-habit-colours/>.
   3658 
   3659   Also thanks to Rudolf Adamkovič for reporting the problem with white
   3660   text on yellow background in issue 270:
   3661   <https://gitlab.com/protesilaos/modus-themes/-/issues/270>.
   3662 
   3663 ,* Styled the 'markdown-highlighting-face'.  This is the face used for
   3664   text in between double equals signs when the user option
   3665   'markdown-enable-highlighting-syntax' is non-nil.
   3666 
   3667 ,* Amplified the overall colouration of Eldoc's current argument.  It is
   3668   a yellow foreground with a tinted background.  The blue foreground
   3669   which was applied before could be hard to tell apart in some cases,
   3670   especially because it is a common colour that is used elsewhere in the
   3671   themes.  Whereas the warmer hues are easier to discern, especially
   3672   while relying only on peripheral vision.
   3673 
   3674   Thanks to Rudolf Adamkovič for the feedback in issue 275:
   3675   <https://gitlab.com/protesilaos/modus-themes/-/issues/275>.
   3676 
   3677 ,* Instructed Geiser to use the same style for its argument as Eldoc
   3678   (edited the faces 'geiser-font-lock-autodoc-current-arg' and
   3679   'geiser-font-lock-autodoc-identifier').
   3680 
   3681 ,* Made the 'keycast-key' face work when 'modus-themes-mode-line' has a
   3682   padding value (read the latter doc string or consult the manual).
   3683 
   3684 ,* Refined the 'magit' faces for bisect, reflog, sequence, and signature
   3685   views.  They get a bold weight and, where appropriate, are made to
   3686   comply with the 'modus-theems-deueteranopia' option (meaning that
   3687   greens turn into blues).
   3688 
   3689 ,* Recoloured 'elfeed' tags from a shade of cyan to magenta, in the
   3690   interest of theme-wide consistency but also to make them easier to
   3691   tell apart from the name of the feed.  Also updated the faces used in
   3692   the header-line to look better in context.
   3693 
   3694 ,* Removed the hardcoded ':slant italic' from the 'italic' face, which is
   3695   consistent with how we do not hardcode ':weight bold' in the 'bold'
   3696   face.
   3697 
   3698   Such a design allows users to configure those faces and have the
   3699   desired slant/weight (and even font family) apply consistently
   3700   throughout the theme.  Read the manual for further details:
   3701   <https://protesilaos.com/emacs/modus-themes#h:2793a224-2109-4f61-a106-721c57c01375>.
   3702 
   3703   Thanks to user derek-upham for pointing out the inconsistency in issue
   3704   21 over at the GitHub mirror:
   3705   <https://github.com/protesilaos/modus-themes/issues/21>.
   3706 
   3707 ,* Improved the styles that apply to compilation buffers and related.
   3708   The overarching intent was to reduce the excess colouration, without
   3709   upsetting expectations and affecting the overall presentation.
   3710 
   3711   Thanks to Rudolf Adamkovič for the feedback in issue 277:
   3712   <https://gitlab.com/protesilaos/modus-themes/-/issues/277>.
   3713 
   3714   Note that compilation buffers apply an underline by default.  The
   3715   manual explains how to change that:
   3716   <https://protesilaos.com/emacs/modus-themes#h:420f5a33-c7a9-4112-9b04-eaf2cbad96bd>.
   3717 
   3718 ,* Ensured a consistent style for the 'highlight' face across all
   3719   contexts (typically used for mouse hover effects).  The mode line has
   3720   an exception when its style includes an accented background (per
   3721   'modus-themes-mode-line').
   3722 
   3723   Thanks to Rudolf Adamkovič for the feedback in issue 214:
   3724   <https://gitlab.com/protesilaos/modus-themes/-/issues/214>.
   3725 
   3726 ,* Changed the foreground of 'mode-line-emphasis' from blue to purple, in
   3727   order to avoid potential (albeit unlikely) confusion with other
   3728   indicators.
   3729 
   3730 ,* Desaturated the 'man' and 'woman' foreground value of the bold
   3731   constructs and tweaked other faces to avoid potential inconsistencies.
   3732   Thanks to Daniel Mendler for the feedback:
   3733   <https://gitlab.com/protesilaos/modus-themes/-/commit/8080eb1c6c0020ba82e8abaa933d6686327bc616#note_841424489>.
   3734 
   3735 ,* Removed certain exaggerations from widgets as seen in the Custom UI
   3736   and EWW.  Specifically:
   3737 
   3738   - 'widget-field' does not need to ':extend', as that typically does
   3739     not look good.
   3740 
   3741   - 'custom-state' gets a warmer colour to convey its message more
   3742     effectively.
   3743 
   3744   - 'eww-form-text' no longer uses a ':box' because that breaks when the
   3745     widget occupies more than one line.
   3746 
   3747   - 'eww-form-textarea' can now inherit from 'eww-form-text'.
   3748 
   3749   Thanks to Daniel Mendler for the feedback on the style of those faces in
   3750   issue 284: <https://gitlab.com/protesilaos/modus-themes/-/issues/284>.
   3751 
   3752 
   3753 The manual
   3754 ==========
   3755 
   3756 ,* Clarified the wording of 'shr' fonts, which affect 'eww', 'elfeed',
   3757   'ement', and possibly others.
   3758 
   3759 ,* Wrote section on custom Org emphasis faces.  It includes code samples.
   3760 
   3761 ,* Answered a Frequently Asked Question on whether the Modus themes are
   3762   "colour schemes"---they are not and it is important to understand why.
   3763 
   3764 ,* Addressed another Frequently Asked Question about porting the themes
   3765   to other platforms or editors.  Relevant blog posts which explain how
   3766   complex the issue is and why porting requires the same attention to
   3767   detail as this project:
   3768 
   3769   - <https://protesilaos.com/codelog/2022-01-03-modus-themes-port-faq/>.
   3770   - <https://protesilaos.com/codelog/2022-01-23-base16-modus-themes/>.
   3771 
   3772 ,* Improved the sample code in the section about the backdrop of PDF
   3773   files while using 'pdf-tools'.  Thanks to Utkarsh Singh for the patch,
   3774   which was sent via email.
   3775 
   3776 ,* Provided sample code on an alternative style for Ediff.
   3777 
   3778   There was a discussion with Philip Kaludercic in issue 273 about making
   3779   this a defcustom: <https://gitlab.com/protesilaos/modus-themes/-/issues/273>.
   3780 
   3781   I first entertained the notion and did set up a branch for testing
   3782   purposes.  However, I ultimately decided that such a course of action
   3783   would establish a bad precedent because then every conceivable stylistic
   3784   tweak could, in principle, become a user option.  Furthermore, the
   3785   potential defcustom would introduce too much complexity as Ediff would
   3786   have to continue to behave as other diffs (per 'modus-themes-diffs') if
   3787   the user did not want the alternative style.
   3788 
   3789   As such, documenting how a user can achieve this is the right choice.
   3790 
   3791 ,* Fixed internal link in the manual.  Thanks to Rudolf Adamkovič for
   3792   reporting the problem in issue 277:
   3793   <https://gitlab.com/protesilaos/modus-themes/-/issues/277>.
   3794 
   3795 
   3796 Miscellaneous
   3797 =============
   3798 
   3799 ,* Covered workaround for improving the accuracy of colour reproduction
   3800   in terminal emulators.  The results are still not as good as the
   3801   graphical version of Emacs, though they are considerably better than
   3802   before.  Thanks to gitrj95's issue 18 at the GitHub mirror, which
   3803   prompted me to research this topic:
   3804   <https://github.com/protesilaos/modus-themes/issues/18>.
   3805 
   3806 ,* Helped report a bug in the PGTK build of Emacs where a new emacsclient
   3807   window with the 'modus-vivendi' face would not show the cursor:
   3808   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=53073>.  Thanks to
   3809   contributed to the discussion on issue 7 over at the GitHub mirror:
   3810   <https://github.com/protesilaos/modus-themes/issues/7>
   3811 
   3812 ,* Shifted the hue of the intense 'hl-line' from a grey-cyan to a more
   3813   vivid blue by reducing the relative contribution of the green channel
   3814   of light.
   3815 
   3816   The change affects these styles:
   3817 
   3818       (setq modus-themes-hl-line '(accented intense))
   3819       (setq modus-themes-hl-line '(accented intense underline))
   3820 
   3821   Thanks to Rudolf Adamkovič for suggesting a more vivid colour in issue
   3822   214: <https://gitlab.com/protesilaos/modus-themes/-/issues/214>.
   3823 
   3824 ,* Recalibrated the 'modus-vivendi' named colour 'bg-paren-match'.
   3825 
   3826   I wanted to increase its distance relative to the main background,
   3827   just to be sure that it is easier to spot.  This is achieved by moving
   3828   the hueness from the yellow to the magenta side of the spectrum.
   3829 
   3830   Overall, the change is subtle and has no major impact on the contrast
   3831   ratio relative to the main background and foreground (we need to
   3832   consider both due to the specifics of show-paren-mode (and related)).
   3833 
   3834   The results (#5f362f is the old, #6f3355 the new):
   3835 
   3836       |         | #000000 | #ffffff | #000000 | #ffffff |
   3837       |---------+---------+---------+---------+---------|
   3838       | #5f362f |    2.06 |   10.22 |   37904 |  333060 |
   3839       | #6f3355 |    2.28 |    9.21 |   58282 |  291037 |
   3840 
   3841   The TBLFM formula for this table (org-mode notation):
   3842 
   3843       $2='(Λ $1 @1$2);%.2f :: $3='(Λ $1 @1$3);%.2f :: $4='(Δ $1 @1$4) :: $5='(Δ $1 @1$5)
   3844 
   3845   The Greek letters mean:
   3846 
   3847       (defalias 'Λ #'modus-themes-contrast)
   3848       (defalias 'Δ #'color-distance)
   3849 
   3850 ,* Expanded the "special" subset of the palette with faint variants of
   3851   the four backgrounds.  These are reserved for special circumstances,
   3852   as the name implies.  Below are the contrast values (see
   3853   'modus-themes-contrast').
   3854 
   3855       Modus Operandi main accept colours against faint special backgrounds:
   3856 
   3857       |         | #f0f1ff | #ebf5eb | #fef2ea | #faeff9 |
   3858       |---------+---------+---------+---------+---------|
   3859       | #a60000 |    7.15 |    7.17 |    7.29 |    7.16 |
   3860       | #972500 |    7.26 |    7.28 |    7.40 |    7.28 |
   3861       | #a0132f |    7.13 |    7.15 |    7.27 |    7.14 |
   3862       | #7f1010 |    9.44 |    9.47 |    9.63 |    9.47 |
   3863       | #702f00 |    8.94 |    8.97 |    9.12 |    8.96 |
   3864       | #7f002f |    9.64 |    9.67 |    9.83 |    9.66 |
   3865       | #005e00 |    7.20 |    7.23 |    7.34 |    7.22 |
   3866       | #315b00 |    7.13 |    7.15 |    7.27 |    7.15 |
   3867       | #145c33 |    7.18 |    7.20 |    7.32 |    7.20 |
   3868       | #104410 |   10.09 |   10.12 |   10.29 |   10.12 |
   3869       | #30440f |    9.56 |    9.59 |    9.75 |    9.58 |
   3870       | #0f443f |    9.76 |    9.79 |    9.96 |    9.79 |
   3871       | #813e00 |    7.14 |    7.17 |    7.28 |    7.16 |
   3872       | #70480f |    7.14 |    7.17 |    7.28 |    7.16 |
   3873       | #863927 |    7.13 |    7.15 |    7.27 |    7.15 |
   3874       | #5f4400 |    8.10 |    8.12 |    8.26 |    8.12 |
   3875       | #5d5000 |    7.17 |    7.19 |    7.31 |    7.19 |
   3876       | #5e3a20 |    8.91 |    8.94 |    9.09 |    8.93 |
   3877       | #0031a9 |    9.31 |    9.34 |    9.49 |    9.33 |
   3878       | #2544bb |    7.14 |    7.16 |    7.28 |    7.16 |
   3879       | #0000c0 |   10.64 |   10.67 |   10.85 |   10.66 |
   3880       | #003497 |    9.66 |    9.70 |    9.86 |    9.69 |
   3881       | #0f3d8c |    9.06 |    9.09 |    9.24 |    9.09 |
   3882       | #001087 |   13.15 |   13.20 |   13.42 |   13.19 |
   3883       | #721045 |    9.99 |   10.02 |   10.19 |   10.01 |
   3884       | #8f0075 |    7.72 |    7.75 |    7.88 |    7.74 |
   3885       | #5317ac |    8.98 |    9.01 |    9.16 |    9.00 |
   3886       | #752f50 |    8.22 |    8.25 |    8.38 |    8.24 |
   3887       | #7b206f |    8.22 |    8.25 |    8.38 |    8.24 |
   3888       | #55348e |    8.26 |    8.29 |    8.42 |    8.28 |
   3889       | #00538b |    7.18 |    7.20 |    7.32 |    7.19 |
   3890       | #30517f |    7.18 |    7.20 |    7.32 |    7.20 |
   3891       | #005a5f |    7.13 |    7.15 |    7.27 |    7.15 |
   3892       | #005077 |    7.76 |    7.79 |    7.91 |    7.78 |
   3893       | #354f6f |    7.49 |    7.52 |    7.64 |    7.51 |
   3894       | #125458 |    7.69 |    7.72 |    7.85 |    7.71 |
   3895 
   3896       Modus Vivendi main accept colours against faint special backgrounds:
   3897 
   3898       |         | #0e183a | #001f1a | #241613 | #251232 |
   3899       |---------+---------+---------+---------+---------|
   3900       | #ff8059 |    7.01 |    7.01 |    7.07 |    7.00 |
   3901       | #ef8b50 |    7.01 |    7.00 |    7.07 |    7.00 |
   3902       | #ff9077 |    7.85 |    7.85 |    7.93 |    7.85 |
   3903       | #ffa0a0 |    8.91 |    8.91 |    9.00 |    8.91 |
   3904       | #f5aa80 |    9.04 |    9.04 |    9.13 |    9.04 |
   3905       | #ff9fbf |    9.06 |    9.05 |    9.14 |    9.05 |
   3906       | #44bc44 |    7.04 |    7.04 |    7.11 |    7.04 |
   3907       | #70b900 |    7.13 |    7.13 |    7.20 |    7.12 |
   3908       | #00c06f |    7.24 |    7.24 |    7.31 |    7.24 |
   3909       | #78bf78 |    7.87 |    7.86 |    7.94 |    7.86 |
   3910       | #99b56f |    7.60 |    7.59 |    7.67 |    7.59 |
   3911       | #88bf99 |    8.23 |    8.22 |    8.30 |    8.22 |
   3912       | #d0bc00 |    8.98 |    8.98 |    9.07 |    8.98 |
   3913       | #c0c530 |    9.31 |    9.31 |    9.40 |    9.30 |
   3914       | #d3b55f |    8.71 |    8.71 |    8.79 |    8.71 |
   3915       | #d2b580 |    8.81 |    8.80 |    8.89 |    8.80 |
   3916       | #cabf77 |    9.28 |    9.27 |    9.36 |    9.27 |
   3917       | #d0ba95 |    9.20 |    9.20 |    9.29 |    9.20 |
   3918       | #2fafff |    7.18 |    7.18 |    7.25 |    7.18 |
   3919       | #79a8ff |    7.32 |    7.32 |    7.39 |    7.31 |
   3920       | #00bcff |    7.96 |    7.96 |    8.04 |    7.96 |
   3921       | #82b0ec |    7.74 |    7.74 |    7.81 |    7.74 |
   3922       | #a0acef |    7.97 |    7.96 |    8.04 |    7.96 |
   3923       | #80b2f0 |    7.89 |    7.88 |    7.96 |    7.88 |
   3924       | #feacd0 |    9.94 |    9.93 |   10.03 |    9.93 |
   3925       | #f78fe7 |    8.29 |    8.29 |    8.37 |    8.29 |
   3926       | #b6a0ff |    7.82 |    7.81 |    7.89 |    7.81 |
   3927       | #e0b2d6 |    9.51 |    9.50 |    9.60 |    9.50 |
   3928       | #ef9fe4 |    8.88 |    8.88 |    8.96 |    8.87 |
   3929       | #cfa6ff |    8.72 |    8.71 |    8.80 |    8.71 |
   3930       | #00d3d0 |    9.28 |    9.27 |    9.36 |    9.27 |
   3931       | #4ae2f0 |   11.09 |   11.09 |   11.20 |   11.09 |
   3932       | #6ae4b9 |   11.08 |   11.07 |   11.18 |   11.07 |
   3933       | #90c4ed |    9.34 |    9.34 |    9.43 |    9.33 |
   3934       | #a0bfdf |    9.10 |    9.09 |    9.18 |    9.09 |
   3935       | #a4d0bb |   10.18 |   10.17 |   10.27 |   10.17 |
   3936 
   3937 ,* Add docs on color overrides through blending.  Thanks to Alex Griffin
   3938   for the contribution in issue 269 and the subsequent patch in merge
   3939   request 56 (the patch is exempt from copyright assignment):
   3940 
   3941   - <https://gitlab.com/protesilaos/modus-themes/-/issues/269>.
   3942   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/56>.
   3943 
   3944 ,* Fixed typo in the ':group' value of some faces defined in
   3945   modus-themes.el.  Thanks to Gustavo Barros for reporting it in issue
   3946   266: <https://gitlab.com/protesilaos/modus-themes/-/issues/266>
   3947 
   3948 ,* Updated copyright statement in all .el files to use the same wording
   3949   as all other files that are built into Emacs.
   3950 
   3951 ,* Made all sorts of tweaks and refinements to doc strings and nodes in the
   3952   manual.
   3953 
   3954 Thanks again to everyone involved!  This has been yet another cycle of
   3955 intense work which further iterated on an already solid base.
   3956 #+end_src
   3957 
   3958 * 2.0.0
   3959 :PROPERTIES:
   3960 :CUSTOM_ID: h:46d92baa-eff3-4973-bac0-cf762b457e2d
   3961 :END:
   3962 
   3963 #+begin_src text
   3964 Modus themes version 2.0.0
   3965 
   3966 By Protesilaos Stavrou <info@protesilaos.com> on 2021-12-24
   3967 
   3968 This entry covers the changes made to the project since the publication
   3969 of version 1.7.0 on 2021-11-18.  There have been more than 90 commits in
   3970 the meantime.  This is a major upgrade with some backward-incompatible
   3971 changes, even though most work was done behind the scenes (i.e. not in
   3972 git commits but local testing) to guarantee the relevance of all
   3973 user-facing styles, code practices, et cetera.
   3974 
   3975 All modifications of colour combinations mentioned herein are made in
   3976 accordance with the primary accessibility objective of the themes for a
   3977 minimum contrast ratio of 7:1 between background and foreground values
   3978 in their given combination (the WCAG AAA standard for relative colour
   3979 luminance).  Edits also account for colour-coding that is optimised for
   3980 the needs of users with red-green colour deficiency (deuteranopia).
   3981 
   3982 To access the URL of the manual visit this web page:
   3983 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   3984 Info reader by evaluating this form:
   3985 
   3986     (info "(modus-themes) Top")
   3987 
   3988 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   3989 (next stable release) or later, and are available on GNU ELPA as well as
   3990 other archives.  Emacs-28 ships version 1.6.0, while the current
   3991 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   3992 latest tagged release.
   3993 
   3994 A fully fledged org-mode file with the annotated task list for Modus
   3995 themes version 2.0.0 is supplied as complementary material to the
   3996 present entry.  It should be annexed below this text on the announcement
   3997 page: <https://protesilaos.com/codelog/2021-12-24-modus-themes-2-0-0/>.
   3998 
   3999 
   4000 Customisation options
   4001 =====================
   4002 
   4003 There are some breaking changes that were necessary to improve the code
   4004 base and make things easier as well as more efficient for end users.
   4005 Please read carefully and apologies in advance for whatever
   4006 inconvenience.
   4007 
   4008 ,* The 'modus-themes-variable-pitch-headings' no longer has any effect.
   4009   Instead, users can specify a 'variable-pitch' property to the list
   4010   they pass to the 'modus-themes-headings' or 'modus-themes-org-agenda'
   4011   (examples below).
   4012 
   4013 ,* All 'modus-themes-scale-*' options are removed.  Scaling of headings
   4014   is now handled directly by the user options 'modus-themes-headings'
   4015   and 'modus-themes-org-agenda' (code samples below).
   4016 
   4017 ,* The 'modus-themes-headings' option now accepts a floating point (see
   4018   function 'floatp') that represents the multiplier relative to the base
   4019   font size.  This can be used to scale headings accordingly.  Since
   4020   this option can target individual heading levels (for 1 through 8),
   4021   users can now implement their desired scale with greater precision.
   4022   Whereas before it was limited to the first four levels, admittedly for
   4023   no good reason.
   4024 
   4025   The newly introduced 'variable-pitch' property can also be applied on
   4026   a per-level basis (making it easy to combine with existing properties,
   4027   such as a custom weight, for maximum control).  Example:
   4028 
   4029       ;; This is an alist: read the manual or its doc string.
   4030       (setq modus-themes-headings
   4031             '((1 . (variable-pitch light 1.6))
   4032               (2 . (overline semibold 1.4))
   4033               (3 . (monochrome overline 1.2))
   4034               (4 . (overline 1.1))
   4035               (t . (rainbow 1.05))))
   4036 
   4037 ,* The 'modus-themes-org-agenda' follows the same design as the
   4038   'modus-themes-headings' where appropriate.  Headings that can be
   4039   scaled accept a floating point, while those that may be rendered in a
   4040   proportionately spaced font accept the 'variable-pitch' property.  In
   4041   addition, a custom font weight is also supported in the relevant
   4042   places (just as with 'modus-themes-headings').  Overall, the interface
   4043   can now be tailored to the user's preferences with greater precision.
   4044 
   4045       ;; This is an alist: read the manual or its doc string.
   4046       (setq modus-themes-org-agenda
   4047             '((header-block . (variable-pitch light 1.6))
   4048               (header-date . (bold-today grayscale underline-today 1.2))
   4049               (event . (accented varied))
   4050               (scheduled . uniform)
   4051               (habit . traffic-light)))
   4052 
   4053 ,* The 'modus-themes-scale-small' that was used in the Org agenda
   4054   interface has been removed.  No replacement is provided, as the
   4055   downsizing had the undesired effect of breaking the otherwise neat
   4056   alignment of elements on the grid.
   4057 
   4058 ,* The 'modus-themes-mode-line-padding' option has been removed.
   4059   Instead, users can specify a natural number (positive integer)
   4060   directly in the list of properties passed to the
   4061   'modus-themes-mode-line' variable.  This has no effect when the
   4062   'moody' property is also set, because the Moody library applies its
   4063   own padding.  For example:
   4064 
   4065       (setq modus-themes-mode-line '(borderless accented 4))
   4066 
   4067   Though not related to changes on our end, users of Emacs 29 must now
   4068   set 'x-use-underline-position-properties' to nil for padding to work
   4069   properly (due to other adjustments upstream).  This relates to Emacs
   4070   bug#52324 we had reported:
   4071   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52324>.
   4072 
   4073 ,* All deuteranopia styles are consolidated in a single toggle:
   4074   'modus-themes-deuteranopia'.  The 'modus-themes-success-deuteranopia'
   4075   is thus rendered obsolete and superseded, while the individual
   4076   deuteranopia-friendly styles for diffs ('modus-themes-diffs') and the
   4077   Org agenda's habit graph ('modus-themes-org-agenda') are altogether
   4078   removed.  As opposed to top-level forms, there is no clean way to
   4079   notify the user of the deprecation of individual values of a user
   4080   option.
   4081 
   4082 ,* The "foreground only" style has been altogether removed from the user
   4083   option 'modus-themes-diffs'.  It never was up to the aesthetic
   4084   standard of the themes even though the colours met the minimum 7:1
   4085   contrast ratio.  There is a new section in the manual which documents
   4086   how to implement such a style with user-level configurations.  Short
   4087   version:
   4088 
   4089       (defun my-modus-themes-custom-faces ()
   4090         (modus-themes-with-colors
   4091           (custom-set-faces
   4092            `(modus-themes-diff-added ((,class :background unspecified :foreground ,green))) ; OR ,blue for deuteranopia
   4093            `(modus-themes-diff-changed ((,class :background unspecified :foreground ,yellow)))
   4094            `(modus-themes-diff-removed ((,class :background unspecified :foreground ,red)))
   4095 
   4096            `(modus-themes-diff-refine-added ((,class :background ,bg-diff-added :foreground ,fg-diff-added)))
   4097            ;; `(modus-themes-diff-refine-added ((,class :background ,bg-diff-added-deuteran :foreground ,fg-diff-added-deuteran)))
   4098            `(modus-themes-diff-refine-changed ((,class :background ,bg-diff-changed :foreground ,fg-diff-changed)))
   4099            `(modus-themes-diff-refine-removed ((,class :background ,bg-diff-removed :foreground ,fg-diff-removed)))
   4100 
   4101            `(modus-themes-diff-focus-added ((,class :background ,bg-dim :foreground ,green))) ; OR ,blue for deuteranopia
   4102            `(modus-themes-diff-focus-changed ((,class :background ,bg-dim :foreground ,yellow)))
   4103            `(modus-themes-diff-focus-removed ((,class :background ,bg-dim :foreground ,red)))
   4104 
   4105            `(modus-themes-diff-heading ((,class :background ,bg-alt :foreground ,fg-main)))
   4106 
   4107            `(diff-indicator-added ((,class :foreground ,green))) ; OR ,blue for deuteranopia
   4108            `(diff-indicator-changed ((,class :foreground ,yellow)))
   4109            `(diff-indicator-removed ((,class :foreground ,red)))
   4110 
   4111            `(magit-diff-added ((,class :background unspecified :foreground ,green-faint)))
   4112            `(magit-diff-changed ((,class :background unspecified :foreground ,yellow-faint)))
   4113            `(magit-diff-removed ((,class :background unspecified :foreground ,red-faint)))
   4114            `(magit-diff-context-highlight ((,class :background ,bg-dim :foreground ,fg-dim))))))
   4115 
   4116       ;; This is so that the changes persist when switching between
   4117       ;; modus-operandi and modus-vivendi
   4118       (add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
   4119 
   4120 
   4121 Removed support for packages
   4122 ============================
   4123 
   4124 The following are no longer supported by the themes.  The reasons vary
   4125 in each case, though they boil down to (i) the package being obsoleted,
   4126 or (ii) the package's faces inheriting from base faces that we already
   4127 support (e.g. font-lock).  Each case was carefully considered as part of
   4128 the comprehensive review of all packages supported by the themes, though
   4129 chances are that some mistake was made regardless.  If you believe a
   4130 package should not have been removed, please report as much.
   4131 
   4132 ,* ag
   4133 ,* apt-sources-list
   4134 ,* apt-sources-list
   4135 ,* buffer-expose
   4136 ,* counsel-org-capture-string
   4137 ,* define-word
   4138 ,* diredc
   4139 ,* disk-usage
   4140 ,* easy-kill
   4141 ,* flyspell-correct
   4142 ,* git-gutter{,fringe}+
   4143 ,* git-lens
   4144 ,* git-walktree
   4145 ,* highlight-blocks
   4146 ,* highlight-defined
   4147 ,* highlight-escape-sequences
   4148 ,* highlight-symbol
   4149 ,* highlight-tail
   4150 ,* hyperlist-mode
   4151 ,* isl (isearch-light)
   4152 ,* minibuffer-line
   4153 ,* mu4e-conversation
   4154 ,* no-emoji
   4155 ,* objed
   4156 ,* parrot
   4157 ,* phi-search
   4158 ,* pkgbuild-mode
   4159 ,* rainbow-identifiers
   4160 ,* sallet
   4161 ,* spell-fu
   4162 ,* spray
   4163 ,* swoop
   4164 ,* vdiff
   4165 ,* volatile-highlights
   4166 
   4167 
   4168 Changes to supported faces or face groups
   4169 =========================================
   4170 
   4171 ,* Eliminated any possible exaggerations in wgrep faces.  Those no longer
   4172   use coloured backgrounds.  Instead they have colour-coded foreground
   4173   colours as well as a bold weight (they ultimately inherit from the
   4174   'bold' face, which is a "hidden" customisation option, as explained in
   4175   the manual).
   4176 
   4177 ,* Forced Org block delimiters to not extend their background by default
   4178   (though check 'modus-themes-org-blocks').  That was the intended
   4179   design all along, but now it needs to be made explicit.  See, for
   4180   example, bug#52587 for Emacs:
   4181   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52587>
   4182 
   4183 ,* Revised the 'org-sexp-date' face so that it no longer looks like
   4184   'org-date'.  Dates are clickable buttons: they work like links, so
   4185   they have an underline by default and are subject to the
   4186   'modus-themes-links' user option.  Whereas the 'org-sexp-date' is not
   4187   applied to interactive elements and must thus be visually distinct.
   4188 
   4189   This face is used for diary-style entries in Org files.  For example:
   4190 
   4191       %%(diary-anniversary 2000 12 25) NAME %d%s birthday
   4192 
   4193 ,* Rewrote several Auctex/Tex faces to inherit from base faces where
   4194   relevant (e.g. 'bold', 'success') as well as from font-lock faces.  In
   4195   the latter case, the end-result makes Auctex/Tex subject to the
   4196   'modus-themes-syntax' option.  These refinements promote theme-wide
   4197   consistency without detracting from the established styles.
   4198 
   4199 ,* Improved Git (Magit) commit faces for warnings or errors.  This
   4200   concerns two cases:
   4201 
   4202   1. The summary line exceeds the recommended limit of 50 characters.
   4203      This now uses a yellow foreground colour which contrasts well with
   4204      the summary line's new blue hue (blue and yellow are complementary
   4205      for our purposes, meaning that they have good contrast in hueness).
   4206 
   4207   2. The second line (the one right below the summary) has text that
   4208      should not be there.  This one is coloured in a shade of red, which
   4209      again contrasts well with blue.
   4210 
   4211   Thanks to Damien Cassou for noticing in issue 261 that the previous
   4212   style of applying tinted backgrounds did not work well when
   4213   'hl-line-mode' was enabled ('hl-line-mode' overrides backgrounds and
   4214   so the warnings/errors where not always obvious):
   4215   <https://gitlab.com/protesilaos/modus-themes/-/issues/261>.
   4216 
   4217 ,* Added support for the new 'magit-branch-warning' face that we helped
   4218   upstream define: <https://github.com/magit/magit/issues/4550>.  It
   4219   disambiguates warnings in Magit status buffers from the generic and
   4220   often inappropriate for such a context 'font-lock-warning-face'.
   4221 
   4222 ,* Simplified all the Apropos faces.  They no longer look like buttons or
   4223   links as that makes the presentation of 'M-x apropos' very busy.
   4224   Instead, they now only have a foreground colour.
   4225 
   4226 ,* Updated support for org-roam faces by removing old entries and
   4227   covering new ones.
   4228 
   4229 ,* Replaced old company-mode faces with their new aliases:
   4230 
   4231   - company-scrollbar-bg => company-tooltip-scrollbar-thumb
   4232   - company-scrollbar-fg => company-tooltip-scrollbar-track
   4233 
   4234 ,* Made 'org-column-title' inherit from 'fixed-pitch' when the user
   4235   option 'modus-themes-mixed-fonts' is non-nil.  This is needed to line
   4236   up columns correctly.  Thanks to Björn Lindström for the contribution
   4237   in merge request 52:
   4238   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/52>.
   4239 
   4240 ,* Forced the 'org-colview' faces to use the same height, even when
   4241   headings are scaled (see 'modus-themes-headings').  This ensures that
   4242   the columns are aligned properly and text fits on the same row.
   4243   Thanks to Björn Lindström for the contribution in merge request 53:
   4244   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/53>.
   4245 
   4246 ,* Refrained from applying a bold weight to the Org date selection
   4247   indicator in the calendar. The use of bold has the potential to create
   4248   problems with the alignment of dates for certain typefaces that do not
   4249   have a proper bold variant.  Also, there is no need for added emphasis
   4250   given that we already use a prominent background colour.
   4251 
   4252 ,* Made 'M-x org-table-header-line-mode' or the third-party package
   4253   'org-table-sticky-header' use colours that fit better with those of
   4254   tables.
   4255 
   4256 ,* Removed explicit styling of the 'magit-branch-current' face because
   4257   its definition checks if the ':box' attribute can be set and if not, it
   4258   uses ':inverse-video'.  Useful for terminal emulators.
   4259 
   4260 ,* Expanded support for the 'mode-line-active' face for Emacs29.  The
   4261   face upstream basically adds proportionately spaced fonts (the
   4262   'variable-pitch' face) to the mode line.  The themes can already use
   4263   that if the user option 'modus-themes-variable-pitch-ui' is non-nil.
   4264   Thanks to Manuel Uberti for the feedback in issue 257:
   4265   <https://gitlab.com/protesilaos/modus-themes/-/issues/257>.
   4266 
   4267 ,* Implemented some stylistic refinements for ERC and Rcirc to ensure
   4268   theme-wide consistency (e.g. timestamps are a shade of cyan).
   4269 
   4270 ,* Tweaked adoc-mode faces for stylistic theme-wide consistency.
   4271 
   4272 ,* Refashioned all the git faces of Treemacs so that they are more
   4273   consistent with other such contexts or uses.  The new styles also
   4274   conform with the 'modus-themes-deuteranopia' option.
   4275 
   4276 
   4277 Miscellaneous
   4278 =============
   4279 
   4280 ,* Ended the wanton use of internal functions in places that did not
   4281   require them.  Instead, the themes define faces that evaluate such
   4282   functions once and pass their results to the relevant entries.  Cases
   4283   include:
   4284 
   4285     - Symlink and/or broken link faces in contexts such as Dired,
   4286       Eshell, Helm, Trashed.
   4287 
   4288     - Tabbed interfaces (tab-bar, tab-line, centaur-tabs).
   4289 
   4290     - Verbatim markup or that of inline code in Org, Markdown, Asciidoc,
   4291       etc.
   4292 
   4293     - The optional use of 'variable-pitch' for User Interface elements
   4294       (see 'modus-themes-variable-pitch-ui').
   4295 
   4296 ,* Refined the dedicated diff background colours of modus-vivendi that
   4297   are used when the user option 'modus-themes-deuteranopia' is non-nil.
   4298   The changes improve the distinction between all red and yellow
   4299   constructs in contexts where they appear together (e.g. smerge-mode).
   4300   Basically, yellows will look more bright, while reds appear as
   4301   brown. The corresponding blues are toned down a bit to be consistent
   4302   with the other colours.  Consequently, the standard shades of green
   4303   for added lines (when 'modus-themes-deuteranopia' is nil) are
   4304   recalibrated to combine well with all other values.
   4305 
   4306 ,* Made several faces return an 'unspecified' value instead of nil for
   4307   their unused attributes under certain circumstances.  This is to guard
   4308   against third-party code that unconditionally expects a non-nil value.
   4309 
   4310 ,* Omitted {over,under}line attributes from the mode line when the
   4311   'padded' property is added to the 'modus-themes-mode-line' user
   4312   option.  Those are not necessary in that context.  Thanks to Illia
   4313   Ostapyshyn for the contribution in merge request 54:
   4314   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/54>
   4315 
   4316 ,* Rewrote several internal functions in the interest of consistency and
   4317   clarity.
   4318 
   4319 ,* Deleted two user options that were long obsolete: (i)
   4320   'modus-themes-org-habit' has been superseded by
   4321   'modus-themes-org-agenda' since version 1.5.0 of the themes and (ii)
   4322   'modus-themes-intense-hl-line' has been replaced by
   4323   'modus-themes-hl-line' since version 1.3.0.
   4324 
   4325 ,* Removed parentheses from headings in the manual as they are invalid
   4326   characters for some version of Texinfo.  See Emacs bug#52126:
   4327   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52126>.
   4328 
   4329 ,* Updated all doc strings so that quoted lists yield valid syntax in
   4330   Help buffers; syntax that can be directly evaluated (otherwise Emacs
   4331   prettifies straight quotes as curly ones, which break the code).
   4332   Thanks to Christian Tietze for bringing this issue to my attention:
   4333   <https://gitlab.com/protesilaos/modus-themes/-/issues/248#note_753169268>.
   4334 
   4335 ,* Rewrote all sections of the manual to document the current state of
   4336   the project as pertains to valid user options, explicitly supported
   4337   face groups, and so on.
   4338 #+end_src
   4339 
   4340 * 1.7.0
   4341 :PROPERTIES:
   4342 :CUSTOM_ID: h:22de7065-f54c-4944-b47f-3cc8a30551c8
   4343 :END:
   4344 
   4345 #+begin_src text
   4346 Modus themes version 1.7.0
   4347 
   4348 By Protesilaos Stavrou <info@protesilaos.com> on 2021-11-18
   4349 
   4350 The present entry records the changes made to the project since the
   4351 release of version 1.6.0 on 2021-09-29.  There have been more than 60
   4352 commits since then.
   4353 
   4354 Every modification pertaining to colour combinations referenced herein
   4355 is implemented in accordance with the primary accessibility objective of
   4356 the themes for a minimum contrast ratio of 7:1 between background and
   4357 foreground values in their given combination (the WCAG AAA standard).
   4358 Edits also account for colour-coding that is optimised for the needs of
   4359 users with red-green colour deficiency (deuteranopia).
   4360 
   4361 To access the URL of the manual visit this web page:
   4362 <https://protesilaos.com/emacs/modus-themes>.  Or read it from Emacs by
   4363 evaluating this form:
   4364 
   4365     (info "(modus-themes) Top")
   4366 
   4367 The themes are built into Emacs version 28 (next stable release), and
   4368 are available on GNU ELPA as well as other archives.  This release is
   4369 the first one that is included with Emacs 29, or else the 'master'
   4370 branch in emacs.git.
   4371 
   4372 
   4373 Customisation options
   4374 =====================
   4375 
   4376 + The 'modus-themes-no-mixed-fonts' has been deprecated and replaced by
   4377   the 'modus-themes-mixed-fonts'.  This is a breaking change for users
   4378   who want to use "mixed fonts": they must set the new variable to
   4379   non-nil.
   4380 
   4381   As the name implies, the new variable changes the meaning of the
   4382   feature to make it opt-in by default.  This is consistent with the
   4383   principle of least surprise, as users may not know why some fonts look
   4384   different than others in certain cases.
   4385 
   4386   Thanks to Christian Tietze for clarifying the doc string of this new
   4387   user option in merge request 51:
   4388   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51>.
   4389 
   4390   For context, "mixed fonts" refers to a design where spacing-sensitive
   4391   constructs, such as code blocks and Org tables, inherit from the
   4392   'fixed-pitch' face to remain monospaced (and properly aligned) at all
   4393   times.  Depending on the user's configurations, the 'fixed-pitch' face
   4394   may not use the typeface that the user expects.
   4395 
   4396   The manual provides information on how to set the desired fonts by
   4397   editing the 'default', 'fixed-pitch', and 'variable-pitch' faces.
   4398 
   4399 + The new 'modus-themes-mode-line-padding' can be used to control the
   4400   apparent padding of the mode line when the user option
   4401   'modus-themes-mode-line' includes the 'padded' property.  The padding
   4402   must be a positive integer (otherwise the code would be needlessly
   4403   complex to guard against values that make the mode line look awkward,
   4404   like anything lower than -3 or maybe even -2).
   4405 
   4406   Thanks to Guilherme Semente and Manuel Uberti for the feedback in
   4407   issue 245: <https://gitlab.com/protesilaos/modus-themes/-/issues/245>.
   4408 
   4409   Note that the out-of-the-box style of the themes has a padding of 1
   4410   (technically a ':line-width' of 1 for the ':box' attribute), whereas
   4411   the default style of Emacs has it at -1.  This is a design choice to
   4412   avoid an overlap between the outer boundaries of a font's glyphs and
   4413   the borders of the mode line, when using certain common typefaces at
   4414   various point sizes.  Such an overlap can hinder readability.
   4415 
   4416   The manual contains a new Do-It-Yourself (DIY) section with detailed
   4417   code samples on how to apply a negative value.
   4418 
   4419 + The new 'modus-themes-intense-markup' option can be set to non-nil to
   4420   make constructs such as inline code and verbatim text more colourful.
   4421   This has a general utility, though its consideration was prompted by a
   4422   phenomenon reported by Stefan Kangas in issue 238 where the overlay of
   4423   the 'hl-line-face' overrides the subtle background these constructs
   4424   use and can thus make them virtually indistinguishable from ordinary
   4425   text: <https://gitlab.com/protesilaos/modus-themes/-/issues/238>.
   4426 
   4427   Such is the standard behaviour of 'hl-line-mode' and there is nothing
   4428   a theme can (or rather "should") do about it.  Thanks to Stefan Kangas
   4429   for the feedback.
   4430 
   4431 + The 'modus-themes-headings' option can now accept and apply an exact
   4432   font weight such as 'semibold' or 'light'.  (The list of available
   4433   weights is the value of the 'modus-themes--heading-weights' internal
   4434   variable.)  This supersedes the now-deprecated 'no-bold' property:
   4435   'no-bold' is henceforth understood as the presence of a 'regular'
   4436   weight.
   4437 
   4438   Recall that this user option is an alist and can be used to target
   4439   heading levels individually, which further reinforces the utility of
   4440   this new property.
   4441 
   4442   Thanks to Christian Tietze for suggesting this idea in issue 248:
   4443   <https://gitlab.com/protesilaos/modus-themes/-/issues/248>.  And
   4444   thanks to Daniel Mendler for refining its implementation in commit
   4445   54bfd62, which was sent as a patch file (yes, we accept those and I
   4446   actually prefer them over a web app's UI).
   4447 
   4448 + The 'modus-themes-org-agenda' has seen improvements to its 'event' key
   4449   (this is an alist that has multiple keys).  It now accepts a 'varied'
   4450   property which differentiates between (i) plain timestamp entries and
   4451   (ii) entries that are generated from either the diary or a symbolic
   4452   expression.  The 'varied' property combines with the other available
   4453   properties to particularise their effects.  Consult the doc string or
   4454   the manual for the technicalities.
   4455 
   4456   Thanks to Gustavo Barros for the detailed commentary in issue 241:
   4457   <https://gitlab.com/protesilaos/modus-themes/-/issues/241>.
   4458 
   4459 + The 'modus-themes-lang-checkers' now accepts a 'faint' property.  This
   4460   has the effect of toning down the colours in use.  By default, the
   4461   only colour is that of the underline, though more can be added by
   4462   combining the properties accepted by this user option.  Consult its
   4463   doc string or the manual for further details.
   4464 
   4465   Thanks to Morgan Smith for suggesting the idea in issue 239:
   4466   <https://gitlab.com/protesilaos/modus-themes/-/issues/239>.
   4467 
   4468 
   4469 Add support for new packages or face groups
   4470 ===========================================
   4471 
   4472 + 'company-tooltip-deprecated' face.  Thanks to Roman Rudakov for the
   4473    feedback in issue 247: <https://gitlab.com/protesilaos/modus-themes/-/issues/247>.
   4474 
   4475 + 'corfu-default' face.  Thanks to Daniel Mendler (Corfu's developer)
   4476   for the feedback in issue 254:
   4477   <https://gitlab.com/protesilaos/modus-themes/-/issues/254>.
   4478 
   4479 + 'image-dired' package (Emacs 29).  Thanks to Stefan Kangas for making it
   4480   happen in emacs.git and for the feedback in issue 250:
   4481   <https://gitlab.com/protesilaos/modus-themes/-/issues/250>.
   4482 
   4483 + 'nano-modeline' package.
   4484 
   4485 + 'vertico-quick' package.  Thanks to Nicolas De Jaeghere for the
   4486   contribution in merge request 48:
   4487   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51>.
   4488 
   4489 
   4490 Changes to existing faces or face groups
   4491 ========================================
   4492 
   4493 + Added support for the new Org agenda faces that improve the
   4494   contextuality of various views.  We implemented those upstream for Org
   4495   version 9.5 in close cooperation with Gustavo Barros.  Thanks to
   4496   Gustavo for the detailed feedback in issue 241:
   4497   <https://gitlab.com/protesilaos/modus-themes/-/issues/241>.  The
   4498   thread about the patch upstream:
   4499   <https://list.orgmode.org/87lf7q7gpq.fsf@protesilaos.com/>
   4500 
   4501 + Refined Org agenda date faces in the interest of consistency and in
   4502   accordance with the aforementioned change.  Thanks again to Gustavo
   4503   Barros for the discussion in issue 241.
   4504 
   4505 + Applied the 'shadow' face more consistently across all contexts where
   4506   only a subtle foreground value is expected.  This design choice makes
   4507   it possible for users to manually edit the foreground colour of
   4508   'shadow' to something even more subtle than the 'fg-alt' palette
   4509   variable we use, which maps to a gray colour (e.g. they could use
   4510   "gray50").
   4511 
   4512 + Implemented a subtle background colour to the 'widget-inactive' face.
   4513   This makes it easier to discern inactive buttons, checkboxes, and the
   4514   like, in contexts such as the Customize User Interface.  Thanks to
   4515   Stefan Kangas for the feedback in issue 242:
   4516   <https://gitlab.com/protesilaos/modus-themes/-/issues/242>.
   4517 
   4518 + Tweaked 'file-name-shadow' to also use italics (inherit from the
   4519   'italic' face) in order to be more easy to distinguish it from
   4520   ordinary text in the minibuffer.
   4521 
   4522   Recall that the manual documents the meaning of inheriting from the
   4523   'bold' and 'italic' faces instead of hardcoding a bold weight and an
   4524   italic slant, respectively.  In short: users can change the weight to
   4525   what they want (e.g. semibold) and/or use distinct font families.
   4526 
   4527 + Amplified the style of Version Control (VC) warnings and errors to let
   4528   them draw more attention to themselves (because these indicators need
   4529   to be acted upon).
   4530 
   4531 + Recoloured the 'custom-group-tag' face to make it fit better in its
   4532   context and be consistent with the rest of the themes' established
   4533   patterns.
   4534 
   4535 + Made marks for selection in Dired, Ibuffer, and related, conform with
   4536   the 'modus-themes-success-deuteranopia' option.  This means that they
   4537   use blue colours when the option is non-nil, instead of their default
   4538   shades of green.
   4539 
   4540 + Adjusted the box width of key bindings for Emacs 28 or higher.  They
   4541   should no longer cause any alignment issues.  This style is now used
   4542   throughout the themes, including in transient views (e.g. Magit) which
   4543   were the exception before.  Thanks to Manuel Uberti and Kevin Fleming
   4544   for the feedback in issue 232:
   4545   <https://gitlab.com/protesilaos/modus-themes/-/issues/232>.
   4546 
   4547 
   4548 Miscellaneous
   4549 =============
   4550 
   4551 + Wrote a brief description of every user option in the manual.  Also
   4552   covered its type, as in boolean, alist, et cetera.
   4553 
   4554 + Corrected the mode line border width for one combination of properties
   4555   in the 'modus-themes-mode-line' option.  This should now have the same
   4556   height as all others:
   4557 
   4558       (setq modus-themes-mode-line '(accented borderless))
   4559 
   4560 + Ensured that mode line attributes would not be set to nil, but kept at
   4561   an 'unspecified' value instead, where relevant.  This avoids problems
   4562   with [faulty] code that unconditionally depends on something that does
   4563   not exist, as in the following while ':box' is nil:
   4564 
   4565       (face-attribute 'mode-line :box)
   4566 
   4567 + Expanded, reworded, or otherwise improved the manual, based on the
   4568   aforementioned.
   4569 
   4570 Thanks once again to everyone involved!
   4571 #+end_src
   4572 
   4573 * 1.6.0
   4574 :PROPERTIES:
   4575 :CUSTOM_ID: h:e4b9945c-1db8-4626-abc9-372469b19253
   4576 :END:
   4577 
   4578 #+begin_src text
   4579 Modus themes version 1.6.0
   4580 
   4581 By Protesilaos Stavrou <info@protesilaos.com> on 2021-09-29
   4582 
   4583 This entry records the changes made to the project since the release of
   4584 version 1.5.0 on 2021-07-15.  There have been around 70 commits since
   4585 then.
   4586 
   4587 Every colour-related modification referenced herein is always
   4588 implemented in accordance with the primary accessibility objective of
   4589 the themes for a minimum contrast ratio of 7:1 between background and
   4590 foreground values in their given combination (the WCAG AAA standard).
   4591 Such edits also account for colour-coding that is optimised for the
   4592 needs of users with red-green colour deficiency (deuteranopia or
   4593 variants).
   4594 
   4595 Here is the URL of the manual: <https://protesilaos.com/emacs/modus-themes>.
   4596 Or read it from Emacs by evaluating this form:
   4597 
   4598     (info "(modus-themes) Top")
   4599 
   4600 The themes are built into Emacs version 28 (current development target),
   4601 and are available on GNU ELPA as well as other archives.  This release
   4602 is the final one for the emacs-28 branch, as that gets cut as the next
   4603 stable release of GNU Emacs.  Future releases will target Emacs 29 once
   4604 that becomes the new 'master' branch.
   4605 
   4606 
   4607 Customisation options
   4608 =====================
   4609 
   4610 [ Themes need to be reloaded for changes to take effect. ]
   4611 
   4612 + Introduced the new 'modus-themes-tabs-accented' boolean option.  When
   4613   set to non-nil, it renders the background of all tab interfaces in a
   4614   shade of blue.  Those interfaces are tab-bar (built-in), tab-line
   4615   (built-in), and Centaur tabs.
   4616 
   4617   - The background "accented" colour is the same as the one used for
   4618     mode lines when 'modus-themes-mode-line' is configured accordingly.
   4619 
   4620 + Tweaked the 'modus-themes-mode-line' to accept a 'padded' symbol as
   4621   part of the list of properties it can read.  This will increase the
   4622   spacing around the mode lines' text, making the line taller overall
   4623   but also more spacious.
   4624 
   4625   Thanks to Manuel Uberti for making the proposal and providing feedback
   4626   in issue 228: <https://gitlab.com/protesilaos/modus-themes/-/issues/228>.
   4627 
   4628 + Added the 'modus-themes-scale-small' which complements the existing
   4629   scale values with one that is meant to be smaller than the base
   4630   height.  This option is reserved for special cases and is currently
   4631   only used as an opt-in feature in the Org agenda.
   4632 
   4633 + Expanded the 'modus-themes-org-agenda' with more parameters:
   4634 
   4635   - The current date can now also be underlined.
   4636   - Date headings can be scaled/enlarged in size.
   4637   - Events, like those of the Diary or sexp entries, can be customised.
   4638 
   4639   Consult the manual or the variable's doc string for the details.
   4640 
   4641 + Removed the obsoleted aliases 'modus-themes-slanted-constructs' and
   4642   'modus-themes-scale-5'.  Those are superseded by the more
   4643   appropriately named 'modus-themes-italic-constructs' and
   4644   'modus-themes-scale-title'.
   4645 
   4646   Thanks to Nicolas De Jaeghere for the patch in merge request 47:
   4647   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/47>.
   4648 
   4649 
   4650 Faces and face groups
   4651 =====================
   4652 
   4653 + Make the 'prodigy' faces for red/green/yellow inherit from the faces
   4654   'error'/'success'/'warning', respectively.  This is done to (i) avoid
   4655   duplication and (ii) ensure that the green/success colour coding is
   4656   consistent with the goal of the themes to empower users with red-green
   4657   colour deficiency.  The boolean option that changes all such greens to
   4658   shades of blue is 'modus-themes-success-deuteranopia'.
   4659 
   4660 + Assigned the ':extend' attribute to the 'org-code' face.  This is
   4661   necessary when the Org source contains lines that start with a colon
   4662   sign.  Those are interpreted as code blocks.  For example:
   4663 
   4664       :  #+BEGIN_SRC emacs-lisp
   4665       :    (defun in-interval (bounds el)
   4666       :      (and (>= el (car bounds)) (<= el (cadr bounds))))
   4667       :  #+END_SRC
   4668 
   4669   With the ':extend' in place, the background stretches to the edge of
   4670   the window, thus giving those lines a uniform rectangular shape.  For
   4671   inline uses of 'org-code', the background should remain limited to the
   4672   span of the text.
   4673 
   4674 + Broadened support for 'marginalia' faces in two phases.
   4675 
   4676   - The first pertained to the file permissions that are shown when
   4677     completing against file paths.  Their style is similar to what
   4678     'dired+' or the 'direfl' packages provide, however we have taken
   4679     care to optimise the interface for the purposes of completion
   4680     UIs---where things can look like Dired, we make them alike, but
   4681     where they must differ, we differentiate the designs accordingly.
   4682     There can be no compromises or arbitrary constraints.
   4683 
   4684     Also read: <https://github.com/minad/marginalia/pull/91>.
   4685 
   4686   - The second batch covered all sorts of extra classes that provide
   4687     granular control over the appearance of Marginalia instances.
   4688     Refinements also had to be made to already-supported faces for the
   4689     sake of achieving consistency across the various Marginalia
   4690     interfaces.
   4691 
   4692     Also read: <https://github.com/minad/marginalia/pull/92>.
   4693 
   4694 + Refined 'diredfl' and 'dired+' faces.  For the various "priv" faces,
   4695   the intent is to increase the difference in hueness between adjacent
   4696   file permissions (the changes are minor, but they do change the
   4697   overall result).  Numbers are toned down so that they do not clash
   4698   with dates.  The file suffix no longer uses cyan to stand out more in
   4699   detailed views.
   4700 
   4701 + Made 'icomplete-selected-match' (Emacs28) more legible by aligning its
   4702   presentation with metaphors that are estaslished across the
   4703   modus-themes.  Thanks to Kévin Le Gouguec (peniblec) for noting the
   4704   inconsistency with the new face upstream and for writing the patch for
   4705   it in merge request 50:
   4706   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/50>.
   4707   Also thanks to Manuel Uberti for confirming that things would look
   4708   consistent in the comments' section of that merge request.
   4709 
   4710 + Fixed faulty inheritance for the 'web-mode-keyword-face'.  It should
   4711   now properly copy the attributes of 'font-lock-keyword-face'.
   4712 
   4713 + Made inheritance of the new 'help-key-binding' (Emacs28 key) the
   4714   default for all faces that need to style key bindings.
   4715 
   4716   In Emacs 28 all key bindings are automatically displayed with the face
   4717   'help-key-binding' which uses some new face attributes to draw a
   4718   cleaner box around it.  Given that the themes must work with earlier
   4719   versions of Emacs, we cannot inherit it unconditionally so we added
   4720   the relevant conditionality.  It is nice to offer this feature to
   4721   those who use the themes on Emacs 28.  Older versions retain the
   4722   previous style of a blue colour coupled with a bold weight.
   4723 
   4724   The exception to this rule is the transient.el faces (this is the
   4725   pop-up window used by Magit, among others---transient.el is now built
   4726   into Emacs).  The box effect creates unpredictable misalignments, so
   4727   we default to the old key binding style for those.
   4728 
   4729   Thanks to Manuel Uberti and Kevin Fleming for their feedback in issue
   4730   232: <https://gitlab.com/protesilaos/modus-themes/-/issues/232>.
   4731 
   4732 + Added support for the new 'notmuch-jump-key' face.  I contributed this
   4733   face in commits c37c9912, 5cc106b0 to the Notmuch git repo:
   4734   <https://git.notmuchmail.org/git/notmuch>.
   4735 
   4736 + Updated the 'bookmark-face' (Emacs28) as it has been changed upstream
   4737   to be a fringe indicator instead of an in-buffer, line-wide background
   4738   highlight.
   4739 
   4740 + Aligned Ediff faces with other 'modus-themes-diffs' styles.  Before we
   4741   would differentiate a "focus state", though that is now considered
   4742   surplus to requirements.  The notion of a "focus state" only make
   4743   sense in Magit which applies variegated colour-coding to diff hunks
   4744   based on their state.  Whereas non-active Ediff changes are grayed
   4745   out, so there is no need for further colour-coding nuances.  The most
   4746   noticeable change is with:
   4747 
   4748       (setq modus-themes-diffs 'bg-only)
   4749 
   4750   As noted in the commit message of 64c74ae (from 2021-09-04):
   4751 
   4752       If users think this change is for the worse, we can always define a
   4753       helper function like this:
   4754 
   4755           (defun modus-themes--ediff-style (bgonly default)
   4756             "Diff style for Ediff.
   4757           BGONLY and DEFAULT depend on the value of `modus-themes-diffs'.
   4758           The former is more subtle."
   4759             (if (eq modus-themes-diffs 'bg-only)
   4760                 (list bgonly)
   4761               (list default)))
   4762 
   4763       And apply it thus:
   4764 
   4765           `(ediff-current-diff-A ((,class :inherit ,@(modus-themes--ediff-style
   4766                                                       'modus-themes-diff-removed
   4767                                                       'modus-themes-diff-focus-removed))))
   4768 
   4769   No feedback was received towards that end in about a month, so we
   4770   consider the change to be acceptable, without prejudice to the
   4771   possibility of future updates.
   4772 
   4773 + Unified the styles of 'org-agenda-calendar-sexp', 'org-agenda-diary',
   4774   and 'org-agenda-calendar-event'.  This is not a user-facing change but
   4775   an internal refactoring to avoid repetition.  It also makes things
   4776   easier for the implementation of the 'modus-themes-org-agenda' (as
   4777   mentioned above).
   4778 
   4779 + Ensured that the 'bookmark-menu-bookmark' face inherits from the
   4780   'bold' face.  By default it hardcodes the bold weight, whereas we
   4781   instruct it to inherit the 'bold' face.  A user can thus change the
   4782   ':weight' of that face to whatever they want, like semibold,
   4783   extrabold, etc.  We do this throughout the themes for bold and
   4784   italics---consider it a "hidden feature" of sorts.  Check the manual
   4785   for more on the matter:
   4786 
   4787       (info "(modus-themes) Configure bold and italic faces (DIY)")
   4788 
   4789 + Provided support for tab-bar groups (Emacs28).  Specifically the faces
   4790   'tab-bar-tab-group-current' and 'tab-bar-tab-group-inactive'.
   4791 
   4792   Thanks to Adam Porter (alphapapa) for the feedback in issue 8 over at
   4793   the Github mirror: <https://github.com/protesilaos/modus-themes/issues/8>.
   4794 
   4795 + Decoupled the 'stripes' face from that of 'hl-line-face'.  This is
   4796   because the stripes are not meant to change depending on the value of
   4797   the user option 'modus-themes-hl-line'.
   4798 
   4799 + Revised the red shade of "flagged" entries in mu4e and notmuch.  Those
   4800   are now consistent with Gnus.  The shade of red that was used before
   4801   was closer to the orange side of the spectrum whereas the current has
   4802   hints of blue (a cherry colour) and thus combines better with the cyan
   4803   and blue that prevail in those interfaces.  These are fine margins,
   4804   though the effect is noticeable regardless.
   4805 
   4806 + Configured the new 'ansi-color' faces (Emacs28) which are used by
   4807   shells and terminals (among others).  Thanks to Manuel Uberti for
   4808   reporting the changes to upstream Emacs in issue 236:
   4809   <https://gitlab.com/protesilaos/modus-themes/-/issues/236>.
   4810 
   4811 + Expanded support for EMMS faces, pertaining to its browser views.
   4812   Thanks to Feng Shu (tumashu) for bringing those to my attention in
   4813   issue 11 over at the Github mirror:
   4814   <https://github.com/protesilaos/modus-themes/issues/11>.
   4815 
   4816 + Styled the new 'tab-line-tab-modified' face (Emacs28).  It should now
   4817   use a faint red colour to denote changes to the underlying file.
   4818   Thanks to Adam Porter (alphapapa) for bringing it to my attention in
   4819   issue 12 over at the Github mirror:
   4820   <https://github.com/protesilaos/modus-themes/issues/12>.
   4821 
   4822 + Configured the single face that the 'cursor-flash' package has to
   4823   offer.  Thanks to Manuel Uberti for the feedback in issue 231:
   4824   <https://gitlab.com/protesilaos/modus-themes/-/issues/231>.
   4825 
   4826 + Included 'elpher' in the list of supported packages by means of
   4827   covering the heading faces it implements.
   4828 
   4829 + Recalibrated certain dedicated colours for inactive tabs and tweaked
   4830   tab faces to (i) marginally improve the default aesthetic and (ii)
   4831   harmonise it with the style of 'modus-themes-tabs-accented'.
   4832 
   4833 + Removed the foreground attribute from all markup faces that are meant
   4834   to denote emphasis in italics.  That is because such faces are
   4835   typically composed with others, so we do not wish to inadvertently
   4836   override any other colour that would otherwise have taken effect.
   4837 
   4838 + Wrote the faces for upstream Org that improve the contextuality of
   4839   various agenda views (included in version 9.5).  This was done in
   4840   close collaboration with Gustavo Barros who offered detailed feedback
   4841   in issue 208 (which also led to the creation and eventual expansion of
   4842   the 'modus-themes-org-agenda' user option):
   4843   <https://gitlab.com/protesilaos/modus-themes/-/issues/208>.
   4844 
   4845   Four new faces improve certain styles and offer more flexibility for
   4846   some Org agenda views: 'org-agenda-date-weekend-today',
   4847   'org-imminent-deadline', 'org-agenda-structure-secondary',
   4848   'org-agenda-structure-filter'.  They inherit from existing faces in
   4849   order to remain backward-compatible.
   4850 
   4851   Quoting from <https://list.orgmode.org/87lf7q7gpq.fsf@protesilaos.com/>:
   4852 
   4853       + The 'org-imminent-deadline' is useful to disambiguate generic
   4854         warnings from deadlines.  For example, a warning could be
   4855         rendered in a yellow colored text and have a bold weight,
   4856         whereas a deadline might be red and styled with italics.
   4857 
   4858       + The 'org-agenda-structure-filter' applies to all tag/term
   4859         filters in agenda views that search for keywords or patterns.
   4860         It is designed to inherit from 'org-agenda-structure' in
   4861         addition to the 'org-warning' face that was present before (and
   4862         removes the generic 'warning' face from one place).  This offers
   4863         the benefit of consistency, as, say, an increase in font height
   4864         or a change in font family in 'org-agenda-structure' will
   4865         propagate to the filter as well.  The whole header line thus
   4866         looks part of a singular design.
   4867 
   4868       + The 'org-agenda-structure-secondary' complements the above for
   4869         those same views where a description follows the header.  For
   4870         instance, the tags view provides information to "Press N r" to
   4871         filter by a numbered tag.  Themes/users may prefer to
   4872         disambiguate this line from the header above it, such as by
   4873         using a less intense color or by reducing its height relative to
   4874         the 'org-agenda-structure'.
   4875 
   4876       + The 'org-agenda-date-weekend-today' provides the option to
   4877         differentiate the current date on a weekend from the current
   4878         date on weekdays.
   4879 
   4880 Other patches I have made to, inter alia, emacs.git and org.git with
   4881 regard to faces are documented in previous change log entries.
   4882 
   4883 
   4884 Documentation
   4885 =============
   4886 
   4887 + Removed references to old versions of the themes from before their
   4888   refactoring in version 1.0.0.  Those old packages no longer exist.
   4889   Users must install the 'modus-themes' and then load either of
   4890   'modus-operandi' or 'modus-vivendi'.
   4891 
   4892 + Included various extensions of the Vertico package in the list of
   4893   indirectly supported packages.  Those define faces which either
   4894   inherit from basic ones that we already support or use colours that
   4895   are consistent with our accessibility target.
   4896 
   4897 + Referenced 'side-hustle', 'tide', 'bufler' as an indirectly supported
   4898   packages for the same reasons.
   4899 
   4900 + Simplified time-stamp local variables that are used in modus-themes.el
   4901   to show the time the file was edited.  We apply 'time-stamp-pattern'
   4902   instead of setting multiple time-stamp variables.  Thanks to Stephen
   4903   Gildea for the patch, which was sent to me via email (yes, you can
   4904   always do that).
   4905 
   4906 + Updated the manual's "acknowledgements" section to name all new
   4907   contributors to code/ideas/feedback.
   4908 
   4909 + Furnished information on how to configure the 'highlight-parentheses'
   4910   package and extend its faces for use with the themes.  The entry
   4911   provides a complete Elisp implementation.
   4912 
   4913 + Improved the code samples for the prism.el setup that users may wish
   4914   to set up by themselves.  The new lists of colours work better when
   4915   Prism's colouration is limited to a small set of hues.
   4916 
   4917 + Deleted trailing whitespace in the manual which had adverse effects
   4918   when trying to compile the modus-themes.org over at emacs.git.  Thanks
   4919   to Philip Kaludercic for the patch in merge request 49:
   4920   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/49>.
   4921 
   4922 Thanks again to everyone involved.  Looking forward to see the Modus
   4923 themes, version 1.6.0, as part of the next stable release of Emacs.
   4924 #+end_src
   4925 
   4926 * 1.5.0
   4927 :PROPERTIES:
   4928 :CUSTOM_ID: h:05fc633d-69d6-4b5e-aade-1f9e4ba30ed3
   4929 :END:
   4930 
   4931 #+begin_src text
   4932 Modus themes version 1.5.0
   4933 
   4934 By Protesilaos Stavrou <info@protesilaos.com> on 2021-07-15
   4935 
   4936 This entry outlines the set of changes made to the project since the
   4937 release of version 1.4.0 on 2021-05-25.  There have been over 130
   4938 commits since then.
   4939 
   4940 Every colour-related modification referenced herein is always
   4941 implemented in accordance with the primary accessibility objective of
   4942 the themes for a minimum contrast ratio of 7:1 between background and
   4943 foreground values in their given combination (the WCAG AAA standard).
   4944 Such edits also account for colour-coding that is optimised for the
   4945 needs of users with red-green colour deficiency (deuteranopia or
   4946 variants).
   4947 
   4948 Here is the URL of the manual: <https://protesilaos.com/emacs/modus-themes>.
   4949 Or read it from Emacs by evaluating this form:
   4950 
   4951     (info "(modus-themes) Top")
   4952 
   4953 The themes are built into Emacs version 28 (current development target),
   4954 and are available on GNU ELPA as well as other archives.
   4955 
   4956 
   4957 Customisation options
   4958 =====================
   4959 
   4960 Overview of new style of sets of properties
   4961 -------------------------------------------
   4962 
   4963 Several variables now accept a list of symbols as a value.  Those
   4964 represent properties, which can be combined with each other to realise
   4965 the possible styles.  The idea was to simplify their specification in
   4966 order to make them easier to both maintain and extend.  Thanks to Philip
   4967 Kaludercic for introducing this concept in issue 210:
   4968 <https://gitlab.com/protesilaos/modus-themes/-/issues/210>.
   4969 
   4970 The variables are:
   4971 
   4972 + 'modus-themes-prompts' by Philip Kaludercic in merge request 43:
   4973   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/43>
   4974 
   4975 + 'modus-themes-mode-line' by Philip Kaludercic in merge request 40:
   4976   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/40>.
   4977 
   4978 + 'modus-themes-lang-checkers' by Philip Kaludercic in merge request 46:
   4979   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/46>
   4980 
   4981 + 'modus-themes-org-agenda'
   4982 + 'modus-themes-links'
   4983 + 'modus-themes-headings'
   4984 + 'modus-themes-hl-line'
   4985 + 'modus-themes-paren-match'
   4986 + 'modus-themes-region'
   4987 + 'modus-themes-syntax'
   4988 
   4989 Take 'modus-themes-syntax' as an example.  Up until version 1.4.0, it
   4990 would only accept a symbol, signifying a predefined style.  So we had
   4991 the possible value 'faint' and another 'faint-yellow-comments'.  To make
   4992 a third variant of the "faint" aesthetic, such as by combining it with
   4993 the "alt syntax" and/or "green strings", we would need to write new
   4994 presets in the form of 'faint-green-strings', 'faint-alt-syntax',
   4995 'faint-alt-syntax-green-strings', 'faint-green-strings-yellow-comments',
   4996 'faint-alt-syntax-green-strings-yellow-comments'.  That would have been
   4997 inefficient, hence why it was not done.
   4998 
   4999 With the new approach of defining a list of properties, those
   5000 combinations are all possible.  Such as:
   5001 
   5002     (setq modus-themes-syntax '(faint alt-syntax))
   5003 
   5004     (setq modus-themes-syntax '(yellow-comments alt-syntax green-strings))
   5005 
   5006 The order in which the properties are set is not significant.
   5007 
   5008 The doc string of each of the aforementioned variables, or the
   5009 corresponding entry in the manual, provides guidance on how to configure
   5010 things.  The old forms will continue to work for the time being, though
   5011 they are considered deprecated and will stop being supported at a future
   5012 date.
   5013 
   5014 
   5015 Changes in stylistic variants for variables with sets of properties
   5016 -------------------------------------------------------------------
   5017 
   5018 + The meaning of the "alt syntax" style in 'modus-themes-syntax' has
   5019   been redefined.  In the past, it used to have green-coloured strings
   5020   and doc strings.  Those are now red.  Some other changes have been
   5021   implemented to make the overall looks more consistent.  Users who
   5022   liked the old style can retain it by passing this list of properties:
   5023 
   5024       (alt-syntax green-strings)
   5025 
   5026   New styles for the "faint" aesthetic are possible, here shown as lists
   5027   of properties:
   5028 
   5029       (faint green-strings)
   5030       (faint alt-syntax)
   5031       (faint alt-syntax green-strings)
   5032 
   5033   To each of those the 'yellow-comments' property can be added as well.
   5034 
   5035   Consult the doc string or the manual for the technicalities and code
   5036   samples.
   5037 
   5038 + The 'modus-themes-hl-line' no longer has styles that include only an
   5039   underline.  Those proved to be problematic under certain circumstances
   5040   and were thus removed.
   5041 
   5042   Minor changes have been implemented to make the following combination
   5043   of properties more consistent, by colourising the underline:
   5044 
   5045       (accented intense underline)
   5046 
   5047 + The 'modus-themes-paren-match' now has styles that include an
   5048   'underline' property.  Those extend the old options, such as:
   5049 
   5050       (bold intense underline)
   5051 
   5052 + The 'modus-themes-headings' have an improved set of styles for the "no
   5053   text color" aesthetic.  Those involve the 'monochrome' property, which
   5054   can now yield results that include a background (whereas before it was
   5055   just colourless text for the headings, optionally without a bold
   5056   weight).  As this is an alist, here is an example (always check the
   5057   docs for fully fledged code samples):
   5058 
   5059       (setq modus-themes-headings
   5060             '((1 . (background overline))
   5061               (2 . (overline background rainbow))
   5062               (t . (monochrome no-bold background))))
   5063 
   5064   To allow a heading level N to retain its original style, a 't' value
   5065   can be passed.  In the previous version of the themes, it was possible
   5066   to use 'nil' for the same purpose, though that is no longer valid.  In
   5067   those cases, the fallback value of the alist will be used instead,
   5068   such as what is noted above:
   5069 
   5070       (t . (monochrome no-bold background))
   5071 
   5072 + The 'modus-themes-links' provide several new possible styles, due to
   5073   an expanded set of properties that includes, among others, 'bold',
   5074   'italic', and 'background'.  The documentation covers the details.
   5075 
   5076 + The 'modus-themes-lang-checkers' can now attain a style that uses a
   5077   prominently coloured background in addition to what was available
   5078   before as a subtle background and the other variants.
   5079 
   5080 
   5081 New variables
   5082 -------------
   5083 
   5084 + The 'modus-themes-org-agenda' provides the means to refashion the
   5085   entirety of the Org agenda buffer.  The value it accepts is an alist,
   5086   with some keys expecting a symbol and others a list of properties.
   5087   The minutia are covered in its doc string.  A possible configuration
   5088   can look like this:
   5089 
   5090       (setq modus-themes-org-agenda
   5091             '((header-block . (variable-pitch scale-title))
   5092               (header-date . (grayscale workaholic bold-today))
   5093               (scheduled . uniform)
   5094               (habit . traffic-light)))
   5095 
   5096   'modus-themes-org-agenda' supersedes the old variable that was specific
   5097   to the Org habit graph: 'modus-themes-org-habit'.  There now is a
   5098   'habit' key which accepts the same values as before, plus a new style
   5099   that is optimised for users with red-green colour deficiency:
   5100   'traffic-light-deuteranopia'.  Please consult the doc string of
   5101   'modus-themes-org-agenda' or the relevant entry to the manual.
   5102 
   5103   Thanks to Gustavo Barros for contributing to the creation of this
   5104   variable as well as to all other changes in the relevant faces that
   5105   were done in the interest of usability.  A full report about
   5106   'modus-themes-org-agenda' with screen shots is available here:
   5107   <https://protesilaos.com/codelog/2021-06-02-modus-themes-org-agenda/>.
   5108 
   5109   A patch has been sent to upstream Org, with its review pending, which
   5110   improves upon some of the areas we had identified:
   5111   <https://lists.gnu.org/archive/html/emacs-orgmode/2021-06/msg00092.html>.
   5112 
   5113 + The 'modus-themes-inhibit-reload' controls a new behaviour of
   5114   automatically reloading the active theme when an option is set via the
   5115   Custom interfaces or with 'customize-set-variable'.  To opt-in to this
   5116   feature, set the variable to a 'nil' value.
   5117 
   5118   Thanks to Philip Kaludercic for implementing this in merge request 40:
   5119   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/40>.
   5120 
   5121   In the development phase of this option, a bug was identified
   5122   pertaining to recursion, as reported by Gustavo Barros in issue 213:
   5123   <https://gitlab.com/protesilaos/modus-themes/-/issues/213>.  Changes
   5124   have been made to remove that possibility, as found in merge request
   5125   45: <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/45>.
   5126 
   5127   A thread was started on the emacs-devel mailing list to inquire upon
   5128   the technicalities of this option, but it did not gain any traction:
   5129   <https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00828.html>.
   5130 
   5131   As such, we have decided to take our chances by pressing on with this
   5132   feature.  Users who are interested in it are encouraged to give it a
   5133   try and report any possible complications.  Issue 213 remains open.
   5134 
   5135 + The 'modus-themes-italic-constructs' is the new name of the variable
   5136   'modus-themes-slanted-constructs'.  The term "slant" was considered
   5137   too vague or technical and some users could have missed the meaning of
   5138   this option.
   5139 
   5140 + The 'modus-themes-scale-5' is renamed to 'modus-themes-scale-title' to
   5141   better convey its utility.
   5142 
   5143 
   5144 Changes to the manual
   5145 =====================
   5146 
   5147 + Rewrote or introduced the documentation for all the customisation
   5148   options mentioned above.  Also updated relevant code samples, such as
   5149   in the manual's introduction to the customisation options.  Evaluate
   5150   this form for an annotated code overview:
   5151 
   5152       (info "(modus-themes) Customization Options")
   5153 
   5154 + Rephrased a reference to "gamma ray values" as "gamma values".  Thanks
   5155   to Anders Johansson for the contribution in merge request 42:
   5156   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/42>.
   5157 
   5158 + Removed the Org macro that would insert the build date in the manual's
   5159   introduction.  This was required to make the file reproducible,
   5160   otherwise it would keep changing each time a new version of Emacs was
   5161   built.  Refer to Emacs bug#48661 by Glenn Morris:
   5162   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=48661>.
   5163 
   5164 + Included note on tweaking the key hints that the Avy package produces.
   5165   This is in response to issue 215 by Rudolf Adamkovič:
   5166   <https://gitlab.com/protesilaos/modus-themes/-/issues/215>.  Thanks to
   5167   Nicolas De Jaeghere for providing the text.
   5168 
   5169 + Wrote a note on how to control the underlines that are generated in
   5170   compilation-mode buffers and related.  It is about configuring the
   5171   variable 'compilation-message-face'.
   5172 
   5173 + Documented how to configure the colours that are applied to the names
   5174   of the days in the 'M-x calendar' interface.  The relevant variable is
   5175   'calendar-weekend-days'.
   5176 
   5177 + Elaborated on a "do it yourself" (DIY) guide on how to benefit from
   5178   the hidden feature of the themes about how they handle the bold weight
   5179   and the italic slant.  In short, we do not hardcode values and thus
   5180   make it easy for users to specify the particularities of what it means
   5181   for a face to have a 'bold' or 'italic' attribute.
   5182 
   5183 
   5184 Faces and face groups
   5185 =====================
   5186 
   5187 New entries
   5188 -----------
   5189 
   5190 Newly supported packages:
   5191 
   5192 + 'ledger-mode'.  Thanks to Pengji Zhang for the feedback in issue 202:
   5193   <https://gitlab.com/protesilaos/modus-themes/-/issues/202>.
   5194 
   5195 + 'gotest'.  Thanks to Jerry Zhang for the feedback in issue 226:
   5196   <https://gitlab.com/protesilaos/modus-themes/-/issues/226>.
   5197 
   5198 + 'css-mode'
   5199 
   5200 New faces for already supported groups:
   5201 
   5202 + 'shr-h1', 'shr-h2', 'shr-h3', 'shr-h4', 'shr-h5', 'shr-h6' of the
   5203   shr.el library (simple HTML renderer, as experienced in, for example,
   5204   EWW).  Those are available for Emacs28, with a patch by me:
   5205   <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49433>
   5206 
   5207 + 'apropos-button' as a generic face that fontifies faces in apropos
   5208   buffers.  Available for Emacs28, with a patch by me:
   5209   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49162>.
   5210 
   5211 + 'selectrum-mouse-highlight'.  This makes the mouse hover effect for
   5212   selectrum look the same as in most other contexts.  Thanks to okamsn
   5213   for the feedback in issue 203:
   5214   <https://gitlab.com/protesilaos/modus-themes/-/issues/203>.
   5215 
   5216 
   5217 Review of existing entries
   5218 --------------------------
   5219 
   5220 + Added an ':extend' property to 'next-error' face.  This face is used
   5221   for pulse effects.  It is good to have them extend to the edge of the
   5222   window, so that they are easier to spot.  Thanks to Gustavo Barros for
   5223   the feedback in issue 200, which is about pulse.el:
   5224   <https://gitlab.com/protesilaos/modus-themes/-/issues/200>.
   5225 
   5226 + Tweaked the various Apropos faces.  The idea was to remove the colour
   5227   from the pseudo headings so that we would not get an exaggerated
   5228   result of too much variety in the buffer (e.g. that of 'M-x apropos').
   5229   The individual buttons retain their style as links, meaning that they
   5230   are governed by the variable 'modus-themes-links'.
   5231 
   5232 + Revised 'whitespace-line' face to make it look like a warning, as it
   5233   ought to be.  Thanks to Pengji Zhang for the feedback in issue 204:
   5234   <https://gitlab.com/protesilaos/modus-themes/-/issues/204>.
   5235 
   5236 + Reworked the colour-coding of the Hydra and Transient packages.  These
   5237   are meant to tone down some excesses with the standard red and to
   5238   adapt other colours to it.  Thanks to Gustavo Barros for providing
   5239   suggestions and helping me tweak those in issue 206:
   5240   <https://gitlab.com/protesilaos/modus-themes/-/issues/206>.
   5241 
   5242 + Recoloured 'transient-argument' to improve its uniqueness in its
   5243   context and to better comply with the expectation of hydra-style
   5244   colour coding, as noted right above.
   5245 
   5246 + Made the 'org-agenda-done' face conform with the customisation option
   5247   'modus-themes-success-deuteranopia'.  This means that it will be
   5248   coloured in blue instead of green when the option is set to a non-nil
   5249   value.
   5250 
   5251 + Grayed out the foreground of the Org block delimiter lines on the
   5252   premise that any extra colouration was not needed, given the presence
   5253   of a gray background and the overall markup of the block.
   5254 
   5255 + Toned down the colouration of the 'org-code' face, so that it is
   5256   consistent with 'org-verbatim' as well as the colours used in opening
   5257   and closing lines of blocks.  Thanks to Gustavo Barros for suggesting
   5258   this change in issue 206, though it went through a couple of reviews:
   5259   <https://gitlab.com/protesilaos/modus-themes/-/issues/206>.
   5260 
   5261 + Simplified the inheritance of the 'fixed-pitch' face, which is used
   5262   for internal purposes to ensure alignment of elements in buffers that
   5263   must cope with mixed font configurations, such as an org-mode file
   5264   with 'M-x variable-pitch-font' enabled.
   5265 
   5266   [ Recall that the option 'modus-themes-no-mixed-fonts' can disable
   5267     this feature.  Also note that the 'mixed-fonts' package, or
   5268     equivalent, is not needed while using the Modus themes (though there
   5269     is nothing wrong with having them together). ]
   5270 
   5271 + Reduced the overall intensity of 'org-mode-line-clock-overrun'.
   5272   Thanks to Gustavo Barros for the feedback in issue 208:
   5273   <https://gitlab.com/protesilaos/modus-themes/-/issues/208>.
   5274 
   5275 + Simplified or otherwise tweaked several Org agenda faces to render
   5276   possible the new 'modus-themes-org-agenda' variable, as documented
   5277   above.  Thanks to Gustavo Barros for the feedback in issue 208:
   5278   <https://gitlab.com/protesilaos/modus-themes/-/issues/208>.
   5279 
   5280 + Increased ever so slightly the foreground colour of the 'highlight'
   5281   face.  This can help improve the perception of highlights, such as
   5282   upon hovering over a link with the mouse.  Thanks to Rudolf Adamkovič
   5283   for reporting the potential problem in issue 216:
   5284   <https://gitlab.com/protesilaos/modus-themes/-/issues/216>.
   5285 
   5286 + Prevented the override of the 'diff-context' face when users assign a
   5287   'bg-only' value to the 'modus-themes-diffs' variable.  This makes it
   5288   consistent with the intent of this style, which is to work with a
   5289   non-nil value for 'diff-font-lock-syntax' (basically to allow the
   5290   usual colour highlights of the underlying code syntax in diff
   5291   buffers).
   5292 
   5293 + Ensured consistency of all prompt-related faces by introducing a new
   5294   face, 'modus-themes-prompt', that is inherited by all others (all
   5295   prompt styles are controlled by the variable 'modus-themes-prompts').
   5296   This was originally implemented with the 'comint-highlight-prompt'
   5297   face, though that could potentially lead to undefined faces if the
   5298   comint library was not loaded.  Whereas the 'modus-themes-prompt'
   5299   guarantees that we pass a known face at all times.  Thanks to Philip
   5300   Kaludercic for bringing this potential bug to my attention in a
   5301   comment to merge request 43:
   5302   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/43#note_615224855>.
   5303 
   5304 + Removed the background colour from the 'widget-inactive' face.  It
   5305   would create problems in some cases, such as in Custom buffers for
   5306   multiple choice options.
   5307 
   5308 + Refined 'calendar-weekend-header' and 'calendar-weekday-header' to
   5309   emulate the design of physical calendars and remain truthful to the
   5310   expectations set by the default configuration of the calendar.el
   5311   library.  Weekends now use a faint red, while weekdays are rendered in
   5312   the same subtle gray they had before.  The underlying principle is to
   5313   make weekends convey a subtle warning to the effect that "this is not
   5314   a day for work" (notwithstanding precarious economic realities).  As
   5315   noted above, there is an entry in the manual on how to make all days
   5316   look the same, be it gray or faint red.  Evaluate this form:
   5317 
   5318       (info "(modus-themes) Note on calendarel weekday and weekend colors")
   5319 
   5320 
   5321 Request for feedback on a potential version 2.0.0 of the Modus themes
   5322 =====================================================================
   5323 
   5324 While we maintain a cautious stance towards preserving the default
   5325 styles, there are some cases where we might be forced to introduce
   5326 backward-incompatible changes.
   5327 
   5328 Three such cases that can benefit from user feedback are:
   5329 
   5330 + Issue 196 on 'modus-themes-no-mixed-fonts'
   5331   <https://gitlab.com/protesilaos/modus-themes/-/issues/196>.
   5332 
   5333 + Issue 198 on 'modus-themes-hl-line'
   5334   <https://gitlab.com/protesilaos/modus-themes/-/issues/198>
   5335 
   5336   [ Note that 'modus-themes-hl-line now accepts a list of properties as
   5337     described in the opening sections of this entry. ]
   5338 
   5339 + Issue 218 on 'modus-themes-diffs'
   5340   <https://gitlab.com/protesilaos/modus-themes/-/issues/218>.
   5341 
   5342 
   5343 Miscellaneous
   5344 =============
   5345 
   5346 + Recalibrated the value of the colour 'bg-hl-line-intense' in the
   5347   palette 'modus-themes-vivendi-colors'.  The change should be
   5348   practically indecipherable, though it slightly improves things in
   5349   certain contexts.
   5350 
   5351 + Refined the intensity of the three main yellow colours in
   5352   'modus-themes-vivendi-colors'.
   5353 
   5354 + Introduced a new 'modus-themes-faces' group so that those are
   5355   decoupled from the customisation options in the various Custom
   5356   buffers.  Thanks to Philip Kaludercic for the patch in merge request
   5357   39: <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/39>.
   5358 
   5359 + Updated the manual's "Acknowledgements" section to include all new
   5360   users who contributed to the project.
   5361 
   5362 Thanks again to everyone involved!
   5363 
   5364 
   5365 #+end_src
   5366 
   5367 * 1.4.0
   5368 :PROPERTIES:
   5369 :CUSTOM_ID: h:4c643e3c-5284-4fab-97e8-217bc1c02f5d
   5370 :END:
   5371 
   5372 #+begin_src text
   5373 Modus themes version 1.4.0
   5374 
   5375 By Protesilaos Stavrou <info@protesilaos.com> on 2021-05-25
   5376 
   5377 This entry records the changes made to the project since the release of
   5378 version 1.3.0 on 2021-04-17.  There have been around 100 commits in the
   5379 meantime, as is the norm.
   5380 
   5381 If you are coming from older versions, please consult the change log
   5382 entry for version 1.0.0 with regard to the breaking changes that were
   5383 introduced.
   5384 
   5385 Every colour-related modification is always done in accordance with the
   5386 overarching accessibility objective of the themes for a minimum contrast
   5387 ratio of 7:1 between background and foreground values in their given
   5388 combination (the WCAG AAA standard).
   5389 
   5390 URL of the official manual: <https://protesilaos.com/emacs/modus-themes>.  Or
   5391 read it with Emacs' Info reader by evaluating this form:
   5392 
   5393     (info "(modus-themes) Top")
   5394 
   5395 Remember that the themes are built into Emacs version 28 (current
   5396 development target), and are available on GNU ELPA, as well as other
   5397 archives.
   5398 
   5399 
   5400 Customisations variables
   5401 ------------------------
   5402 
   5403 + Redefined the style of 'fg-only' that 'modus-themes-diffs' accepts, so
   5404   that it no longer uses a red-green colour coding, but applies a
   5405   red-blue distinction instead.  The symbol 'fg-only' is a deprecated
   5406   alias for the more descriptive 'fg-only-deuteranopia'.
   5407 
   5408   This is done because green text on a light background is one of the
   5409   worst combinations for the purposes of legibility, as it does not
   5410   stand out in its context and thus forces undesirable compromises.
   5411   Whereas red and blue work well in this case, while making the style
   5412   accessible to users with red-green colour deficiency (deuteranopia).
   5413   To avoid inconsistencies between Modus Operandi and Modus Vivendi, we
   5414   replace green with blue in both themes.  A full report is available in
   5415   issue 183 which was created on April 21, 2021:
   5416   <https://gitlab.com/protesilaos/modus-themes/-/issues/183>.
   5417 
   5418 + Introduced the boolean 'modus-themes-success-deuteranopia' which
   5419   replaces all instances of green with blue in contexts where a
   5420   red-green colour coding is in effect (e.g. Org TODO vs DONE keywords,
   5421   isearch current match...).
   5422 
   5423 + Implemented 'modus-themes-mail-citations' to control the colouration
   5424   of cited text in email-related buffers, such as Gnus or message.el.
   5425   It accepts values nil, 'faint', and 'monochrome'.  By default (the nil
   5426   value) the text of citations cycles through blue, green, red, yellow
   5427   depending on the level of depth.
   5428 
   5429 + Expanded the set of options for 'modus-themes-mode-line' to encompass
   5430   the values 'borderless-accented', 'borderless-accented-3d', and
   5431   'borderless-accented-moody'.  Those are variations of existing styles.
   5432   The complete list:
   5433 
   5434   - nil (default)
   5435   - 3d
   5436   - moody
   5437   - borderless
   5438   - borderless-3d
   5439   - borderless-moody
   5440   - accented
   5441   - accented-3d
   5442   - accented-moody
   5443   - borderless-accented
   5444   - borderless-accented-3d
   5445   - borderless-accented-moody
   5446 
   5447 + Renamed the non-nil values that 'modus-themes-org-blocks' accepts from
   5448   'grayscale', 'rainbow' to 'gray-background' and 'tinted-background',
   5449   respectively.  The new symbols better describe their effect on Org
   5450   source blocks, namely, that they affect the background of the block
   5451   rather than the foreground.  The old symbols will still work but are
   5452   considered deprecated aliases of the newer ones.
   5453 
   5454 + Altered the intensity of the 'modus-themes-hl-line' option
   5455   'accented-background' to a more noticeable shade of cyan/teal.  The
   5456   old style was too subtle to have the desired effect.  The value
   5457   'underline-accented' is not affected by this change, as it still uses
   5458   the same subtle background it did before in combination with a more
   5459   pronounced underline colour.
   5460 
   5461 + Deleted all deprecation warnings that concerned the transition from
   5462   version 0.13.0 of the themes to 1.0.0.  Those had been in effect for
   5463   several months, spanning four tagged releases.
   5464 
   5465 
   5466 Faces or face groups
   5467 --------------------
   5468 
   5469 + Reconsidered the use of colour in all email-related citation faces to
   5470   avoid exaggerations and reduce complexity.  Colour values have been
   5471   tweaked to tone down their overall intensity, while the number of
   5472   colours has been reduced to four.  Gnus and Mu4e have faces for more
   5473   levels of citation depth, though those will simply repeat the
   5474   four-colour cycle.
   5475 
   5476 + Made the 'message-mml' face look consistent with the rest of the
   5477   buffer while composing an email by changing its foreground colour from
   5478   a yellow to a cyan variant.
   5479 
   5480 + Refined several faces in the Notmuch group in the interest of harmony:
   5481 
   5482   - Individual message headers in 'notmuch-show-mode' use bold text in
   5483     addition to their existing subtle background to better stand out in
   5484     their context. The face is 'notmuch-message-summary-face'.
   5485 
   5486   - Tags are no longer set unconditionally to a bold typographic weight.
   5487     They become such for unread threads in 'notmuch-search-mode'
   5488     buffers, as well as for headers of 'notmuch-show-mode'.
   5489 
   5490   - Removal and addition of tags is now denoted by a strike-through and
   5491     an underline effect, respectively, whereas before they both used
   5492     underlines with the only difference being their colour.
   5493 
   5494   - The subject line in 'notmuch-search-mode' buffers uses the main
   5495     foreground instead of a dimmed one.  The field of matching authors
   5496     has a tweaked foreground to keep the tabular view easy to read.
   5497 
   5498   - All cryptography-related faces are simplified to not show a coloured
   5499     background but only use a foreground colour instead.
   5500 
   5501 + Removed direct support for 'counsel-notmuch' as it already inherits
   5502   from the relevant notmuch faces.  The package is thus considered
   5503   indirectly supported.
   5504 
   5505 + Refrained from setting a background to the 'csv-separator-face' as it
   5506   would inevitably colourise the negative space in the tabular view
   5507   created by 'csv-align-mode'.  A red text colour is used instead, even
   5508   though this is not common practice: it is easier to spot for small,
   5509   single characters, such as a comma or a semicolon that is meant to
   5510   have a special meaning.  Thanks to Kevin Fleming for reporting the
   5511   problem and for offering feedback on the choice of colour in issue
   5512   194: <https://gitlab.com/protesilaos/modus-themes/-/issues/194>.
   5513 
   5514 + Distinguished between ordinary links and widget buttons by removing
   5515   the underline from the latter (the 'widget-button' face) and altering
   5516   the shade of its foreground colour.  Such widgets are used in Emacs'
   5517   Custom interfaces and can also be found in the default Notmuch "hello"
   5518   buffer that runs 'notmuch-hello-mode'.
   5519 
   5520 + Tweaked the Ediff current faces to be consistent with 'diff-mode' and
   5521   related.  In practice, this only applies when 'modus-themes-diffs' is
   5522   set to a value of 'fg-only-deuteranopia', as it adds a dim background
   5523   to the current diff hunk.  All other styles of 'modus-themes-diffs'
   5524   look the same as before while using Ediff.
   5525 
   5526 + Simplified the faces of 'corfu' to match the current state of the
   5527   upstream project.  Thanks to Daniel Mendler (its developer) for
   5528   reporting this in issue 184:
   5529   <https://gitlab.com/protesilaos/modus-themes/-/issues/184>.
   5530 
   5531 + Refined all Eshell faces so that the output of 'ls' is consistent with
   5532   the overall aesthetic of the themes.  Also made 'eshell-prompt'
   5533   inherit from 'comint-highlight-prompt' to look the same as other such
   5534   prompts (all are configurable by 'modus-themes-prompts').
   5535 
   5536 + Revised 'eshell-prompt-extras' and 'eshell-git-prompt' to use colours
   5537   and typographic weight that better match the style of the various
   5538   configurations they offer.
   5539 
   5540 + Simplified 'eshell-syntax-highlighting' to inherit from the standard
   5541   Eshell faces, where appropriate.
   5542 
   5543 + Adjusted the colour of 'centaur-tabs-active-bar-face' and removed the
   5544   bespoke 'fg-tab-accent' colour from 'modus-themes-operandi-colors' and
   5545   'modus-themes-vivendi-colors' that was only used by it (and which
   5546   should have never been introduced to begin with).
   5547 
   5548 + Updated the 'tab-bar-groups' faces to match changes upstream.  Thanks
   5549   to Fritz Grabo (its developer) for the patch in merge request 35:
   5550   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/35>.
   5551 
   5552 + Changed the Ibuffer title and group faces to better differentiate
   5553   between group titles and special or non-file-visiting buffers.  Thanks
   5554   to Nicolas De Jaeghere for the patch in merge request 37:
   5555   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/37>.
   5556 
   5557 + Ensured that all faces that denote a "success" state, or which are
   5558   expected to be coloured in green in a red-green binary, can use an
   5559   appropriate blue colour (or colour combination that involves blue)
   5560   instead when 'modus-themes-success-deuteranopia' is set to a non-nil
   5561   value.
   5562 
   5563 + Added support for the new 'bookmark-face' in Emacs version 28.  This
   5564   means that the built-in bookmark.el library is directly supported by
   5565   the themes.  This face can be disabled by setting 'bookmark-fontify'
   5566   to nil.  Thanks to Mark Barton for reporting the presence of this new
   5567   face and for providing feedback on its style in issue 189:
   5568   <https://gitlab.com/protesilaos/modus-themes/-/issues/189>.
   5569 
   5570 + Aligned 'hes-mode' ('highlight-escape-sequences') with the standard
   5571   font-lock faces for regexp grouping.  This means that it conforms with
   5572   changes to the 'modus-themes-syntax' variable.
   5573 
   5574 + Reconfigured the 'org-quote' face to adapt its style depending on the
   5575   value of 'modus-themes-org-blocks'.  The default is a subtle blue/cold
   5576   foreground colour against the main background.  When a value of
   5577   'gray-background' is assigned to 'modus-themes-org-blocks', the text's
   5578   colour becomes that of the main foreground in order to maintain a good
   5579   level of legibility.  Thanks to Rudolf Adamkovič for the feedback in
   5580   issue 190: <https://gitlab.com/protesilaos/modus-themes/-/issues/190>.
   5581 
   5582 + Refashioned the 'show-paren-match-expression' face to make it apply a
   5583   bespoke background colour and not override the expression's foreground
   5584   colours.  This face is used by 'show-paren-mode' when the
   5585   customisation variable 'show-paren-style' is set to the 'expression'
   5586   value.  Thanks to Rudolf Adamkovič for the feedback in issue 191:
   5587   <https://gitlab.com/protesilaos/modus-themes/-/issues/191>.
   5588 
   5589 + Made headings level 8 use a fine shade of magenta by default instead
   5590   of gray (notwithstanding user changes to 'modus-themes-headings').
   5591   This should have a negligible difference in Org or Outline buffers,
   5592   but is more noticeable when editing Elisp in Emacs28 while also using
   5593   'outline-minor-mode' and with 'outline-minor-mode-highlight' set to
   5594   'override'.  That is because several top-level forms use that heading
   5595   level with those configurations.
   5596 
   5597 
   5598 Documentation (the manual)
   5599 --------------------------
   5600 
   5601 + Incorporated a sample configuration block with all customisation
   5602   variables and with comment annotations of their available options, in
   5603   an attempt to make it easier for users to discover what the themes
   5604   provide.
   5605 
   5606 + Replaced all instances of "modeline" with "mode line" for consistency
   5607   with the Emacs style.  Thanks to Rudolf Adamkovič for the patch that
   5608   started this process in merge request 33:
   5609   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/33>.
   5610 
   5611 + Wrote note on setting mode line faces that indicate the state of
   5612   'god-mode'.  Thanks to Rudolf Adamkovič for the feedback in issue 187:
   5613   <https://gitlab.com/protesilaos/modus-themes/-/issues/187>.  Also
   5614   thanks to Rudolf for updating the applicable hook in merge request 34:
   5615   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/34>.
   5616 
   5617 + Listed 'org-mode' variables that affect fontification in blocks:
   5618   'org-src-fontify-natively', 'org-fontify-whole-block-delimiter-line',
   5619   and 'org-fontify-quote-and-verse-blocks'.  This complements the
   5620   already documented variables 'org-fontify-whole-heading-line' and
   5621   'org-fontify-done-headline' that pertain to headings.
   5622 
   5623 + Included note on fontifying inline Latex expressions in Org buffers.
   5624   Thanks to Rudolf Adamkovič for the feedback in issue 190:
   5625   <https://gitlab.com/protesilaos/modus-themes/-/issues/190>.
   5626 
   5627 + Elaborated on the use of 'face-remap-add-relative' by means of sample
   5628   code that cycles through arbitrary colours for the 'region' face.
   5629   This is filed under the "Do It Yourself" (DIY) section.
   5630 
   5631 + Provided a DIY method for adapting the fontification of Org source
   5632   block delimiter lines to the value of 'modus-themes-org-blocks'.
   5633 
   5634 + Expanded the DIY entry on overriding the saturation of the active
   5635   theme's colours with a method that combines the programmatic approach
   5636   with manual overrides.  The user can thus specify the colour values
   5637   they want to override and let the rest be handled by Elisp.
   5638 
   5639 + Introduced a section with answers to Frequently Asked Questions (FAQ)
   5640   about the design of the themes as well as recommendations on how to
   5641   ensure optimal reading conditions or start thinking about them.  The
   5642   questions are:
   5643 
   5644   - Is the contrast ratio about adjacent colors?
   5645   - What does it mean to avoid exaggerations?
   5646   - Why are colors mostly variants of blue, magenta, cyan?
   5647   - What is the best setup for legibility?
   5648 
   5649 
   5650 Miscellaneous
   5651 -------------
   5652 
   5653 + Removed superfluous code from internal functions and adapted their
   5654   indentation to make them easier to read.
   5655 
   5656 + Recalibrated some values in 'modus-themes-vivendi-colors' to ensure
   5657   consistency in luminance with other colours that are used in their
   5658   context.  Those are subtle changes that can only be discerned in
   5659   side-by-side comparisons of the before and after states.  Thanks to
   5660   André Alexandre Gomes for the feedback in issue 193:
   5661   <https://gitlab.com/protesilaos/modus-themes/-/issues/193>.
   5662 
   5663 + Changed the saturation and hueness of the bespoke 'fg-comment-yellow'
   5664   in 'modus-themes-operandi-colors' and 'modus-themes-vivendi-colors' to
   5665   better contrast with its context, while still keeping its luminance
   5666   consistent with its role as a colour for comments in code.  This is
   5667   used when 'modus-themes-syntax' is configured appropriately (read its
   5668   doc string or consult the manual).
   5669 
   5670 + Attempted to add explicit support for the faces of the built-in
   5671   pulse.el library, but ultimately opted against them as the doc string
   5672   of 'pulse-highlight-face' advises against customising it, even though
   5673   it is not clear from the source code in emacs.git what the problem
   5674   could be.  We shall reconsider this case for the next release cycle.
   5675   Thanks to Gustavo Barros for the feedback on several aspects of this
   5676   topic in issues 185 and 200:
   5677 
   5678   - <https://gitlab.com/protesilaos/modus-themes/-/issues/185>
   5679   - <https://gitlab.com/protesilaos/modus-themes/-/issues/200>
   5680 
   5681 + Took the feedback of John Haman in issue 199 as a reminder to complete
   5682   the set of possible values for the 'modus-themes-mode-line' variable:
   5683   <https://gitlab.com/protesilaos/modus-themes/-/issues/199>.
   5684 #+end_src
   5685 
   5686 * 1.3.0
   5687 :PROPERTIES:
   5688 :CUSTOM_ID: h:5063c0c5-832e-4577-936e-d602b07d6d79
   5689 :END:
   5690 
   5691 #+begin_src text
   5692 Modus themes version 1.3.0
   5693 
   5694 By Protesilaos Stavrou <info@protesilaos.com> on 2021-04-17
   5695 
   5696 This entry records the changes introduced to the project since the
   5697 publication of version 1.2.0 (2021-03-04).  There have been around 100
   5698 commits in the meantime, as is the norm with all releases hitherto.
   5699 
   5700 Every colour-related modification documented herein conforms with the
   5701 overarching accessibility objective of the themes for a minimum contrast
   5702 ratio of 7:1 between background and foreground values in their given
   5703 combination (the WCAG AAA standard).
   5704 
   5705 As the official manual is referenced several times throughout this log,
   5706 make sure to store its URL: <https://protesilaos.com/emacs/modus-themes>.  Or
   5707 read it from Emacs' Info reader by evaluating this form:
   5708 
   5709     (info "(modus-themes) Top")
   5710 
   5711 If you are coming from older versions, please consult the change log
   5712 entry for version 1.0.0 with regard to the breaking changes that were
   5713 introduced.
   5714 
   5715 Remember that the themes are built into Emacs28, and are available on
   5716 GNU ELPA, as well as other archives.
   5717 
   5718 
   5719 Customisation options
   5720 ---------------------
   5721 
   5722 + The old 'modus-themes-intense-hl-line' boolean variable has been
   5723   replaced by 'modus-themes-hl-line', which provides several options for
   5724   how to style the current line of 'hl-line-mode'.  To retain the old
   5725   effect, one must do this:
   5726 
   5727       ;; Replacement for (setq modus-themes-intense-hl-line t)
   5728       (setq modus-themes-hl-line 'intense-background)
   5729 
   5730   The list of possible values:
   5731 
   5732     1. nil (default)
   5733     2. intense-background
   5734     3. accented-background
   5735     4. underline-neutral
   5736     5. underline-accented
   5737     6. underline-only-neutral
   5738     7. underline-only-accented
   5739 
   5740   The doc string of 'modus-themes-hl-line' as well as the manual
   5741   describe the specifics.  Thanks to Manuel Uberti for the feedback in
   5742   commit b020592:
   5743   <https://gitlab.com/protesilaos/modus-themes/-/commit/b020592e1a96d6e00d7d03faf9c293ec6081d49c>.
   5744 
   5745 + The 'modus-themes-mode-line' variable now accepts three new "accented"
   5746   styles that complement the existing set:
   5747 
   5748     1. nil (default)
   5749     2. 3d
   5750     3. moody
   5751     4. borderless
   5752     5. borderless-3d
   5753     6. borderless-moody
   5754     7. accented
   5755     8. accented-3d
   5756     9. accented-moody
   5757 
   5758 + The 'modus-themes-region' is extended with two new options of an
   5759   "accent" background:
   5760 
   5761     1. nil (default)
   5762     2. no-extend
   5763     3. bg-only
   5764     4. bg-only-no-extend
   5765     5. accent
   5766     6. accent-no-extend
   5767 
   5768 + The default value of 'modus-themes-headings' for per-level styles can
   5769   now be set to nil.  This fixes an inconsistency between the fallback
   5770   value, which accepted nil, and the per-level styles which did not.
   5771   Thanks to Mauro Aranda for reporting this in issue 163:
   5772   <https://gitlab.com/protesilaos/modus-themes/-/issues/163>.
   5773 
   5774   Please read the manual for the specifics of this variable, as it is an
   5775   alist that accepts several possible combinations.
   5776 
   5777 
   5778 Updates to the manual
   5779 ---------------------
   5780 
   5781 + Rewrote the sections that cover the aforementioned customisation
   5782   options.
   5783 
   5784   - For 'modus-themes-mode-line', we had to revise the recommendation
   5785     for setting 'face-near-same-color-threshold' to 45000.  That value
   5786     is appropriate for the 'moody' and 'borderless-moody' options.
   5787     Whereas for 'accented-moody' the number should be raised to 70000.
   5788     Thanks to Nicolas De Jaeghere for providing this piece of
   5789     information:
   5790     <https://gitlab.com/protesilaos/modus-themes/-/commit/ab6ba698269f012ec880b690282264649bfb3b0d#note_551342198>
   5791 
   5792 + Rephrased the GNU Free Documentation License quote to match the style
   5793   of other manuals that are also built into Emacs.
   5794 
   5795 + Documented 'org-mode' variables that affect the looks of various
   5796   fontification styles.
   5797 
   5798 + Simplified the 'kbd' macro that is declared in modus-themes.org to
   5799   allow GNU ELPA's build system to parse the file for Emacs 26.
   5800 
   5801 + Documented existing support for 'tab-bar-mode' and 'tab-line-mode'.
   5802 
   5803 + Wrote a note on how to configure the 'dimmer.el' library by Neil
   5804   Okamoto, in order to guarantee consistent results with the themes.
   5805   The key is to use the RGB colour space instead of CIELAB.
   5806 
   5807 + Included note on shr.el fonts and how those are used by EWW and
   5808   Elfeed.
   5809 
   5810 + Added a "Do-It-Yourself" (DIY) section on how to remap buffer-local
   5811   faces.
   5812 
   5813 + Detailed a DIY method to make the buffer-local backdrop of a pdf-tools
   5814   page use a distinct colour than the default white for Modus Operandi.
   5815   Extended the same principle to Modus Vivendi and described how to
   5816   adapt to theme changes (such as via 'modus-themes-toggle').  Thanks to
   5817   Utkarsh Singh for providing feedback on this topic in issue 175:
   5818   <https://gitlab.com/protesilaos/modus-themes/-/issues/175>.
   5819 
   5820 + Elaborated on DIY techniques to programmatically override the
   5821   saturation of all colours specified by the active Modus theme.  Thanks
   5822   to user pRot0ta1p for the feedback in issue 166:
   5823   <https://gitlab.com/protesilaos/modus-themes/-/issues/166>.
   5824 
   5825 
   5826 Support for packages
   5827 --------------------
   5828 
   5829 These are added to the already comprehensive list of explicitly
   5830 supported packages:
   5831 
   5832 + corfu
   5833 + embark
   5834 
   5835 + pandoc-mode.  Thanks to Farasha Euker for the feedback in issue 171:
   5836   <https://gitlab.com/protesilaos/modus-themes/-/issues/171>.
   5837 
   5838 + tab-bar-groups
   5839 + telega
   5840 + vertico
   5841 
   5842 Also added support for the 'help-key-binding' face which is part of
   5843 Emacs 28.
   5844 
   5845 
   5846 Changes to already supported faces or face groups
   5847 -------------------------------------------------
   5848 
   5849 + Renamed all internal faces that the themes defined from
   5850   "modus-theme-*" to "modus-themes-*".
   5851 
   5852 + Refashioned all Ediff faces in the process of a major review of this
   5853   tools' overall design.  The manifold changes are:
   5854 
   5855   - All inactive diffs respect the underlying fontification
   5856     (e.g. programming syntax highlighting).  Before they would override
   5857     it with a gray foreground.
   5858 
   5859   - All inactive diffs have been toned down, as their background is a
   5860     finer shade of gray than the prominent one that was used before.
   5861 
   5862   - There no longer is a visual distinction between even and odd
   5863     inactive diffs (by means of different shades of gray).  We are of
   5864     the opinion that such subtleties, whose utility is marginal at best,
   5865     have no place in themes that are designed for accessibility.
   5866 
   5867   - All bespoke gray colour combinations that were only intended for
   5868     those inactive diffs have thus been removed from each theme's
   5869     palette.
   5870 
   5871   - Active diffs follow the same style as diff-mode, to ensure
   5872     theme-wide consistency (all diff styles are controlled by the
   5873     variable 'modus-themes-diffs').
   5874 
   5875   This topic was discussed at length (with screenshots) in issue 169:
   5876   <https://gitlab.com/protesilaos/modus-themes/-/issues/169>.  Thanks to
   5877   peniblec and Nicolas De Jaeghere for their feedback.
   5878 
   5879 + Made 'smerge-markers' and 'vdiff-closed-fold-face' look like the
   5880   headings in 'diff-mode' in the interest of consistency, especially
   5881   while configuring the 'modus-themes-diffs' variable.
   5882 
   5883 + Ensured consistency between all faces that pertain to key bindings in
   5884   contexts where the hint to the key is active, in that pressing the key
   5885   performs the action (e.g. Magit's transient buffers, which-key,...).
   5886   The 'help-key-binding' for Emacs 28 is not included in this group,
   5887   because it applies in cases where the keys are not active, such as in
   5888   Help buffers.
   5889 
   5890 + Refined 'epa-validity-disabled' and 'epa-validity-high' faces.  The
   5891   former no longer uses a background, as that was considered an
   5892   exaggeration.  While the latter is cast in a cyan hue instead of green
   5893   for greater clarity (this relates to the general push to optimise for
   5894   red-green colour deficiency, which means to only use green where it is
   5895   absolutely necessary and, in such cases, to provide for a blue-ish
   5896   alternative, as with the 'deuteranopia' value that can be assigned to
   5897   'modus-themes-diffs').
   5898 
   5899 + Reworked 'ace-window', 'avy', and 'magit-blame' faces to ensure that
   5900   their overlays do not inherit the face properties of underlying text,
   5901   such as a different font family or height.  Thanks to Nicolas De
   5902   Jaeghere for the multiple merge requests and the concomitant feedback:
   5903 
   5904   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/27>.
   5905   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/29>.
   5906   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/30>.
   5907   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/31>.
   5908   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/32>.
   5909 
   5910   Also thanks to Damien Cassou for reporting an intermediate problem
   5911   with 'avy' in issue 177; a problem that was eventually addressed by
   5912   Nicolas De Jaeghere in merge request 31 (cited above):
   5913   <https://gitlab.com/protesilaos/modus-themes/-/issues/177>.
   5914 
   5915 + Optimised the colour combinations used by 'avy' to improve the
   5916   distinction between consecutive characters.
   5917 
   5918 + Reduced the brightness of EWW certificate faces, as they would attract
   5919   disproportionate attention to themselves.
   5920 
   5921 + Reworked all EWW text field and button faces to look more like what
   5922   they are supposed to.
   5923 
   5924 + Removed the slant and distinct foreground from the 'org-quote' face,
   5925   as they would interfere with emphasis within the quote block.  Thanks
   5926   to Farasha Euker for the feedback in issue 171:
   5927   <https://gitlab.com/protesilaos/modus-themes/-/issues/171>.
   5928 
   5929 + Reduced the intensity in colouration of 'org-code' and 'org-macro' in
   5930   order to avoid exaggerations and prevent their compounding effect in
   5931   technical documents that include a high concentration of those faces.
   5932   They still retain their overall character and continue to look like
   5933   variants of 'org-verbatim'.
   5934 
   5935 + Extended support for Selectrum's new 'selectrum-quick-keys-highlight'
   5936   and 'selectrum-quick-keys-match'.
   5937 
   5938 + Adjusted a few bongo faces for improved consistency and a more
   5939   pleasant result overall.  Quote from commit 07224cda08:
   5940 
   5941       Refine bongo faces for consistency
   5942 
   5943       The previous design was meant to keep the track fields distinct
   5944       from each other.  However the use of yellow was not good
   5945       aesthetically: it does not fit with the rest of the theme.
   5946 
   5947       Upon further experimentation, I realised that the album field
   5948       (yellow) is only present when the artist and title fields are also
   5949       available: first is the title, then the artist, and finally the
   5950       album.  This is true even with 'bongo-join-inserted-tracks' set to
   5951       a non-nil value.  So changing the face from yellow to a neutral
   5952       value is safe.
   5953 
   5954       The other two faces are adapted to look better in the new context.
   5955 
   5956 + Made more command prompt faces respond to changes in the variable
   5957   'modus-themes-prompts'.  This concerns faces from the groups cider,
   5958   circe, erc, indium, rcirc.
   5959 
   5960 + Refashioned typescript faces, making them more prominent by default,
   5961   while also exposing them to the value of 'modus-themes-syntax'.
   5962 
   5963 + Revised the style of 'info-colors-ref-item-command'.  This makes
   5964   commands look the same as functions, which is technically correct.  It
   5965   also predicates the exact style on the value of the variable
   5966   'modus-themes-syntax'.
   5967 
   5968 + Made all enh-ruby-mode faces adapt to 'modus-themes-syntax'.  Same for
   5969   julia.
   5970 
   5971 + Reconfigured all ztree faces for stylistic consistency.  The
   5972   'ztreep-diff-model-add-face' now responds to the 'deuteranopia' value
   5973   that can be passed to 'modus-themes-diffs'.
   5974 
   5975 + Appended the ':extend t' attribute to 'gnus-summary-cancelled' and
   5976   'gnus-summary-selected'.  These are only noticeable on Emacs 28
   5977   following commit 88409b21c2 in emacs.git.
   5978 
   5979 + Tweaked all faces of 'highlight-changes-mode' to better deliver on the
   5980   intent of that mode.
   5981 
   5982 + Opted to unconditionally render all 'dired-async' faces in a bold
   5983   typographic weight, instead of basing them on a non-nil value for
   5984   'modus-themes-bold-constructs'.  Also changed 'dired-async-message' to
   5985   a blue foreground, which further improves the themes' performance for
   5986   red-green colour deficiency.
   5987 
   5988 + Adjusted the colours of some 'notmuch-crypto-*' faces to better convey
   5989   their meaning.
   5990 
   5991 + Removed remaining conditional logic for underline styles in some
   5992   spell- and linter- related faces to ensure that all such cases are
   5993   controlled by the variable 'modus-themes-lang-checkers' (building on
   5994   work that had been done in the past).
   5995 
   5996 + Stopped changing 'keycast-key' to match the modeline style, as that
   5997   diluted the meaning of the variable 'modus-themes-mode-line'.
   5998 
   5999 + Tweaked calendar and diary faces for stylistic effect, except for the
   6000   'diary' face which has been converted from a green to a blue variant
   6001   for the purposes of coping with cases of red-green colour deficiency.
   6002 
   6003 
   6004 Miscellaneous
   6005 -------------
   6006 
   6007 + Clarified the changes in the backward-incompatible transition from
   6008   version 0.13.0 of the themes to >= 1.0.0.  Thanks to Damien Cassou for
   6009   reporting the absence of easy-to-find information in issue 174:
   6010   <https://gitlab.com/protesilaos/modus-themes/-/issues/174>.
   6011 
   6012 + There were three point releases after 1.2.0 which refined certain
   6013   aspects of the themes' packaging so that they could work both as
   6014   built-in themes for Emacs as well as in package format via the likes
   6015   of GNU ELPA.  Those issues were eventually resolved by Basil
   6016   L. Contovounesios:
   6017 
   6018   - Issue 162: <https://gitlab.com/protesilaos/modus-themes/-/issues/162>.
   6019   - Emacs bug#45068: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45068#218>.
   6020 
   6021 + Rewrote the 'modus-themes-headings' variable's declaration to improve
   6022   its presentation in Custom interfaces.  Thanks to Mauro Aranda for
   6023   submitting the patch for commit 1c60927ebd.
   6024 
   6025 + Applied the ':format' keyword to all 'defcustom' forms, based on the
   6026   aforementioned patch.  This should make all options look better in the
   6027   various Custom interfaces.  Thanks to Mauro Aranda for the feedback in
   6028   issue 163: <https://gitlab.com/protesilaos/modus-themes/-/issues/163>.
   6029 
   6030 + Refined the colour values 'bg-alt' and 'bg-dim' in 'modus-vivendi' to
   6031   improve their instantiation on Textual User Interfaces.  In
   6032   particular, recalibrated the blue channel of light so that when the
   6033   TUI cannot render the colour directly, it defaults to a gray value
   6034   instead of a dark blue.
   6035 
   6036 + Added a "Last-Modified" meta header to modus-themes.el, with gets
   6037   updated automatically and uses a timestamp.  This helps users who
   6038   track the themes' git repo directly.  Thanks to Togan Muftuoglu for
   6039   the feedback in issue 168:
   6040   <https://gitlab.com/protesilaos/modus-themes/-/issues/168>.
   6041 
   6042 + Expanded the palette of each theme with accent values that are
   6043   reserved for use in the tab-bar.  Those are used by the newly
   6044   supported 'tab-bar-groups' package.
   6045 
   6046 + Recalibrated a few colour combinations to improve their resulting
   6047   legibility.  The changes should not be noticeable to the untrained
   6048   eye.  Interested parties can consult commit 349ea4a943.
   6049 
   6050 + Tweaked the hueness of the 'yellow-active' colour of 'modus-operandi'.
   6051 
   6052 Thanks once again to everyone involved!
   6053 #+end_src
   6054 
   6055 * 1.2.0
   6056 :PROPERTIES:
   6057 :CUSTOM_ID: h:751083a7-3514-40f5-9928-17a11de5b439
   6058 :END:
   6059 
   6060 #+begin_src text
   6061 Modus themes version 1.2.0
   6062 
   6063 By Protesilaos Stavrou <info@protesilaos.com> on 2021-03-04
   6064 
   6065 This entry records the changes introduced to the project since the
   6066 publication of version 1.1.0 (2021-01-24).  There have been close to 100
   6067 commits in the meantime.
   6068 
   6069 Every colour-related modification documented herein conforms with the
   6070 overarching accessibility objective of the themes for a minimum contrast
   6071 ratio of 7:1 between background and foreground values in their given
   6072 combination (the WCAG AAA standard).
   6073 
   6074 As the official manual is referenced several times throughout this log,
   6075 make sure to store its URL: <https://protesilaos.com/emacs/modus-themes>.  Or
   6076 read it from Emacs' Info reader by evaluating this form:
   6077 
   6078     (info "(modus-themes) Top")
   6079 
   6080 If you are coming from older versions, please consult the change log
   6081 entry for version 1.0.0 with regard to the breaking changes that were
   6082 introduced.
   6083 
   6084 
   6085 Prior notice: Upgrading the themes in Emacs28 and GNU ELPA
   6086 ----------------------------------------------------------
   6087 
   6088 Emacs28, the current development target, now includes a 'require-theme'
   6089 function.  It is a prerequisite to upgrading the Modus themes to their
   6090 current version.  Prior to the definition of that function, the themes
   6091 could not transition from their 0.13.0 version to >=1.0.0.  Special
   6092 thanks to Basil L. Contovounesios for making it happen, as well Mauro
   6093 Aranda and Eli Zaretskii for their feedback and support.
   6094 
   6095 Expect the Modus themes in upstream Emacs to be updated shortly after
   6096 the publication of this document.
   6097 
   6098 GNU ELPA currently ships version 0.12.0 of the two standalone packages
   6099 'modus-operandi-theme' and 'modus-vivendi-theme'.  This will change in
   6100 the immediate future, as a new 'modus-themes' package will succeed them.
   6101 That new package will be built directly from emacs.git, as it must now
   6102 become a ':core' entity instead of being listed as an ':external' one.
   6103 
   6104 Again, expect a patch to be applied to elpa.git shortly after this
   6105 document goes live.
   6106 
   6107 
   6108 Customisation options
   6109 ---------------------
   6110 
   6111 [ All variables and their values are documented in the themes' manual.
   6112   The default value is always nil. ]
   6113 
   6114 + The new boolean 'modus-themes-subtle-line-numbers' variable will make
   6115   the effect of 'display-line-numbers-mode' more subtle when set to a
   6116   non-nil value.  It removes the underlying background of the unfocused
   6117   lines while toning down their foreground.
   6118 
   6119 + The 'modus-themes-diffs' variable now accepts a 'deuteranopia' value.
   6120   This optimises for red-green colour deficiency in all modes that show
   6121   diffs (diff-mode, ediff, Magit...).  In practice, all instances of
   6122   green are replaced with appropriate blue hues.  For more on the
   6123   matter, read the report which also includes pictures:
   6124   <https://protesilaos.com/codelog/2021-02-25-modus-themes-diffs-deuteranopia/>.
   6125 
   6126 + The 'modus-themes-syntax' variable now reads 'faint-yellow-comments'
   6127   as a valid value.  This has the same scope as the existing 'faint'
   6128   value with the added effect of assigning a yellow tint to comments: it
   6129   tones down the saturation of colours that apply to code syntax
   6130   (standard font-lock faces and others inheriting from them).
   6131 
   6132 + The 'modus-themes-links' variable is expanded to accept the new value
   6133   of 'neutral-underline-only': it removes the foreground from the link
   6134   and draws a neutral gray underline below it.
   6135 
   6136 
   6137 Refinements to existing packages or face groups
   6138 -----------------------------------------------
   6139 
   6140 + Refashioned all faces that pertain to emails, including Gnus, Mu4e,
   6141   Notmuch, and the standard 'message.el' library.  This concerns the
   6142   colours that apply to the message header keys and their values, as
   6143   well as quote levels.
   6144 
   6145   - Introduced more contrasting hues for headings and made more
   6146     considerate use of bold typography.  The new colour combinations are
   6147     better suited for the task of delivering a sense of structure;
   6148     structure that is at once effective and subtle.
   6149 
   6150   - Applied less intense colours throughout all quotation levels.
   6151 
   6152   - Revised the sequencing of hues in quotation levels to allow distinct
   6153     levels to stand out more without relying on excessive saturation.
   6154 
   6155   - Aligned the styling of Notmuch header dates with their counterparts
   6156     in other similar contexts, in pursuit of theme-wide consistency.
   6157 
   6158 + Rewrote the faces of EBDB to achieve a better sense of structure.
   6159 
   6160 + Refined the colour combinations of change-log and log-view buffers to
   6161   make it easier to discern distinct elements.
   6162 
   6163 + Tweaked the colours of certain Elfeed constructs to improve the
   6164   overall presentation of its search buffers.
   6165 
   6166 + Changed the colour combinations of 'M-x re-builder' to amplify the
   6167   distinction between the matching regexp groups while still reducing
   6168   their overall intensity.
   6169 
   6170 + Reconfigured the 'diff-changed' face to always extend its background
   6171   to the edge of the window.  Such "changed" lines are visible in
   6172   'diff-mode' buffers when the command 'diff-unified->context' is
   6173   invoked.
   6174 
   6175 + Tweaked the colour combinations of ancillary faces in diff buffers
   6176   when the variable 'modus-themes-diffs' is set to the value 'fg-only'.
   6177   In particular:
   6178 
   6179   - Removed the subtle background from the diff hunk headings and changed
   6180     their colour to ensure good visibility---guarantees a sense of
   6181     structure.
   6182 
   6183   - Made the context lines inherit the default foreground colour (pure
   6184     black/white), so that it contrasts better with red, green, and
   6185     yellow text.
   6186 
   6187   - Applied an accented foreground to the diff header.  This is to
   6188     ensure that it is not mistaken for a diff hunk's context.
   6189 
   6190   All these guarantee that the foreground-only highlights in line-wise
   6191   differences draw more attention to themselves.
   6192 
   6193 + Aligned all the standard hi-* faces with their default aesthetics.
   6194   Those are used by commands such as 'highlight-symbol-at-point'.
   6195   Thanks to Philip K. for the valuable feedback in issue 157:
   6196   <https://gitlab.com/protesilaos/modus-themes/-/issues/157>.
   6197 
   6198 + Removed obsolete Consult faces and added new ones, so as to remain in
   6199   sync with the latest developments in that project.  Thanks to Daniel
   6200   Mendler (Consult's maintainer) for reporting the inconsistency in
   6201   issue 155: <https://gitlab.com/protesilaos/modus-themes/-/issues/155>.
   6202 
   6203   - 'consult-preview-line' now retains fontification on the current
   6204     line, instead of applying its own foreground.
   6205 
   6206   - 'consult-narrow-indicator' is refashioned to be colour-coded in a
   6207     consistent way with 'consult-async-split', as both denote the
   6208     delineation of a given scope.
   6209 
   6210   - 'consult-imenu-prefix' contrasts better with text on its current
   6211     line, while it adapts to possible customisations performed on the
   6212     Consult front.
   6213 
   6214 + Expanded the coverage of 'marginalia' faces to two include
   6215   'marginalia-char' and 'marginalia-type'.  This is done in the interest
   6216   of internal consistency between the elements of this set, as their
   6217   defaults were also accessible (they inherit from standard faces that
   6218   we already support).
   6219 
   6220 + Opted to render the Notmuch logo in a neutral gray backdrop.  This was
   6221   deemed necessary as the logo is an immutable image file that consists
   6222   of black and white strokes.  Black and white are the main background
   6223   values of 'modus-vivendi' and 'modus-operandi' respectively, which
   6224   could lead to confusion.  The neutral gray ensures that the logo is
   6225   visible at all times.  Thanks to Utkarsh Singh for the feedback in
   6226   issue 122: <https://gitlab.com/protesilaos/modus-themes/-/issues/122>.
   6227 
   6228 + Refined the dedicated colour values used for diff hunk headings, as
   6229   seen in diff-mode buffers or Magit.  The new colours yield text that
   6230   is easier to read by slightly toning down the combined intensity of
   6231   background+foreground.
   6232 
   6233 + Removed the subtle background of 'diff-header' and 'diff-file-header'.
   6234   The header's foreground and textual representation suffice to render
   6235   it distinct in its context.
   6236 
   6237 + Tweaked 'org-agenda-structure' and 'org-scheduled' to enhance the
   6238   usability of Org Agenda buffers.
   6239 
   6240   - Made 'org-agenda-structure' use the largest possible height that we
   6241     expose to users: 'modus-themes-scale-5'.
   6242 
   6243   - Re-calibrated the hueness of 'org-scheduled' and amplified its
   6244     saturation, in order to better convey the meaning of a scheduled
   6245     task.
   6246 
   6247   Thanks to Morgan Smith for the valuable feedback in issue 153:
   6248   <https://gitlab.com/protesilaos/modus-themes/-/issues/153>.
   6249 
   6250 + Tweaked the faces of the 'bongo' package to enhance the
   6251   distinctiveness of the constructs they style.
   6252 
   6253 + Adjusted the overall aesthetic of calendar faces in the interest of
   6254   theme-wide consistency.
   6255 
   6256 + Aligned the visual metaphors of 'org-code' with those of 'org-macro'
   6257   and 'org-verbatim', by ensuring that a subtle background is present
   6258   behind the affected text, while the foreground conforms with the norms
   6259   of the 'modus-themes-no-mixed-fonts' customisation option.
   6260 
   6261 + Made quoted text in Info buffers look the same as 'org-verbatim' and
   6262   Markdown's inline code.
   6263 
   6264 + Instructed the faces of 'info-colors' to inherit from appropriate
   6265   font-lock faces.  This guarantees that everything works as intended
   6266   with the various values of 'modus-themes-syntax'.
   6267 
   6268 + Refined the language tag of Markdown fenced blocks so that it does
   6269   attract unwarranted attention while delivering on its intended
   6270   purpose.
   6271 
   6272 + Rendered explicit the slant of ace-window hints, guaranteeing that it
   6273   does not inherit from the underlying text.  Thanks to Nicolas De
   6274   Jaeghere for the patch:
   6275   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/27>.
   6276 
   6277   [ Some more changes have been discussed, but those require tweaks to
   6278     the upstream package. ]
   6279 
   6280 + Ensured that the 'org-tree-slide-header-overlay-face' never draws an
   6281   overline when the variable 'modus-themes-headings' includes a relevant
   6282   setting for heading level 1.  Such as with the following example (all
   6283   customisation options are documented in the themes' manual):
   6284 
   6285     (setq modus-themes-headings
   6286           '((1 . section)
   6287             ...))
   6288 
   6289 + Extended support for the new 'tab-line-tab-inactive-alternate' face as
   6290   that occurs in Emacs28 (current development target).  It comes into
   6291   effect when the variable 'tab-line-tab-face-functions' includes a
   6292   value of 'tab-line-tab-face-inactive-alternating'.
   6293 
   6294 
   6295 Newly supported packages
   6296 ------------------------
   6297 
   6298 + bbdb :: Thanks to Nicolas De Jaeghere in issue 128:
   6299   <https://gitlab.com/protesilaos/modus-themes/-/issues/128>.
   6300 
   6301 + mmm-mode :: Thanks to Davor Rotim for the feedback in issue 161:
   6302   <https://gitlab.com/protesilaos/modus-themes/-/issues/161>.
   6303 
   6304 + quick-peek :: Thanks to Burgess Chang for the feedback in issue 151:
   6305   <https://gitlab.com/protesilaos/modus-themes/-/issues/151>
   6306 
   6307 + selectrum-prescient :: This new package was brought to my attention by
   6308   Manuel Uberti.  The intent is to phase out the faces in Selectrum,
   6309   namely 'selectrum-primary-highlight', 'selectrum-secondary-highlight',
   6310   though those will still be supported by the Modus themes for the
   6311   foreseeable future.
   6312 
   6313 + shortdoc
   6314 
   6315 + spray
   6316 
   6317 + terraform-mode :: Thanks to Kevin Fleming for the feedback in issue
   6318   159: <https://gitlab.com/protesilaos/modus-themes/-/issues/159>.
   6319 
   6320 + vc-dir (Emacs28)
   6321 
   6322 
   6323 Theme-related contributions to the wider community
   6324 --------------------------------------------------
   6325 
   6326 + Contributed the faces for 'vc-dir' in Emacs28 and applied them to all
   6327   VC backends: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46358> and
   6328   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46745>.
   6329 
   6330 + Contributed a new face and some related tweaks to Emacs'
   6331   'shortdoc.el': <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=46748>.
   6332 
   6333 + Added faces to the 'tab-bar-echo-area.el' package:
   6334   <https://github.com/fritzgrabo/tab-bar-echo-area/pull/2>.
   6335 
   6336 + Reported issue that led to the review of the header face in
   6337   'org-tree-slide': <https://github.com/takaxp/org-tree-slide/issues/38>.
   6338 
   6339 + Helped refine the faces of the 'rlist.el' package:
   6340   <https://gitlab.com/mmemmew/rlist/-/commit/386f506d0110bebedd3a48ff972adba96e2232eb>.
   6341 
   6342 
   6343 Documentation updates
   6344 ---------------------
   6345 
   6346 + Wrote about the indirect support for the 'goggles' package.  I had
   6347   helped write its faces, as was documented in the changelog for version
   6348   1.1.0 of the themes.  Thanks to Manuel Uberti for bringing this to my
   6349   attention in issue 158:
   6350   <https://gitlab.com/protesilaos/modus-themes/-/issues/158>.
   6351 
   6352 + Explained that any changes to 'custom-theme-load-path' and/or
   6353   'custom-theme-directory' should be performed before the themes are
   6354   loaded.  Thanks to Adrian Manea for the feedback in issue 156:
   6355   <https://gitlab.com/protesilaos/modus-themes/-/issues/156>.
   6356 
   6357 + Included the symbol 'bg-only' in the 'modus-themes-diffs' section of
   6358   the manual.  Thanks to user "iSeeU" for reporting the omission:
   6359   <https://gitlab.com/protesilaos/modus-themes/-/issues/154>.
   6360 
   6361 + Expanded the manual's entry on the semantics of the optional heading
   6362   scale used by the themes (the variables 'modus-themes-scale-[1-5]').
   6363   The values 1-4 apply to regular headings, with 4 being the largest on
   6364   the scale.  While 'modus-themes-scale-5' is reserved for special
   6365   headers, such as Org '#+title:' or the Org Agenda's structure.  Recall
   6366   that those variables only come into effect if the boolean variable
   6367   'modus-themes-scale-headings' is set to a non-nil value (it is nil by
   6368   default).
   6369 
   6370 + Made several changes to the 'modus-themes.org' file in an effort to
   6371   improve the accuracy of the generated Texinfo markup.  Thanks to Glenn
   6372   Morris and Richard Stallman for their valuable feedback in
   6373   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45143>.
   6374 
   6375 + Recorded a note in the manual on the intended colouration of
   6376   backgrounds applied by 'mmm-mode'.  It explains what the constraints
   6377   are from an accessibility standpoint and how users can configure
   6378   things locally for more colourful, yet inaccessible, backgrounds.
   6379   Thanks to Davor Rotim for the valuable feedback in issue 161:
   6380   <https://gitlab.com/protesilaos/modus-themes/-/issues/161>.
   6381 
   6382 + Refined the manual's note on prism.el, simplifying the code samples
   6383   and clarifying the commentary.
   6384 
   6385 + Wrote indices for concepts, variables, functions, which are rendered
   6386   in the Info manual.
   6387 
   6388 + Elaborated on the possibility---and relative merits---of implementing
   6389   a theme-agnostic hook for advanced face configurations, as opposed to
   6390   relying on 'modus-themes-after-load-theme-hook'.  Thanks to Daniel
   6391   Mendler for the valuable feedback in issue 131:
   6392   <https://gitlab.com/protesilaos/modus-themes/-/issues/131>.
   6393 
   6394 
   6395 Miscellaneous
   6396 -------------
   6397 
   6398 + Rewrote the documentation string of the 'deftheme' declaration of
   6399   'modus-operandi' and 'modus-vivendi'.
   6400 
   6401 + Provided links to the Info nodes that discuss each of the 'defcustom'
   6402   declarations.
   6403 
   6404 + Wrote doc strings for every custom face that the themes define.
   6405 #+end_src
   6406 
   6407 
   6408 * 1.1.0
   6409 :PROPERTIES:
   6410 :CUSTOM_ID: h:bb0e16a9-8a8b-4b1b-9d62-b1715295247b
   6411 :END:
   6412 
   6413 #+begin_src text
   6414 Modus themes version 1.1.0
   6415 
   6416 By Protesilaos Stavrou <info@protesilaos.com> on 2021-01-24
   6417 
   6418 This entry records the changes introduced to the project since the
   6419 publication of version 1.0.0 (2020-12-05).  There have been around 150
   6420 commits in the meantime, qualifying this as one of the largest releases
   6421 to date.
   6422 
   6423 As always, every colour-related modification documented herein conforms
   6424 with the overarching accessibility objective of the themes for a minimum
   6425 contrast ratio of 7:1 between background and foreground values in their
   6426 given combination (conformance with the WCAG AAA standard).
   6427 
   6428 As the official manual is referenced several times, make sure to store
   6429 its URL: <https://protesilaos.com/emacs/modus-themes>.
   6430 
   6431 If you are coming from older versions, please consult the change log
   6432 entry for version 1.0.0.
   6433 
   6434 
   6435 Overview
   6436 --------
   6437 
   6438 + We have brought back the options that were present in version 0.13.0
   6439   or earlier which allowed users to override colors for either---or
   6440   both---of Modus Operandi and Modus Vivendi.  Compared to the old
   6441   mechanism, the new one is more robust and should work regardless of
   6442   whether users run byte compiled code or not.  This is considered and
   6443   advanced, "do-it-yourself" pathway to theme customisation.  It is
   6444   discussed at length in the manual.
   6445 
   6446 + The new 'modus-themes-with-colors' macro makes it possible to read
   6447   palette variables from the active theme and, thus, pass them to
   6448   arbitrary functions or variables.  Again, this is part of the advanced
   6449   customisations that are covered in the manual.
   6450 
   6451 + Several of the existing customisation options provide new stylistic
   6452   variants, further expanding their utility.  While there are some new
   6453   customisations altogether.  Combined with the above, we provide the
   6454   infrastructure that allows the themes to adapt gracefully to a variety
   6455   of circumstances and cover a broad range of demands.
   6456 
   6457 + More packages are added to the already comprehensive list of supported
   6458   face groups.
   6459 
   6460 + Some of the supported faces have benefited from further, albeit
   6461   subtle, refinements, demonstrating our commitment to consistency as
   6462   well as our attention to detail.
   6463 
   6464 + Two reports on such "further refinements" were published on the code
   6465   log section of protesilaos.com: <https://protesilaos.com/codelog>.
   6466 
   6467 + We have more people contributing to the project (and assigning
   6468   copyright to the FSF---as the themes are part of Emacs) and newer
   6469   users reporting issues.  Also, there is anecdotal evidence from
   6470   several sources on an increased interest to make new or existing faces
   6471   accessible by default (such as by copying colour combinations from the
   6472   themes).
   6473 
   6474 
   6475 New customisation options
   6476 -------------------------
   6477 
   6478 + The existing 'modus-themes-mode-line' variable now supports three new
   6479   borderless styles: 'borderless', 'borderless-3d', 'borderless-moody'.
   6480 
   6481   - The 'borderless' value uses the same colors as the default (nil
   6482     value), but removes the border effect.  This is done by making the
   6483     box property use the same color as the background, effectively
   6484     blending the two and creating some padding.
   6485 
   6486   - The 'borderless-3d' and 'borderless-moody' approximate the '3d' and
   6487     'moody' options respectively, while removing the borders.  However,
   6488     to ensure that the inactive modelines remain visible, they apply a
   6489     slightly more prominent background to them than what their
   6490     counterparts do (same inactive background as with the default).
   6491 
   6492   The complete list of options:
   6493 
   6494     1. nil (default)
   6495     2. 3d
   6496     3. moody
   6497     4. borderless
   6498     5. borderless-3d
   6499     6. borderless-moody
   6500 
   6501 + 'modus-themes-lang-checkers' provides several styles for spell
   6502   checkers and code linters with regard to how they underline text.  The
   6503   default (nil) is to use a colour-coded wavy underline, without
   6504   changing the foreground of the affected text.  Other options include
   6505   the ability to set a straight underline and to control the saturation
   6506   of the foreground, while one also provides for a change in the
   6507   background of the text in question.  The valid symbols are as follows
   6508   (read the manual for more on the matter):
   6509 
   6510     1. nil (default)
   6511     2. straight-underline
   6512     3. subtle-foreground
   6513     4. subtle-foreground-straight-underline
   6514     5. intense-foreground
   6515     6. intense-foreground-straight-underline
   6516     7. colored-background
   6517 
   6518 + The 'modus-themes-org-habit' lets users pick between three styles for
   6519   the 'org-habit' table: (1) nil (the default), which uses a total of
   6520   eight colours, (2) 'simplified' which reduces the effective colours to
   6521   four, while applying less saturated hues, and (3) 'traffic-light'
   6522   which bring the colour count to three, thus blending the "clear" and
   6523   "ready" states for workflows where the distinction between is not
   6524   useful.
   6525 
   6526   Please read the manual for a more detailed description of those
   6527   variants.
   6528 
   6529   Thanks to Gustavo Barros for suggesting the idea, providing user
   6530   feedback on stylistic choices, as well as sharing insights on the
   6531   workflow that made the 'traffic-light' style possible:
   6532   <https://gitlab.com/protesilaos/modus-themes/-/issues/135>.
   6533 
   6534 + 'modus-themes-variable-pitch-ui' when set to a non-nil value applies a
   6535   proportionately spaced typeface (controlled by the 'variable-pitch'
   6536   face) to the User Interface, specifically the mode line, header line,
   6537   and tab-{bar,line}.
   6538 
   6539 + The existing 'modus-themes-links' variable now has a colourless
   6540   stylistic alternative: 'underline-only'.  The available styles:
   6541 
   6542     1. nil (default)
   6543     2. faint
   6544     3. neutral-underline
   6545     4. faint-neutral-underline
   6546     5. no-underline
   6547     6. underline-only
   6548 
   6549 + The existing 'modus-themes-prompts' variable has two new grayscale
   6550   styles: 'subtle-gray', 'intense-gray'.  Furthermore, their old
   6551   'subtle' and 'intense' values have more informative aliases in the
   6552   form of 'subtle-accented' and 'intense-accented'.  All available
   6553   values:
   6554 
   6555     1. nil (default)
   6556     2. subtle-accented ('subtle' remains for backward-compatibility)
   6557     3. intense-accented ('intense' remains for backward-compatibility)
   6558     4. subtle-gray
   6559     5. intense-gray
   6560 
   6561 + The existing 'modus-themes-headings' variable now accepts two new
   6562   styles: 'no-color', 'no-color-no-bold'.  All stylistic variants:
   6563 
   6564     1.  nil (default fallback option---covers all heading levels)
   6565     2.  t (default style for a single heading, when the fallback differs)
   6566     3.  no-bold
   6567     4.  line
   6568     5.  line-no-bold
   6569     6.  rainbow
   6570     7.  rainbow-line
   6571     8.  rainbow-line-no-bold
   6572     9.  highlight
   6573     10. highlight-no-bold
   6574     11. rainbow-highlight
   6575     12. rainbow-highlight-no-bold
   6576     13. section
   6577     14. section-no-bold
   6578     15. rainbow-section
   6579     16. rainbow-section-no-bold
   6580     17. no-color
   6581     18. no-color-no-bold
   6582 
   6583   Please read the manual for instructions on how to apply those
   6584   universally or on a per-level basis.
   6585 
   6586 
   6587 Added support for packages
   6588 --------------------------
   6589 
   6590 + cfrs (used by treemacs)
   6591 + cperl-mode
   6592 + diredc
   6593 
   6594 + display-fill-column-indicator-mode.  Thanks to Gustavo Barros for the
   6595   feedback: <https://gitlab.com/protesilaos/modus-themes/-/issues/148>.
   6596 
   6597 + evil-snipe.  Thanks to Peter Wu for the feedback:
   6598   <https://gitlab.com/protesilaos/modus-themes/-/issues/139>.
   6599 
   6600 + isl (isearch-light).  Thanks to Manuel Uberti for the feedback:
   6601   <https://gitlab.com/protesilaos/modus-themes/-/issues/144>.
   6602 
   6603 + marginalia
   6604 + org-tree-slide
   6605 + recursion-indicator
   6606 
   6607 + solaire.  Thanks to CsBigDataHub1 for the feedback:
   6608   <https://gitlab.com/protesilaos/modus-themes/-/issues/137>.
   6609 
   6610 
   6611 Refinements to already supported faces
   6612 --------------------------------------
   6613 
   6614 + Reviewed the 'rainbow-delimiters' faces.  Everything is documented in
   6615   a separate report (with screenshots).  The short version is that we
   6616   pay close attention to detail and are willing to go to great lengths
   6617   in pursuit of improving the overall user experience:
   6618   <https://protesilaos.com/codelog/2020-12-27-modus-themes-review-rainbow-delimiters/>.
   6619 
   6620 + Updated the dedicated colours for 'whitespace-mode'.  The background
   6621   should now be easier to discern.  Also removed any remaining
   6622   inconsistencies.  Thanks to Toon Claes for the feedback:
   6623   <https://gitlab.com/protesilaos/modus-themes/-/issues/149>.
   6624 
   6625 + Refined the faces of regexp constructs for strings affected by certain
   6626   values passed to the 'modus-themes-syntax' option.  This is done to
   6627   disambiguate the backslashes and grouping delimiters from the rest of
   6628   the string.  The relevant values for 'modus-themes-syntax' are:
   6629 
   6630   - green-strings
   6631   - yellow-comments-green-strings
   6632   - alt-syntax
   6633   - alt-syntax-yellow-comments
   6634 
   6635   The default colour for strings is blue, while regexp faces are yellow
   6636   and red, whereas in those variants the strings become green, hence the
   6637   need to make regexp faces more distinct (blue and magenta contrast
   6638   better with green and also between themselves, thus matching the
   6639   alternative aesthetics).
   6640 
   6641 + Reviewed dictionary.el faces (which ships with Emacs 28):
   6642 
   6643   - Made 'dictionary-reference-face' look like all other links.
   6644 
   6645   - Removed all properties from 'dictionary-word-definition-face':
   6646     the default sets a font family, which can create inconsistencies.
   6647 
   6648   - Converted 'dictionary-word-entry-face' into comment-like text.
   6649 
   6650 + Refined and expanded the faces of Consult.
   6651 
   6652   - Made its grep commands look the same as those of all other grep
   6653     tools.
   6654 
   6655   - Ensured that line number previews, such as for the 'consult-line'
   6656     command use their own style of a subtle foreground instead of
   6657     inheriting from the 'line-number' face.  This is to avoid cases
   6658     where previewed numbers and actual line numbers could be conflated
   6659     for one another.
   6660 
   6661   - Removed the foreground pertinent to 'consult-imenu-prefix', as its
   6662     bold weight combined with the structure of Imenu indices was deemed
   6663     sufficient to differentiate it from actual 'consult-imenu' targets.
   6664 
   6665 + Eliminated exaggerations in the use of colour for various 'which-key'
   6666   faces.
   6667 
   6668 + Removed the needless background from the 'log-view-commit-body' face.
   6669   This is a new face that ships with Emacs 28 (its inclusion upstream
   6670   was documented in the last changelog entry).
   6671 
   6672 + Applied a subtle background to the 'log-view-message' face, in the
   6673   interest of improving the usability of its interface, in particular,
   6674   to contribute to heightened situational awareness while invoking
   6675   'log-view-toggle-entry-display' in buffers such as those produced by
   6676   'vc-print-root-log'.
   6677 
   6678 + Introduced a neutral background for all 'outline-minor-faces' instead
   6679   of merely mirroring the style of 'outline-mode' headings.  This is
   6680   because it can sometimes be hard to tell whether 'outline-minor-mode'
   6681   is active, provided certain fairly common configurations in the
   6682   'modus-themes-headings' user option (refer to the manual for all
   6683   customisation options).
   6684 
   6685 + Tweaked 'diff-mode' headings.
   6686 
   6687   - Adjusted the values of the dedicated colours for diff headings in
   6688     order to amplify their relative contrast.
   6689 
   6690   - Assigned a bold typographic weight to the 'diff-hunk-header' face so
   6691     as to enforce a greater sense of structure.
   6692 
   6693   - Instructed 'diff-function' to inherit 'modus-theme-diff-heading' in
   6694     order to eliminate exaggerations in colouration.
   6695 
   6696 + Removed unnecessary underline from 'selectrum-current-candidate'.
   6697   Thanks to Daniel Mendler for the feedback:
   6698   <https://gitlab.com/protesilaos/modus-themes/-/issues/132>.
   6699 
   6700 + Made 'counsel-outline' inherit from the underlying Org faces.  Also
   6701   corrected the style of 'counsel-outline-default' to use the main
   6702   foreground colour.  Thanks to Gustavo Barros for the feedback:
   6703   <https://gitlab.com/protesilaos/modus-themes/-/issues/134>.
   6704 
   6705 + Prevented headings, ultimately governed by the 'modus-themes-headings'
   6706   user option, from inheriting the 'default' face as that could lead to
   6707   unintended consequences, such as by retaining a background colour when
   6708   none was expected.
   6709 
   6710 + Refashioned all faces that specified a foreground value of 'fg-alt' to
   6711   inherit the 'shadow' face instead ('fg-alt' is the colour that is
   6712   used, for example, in code comments by default).  This makes it
   6713   possible for users to enact change across the theme just by tweaking
   6714   'shadow'.
   6715 
   6716 + Fixed 'ruler-mode' text scaling adjustment, to make it cope well with
   6717   'text-scale-adjust' and relevant commands.  Also introduced minor
   6718   stylistic changes to the remainder of the 'ruler-mode' faces.
   6719 
   6720 + Eliminated the potentially problematic form of ':foreground nil' from
   6721   the 'org-ellipsis' face.  In such cases it is always better to either
   6722   specify no foreground whatsoever, or declare an unspecified value.
   6723 
   6724 
   6725 Patches from the community
   6726 --------------------------
   6727 
   6728 Remember that the themes are part of Emacs and, thus, contributions that
   6729 exceed a cumulative total of ~15 lines require the assignment of
   6730 copyright to the Free Software Foundation.  Please consult the themes'
   6731 manual on the matter.
   6732 
   6733 + Nicolas De Jaeghere added support for 'exwm-floating-border-color':
   6734   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/15>.
   6735 
   6736 + Anders Johansson added support for 'helm-fd-finish':
   6737   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/16>.
   6738 
   6739 + Carlo Zancanaro fixed misquoting of 'tuareg-font-lock-multistage-face':
   6740   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/17>.
   6741 
   6742 + Xinglu Chen expanded Notmuch support to all its remaining faces:
   6743   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/18>.
   6744 
   6745 + Kostadin Ninev added support for Dired+:
   6746   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/19>.
   6747 
   6748 + Nicolas De Jaeghere expanded the supported items of 'pdf-faces'.  Also
   6749   added an entry to the manual pertaining to link hints and the
   6750   requisite setup:
   6751   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/20>.
   6752 
   6753 + Nicolas De Jaeghere wrote the new 'modus-themes-with-colors' macro,
   6754   which is documented at length in the manual:
   6755   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/21>.
   6756 
   6757 + Nicolas De Jaeghere set up the infrastructure that grants users the
   6758   ability to override palette colors; an option that was removed in the
   6759   transition from version 0.13.0 to 1.0.0.  The relevant variables are
   6760   'modus-themes-colors-operandi', 'modus-themes-colors-vivendi' (again,
   6761   consult the manual):
   6762   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/23>.
   6763 
   6764 + Nicolas De Jaeghere deleted the 'modus-themes-core.el' file and merged
   6765   its contents into the main 'modus-themes.el' library:
   6766   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/24> and
   6767   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/25>.
   6768 
   6769 + Nicolas De Jaeghere made the 'compilation-info' face consistent with
   6770   other compilation faces in terms of their optional bold weight:
   6771   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/26>.
   6772 
   6773 Any remaining faults that may exist, despite our best intentions to
   6774 remove them, are those of the maintainer and will be addressed as soon
   6775 as they are identified.
   6776 
   6777 FSF copyright status:
   6778 
   6779 | Full name           | Copyright    |
   6780 |---------------------+--------------|
   6781 | Anders Johansson    | covered      |
   6782 | Carlo Zancanaro     | not required |
   6783 | Kostadin Ninev      | covered      |
   6784 | Nicolas De Jaeghere | covered      |
   6785 | Xinglu Chen         | not required |
   6786 
   6787 
   6788 Theme-related contributions to the wider community
   6789 --------------------------------------------------
   6790 
   6791 + Helped address an incomplete colour value in 'org-transclusion-block':
   6792   <https://github.com/nobiot/org-transclusion/issues/41>.
   6793 
   6794 + Contributed to the formation of the zebra striping of 'embark':
   6795   <https://github.com/oantolin/embark/commit/bb4ae2a666ab1f4a307edd71f77bcbb90fb25cef>.
   6796 
   6797 + Reviewed the faces of 'goggles':
   6798   <https://github.com/minad/goggles/commit/d6e584a2c9487d3df4aee818c43485e437cb87ef>.
   6799 
   6800 + Helped raise awareness about refactoring 'org-tree-slide-header-overlay-face':
   6801   <https://github.com/takaxp/org-tree-slide/issues/38>.
   6802 
   6803 + Reported an issue for Moody that would affect the subset of Emacs 28
   6804   users who enable the new 'mode-line-compact' option:
   6805   <https://github.com/tarsius/moody/issues/28>.
   6806 
   6807 + Did the same for Keycast: <https://github.com/tarsius/keycast/issues/13>.
   6808 
   6809 + Defined the new 'perl-non-scalar-variable' in upstream Emacs:
   6810   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45840>.
   6811 
   6812 
   6813 Miscellaneous
   6814 -------------
   6815 
   6816 + Created a new palette subset for "graph" colours, as none of the
   6817   existing paradigms would suffice for cases where faithfulness to
   6818   colour huenesss is important.  Those are currently used by
   6819   'modus-themes-org-habit'.
   6820 
   6821 + Ensured that theme functions which need to produce an error message do
   6822   so by calling 'error' instead of 'user-error'.
   6823 
   6824 + Added a 'modus-themes-load-themes' function that users can add to
   6825   their init files.
   6826 
   6827 + Expanded the project's git repo README file with a sample
   6828   'use-package' configuration.
   6829 
   6830 + The previous two points followed from an inquiry into the subtleties
   6831   between 'enable-theme' and 'load-theme'.  Those are now documented at
   6832   length in the manual.
   6833 
   6834 + Added screenshots to the web page that holds the official manual.
   6835   Thanks to Damien Cassou for the feedback:
   6836   <https://gitlab.com/protesilaos/modus-themes/-/issues/147>.
   6837 
   6838 + Swapped the values of 'cyan-faint' and 'cyan-alt-faint' for Modus
   6839   Vivendi.
   6840 
   6841 + Tweaked 'font-lock-doc-face' and 'font-lock-type-face' variations when
   6842   "faint syntax" is in effect: (setq modus-themes-syntax 'faint).
   6843 
   6844 + Refined 'font-lock-doc-face' for when modus-themes-syntax is given a
   6845   value of either 'yellow-comments-green-strings' or 'green-strings'.
   6846   The changes are minor when treated in isolation, though they have
   6847   helped improve the overall consistency of the end result: the gestalt.
   6848 
   6849 + Reviewed select "faint" colours for both Modus Operandi and Modus
   6850   Vivendi.  The technicalities are discussed in a complete report:
   6851   <https://protesilaos.com/codelog/2021-01-11-modus-themes-review-select-faint-colours/>.
   6852 
   6853 + Ensured that (setq modus-themes-syntax 'alt-syntax) and its "yellow
   6854   comments" variant are more truthful to their intended style, by
   6855   eliminating any exaggerations in the use of colour.
   6856 
   6857 + Adjusted the saturation of the green-alt value of Modus Vivendi.
   6858 
   6859 + Updated the manual to reflect all of the aforementioned.
   6860 
   6861 Thanks once again to everyone who contributed patches or reported an
   6862 issue.  This has been yet another period of intense work; work which
   6863 helps solidify the Modus themes as (i) uncompromisingly accessible in
   6864 accordance with the highest legibility standard, (ii) highly
   6865 customisable in true Emacs fashion, (iii) thoroughly comprehensive in
   6866 terms of face coverage, and (iv) meticulously designed throughout.
   6867 #+end_src
   6868 
   6869 * 1.0.0
   6870 :PROPERTIES:
   6871 :CUSTOM_ID: h:94b5915e-1085-4859-ac9f-daf91e007741
   6872 :END:
   6873 
   6874 #+begin_src text
   6875 Modus themes version 1.0.0
   6876 
   6877 By Protesilaos Stavrou <info@protesilaos.com> on 2020-12-05
   6878 
   6879 This entry documents the changes since version 0.13.0 (2020-10-08).
   6880 They constitute a major release with backward-incompatible additions
   6881 which are described below.
   6882 
   6883 As always, every colour-related modification documented herein conforms
   6884 with the overarching accessibility objective of the themes for a minimum
   6885 contrast ratio of 7:1 between background and foreground values in their
   6886 given combination (conformance with the WCAG AAA standard).
   6887 
   6888 Expect to find examples of basic and advanced customisations in the
   6889 comprehensive Info manual bundled with the themes, which is also
   6890 available at: <https://protesilaos.com/emacs/modus-themes>.
   6891 
   6892 
   6893 Overview of major changes
   6894 =========================
   6895 
   6896 0. The option that was present in earlier releases to override the
   6897    colour palette has been removed.  It cannot work with byte
   6898    compilation.  We must not compromise on performance, especially in
   6899    light of the fairly high line count of the themes (broad face
   6900    coverage combined with a multitude of customisation options).
   6901 
   6902 1. The code base has been refactored.  The two themes, Modus Operandi
   6903    (light) and Modus Vivendi (dark), derive from the same source.
   6904 
   6905 2. The refactoring makes it possible to distribute the two themes as
   6906    part of a single package.  You can find 'modus-themes' on MELPA, with
   6907    other archives and core Emacs following suit soon thereafter (the
   6908    Modus themes are built into Emacs since their version 0.12.0).
   6909 
   6910 3. The 'modus-operandi-theme' and 'modus-vivendi-theme' packages in
   6911    MELPA and GNU ELPA are obsolete.  MELPA has already deleted them and
   6912    now only provides 'modus-themes', while GNU ELPA shall do so soon
   6913    enough.
   6914 
   6915    + Package providers of GNU/Linux distros, or other archives, are
   6916      encouraged to update their sources so that they only deliver a
   6917      single package that covers both themes.
   6918 
   6919 4. To avoid surprises, the refactored code is in the 'main' branch which
   6920    becomes the default henceforth.  The 'master' branch, from where all
   6921    prior releases were built, is thus deprecated.  Existing installs of
   6922    'modus-operandi-theme' and/or 'modus-vivendi-theme' must manually
   6923    switch to the new package sources, which offer a certain guarantee
   6924    that they are informed of the breaking changes documented herein.
   6925 
   6926    + Users of 'straight.el' must make sure that they pull from the
   6927      'main' branch.  This may also be the case for other such tools,
   6928      though I have not had the time to test them all.
   6929 
   6930 5. The refactoring introduces a unified customisation framework.  Now
   6931    all user-facing variables are named 'modus-themes-*' instead of
   6932    'modus-operandi-*' and 'modus-vivendi-*'.  Users of both items can
   6933    thus cut down on duplicate code or inelegant workarounds on their
   6934    end.  Example:
   6935 
   6936        modus-operandi-bold-constructs
   6937           |   |   |   |   |   |   |   ====> modus-themes-bold-constructs
   6938        modus-vivendi-bold-constructs
   6939 
   6940 6. The themes now provide common user-facing functions.
   6941 
   6942    + 'modus-themes-load-operandi' and 'modus-themes-load-vivendi' can be
   6943      used in Lisp to load the theme they name, while disabling their
   6944      counterpart and running 'modus-themes-after-load-theme-hook'.  The
   6945      hook can be used to override or further customise faces (examples
   6946      are furnished in the manual).
   6947 
   6948    + 'modus-themes-toggle' interactively switches between Modus Operandi
   6949      and Modus Vivendi or opens a minibuffer prompt to select between
   6950      the two if none of them is active.  It ultimately calls the
   6951      aforementioned functions to load the themes, so it also triggers
   6952      the hook.  Bind this command to a key of your convenience (the
   6953      author uses F5).
   6954 
   6955    + 'modus-themes-color' returns the colour value of a symbol in the
   6956      alists that hold the themes' palettes.  The alists are
   6957      'modus-themes-colors-operandi' and 'modus-themes-colors-vivendi'.
   6958      'modus-themes-color' always operates on the active theme, making it
   6959      suitable for post-theme-load customisations (via the hook we
   6960      covered earlier).  Its usage is documented in the manual and is
   6961      meant to be employed by those who are prepared to assume
   6962      responsibility for face-related changes they introduce on their
   6963      setup.
   6964 
   6965    + 'modus-themes-color-alts' occupies the same niche as the one right
   6966      above, with the exception that it takes two arguments.  The first
   6967      is the alist key to be used by 'modus-operandi' and the second is
   6968      for 'modus-vivendi'.
   6969 
   6970    + 'modus-themes-wcag-formula' implements the WCAG formula to measure
   6971      a colour value's relative luminance.  While 'modus-themes-contrast'
   6972      applies the formula to derive the contrast ratio between two colour
   6973      values in hexadecimal RGB notation.  This can be used to verify the
   6974      accessibility of colour combinations provided by the themes or new
   6975      ones defined at the user level (the Modus themes conform with the
   6976      WCAG AAA standard which means that this kind of contrast is 7:1 or
   6977      higher for all applicable background+foreground combinations).
   6978 
   6979 
   6980 Customisation options
   6981 =====================
   6982 
   6983 This is the complete list with all the customisation options:
   6984 
   6985     modus-themes-slanted-constructs             (boolean)
   6986     modus-themes-bold-constructs                (boolean)
   6987     modus-themes-variable-pitch-headings        (boolean)
   6988     modus-themes-no-mixed-fonts                 (boolean)
   6989     modus-themes-headings                       (alist)
   6990     modus-themes-scale-headings                 (boolean)
   6991     modus-themes-fringes                        (choice)
   6992     modus-themes-org-blocks                     (choice)
   6993     modus-themes-prompts                        (choice)
   6994     modus-themes-mode-line                      (choice)
   6995     modus-themes-diffs                          (choice)
   6996     modus-themes-syntax                         (choice)
   6997     modus-themes-intense-hl-line                (boolean)
   6998     modus-themes-paren-match                    (choice)
   6999     modus-themes-region                         (choice)
   7000     modus-themes-links                          (choice)
   7001     modus-themes-completions                    (choice)
   7002 
   7003 Plus those which are contingent on 'modus-themes-scale-headings':
   7004 
   7005     modus-themes-scale-1
   7006     modus-themes-scale-2
   7007     modus-themes-scale-3
   7008     modus-themes-scale-4
   7009     modus-themes-scale-5
   7010 
   7011 Consult the manual for each of them and please verify that none of the
   7012 older options remains in your init file.
   7013 
   7014 
   7015 Customisation options that did not exist in earlier versions
   7016 ------------------------------------------------------------
   7017 
   7018 New entries and their possible values:
   7019 
   7020 1. modus-themes-syntax
   7021 
   7022    ,* nil (default)
   7023    ,* faint
   7024    ,* yellow-comments
   7025    ,* green-strings
   7026    ,* yellow-comments-green-strings
   7027    ,* alt-syntax
   7028    ,* alt-syntax-yellow-comments
   7029 
   7030    (supersedes options for "faint syntax" and "comments")
   7031 
   7032 2. modus-themes-links
   7033 
   7034    ,* nil (default)
   7035    ,* faint
   7036    ,* neutral-underline
   7037    ,* faint-neutral-underline
   7038    ,* no-underline
   7039 
   7040    (supersedes options for "no underlines")
   7041 
   7042 3. modus-themes-paren-match
   7043 
   7044    ,* nil (default)
   7045    ,* intense
   7046    ,* subtle-bold
   7047    ,* intense-bold
   7048 
   7049    (supersedes options for "intense paren match")
   7050 
   7051 4. modus-themes-region
   7052 
   7053    ,* nil (default)
   7054    ,* no-extend
   7055    ,* bg-only
   7056    ,* bg-only-no-extend
   7057 
   7058 Furthermore, the 'modus-themes-diff' has a new option to choose from:
   7059 the symbol 'bg-only'.  It applies colour-coded backgrounds but does not
   7060 override any syntax highlighting that may be present.  This makes it
   7061 suitable for use with a non-nil value for diff-font-lock-syntax (which
   7062 is the default for diff-mode buffers in Emacs 27 or higher).
   7063 
   7064 
   7065 Support for new faces or face groups
   7066 ====================================
   7067 
   7068 + consult
   7069 + macrostep
   7070 + make-mode
   7071 + pdf-tools
   7072 + popup
   7073 + shr
   7074 + sieve-mode
   7075 
   7076 (remember that the list of supported packages is already comprehensive)
   7077 
   7078 Thanks to:
   7079 
   7080 + Adam Spiers for bringing 'macrostep' to my attention.
   7081 
   7082 + Madhavan Krishnan for submitting the code for pdf-tools:
   7083   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/14>.
   7084 
   7085 + Manuel Uberti for reporting the issue with popup.el:
   7086   <https://gitlab.com/protesilaos/modus-themes/-/issues/107>.
   7087 
   7088 + Again thanks to Manuel for consult:
   7089   <https://gitlab.com/protesilaos/modus-themes/-/issues/123>.  And to
   7090   Daniel Mendler, its developer, for communicating with us on the status
   7091   of the project.
   7092 
   7093 + Togan Muftuoglu for reporting the issue with sieve-mode:
   7094   <https://gitlab.com/protesilaos/modus-themes/-/issues/121>.
   7095 
   7096 
   7097 Refinements to existing faces
   7098 =============================
   7099 
   7100 + The diary and holiday marks in 'M-x calendar' are displayed using a
   7101   slightly tinted background in order to improve their contrast.
   7102   Holidays are also rendered in a bold font.  Thanks to Nicolas De
   7103   Jaeghere for reporting the issue and following it up with valuable
   7104   feedback: <https://gitlab.com/protesilaos/modus-themes/-/issues/127>.
   7105 
   7106 + Code blocks in 'markdown-mode' now have a subtle background that
   7107   extends to the edge of the window.  Thanks to Roman Rudakov for the
   7108   suggestion and Hörmetjan Yiltiz for further testing:
   7109   <https://gitlab.com/protesilaos/modus-themes/-/issues/115>.
   7110 
   7111 + Inline code in 'markdown-mode' has a subtle background that covers the
   7112   length of the construct.  Refer to issue #115 as above.
   7113 
   7114 + Ivy's main pattern-matching faces are slightly adjusted to work more
   7115   effectively when users opt for "modus-themes-completions 'moderate" or
   7116   "modus-themes-completions 'opinionated".
   7117 
   7118 + Swiper's 'swiper-isearch' command defaults to a more colourful
   7119   presentation that clearly disambiguates matching pattern groups
   7120   between themselves as well as their own active and inactive states.
   7121   Thanks to John Haman for reporting the problem:
   7122   <https://gitlab.com/protesilaos/modus-themes/-/issues/125>.
   7123 
   7124 + Swiper's remaining faces are tweaked to better convey the intent of
   7125   this tool.
   7126 
   7127 + The border of 'ivy-posframe' is more noticeable.  Thanks to Pete
   7128   Kazmier: <https://gitlab.com/protesilaos/modus-themes/-/issues/126>.
   7129 
   7130 + The 'fringe' face no longer returns a nil background, which allows
   7131   'dap-ui-controls-mode' to display things properly.  Thanks to Simon
   7132   Pugnet: <https://gitlab.com/protesilaos/modus-themes/-/issues/106>.
   7133 
   7134 + Tags and priority cookies in Org mode no longer have a box property.
   7135   This is because of changes in upstream Org that we helped solve and
   7136   that are covered in the previous CHANGELOG entry (in short: Org
   7137   heading constructs inherit the underlying heading's properties that
   7138   are not part of their own specs, while they retain those that are
   7139   explicitly defined for them---adaptive headings).  Properly solves the
   7140   following issues:
   7141 
   7142   ,* <https://gitlab.com/protesilaos/modus-themes/-/issues/104>.  Thanks
   7143     to user "bepolymathe".
   7144 
   7145   ,* <https://gitlab.com/protesilaos/modus-themes/-/issues/95>.  Thanks
   7146     to Roman Rudakov.
   7147 
   7148 + The faces of 'M-x re-builder' are less intrusive.
   7149 
   7150 + All the following now inherit from basic font-lock faces and thus
   7151   benefit from options such as 'modus-themes-syntax':
   7152 
   7153   ,* geiser
   7154   ,* nxml-mode
   7155   ,* tuareg
   7156   ,* web-mode
   7157   ,* xah-elisp-mode
   7158 
   7159 + Diff headers have a subtle grey background that extends to the edge of
   7160   the window.
   7161 
   7162 + The faces of log-view and change-log use colour combinations that
   7163   better differentiate the various objects on display.
   7164 
   7165 + 'font-lock-type-face' uses a cyan hue instead of magenta.
   7166 
   7167 + 'magit-header-line-key' uses a blue foreground colour instead of red.
   7168 
   7169 + Doc strings in code syntax are rendered in a new dedicated colour.
   7170   The change is fairly subtle and should practically go unnoticed.
   7171 
   7172 + 'org-date' now respects the 'modus-themes-no-mixed-fonts' option.
   7173   Thanks to user "fleimgruber" for reporting the issue:
   7174   <https://gitlab.com/protesilaos/modus-themes/-/issues/124>.
   7175 
   7176 + 'org-property-value' uses a slightly different shade of cyan.
   7177 
   7178 + 'dim-autoload' will always look like a regular comment.
   7179 
   7180 + The 'italic' face is inhereted by all relevant faces instead of
   7181   hard-wiring a slant property.  This offers the potential advantage of
   7182   specifying a distinct family (or other properties) for constructs that
   7183   are meant to be rendered in italics (the manual has an example in its
   7184   DIY sections for this scenario though it uses the 'bold' face---just
   7185   apply the same idea to the 'italic' face).
   7186 
   7187 + 'dictionary-reference-face' inherits from 'button' (as with all
   7188   links).
   7189 
   7190 + Several comment-related faces beyond the basic ones work with
   7191   'modus-themes-syntax' when that has an effect on the colour of
   7192   comments.  The faces are:
   7193 
   7194   ,* git-commit-comment-file
   7195   ,* git-commit-comment-heading
   7196   ,* git-rebase-comment-hash
   7197   ,* git-rebase-comment-heading
   7198 
   7199 + 'transient-value' is more noticeable and fits better in its context.
   7200 
   7201 + All remaining Org metadata-related faces are refined for consistency
   7202   between them in an attempt to make them unobtrusive.  More subtle
   7203   colouration is applied.  Affected faces:
   7204 
   7205   ,* org-drawer
   7206   ,* org-property-value
   7207   ,* org-special-keyword
   7208 
   7209 
   7210 Theme-related contributions to the wider community
   7211 ==================================================
   7212 
   7213 + Defined the 'log-view-commit-body' for Emacs 28.1:
   7214   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg00303.html>
   7215   and
   7216   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg02196.html>.
   7217 
   7218 + Specified the version of the 'diff-error' face for Emacs 28.1:
   7219   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg01328.html>.
   7220 
   7221 + Added the 'org-dispatcher-highlight' face to upstream Org:
   7222   <https://lists.gnu.org/archive/html/emacs-orgmode/2020-10/msg00158.html>.
   7223 
   7224   ,* Report with screenshots:
   7225     <https://protesilaos.com/codelog/2020-10-24-org-export-dispatcher-face/>.
   7226 
   7227 + Helped fix face of Flymake's unknown backend in inactive modelines:
   7228   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg01119.html>.
   7229 
   7230 + Solved bug#44198 about a user not knowning the themes are in Emacs:
   7231   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-10/msg02001.html>.
   7232 
   7233 
   7234 Miscellaneous
   7235 =============
   7236 
   7237 + The new default 'main' branch of the Modus themes' git repo is an idea
   7238   that was presented by user "Emacs Contrib" in issue 112:
   7239   <https://gitlab.com/protesilaos/modus-themes/-/issues/112>.  Raising
   7240   awareness about the negative impact of potentially, tacitly, or
   7241   explicitly offensive language is a goal worth pursuing.  Plus "main"
   7242   is a more appropriate name for the primary branch of a project and we
   7243   do not lose anything by introducing this change as part of version
   7244   1.0.0, which anyhow requires manual interventions in user
   7245   configurations.
   7246 
   7247 + Thanks to Manuel Uberti, Jeremy Friesen, and Gitlab user "Eugene" for
   7248   their feedback during the process that eventually led to the
   7249   development of the 'modus-themes-syntax' customisation option:
   7250   <https://gitlab.com/protesilaos/modus-themes/-/issues/105>.
   7251 
   7252 + Thanks to André Alexandre Gomes for the feedback in issue 111, which
   7253   led to the simplification of the manual's references to Guix:
   7254   <https://gitlab.com/protesilaos/modus-themes/-/issues/111>.
   7255 
   7256 + Thanks to Nicolas De Jaeghere for noting that BBDB is indirectly
   7257   supported: <https://gitlab.com/protesilaos/modus-themes/-/issues/128>.
   7258 
   7259 Between the refactoring of the code base and all other changes, this has
   7260 been yet another period of hard work to deliver on the promise of themes
   7261 that are (i) highly accessible and (ii) comprehensive in both their face
   7262 coverage and customisation options, while always conforming with the
   7263 highest accessibility standard for legible text.
   7264 
   7265 Special thanks to the MELPA maintainers for all their contributions.
   7266 MELPA is an integral part of the wider Emacs community.  Thanks, in
   7267 particular, to Chris Rayner who has reviewed all my pull requests
   7268 hitherto, and to Jonas Bernoulli for checking the latest one (and its
   7269 concomitant issue) that introduced the new 'modus-themes' package.
   7270 
   7271 Thank you, the reader, for your attention and for understanding the
   7272 longer term benefits of the refactoring, despite the short term friction
   7273 it may have introduced.
   7274 #+end_src
   7275 
   7276 * 0.13.0
   7277 :PROPERTIES:
   7278 :CUSTOM_ID: h:b529ec46-2a9f-4844-9760-4708d2ca575b
   7279 :END:
   7280 
   7281 #+begin_src text
   7282 Modus Operandi and Modus Vivendi version 0.13.0
   7283 
   7284 By Protesilaos Stavrou <info@protesilaos.com> on 2020-10-08
   7285 
   7286 This entry documents the changes since version 0.12.0 (2020-08-26).
   7287 There have been around 150 commits in the meantime, making this the
   7288 largest release to date (though sheer volume should not be conflated
   7289 with quality, of which there is plenty).
   7290 
   7291 As always, everything described herein conforms with the overarching
   7292 accessibility objective of the themes for a minimum contrast ratio of
   7293 7:1 between background and foreground values in their given combinations
   7294 (conformance with the WCAG AAA standard).
   7295 
   7296 Overview
   7297 ========
   7298 
   7299 1. There is a new Info manual that documents the customisation options
   7300    as well as every other piece of information pertinent to the themes.
   7301    You will find it in the Info pages inside of Emacs.  Or browse it
   7302    online: <https://protesilaos.com/emacs/modus-themes>.
   7303 
   7304 2. New customisation options grant users more power to further adapt the
   7305    active theme to their preferences.
   7306 
   7307 3. Extended coverage for even more faces and face groups, adding to the
   7308    already comprehensive list of directly supported ones.
   7309 
   7310 4. Lots of tweaks to improve the use of colour and avoid exaggerations
   7311    (well, "exaggerations" is relative, since the prior state was already
   7312    carefully designed).
   7313 
   7314 5. A new page hosts all pictures that demo the themes across a wide
   7315    range of scenaria: <https://protesilaos.com/emacs/modus-themes-pictures>.
   7316 
   7317 6. Similarly, the change log also has its own dedicated web page:
   7318    <https://protesilaos.com/emacs/modus-themes-changelog>.
   7319 
   7320 
   7321 New customisation options
   7322 =========================
   7323 
   7324 Note that all customisation options are documented at length in the new
   7325 Info manual.  What is offered here is not necessarily exhaustive.
   7326 
   7327 
   7328 Diff styles
   7329 -----------
   7330 
   7331 Symbol names ("choice" type):
   7332 
   7333 + modus-operandi-theme-diffs
   7334 + modus-vivendi-theme-diffs
   7335 
   7336 Possible values:
   7337 
   7338 1. nil (default)
   7339 2. desaturated
   7340 2. fg-only
   7341 
   7342 DEPRECATED ("boolean" type):
   7343 
   7344 + modus-operandi-theme-subtle-diffs
   7345 + modus-vivendi-theme-subtle-diffs
   7346 
   7347 This option supersedes older ones while retaining their functionality.
   7348 
   7349 The default remains unaltered, meaning that the diffs will use fairly
   7350 prominent colour-coded combinations for the various elements (e.g. green
   7351 text on an unambiguously green backdrop).
   7352 
   7353 A 'desatured' value will tone down the default aesthetic, giving a less
   7354 vibrant feel.
   7355 
   7356 While 'fg-only' removes almost all coloured backgrounds, opting to apply
   7357 colour only to the relevant text (this was the case with the
   7358 now-deprecated options).  There are some exceptions, like word-wise or
   7359 "refined" diffs, which still use coloured backgrounds to convey their
   7360 meaning.
   7361 
   7362 
   7363 Modeline styles
   7364 ---------------
   7365 
   7366 Symbol names ("choice" type):
   7367 
   7368 + modus-operandi-theme-mode-line
   7369 + modus-vivendi-theme-mode-line
   7370 
   7371 Possible values:
   7372 
   7373 1. nil (default)
   7374 2. 3d
   7375 3. moody
   7376 
   7377 DEPRECATED ("boolean" type):
   7378 
   7379 + modus-operandi-theme-3d-modeline
   7380 + modus-vivendi-theme-3d-modeline
   7381 
   7382 The default modeline continues to be a two-dimensional rectangle with a
   7383 border around it.  Active and inactive modelines use different colour
   7384 combinations for their main background and foreground.
   7385 
   7386 Option '3d' produces an effect similar to what you get in a generic
   7387 Emacs session, where the active modeline has a pseudo three-dimensional
   7388 effect applied to it.  This option offers the same functionality as that
   7389 of the deprecated variables.
   7390 
   7391 Option 'moody' is designed specifically for use with the Moody library,
   7392 though it can also be used without it.  Instead of implementing a box
   7393 effect, it applies an overline and underline instead, while also toning
   7394 down the inactive modeline.
   7395 
   7396 Thanks to Nicolas De Jaeghere for the feedback and code samples in issue
   7397 80: <https://gitlab.com/protesilaos/modus-themes/-/issues/80>
   7398 
   7399 
   7400 Headline styles
   7401 ---------------
   7402 
   7403 Symbol names ("alist" type):
   7404 
   7405 + modus-operandi-theme-headings
   7406 + modus-vivendi-theme-headings
   7407 
   7408 DEPRECATED ("boolean" type):
   7409 
   7410 + modus-operandi-theme-rainbow-headings
   7411 + modus-operandi-theme-section-headings
   7412 + modus-vivendi-theme-rainbow-headings
   7413 + modus-vivendi-theme-section-headings
   7414 
   7415 Possible values, which can be specified for each heading level (examples
   7416 further below):
   7417 
   7418 0.  nil (default fallback option---covers all heading levels)
   7419 1.  t (default style for a single heading, when the fallback differs)
   7420 2.  no-bold
   7421 3.  line
   7422 4.  line-no-bold
   7423 5.  rainbow
   7424 6.  rainbow-line
   7425 7.  rainbow-line-no-bold
   7426 8.  highlight
   7427 9.  highlight-no-bold
   7428 10. rainbow-highlight
   7429 11. rainbow-highlight-no-bold
   7430 12. section
   7431 13. section-no-bold
   7432 14. rainbow-section
   7433 15. rainbow-section-no-bold
   7434 
   7435 This supersedes and greatly expands upon what the deprecated variables
   7436 once offered.  It is now possible to (i) benefit from more stylistic
   7437 choices, and (ii) apply them on a per-level basis.
   7438 
   7439 As always, the defaults remain in tact: headings are just rendered in a
   7440 bold weight and their colours are not too saturated to offer a plain
   7441 text impression that relies on typography to convey its meaning.
   7442 
   7443 The info manual explains the details.  A few examples:
   7444 
   7445     ;; Per-level styles (t means everything else)
   7446     (setq modus-operandi-theme-headings
   7447           '((1 . highlight)
   7448             (2 . line)
   7449             (t . rainbow-line-no-bold)))
   7450 
   7451     ;; Uniform style for all levels
   7452     (setq modus-operandi-theme-headings
   7453           '((t . rainbow-line-no-bold)))
   7454 
   7455     ;; Default style for level 1, while others differ
   7456     (setq modus-operandi-theme-headings
   7457           '((1 . t)
   7458             (2 . line)
   7459             (t . rainbow-line-no-bold)))
   7460 
   7461 Thanks to Adam Spiers for the feedback in issue 81:
   7462 <https://gitlab.com/protesilaos/modus-themes/-/issues/81>.  Also thanks
   7463 to Nicolas De Jaeghere for helping refine relevant stylistic choices:
   7464 <https://gitlab.com/protesilaos/modus-themes/-/issues/90>.
   7465 
   7466 
   7467 No link underlines
   7468 ------------------
   7469 
   7470 Symbol names ("boolean" type):
   7471 
   7472 + modus-operandi-theme-no-link-underline
   7473 + modus-vivendi-theme-no-link-underline
   7474 
   7475 Possible values:
   7476 
   7477 1. nil (default)
   7478 2. t
   7479 
   7480 By default, the themes apply an underline effect to links, symbolic
   7481 links, and buttons.  Users can now disable this style by setting the new
   7482 option to 't'.
   7483 
   7484 Thanks to Utkarsh Singh for the feedback in issue 94:
   7485 <https://gitlab.com/protesilaos/modus-themes/-/issues/94>
   7486 
   7487 
   7488 No mixed fonts
   7489 --------------
   7490 
   7491 Symbol names ("boolean" type):
   7492 
   7493 + modus-operandi-theme-no-mixed-fonts
   7494 + modus-vivendi-theme-no-mixed-fonts
   7495 
   7496 Possible values:
   7497 
   7498 1. nil (default)
   7499 2. t
   7500 
   7501 By default, the themes configure some spacing-sensitive faces, such as
   7502 Org tables and code blocks, to always inherit from the 'fixed-pitch'
   7503 face (documented in the manual).  This is to ensure that those
   7504 constructs remain monospaced when users opt for something like the
   7505 built-in 'M-x variable-pitch-mode'.  Otherwise the layout would break.
   7506 
   7507 The obvious downside with this theme design is that users need to
   7508 explicitly configure the font family of 'fixed-pitch' in order to apply
   7509 their desired typeface (how to do this is also covered in the manual).
   7510 That may be something they do not want to do.  Hence this option to
   7511 disable any kind of font mixing done by the active theme.  Set it to
   7512 't'.
   7513 
   7514 
   7515 Support for new faces or face groups
   7516 ====================================
   7517 
   7518 + awesome-tray
   7519 + binder
   7520 + cperl-mode
   7521 + eldoc-highlight-function-argument
   7522 + erc escaped colour sequences
   7523 + eshell-syntax-highlighting
   7524 + flycheck-color-mode-line
   7525 + isearch regexp groups (Emacs version >= 28)
   7526 + mpdel
   7527 + objed
   7528 + org 9.4 new faces: 'org-headline-todo' and 'org-table-header'
   7529 + racket-mode
   7530 + typescript-mode
   7531 
   7532 Thanks to:
   7533 
   7534 + Damien Cassou for reporting the issue with mpdel:
   7535   <https://gitlab.com/protesilaos/modus-themes/-/issues/99>
   7536 
   7537 + Dario Gjorgjevski for reporting the issue with erc:
   7538   <https://gitlab.com/protesilaos/modus-themes/-/issues/92>
   7539 
   7540 + Markus Beppler for contributing the patch for cperl-mode:
   7541   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/11>
   7542 
   7543 + User "Moesasji" for reporting the issue with objed:
   7544   <https://gitlab.com/protesilaos/modus-themes/-/issues/79>
   7545 
   7546 
   7547 Refinements to existing faces
   7548 =============================
   7549 
   7550 + calfw applies colours and styles in a way that makes it consistent
   7551   with the rest of the themes' metaphors.
   7552 
   7553 + diredfl makes more considerate use of colour.  We still apply colour
   7554   everywhere (the whole point of this package) but make sure to avoid
   7555   exaggerations.
   7556 
   7557 + doom-modeline-battery-error face fits better with the rest of the
   7558   design.
   7559 
   7560 + elfeed search buffers use less intense colours, while still keeping
   7561   all elements fairly distinct.  The intent is to avoid a "rainbow
   7562   effect" in such a dense interface.
   7563 
   7564 + elfeed read and unread items are more distinct.
   7565 
   7566 + git commit and vc log edit messages benefit from refined colour
   7567   combinations for their various constructs.  The commit's summary is
   7568   now rendered in a bold weight, to better convey the idea that this is
   7569   a quasi heading element.
   7570 
   7571 + gnus heading colours are more consistent.  All information remains
   7572   clearly distinct, but we now avoid using colours that are on opposite
   7573   sides of the colour spectrum.  Basically to keep things distinct
   7574   without going over the top.
   7575 
   7576 + gnus read and unread items are easier to tell apart.  Thanks to user
   7577   "Nick" for reporting the issue:
   7578   <https://gitlab.com/protesilaos/modus-themes/-/issues/97>.
   7579 
   7580 + help-argument-name has a distinct foreground colour, so that it is
   7581   easier to spot it in "*Help*" buffers.  Its slant is also controlled
   7582   by the active theme's customisation option for slanted constructs (nil
   7583   by default---check the manual).
   7584 
   7585 + helpful-heading now is consistent with other heading styles.  Thanks
   7586   to Nicolas De Jaeghere for reporting the issue:
   7587   <https://gitlab.com/protesilaos/modus-themes/-/issues/90>.
   7588 
   7589 + icomplete, ido, orderless are all tweaked to work better under various
   7590   circumstances.
   7591 
   7592 + info-menu-star uses a red colour to make it easier to select a menu
   7593   entry by estimating its number.  This face applies to every third
   7594   element and is a nice little extra to have.
   7595 
   7596 + info quoted strings are configured to always render in 'fixed-pitch',
   7597   in line with the themes' design for mixed fonts (remember to check the
   7598   relevant customisation option).
   7599 
   7600 + line numbers work properly with 'text-scale-adjust'.  Thanks to user
   7601   "jixiuf" for reporting the issue:
   7602   <https://gitlab.com/protesilaos/modus-themes/-/issues/98>.
   7603 
   7604 + line-number-current-line no longer applies a bold weight to its text.
   7605   This is to avoid a certain "jump effect" while moving between lines,
   7606   where the affected numbers grow and shrink in weight as the line
   7607   changes (once you see it, you will know what I mean).
   7608 
   7609 + line-number-major-tick and line-number-minor-tick do use a bold weight
   7610   because they are fixed on the scale.  Their colours are also improved
   7611   to better complement their intended role (these faces are for Emacs 27
   7612   or higher).
   7613 
   7614 + magit-diff-file-heading-selection, magit-diff-hunk-heading-selection
   7615   use more appropriate colour combinations.
   7616 
   7617 + markdown blockquotes and org quote blocks use a different foreground,
   7618   which is colder than the previous one.  Just to make sure that they
   7619   are not mistaken for inline code.
   7620 
   7621 + message headers use less exaggerated colour combinations.  The
   7622   differences are fairly minor.
   7623 
   7624 + message-mml no longer uses a green foreground, as that could
   7625   potentially cause confusion with quoted text in some cases.  A unique,
   7626   albeit less saturated, foreground is used instead.
   7627 
   7628 + message-separator uses a more neutral colour combination, while
   7629   retaining its overall uniqueness within its context (i.e. mail
   7630   composition).
   7631 
   7632 + modeline colours are refined to improve the contrast between active
   7633   and inactive states.
   7634 
   7635 + mu4e-replied-face has a new colour that accounts for colour distance
   7636   relative to its context.  Thanks to Shreyas Ragavan for reporting the
   7637   issue: <https://gitlab.com/protesilaos/modus-themes/-/issues/69>.
   7638 
   7639 + org agenda date and structure no longer behave like headings in other
   7640   Org buffers.  Instead, they have their own styles to better perform
   7641   their intended function and to avoid exaggerations.
   7642 
   7643 + org agenda dimmed to-do items (which have blocked sub-items) are no
   7644   longer assigned a subtle grey background colour.  They are instead
   7645   rendered with a bold weight and a subtle grey foreground to minimise
   7646   distractions.  Thanks to Roman Rudakov for reporting this in issue
   7647   101: <https://gitlab.com/protesilaos/modus-themes/-/issues/101>.
   7648 
   7649 + org agenda clocked items are configured to extend their background to
   7650   the edge of the window.  Otherwise they are cut off at the last text
   7651   character, which creates inconsistencies while using tags: a tag is
   7652   placed to the right so the background extends further than without
   7653   them.  Based again on the feedback of Roman Rudakov in issue 101:
   7654   <https://gitlab.com/protesilaos/modus-themes/-/issues/101>.
   7655 
   7656 + org agenda current time no longer uses a background.  A bold weight
   7657   and a blue foreground are applied instead.  The intent is to keep
   7658   things clean.  This is also covered by Roman Rudakov's feedback in
   7659   issue 101: <https://gitlab.com/protesilaos/modus-themes/-/issues/101>.
   7660 
   7661 + org-checkbox-statistics-done, org-checkbox-statistics-todo inherit
   7662   from org-done and org-todo respectively, instead of defining their own
   7663   properties.
   7664 
   7665 + org drawers and their data now use 'fixed-pitch' in the interest of
   7666   consistency with other metadata-like faces.  Thanks (yet again!) to
   7667   Nicolas De Jaeghere for reporting the issue:
   7668   <https://gitlab.com/protesilaos/modus-themes/-/issues/91>.
   7669 
   7670 + org-footnote underlines will now always use the same colour, instead
   7671   of applying the one of other coloured constructs (e.g. when the
   7672   footnote is inline and part of the text is rendered as verbatim).
   7673 
   7674 + org-meta-line is less prominent and, thus, more consistent with other
   7675   metadata-related constructs.
   7676 
   7677 + org-roam faces are updated to match the current state of the upstream
   7678   project.  The main colour of org-roam links is now different than that
   7679   of standard links in an attempt to differentiate between the two (due
   7680   to their unique semantics).  If this is not desired, you can evaluate
   7681   the following:
   7682 
   7683       (setq org-roam-link-use-custom-faces nil)
   7684 
   7685 + org-todo, org-done, as well as relevant faces such as priorities and
   7686   statistics are reviewed to work better with all heading combinations.
   7687   Though please read the next section about "adaptive headings", as such
   7688   workarounds will no longer be necessary for future stable releases of
   7689   Org.
   7690 
   7691 + selectrum uses different styles than before to account for its unique
   7692   property of overlaying matching characters on top of the current
   7693   line's background.  We want to avoid scenaria where matches are
   7694   difficult to discern and the current line is not clear.
   7695 
   7696 + vc modeline states benefit from improved colour choices.  Just minor
   7697   adjustments to account for the review of the base modeline colours.
   7698 
   7699 + vterm base colours now are variants of gray to ensure that some tools,
   7700   such as zsh suggestions work properly.  Thanks to user "jixiuf" for
   7701   reporting this issue and suggesting a possible solution:
   7702   <https://gitlab.com/protesilaos/modus-themes/-/issues/93>.
   7703 
   7704 Contributions to the wider community
   7705 ====================================
   7706 
   7707 Sometimes the themes reveal bugs in other packages.  It is of paramount
   7708 importance that we report those to the upstream developers, try to help
   7709 them reproduce the issue, and, where possible, support them in tracing
   7710 the problem's root cause.
   7711 
   7712 Four such cases during this release:
   7713 
   7714 1. Adaptive Org headings.  Solved upstream and documented on my website:
   7715    <https://protesilaos.com/codelog/2020-09-24-org-headings-adapt/>.
   7716    Reported and discussed on the themes' issue tracker:
   7717    <https://gitlab.com/protesilaos/modus-themes/-/issues/37>.
   7718 
   7719 2. Alignment of Org tags with proportional fonts.  Ongoing thread:
   7720    <https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00415.html>.
   7721    Reported and discussed on the themes' issue tracker:
   7722    <https://gitlab.com/protesilaos/modus-themes/-/issues/85>.
   7723 
   7724 3. Org priority cookie has extra space.  Ongoing thread:
   7725    <https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00696.html>.
   7726    Reported and discussed on the themes' issue tracker, with feedback
   7727    from Roman Rudakov:
   7728    <https://gitlab.com/protesilaos/modus-themes/-/issues/95>.
   7729 
   7730 4. Company overlay pop-up misaligns items.  Reported upstream and
   7731    acknowledged as a known issue that occurs in certain cases:
   7732    <https://github.com/company-mode/company-mode/issues/1010>.
   7733    Discussion on the themes' issue tracker, with feedback from Iris
   7734    Garcia: <https://gitlab.com/protesilaos/modus-themes/-/issues/96>.
   7735 
   7736 
   7737 Miscellaneous
   7738 =============
   7739 
   7740 + Belatedly (by about 2 weeks) pushed tag for version 0.12.0.  Thanks to
   7741   Alex Griffin for bringing this to my attention:
   7742   <https://gitlab.com/protesilaos/modus-themes/-/issues/89>
   7743 
   7744 + Fixed a bug with how some older customisation options were declared as
   7745   obsolete.  Thanks to Tassilo Horn for noticing and reporting the
   7746   problem: <https://gitlab.com/protesilaos/modus-themes/-/issues/88>.
   7747 
   7748 + Fixed a misplaced optional prefix argument in the manual for how to
   7749   switch themes using a custom function.  Thanks to Manuel Uberti for
   7750   catching this omission of mine and reporting it:
   7751   <https://gitlab.com/protesilaos/modus-themes/-/issues/84>.
   7752 
   7753 + Silenced the Elisp package linter for a spurious error on a single
   7754   eldoc face.  Thanks to Steve Purcell for the guidance:
   7755   <https://github.com/purcell/package-lint/issues/187>.
   7756 
   7757 + Defined two new dedicated background colours for exceptional cases.
   7758   These are intended for internal use in very special circumstances.
   7759 
   7760 + Reword GuixSD to "Guix System" in the list of package formats
   7761   currently available.
   7762 
   7763 + Reviewed the main blue colours for both themes.  While the changes are
   7764   practically impossible to discern upon first sight, the process was
   7765   far from straightforward.  A complete report documents the minutia:
   7766   <https://protesilaos.com/codelog/2020-09-14-modus-themes-review-blues/>.
   7767 
   7768 + Reviewed the "active" palette subset, typically used in the modelines.
   7769   No report was necessary for those, as the changes were fairly simple.
   7770 
   7771 + Reviewed the "intense" background colour that comes into effect when
   7772   users opt for the customisation option for intense paren-match styles
   7773   (check the manual).  Both the hue and the saturation have been changed
   7774   to better conform with the intended function of this particular entry.
   7775 
   7776 + Reviewed the fringe-specific accented backgrounds.  Commit 7316e3320
   7777   contains tables that compare the relative luminance of old and new
   7778   values.
   7779 
   7780 + Improved the advice for setting fonts using 'set-face-attribute'.  The
   7781   information is in the manual and is also available as a blog entry:
   7782   <https://protesilaos.com/codelog/2020-09-05-emacs-note-mixed-font-heights/>.
   7783 
   7784 + Rewrote an expression as "(or x y)" instead of "(if x x y)" in one
   7785   place.  Just goes to show that tweaking the code is also part of the
   7786   deal.
   7787 
   7788 + Abstracted and simplified heading level properties by using bespoke
   7789   theme faces.  Makes it easier to keep things consistent across the
   7790   various face groups.
   7791 
   7792 + Same principle as above for diff-related styles.
   7793 
   7794 + Users who prefer to do things their own way or who just wish to
   7795   contribute code to the Modus themes may wish to read my "Notes for
   7796   aspiring Emacs theme developers":
   7797   <https://protesilaos.com/codelog/2020-08-28-notes-emacs-theme-devs/>.
   7798 
   7799 This has been yet another period of intense work: reviewing faces and
   7800 applying colours is never easy, adding new customisation options is
   7801 always tricky, and documenting everything takes a lot of time (unless
   7802 you do all of those on a whimsy, which hopefully is not the case here).
   7803 
   7804 Thanks again to everyone who helped improve the themes!
   7805 #+end_src
   7806 
   7807 * 0.12.0
   7808 :PROPERTIES:
   7809 :CUSTOM_ID: h:9d9394c1-84b6-4c23-8936-fe4f2f43301d
   7810 :END:
   7811 
   7812 #+begin_src text
   7813 Modus Operandi and Modus Vivendi version 0.12.0
   7814 
   7815 By Protesilaos Stavrou <info@protesilaos.com> on 2020-08-26
   7816 
   7817 This entry documents the set of changes since version 0.11.0
   7818 (2020-07-31).  There have been around 70 commits in the meatime, though
   7819 the sheer number may obfuscate the fact that a lot of work has gone into
   7820 this release.
   7821 
   7822 As always, every change described here conforms with the accessibility
   7823 objective of the themes for a minimum 7:1 contrast ratio between
   7824 background and foreground values in their given combinations
   7825 (conformance with the WCAG AAA standard).
   7826 
   7827 New customisation options
   7828 =========================
   7829 
   7830 1 Completion Frameworks
   7831 -----------------------
   7832 
   7833 The star of the show has to be the new option that refashions the
   7834 aesthetics of completion UIs: Helm, Icomplete, Ido, Ivy, Sallet,
   7835 Selectrum.  The 'modus-operandi-theme-completions' and
   7836 'modus-vivendi-theme-completions' accept the following symbols:
   7837 
   7838 + nil (default)
   7839 + moderate
   7840 + opinionated
   7841 
   7842 Nil means that the overall presentation of the UI follows the patterns
   7843 established by its own source code.  For example, Ivy uses four distinct
   7844 background and foreground combinations of accented colours to highlight
   7845 the matching groups.  A grey background is added to denote the implicit
   7846 match between those groups.  So we choose to respect this metaphor,
   7847 while applying colours that conform with the accessibility goal of our
   7848 project.  Whereas Icomplete or Ido use subtle styles to present their
   7849 results.  Again, we remain faithful to their presentation.
   7850 
   7851 With 'moderate', we apply nuanced background and foreground combinations
   7852 of accented colour values.  This will slightly tone down Helm, Ivy,
   7853 Sallet, Selectrum, while it will slightly adjust the looks of Icomplete
   7854 and Ido.
   7855 
   7856 Whereas 'opinionated' has a more pronounced effect on the overall
   7857 aesthetics of the UI.  For the likes of Icomplete and Ido which are
   7858 subtle by default, this option will use intense combinations of
   7859 background and foreground colours.  They are the diametric opposite of
   7860 the nil value.  Whereas Helm, Ivy, Sallet, Selectrum, will use even more
   7861 subtle colours.  Again, they are farther away than their default looks.
   7862 
   7863 These new options supersede the now-deprecated and more limited in scope
   7864 variables of prior releases:
   7865 
   7866 + modus-operandi-theme-intense-standard-completions
   7867 + modus-vivendi-theme-intense-standard-completions
   7868 
   7869 Thanks to the following people for their valuable feedback in issue 75:
   7870 https://gitlab.com/protesilaos/modus-themes/-/issues/75
   7871 
   7872 + Anders Johansson
   7873 + Manuel Uberti
   7874 + Shreyas Ragavan
   7875 
   7876 2 Prompts
   7877 ---------
   7878 
   7879 The 'modus-operandi-theme-prompts' and modus-vivendi-theme-prompts' will
   7880 change the overall looks of minibuffer and shell prompts ('M-x shell' as
   7881 well as 'M-x eshell').  Their possible values are:
   7882 
   7883 + nil (default)
   7884 + subtle
   7885 + intense
   7886 
   7887 Nil will only use a coloured foreground for the prompts' text.  Simple
   7888 and effective.
   7889 
   7890 With 'subtle', the default foreground value is retained but is now
   7891 complemented by an appropriately tinted background.  The effect is more
   7892 noticeable than the default, though not by much.
   7893 
   7894 While 'intense' applies a coloured background and foreground combination
   7895 that should clearly stand out from the rest of the context.
   7896 
   7897 Thanks to Manuel Uberti for sharing feedback in issue 74:
   7898 https://gitlab.com/protesilaos/modus-themes/-/issues/74
   7899 
   7900 3 Fringe visibility
   7901 -------------------
   7902 
   7903 A new pair of symbols supersedes older variables:
   7904 
   7905 + modus-operandi-theme-visible-fringes ==> modus-operandi-theme-fringes
   7906 + modus-vivendi-theme-visible-fringes  ==> modus-vivendi-theme-fringes
   7907 
   7908 While the deprecated options were booleans, the current ones offer a
   7909 choice between the following:
   7910 
   7911 + nil (default)
   7912 + subtle
   7913 + intense
   7914 
   7915 Nil means that the fringes have no distinct background of their own.
   7916 They still exist per the settings of 'fringe-mode', but can only be
   7917 discerned by tracking the negative space between the frame's or window's
   7918 edge and the buffer's effective boundaries.
   7919 
   7920 The 'subtle' value will apply a greyscale background that is fairly
   7921 close to the default main background (pure white/black).  The fringes
   7922 are now visible.
   7923 
   7924 As its name implies, 'intense' has a more pronounced effect than the
   7925 other values.  It also uses a greyscale background.
   7926 
   7927 Review of already supported faces and colours
   7928 =============================================
   7929 
   7930 1 Magit blame styles
   7931 --------------------
   7932 
   7933 The headers that Magit's blame interface produces were difficult to tell
   7934 apart from their context.  A set of carefully selected colours now makes
   7935 sure that they are always distinct.  Some subtle background values are
   7936 used, in addition to other typographic elements.
   7937 
   7938 Thanks to Damien Cassou for reporting this problem and for providing
   7939 valuable feedback that informed the final design.  Refer to issue 71:
   7940 https://gitlab.com/protesilaos/modus-themes/-/issues/71
   7941 
   7942 2 Paren match colours
   7943 ---------------------
   7944 
   7945 The face that highlights the matching delimiter when 'show-paren-mode'
   7946 (or equivalent) is enabled uses two dedicated colours, whose names are:
   7947 'bg-paren-match' and 'bg-paren-match-intense'.  Those have been reviewed
   7948 to make them more obvious in various contexts and to improve their
   7949 overall consistency.
   7950 
   7951 A report with relative contrast ratios is available on my website:
   7952 https://protesilaos.com/codelog/2020-08-09-modus-themes-paren-match/
   7953 
   7954 I benefited from valuable feedback from Shreyas Ragavan in issue 70:
   7955 https://gitlab.com/protesilaos/modus-themes/-/issues/70
   7956 
   7957 3 Mu4e faces
   7958 ------------
   7959 
   7960 Some faces were tweaked to make it easier to distinguish replied,
   7961 forwarded, and draft messages from other headers.  The changes are
   7962 fairly small in scope, but the effect should be that of an overall
   7963 improvement.
   7964 
   7965 Thanks to Shreyas Ragavan for noticing these inconsistencies and for
   7966 their continued participation in addressing them.  See issue 69:
   7967 https://gitlab.com/protesilaos/modus-themes/-/issues/69
   7968 
   7969 4 Notmuch message headings
   7970 --------------------------
   7971 
   7972 A couple of inconsistencies with how notmuch would style email addresses
   7973 and folded messages were addressed.  The generic 'italic' face was also
   7974 tweaked in the process, removing the foreground it would falsely define.
   7975 
   7976 Thanks to Damien Cassou for bringing these to my attention in issue 72:
   7977 https://gitlab.com/protesilaos/modus-themes/-/issues/72
   7978 
   7979 5 hl-todo
   7980 ---------
   7981 
   7982 Let the special keywords of 'hl-todo-mode' use an optional slant, just
   7983 like code comments do.  This is to ensure that they feel part of their
   7984 context.
   7985 
   7986 6 Magit general interface
   7987 -------------------------
   7988 
   7989 Several faces were reviewed in the interest of colour harmony and to
   7990 address potential inconsistencies or exaggerations.  The most noticeable
   7991 change pertains to the log views, as we now use fewer accent values,
   7992 reducing whatever unnecessary "rainbow effect" may have existed.
   7993 
   7994 7 VC commit logs
   7995 ----------------
   7996 
   7997 The presentation of 'vc-print-log' and 'vc-print-root-log' has been
   7998 reviewed to reduce the stark contrast between the colours it once used.
   7999 While the elements remain distinct, the differences between them are
   8000 more subtle, which is preferable when viewing long lists of
   8001 similar-looking patterns.
   8002 
   8003 8 Powerline
   8004 -----------
   8005 
   8006 The active and inactive minibuffers now use appropriate accented
   8007 backgrounds or foregrounds for some of their elements.  This makes them
   8008 better for their intended function.
   8009 
   8010 Thanks to Shreyas Ragavan and tycho garen for their feedback in issue
   8011 73, which was actually about adding support for Spaceline.  It uses
   8012 Powerline as its dependency, so we eventually had to accommodate both of
   8013 them: https://gitlab.com/protesilaos/modus-themes/-/issues/73
   8014 
   8015 Shreyas also helped by adding a short note in the README which informs
   8016 users of those two packages on how to tweak things when conducting tests
   8017 or changing themes.  See merge requests 9 and 10:
   8018 
   8019 + https://gitlab.com/protesilaos/modus-themes/-/merge_requests/9
   8020 + https://gitlab.com/protesilaos/modus-themes/-/merge_requests/10
   8021 
   8022 9 Latex sectioning
   8023 ------------------
   8024 
   8025 The themes will no longer affect the height of the Latex sectioning
   8026 faces.  This is because there already exists a variable that scales them
   8027 accordingly.
   8028 
   8029 Thanks to Anders Johansson for providing insights in issue 77:
   8030 https://gitlab.com/protesilaos/modus-themes/-/issues/77
   8031 
   8032 10 Transient pop-up menu
   8033 ------------------------
   8034 
   8035 Extended support for its new colour-coded faces that follow in the
   8036 footsteps of the 'hydra' package for visual semantics.
   8037 
   8038 11 Miscellaneous
   8039 ----------------
   8040 
   8041 The following faces were refined:
   8042 
   8043 + 'org-formula' inherits from 'fixed-pitch' to ensure that it does not
   8044   break table layouts when the user opts for a mixed-font setup (such as
   8045   with 'M-x variable-pitch-mode').
   8046 
   8047 + 'bongo-elapsed-track-part' uses a more appropriate accented
   8048   background.
   8049 
   8050 + 'symbol-overlay-default-face' is less intense than before.  This is in
   8051   response to feedback I received from Manuel Uberti as an aside in
   8052   issue 75: https://gitlab.com/protesilaos/modus-themes/-/issues/75
   8053 
   8054 + 'rectangle-preview' uses a slightly accented background, which
   8055   distinguishes it from the highlighted region.  This is to denote a
   8056   different state where the user is typing in some text.
   8057 
   8058 + 'diff-hl-change' now uses the more appropriate yellow colour instead
   8059   of blue.  Yellow denotes "mixed changes" and, therefore, stands
   8060   between "removed" (red) and "added" (green).  As it so happens, yellow
   8061   is a colour that derives by mixing red with green.
   8062 
   8063 New packages
   8064 ============
   8065 
   8066 The following are now explicitly supported by the themes:
   8067 
   8068 + org-table-sticky-header
   8069 + pkgbuild-mode
   8070 + semantic
   8071 + spaceline
   8072 
   8073 More faces or face groups that are defined:
   8074 
   8075 + git-rebase (magit)
   8076 + doom-modeline-debug-visual
   8077 + file-name-shadow
   8078 + the faces used by Emacs 27's 'display-line-numbers-major-tick' and
   8079   'display-line-numbers-minor-tick'
   8080 + table-cell
   8081 
   8082 Final notes
   8083 ===========
   8084 
   8085 There now exists an HTML version of the README, which will hopefully
   8086 make things easier for users: https://protesilaos.com/emacs/modus-themes/
   8087 
   8088 Other changes are not user-facing.  For example, using 'pcase' instead
   8089 of 'cond' to make relevant expressions more succinct.  Or defining a
   8090 coloured underline in a more straightforward way.  No need to document
   8091 them at length.
   8092 
   8093 While this release introduces customisation options, it feels as though
   8094 the themes are approaching a stable state.  We know what works, we have
   8095 a comprehensive colour palette that can meet our evolving needs, and we
   8096 have already achieved broad package/face coverage.  All while conforming
   8097 with the overarching objective of this project for a minimum 7:1
   8098 contrast ratio between background and foreground values in any given
   8099 combination we specify.
   8100 
   8101 I wish to thank everyone who has helped me by testing things and sharing
   8102 their thoughts.  The people already mentioned herein:
   8103 
   8104 - Anders Johansson (https://gitlab.com/andersjohansson)
   8105 - Damien Cassou (https://gitlab.com/DamienCassou)
   8106 - Manuel Uberti (https://gitlab.com/muberti)
   8107 - Shreyas Ragavan (https://gitlab.com/shrysr)
   8108 - tycho garen (https://gitlab.com/tychoish)
   8109 #+end_src
   8110 
   8111 * 0.11.0
   8112 :PROPERTIES:
   8113 :CUSTOM_ID: h:7a453154-3486-45a8-9249-9183ad49ff42
   8114 :END:
   8115 
   8116 #+begin_src text
   8117 Modus Operandi and Modus Vivendi version 0.11.0
   8118 
   8119 By Protesilaos Stavrou <info@protesilaos.com> on 2020-07-31
   8120 
   8121 This entry records the changes since version 0.10.0 (2020-06-24).  The
   8122 present release covers close to 100 commits, some of which introduce
   8123 far-reaching changes.  It is not just the quantity that matters.
   8124 Sometimes even a minor tweak requires lots of testing and forethought.
   8125 This release represents another month of intense work and attention to
   8126 detail.
   8127 
   8128 Palette review of "nuanced" colours
   8129 ===================================
   8130 
   8131 The themes contain a subset of palette variables that have a two-fold
   8132 utility:
   8133 
   8134 1. Provide a subtle coloured background that can be combined with all
   8135    foreground colours that are intended for text/code highlighting.
   8136 
   8137 2. Produce variegated text in cases where complementary information
   8138    needs to be displayed alongside some more prominent construct
   8139    (e.g. Org table formulas).
   8140 
   8141 In early July 2020, these colours went through a comprehensive review to
   8142 improve their intended use.  The complete report is available on my
   8143 website:
   8144 <https://protesilaos.com/codelog/2020-07-08-modus-themes-nuanced-colours/>
   8145 
   8146 This formed the preparatory work that enabled several of the changes
   8147 documented herein, most noticeable among which is the "Org blocks"
   8148 customisation option.
   8149 
   8150 Customisation options
   8151 =====================
   8152 
   8153 Org blocks
   8154 ----------
   8155 
   8156 1. The symbols 'modus-operandi-theme-distinct-org-blocks' and
   8157    'modus-vivendi-theme-distinct-org-blocks' are DEPRECATED.  They are
   8158    now REPLACED by the general-purpose 'modus-operandi-theme-org-blocks'
   8159    and 'modus-vivendi-theme-org-blocks' respectively.
   8160 
   8161 2. The aforementioned new symbols allow users to configure different
   8162    styles for Org blocks.
   8163 
   8164    + Option 'greyscale' (which you must quote like this: 'greyscale)
   8165      will apply a subtle grey background to the contents of the block,
   8166      while it will extend its beginning and end lines to ensure that the
   8167      area is distinct from the rest of the buffer.  This is the style
   8168      you would normally get with the old customisation options.
   8169 
   8170    + Option 'rainbow' (again, must be quoted) will instead apply a
   8171      colour-coded subtle background in the main area of the block.  The
   8172      exact colour depends on the programming language being used.  You
   8173      would need to check the source code for how these are currently
   8174      mapped (search for "org-src-block-faces").  The basic idea is to
   8175      have different colours that make it easier for mixing the
   8176      input/output of multiple programming languages.  Users who engage
   8177      in literate programming may find this particularly useful.  Because
   8178      the block is already quite apparent, the beginning and end lines
   8179      are not extended to the edge of the window, to avoid exaggerations
   8180      that could create distractions.
   8181 
   8182 Variable pitch headings (proportionately-spaced headings)
   8183 ---------------------------------------------------------
   8184 
   8185 The symbols 'modus-operandi-theme-proportional-fonts' and
   8186 'modus-vivendi-theme-proportional-fonts' are DEPRECATED.  They are now
   8187 REPLACED by the more appropriately-named
   8188 'modus-operandi-theme-variable-pitch-headings' and
   8189 'modus-vivendi-theme-variable-pitch-headings' respectively.
   8190 
   8191 The intended effect is exactly the same as before, namely, to let
   8192 headings in Org and relevant modes use a proportionately-spaced font
   8193 regardless of what the default is (typically a monospaced typeface).
   8194 
   8195 Remember that to configure the exact font family for the generic
   8196 'variable-pitch' face, you can use something like this:
   8197 
   8198     (set-face-attribute 'variable-pitch nil :family "FiraGO")
   8199 
   8200 Check the README for further details on setting and mixing fonts.
   8201 
   8202 Faint syntax for programming
   8203 ----------------------------
   8204 
   8205 Users can now enable 'modus-operandi-theme-faint-syntax' or
   8206 'modus-vivendi-theme-faint-syntax'.  The intended effect is to tone down
   8207 all syntax highlighting in programming modes, while always respecting
   8208 the overarching objective of these themes for a minimum contrast ratio
   8209 of 7:1 (highest accessibility standard for colour contrast---WCAG AAA).
   8210 
   8211 The default is to use more saturated colours.
   8212 
   8213 Intense hl-line
   8214 ---------------
   8215 
   8216 Toggling on 'modus-operandi-theme-intense-hl-line' or
   8217 'modus-vivendi-theme-intense-hl-line' will apply a more pronounced grey
   8218 to the background of faces that highlight the current line.  This
   8219 affects tools such as the built-in 'hl-line-mode', which is in turn
   8220 enabled automatically by lots of other packages, like 'elfeed' and
   8221 'mu4e'.
   8222 
   8223 The default is to use a subtle grey.
   8224 
   8225 Intense paren-match
   8226 -------------------
   8227 
   8228 Same principle as above.  'modus-operandi-theme-intense-paren-match' and
   8229 'modus-vivendi-theme-intense-paren-match' will make the matching
   8230 parentheses more intense than the default subtle warm background.  This
   8231 concerns modes such as that of the 'smartparens' package as well as the
   8232 built-in 'show-paren-mode'.
   8233 
   8234 Refactored the use of bold
   8235 ==========================
   8236 
   8237 A major review of the themes now makes it possible to specify the exact
   8238 weight of what a "bold" typeface is.  This is only meaningful for cases
   8239 where a font family has variants such as "semibold".
   8240 
   8241 Evaluate this, replacing "semibold" with the one your typeface supports:
   8242 
   8243     (set-face-attribute 'bold nil :weight 'semibold)
   8244 
   8245 The default is to use a standard bold weight.
   8246 
   8247 Packages and face groups
   8248 ========================
   8249 
   8250 Refine already-supported faces
   8251 ------------------------------
   8252 
   8253 + The following packages now use more appropriate colour combinations:
   8254 
   8255   - diary
   8256   - annotate
   8257   - transient (magit pop-up menu, though also used elsewhere)
   8258   - fountain
   8259   - calendar
   8260   - mu4e
   8261   - markdown-mode
   8262   - outline-minor-faces
   8263 
   8264 + Other changes:
   8265 
   8266   - org-agenda has undergone a thoroughgoing review to improve the
   8267     semantics of colour for scheduled tasks, deadlines, modeline
   8268     filters, current date etc.
   8269 
   8270   - org and outline-mode headings have been refined to look better with
   8271     the "rainbow headings" option that was introduced in an earlier
   8272     release (check the README).
   8273 
   8274   - org-quote now works properly with the "Org blocks" option mentioned
   8275     above.
   8276 
   8277   - org-checkbox-statistics uses the same foreground colour as org-todo,
   8278     for the sake of consistency.
   8279 
   8280   - org-date now always inherits from 'fixed-pitch', to ensure proper
   8281     alignment of elements when a mixed fonts setup is used (tools for
   8282     achieving this effect are documented at length in the README).  The
   8283     relevant patch was contributed by Matthew Stevenson.
   8284 
   8285   - org-meta-line no longer looks like a comment, which helps denote its
   8286     special utility (e.g. when evaluating a table's formula).
   8287 
   8288   - org-warning now uses a variant of red for its text, which works
   8289     better in the contexts this face is used (e.g. the agenda or the
   8290     export dispatcher).
   8291 
   8292   - We now apply a slightly more accented colour combination for
   8293     'secondary-selection', which is chiefly used by Org and Calendar in
   8294     various contexts.
   8295 
   8296   - Gnus group level faces make more considerate use of colour to better
   8297     denote their significance.
   8298 
   8299   - Cited text in message buffers has a better sequence of colours.
   8300 
   8301   - Two new Helm faces are supported.
   8302 
   8303   - Let 'keycast' use a different border colour when the "3D modeline"
   8304     option is enabled (refer to the README for that option).
   8305 
   8306   - Extend 'hl-todo-keyword-faces' with the "bug" keyword.
   8307 
   8308   - More intense colour for 'diff-hl-reverted-hunk-highlight'.
   8309 
   8310   - Tone down the focused modeline's border colour.
   8311 
   8312   - Define new bespoke faces that the themes use internally.
   8313 
   8314   - Use more appropriate colours for 'header-line-highlight'.
   8315 
   8316   - Apply greyscale line highlight for flycheck current line in the
   8317     diagnostics buffer, instead of the warmer colour combination it had
   8318     before.
   8319 
   8320   - Tweak text colour difference between MU4E read and unread messages.
   8321 
   8322 Added support for new packages
   8323 ------------------------------
   8324 
   8325 + bongo
   8326 + boon
   8327 + dictionary
   8328 + eshell-fringe-status
   8329 + eshell-git-prompt
   8330 + eshell-prompt-extras
   8331 + highlight-tail
   8332 + hl-defined
   8333 + notmuch
   8334 + tty-menu
   8335 
   8336 Miscellaneous
   8337 =============
   8338 
   8339 + Expand the README with new documentation and clarify parts of the
   8340   existing one.
   8341 
   8342 + Update the Wiki page with screenshots and their descriptions (this in
   8343   itself is a day's worth of work):
   8344   https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
   8345 
   8346 + Make the source code of each theme work better with the built-in
   8347   'outline-minor-mode'.  Check my video if you need a demo on how I use
   8348   this in tandem with 'imenu':
   8349   https://protesilaos.com/codelog/2020-07-20-emacs-outline-imenu/
   8350 
   8351 Thanks to, in no particular order:
   8352 
   8353 + Shreyas Ragavan (https://gitlab.com/shrysr) for introducing me to the
   8354   idea that derived the "rainbow" Org blocks and for providing valuable
   8355   feedback in several issues.
   8356 
   8357 + Matthew Stevenson (https://gitlab.com/matth0204) for contributing the
   8358   aforementioned patch for the 'org-date' face.
   8359 
   8360 + Manuel Uberti (https://gitlab.com/muberti) for offering valuable
   8361   feedback in a number of issues (and special thanks for doing this for
   8362   several months now).
   8363 
   8364 + Dinko (https://gitlab.com/dinkonin) for noticing a not-so-obvious bug
   8365   in the initial implementation of the "rainbow Org blocks" option.
   8366 
   8367 + okamsn (https://gitlab.com/okamsn) for providing the necessary
   8368   feedback that allowed me to refactor the use of "bold", mentioned
   8369   above.
   8370 
   8371 Refer to the issue tracker (or commit log) for further details:
   8372 https://gitlab.com/protesilaos/modus-themes/-/issues
   8373 #+end_src
   8374 
   8375 * 0.10.0
   8376 :PROPERTIES:
   8377 :CUSTOM_ID: h:de114a53-7cbd-49aa-bf24-d1f1f0bf342e
   8378 :END:
   8379 
   8380 #+begin_src text
   8381 Modus Operandi and Modus Vivendi version 0.10.0
   8382 
   8383 By Protesilaos Stavrou <info@protesilaos.com> on 2020-06-24
   8384 
   8385 This entry records the changes since version 0.9.0 (2020-06-03).  The
   8386 present release is focused on stability and internal improvements.
   8387 
   8388 Fixes and adjustments
   8389 ---------------------
   8390 
   8391 Basil L. Contovounesios, aka @basil-conto, (and also a contributor to
   8392 core Emacs) sent several patches that do the following:
   8393 
   8394 + Fix top-level parentheses so that the results of
   8395   'custom-theme-set-faces' and 'custom-theme-set-variables' are not
   8396   passed as arguments to the first 'custom-theme-set-faces'.
   8397 
   8398 + Fix the docstrings of the custom 'modus-theme-*' faces.
   8399 
   8400 + Simplify the syntax of properties assigned to each face.
   8401 
   8402 + Improve the way styles are inherited by Dired and Ibuffer.
   8403 
   8404 Basil also pointed out an inconsistency with regard to an unwanted
   8405 underline effect for the 'doom-modeline-urgent' face in Modus Vivendi.
   8406 It was promptly removed.
   8407 
   8408 From my part, I fixed issues 46 and 51 that concerned the way the
   8409 compiler would evaluate each theme's palette.  The palette is now
   8410 defined as a constant.  Further information:
   8411 
   8412 - https://gitlab.com/protesilaos/modus-themes/-/issues/46
   8413 - https://gitlab.com/protesilaos/modus-themes/-/issues/51
   8414 
   8415 
   8416 Improvements to existing faces
   8417 ------------------------------
   8418 
   8419 André Alexandre Gomes (@aadcg) provided valuable feedback and
   8420 suggestions in issue 50 on the redesign of several 'org-mode' faces.
   8421 
   8422 The thread is long and contains lots of screenshots:
   8423 https://gitlab.com/protesilaos/modus-themes/-/issues/50
   8424 
   8425 The changes in outline:
   8426 
   8427 + Org checkboxes have a subtle background which gives them a more
   8428   pronounced appearance while retaining their overall simplicity.
   8429 
   8430 + Org dates use a more saturated variant of cyan than they did before.
   8431   It helps distinguish them from their context.  Especially true for
   8432   dates inside of tables.
   8433 
   8434 + Org agenda dates have also undergone a slight review to match the
   8435   above.
   8436 
   8437 + Org time grid now uses a more appropriate foreground colour, which has
   8438   been designed specifically for unfocused context.
   8439 
   8440 + Org todo keywords use a more semantically-correct variant of red,
   8441   rather than the purple one they had before.
   8442 
   8443 + Org statistics' cookies for pending tasks use a red variant as well
   8444   rather than the previous yellow one, in the interest of consistency
   8445   and to avoid exaggerations.
   8446 
   8447 
   8448 Other internal refinements
   8449 --------------------------
   8450 
   8451 + Subtle review of the Modus Vivendi palette.  In short, it addresses:
   8452 
   8453   - Imbalanced levels of luminance and inconsistent differences in hue
   8454     between them and their neighbouring colours (e.g. the greens between
   8455     them, and the greens next to the yellows in the context of syntax
   8456     highlighting).  The result was that they would create an undesirable
   8457     emphatic 'pop out' effect when placed close to more moderate
   8458     colours.
   8459 
   8460   - Differences in luminance and hue could lead to scenaria where two
   8461     colours could be conflated with each other or otherwise fail to
   8462     perform their intended function.
   8463 
   8464   - The complete report is on my website:
   8465     https://protesilaos.com/codelog/2020-06-13-modus-vivendi-palette-review/
   8466 
   8467 + Major review of the 'diredfl' faces, in the interest of improved
   8468   readability and harmony between the various colours.  This benefits
   8469   from the palette changes in Modus Vivendi, but also from a similar
   8470   review to Modus Operandi that was documented in version 0.9.0.
   8471 
   8472 + Refactor the names of dedicates colours for "marking" purposes.  These
   8473   are used in Dired, Ibuffer, Proced, etc.  Then apply them consistently
   8474   throughout each theme.
   8475 
   8476 + Make sure that 'stripes' uses the same colours as 'hl-line-mode'.
   8477 
   8478 + Let symlinks use a more appropriate colour in Dired and Trashed.
   8479 
   8480 + Refine the use of colour in 'magit-tag', 'eshell-prompt',
   8481   'message-header-name', 'log-edit-header', 'change-log-function',
   8482   'message-mml', 'message-header-name', 'message-separator'.  These are
   8483   subtle (i.e. difficult) tweaks that improve the overall presentation
   8484   in context.
   8485 
   8486 + Make diff indicators not use an unnecessary background when the
   8487   user-facing option for "subtle diffs" is enabled (check the README for
   8488   the exact name of this option).  This ensures consistency between the
   8489   indicators and the actual scope of the diffs.
   8490 
   8491 + Add support for the 'minibuffer-line' package and extend existing
   8492   support of the faces used in the built-in Emacs info pages.
   8493 
   8494 My thanks to Basil and André for their contributions!
   8495 #+end_src
   8496 
   8497 * 0.9.0
   8498 :PROPERTIES:
   8499 :CUSTOM_ID: h:96ccc8b9-2d5e-4857-bf25-4e094e17bfed
   8500 :END:
   8501 
   8502 #+begin_src text
   8503 Modus Operandi and Modus Vivendi version 0.9.0
   8504 
   8505 By Protesilaos Stavrou <info@protesilaos.com> on 2020-06-03
   8506 
   8507 This entry records the changes since version 0.8.0 (2020-04-28).  The
   8508 present release contains about 50 commits, covering a month of active
   8509 development.
   8510 
   8511 All changes are aligned with the primary objective of this project,
   8512 which is conformance with the WCAG AAA accessibility standard for colour
   8513 contrast.  This translates to a minimum contrast ratio of 7:1 between a
   8514 given combination of foreground and background colours.  The highest
   8515 standard of its kind.
   8516 
   8517 All customisation options that are booleans are off ('nil') by default.
   8518 The project's policy is to offer such features on an "opt-in" basis,
   8519 while always respecting the principle of least surprise.
   8520 
   8521 Refer to the README for further information on the exact names of
   8522 symbols and the like.
   8523 
   8524 New customisation options
   8525 -------------------------
   8526 
   8527 + It is now possible to make the faces of Icomplete, Ido, and a few
   8528   other related tools such as 'orderless', use coloured backgrounds to
   8529   style their feedback.  This is the aesthetic already in effect for
   8530   Ivy, Helm, and Selectrum.  The default is more subtle, in that it uses
   8531   just an accented foreground value without any added background.
   8532 
   8533 + Advanced users can now override both the exact values of colour
   8534   variables, as well as the mapping of properties/variables to faces.
   8535   In practice this means that it is possible to completely change parts
   8536   of the theme (or the entirety of it for that matter).  It also means
   8537   that users can simply access the theme's palette for the sake of
   8538   correctly passing the appropriate value to some bespoke face of
   8539   theirs.
   8540 
   8541 + An extra increment for scaled headings is now available.  This should
   8542   hold the highest value on the scale.  Such variables only take effect
   8543   when the user opts for the "scaled headings" option.
   8544 
   8545 Overview of changes
   8546 -------------------
   8547 
   8548 + A set of internal reforms were carried through in order to allow the
   8549   colour palette to be accessed from user configuration files.  This
   8550   required a lot of debugging work to make sure the themes compile
   8551   properly and performance is not affected.
   8552 
   8553   - The original idea for this redesign was suggested by Len Trigg in
   8554     issue 39: https://gitlab.com/protesilaos/modus-themes/-/issues/39.
   8555     Len also provided a real-world implementation of this new option,
   8556     which is included in the project's README.
   8557 
   8558   - André Alexandre Gomes helped figure out the problems caused by the
   8559     initial design of this feature.  In particular, André identified a
   8560     performance penalty as well as errors pertaining to byte
   8561     compilation.  Everything was eventually resolved.  For more see
   8562     issue 44: https://gitlab.com/protesilaos/modus-themes/-/issues/44.
   8563 
   8564 + Several org-mode faces were reviewed in order to cope well with mixed
   8565   font settings.  This is about use-cases where the main typeface is
   8566   proportionately-spaced, either by default or by some minor mode like
   8567   the built-in 'variable-pitch-mode'.  The intent of configuring those
   8568   faces is to make them always inherit a fixed-pitch (monospace) font
   8569   family, in the interest of preserving the alignment of elements.  The
   8570   idea, suggested code, as well as user feedback were offered by Ben in
   8571   issue 40: https://gitlab.com/protesilaos/modus-themes/-/issues/40.
   8572 
   8573 + Mixed font settings may have some side-effects depending on user
   8574   configurations.  This is unavoidable as we cannot control how users
   8575   define their fonts.  Mark Barton reported one such case, while he was
   8576   able to fix it by making use of the suggested typeface definitions.
   8577   See issue 42: https://gitlab.com/protesilaos/modus-themes/-/issues/42.
   8578 
   8579 + The faces for the 'tab-bar-mode' and 'tab-line-mode' that ship with
   8580   Emacs 27 were written anew.  Same for those of 'centaur-tabs'.  The
   8581   ideas for the redesign as well as the overall aesthetic are Ben's, per
   8582   issue 41: https://gitlab.com/protesilaos/modus-themes/-/issues/41.
   8583 
   8584 + An edge case with Helm's interpretation of colour values for its
   8585   ripgrep interface was reported by Manuel Uberti in issue 49:
   8586   https://gitlab.com/protesilaos/modus-themes/-/issues/49.  It
   8587   essentially had to do with the syntax for the regexp engine as read by
   8588   the underlying 'rg' executable.  Collaboration on that front
   8589   eventually led to fixes in Helm itself, committed by its maintainer.
   8590   Note that the README for the Modus themes already contains information
   8591   on how Helm applies a face to the matches of grep or grep-like
   8592   commands.  Issue 49 confirmed what was already known in that regard
   8593   (i.e. that the "--color=never" command-line option is required to use
   8594   the Helm face, else a colour value from the ANSI colour vector is
   8595   used---both are supported by the themes).
   8596 
   8597 + The faces for Flycheck, Flymake, and Flyspell that would apply an
   8598   underline effect were completely rewritten to account for relevant
   8599   differences between GUI and TUI Emacs.
   8600 
   8601   - For GUI Emacs, all affected faces will now just use a colour-coded
   8602     wavy underline.  Empowered by the introduction of dedicated
   8603     linter-related colours in prior commits (for version 0.8.0), we no
   8604     longer have to change the foreground value of the offending text in
   8605     addition to applying the underline effect.  Whereas before the text
   8606     would also get repainted, which was too intrusive in most
   8607     circumstances.
   8608 
   8609   - If support for wavy underlines is not available, we assume the
   8610     presence of a TUI, which generally is relatively more limited in its
   8611     ability to reproduce colours with precision (meaning that the
   8612     dedicated linter colour could be distorted, potentially producing
   8613     inaccessible combinations).  So for those cases we apply a straight
   8614     underline combined with a colour-coded foreground for the affected
   8615     text.  This makes it more intense compared to the GUI equivalent,
   8616     but is the necessary course of action to overcome the constraints
   8617     imposed by the underlying terminal.
   8618 
   8619 + The palette of Modus Operandi underwent lots of subtle changes to make
   8620   the background value of hl-line-mode more visible while retaining the
   8621   overall style and character of the theme.  In principle, you should
   8622   not be able to tell the difference, unless presented with a careful
   8623   side-by-side comparison.  This is the comprehensive report, including
   8624   a reproducible org-mode document with all the relevant contrast ratios:
   8625   https://protesilaos.com/codelog/2020-05-10-modus-operandi-palette-review/.
   8626 
   8627 + Fixed `org-hide' to actually "hide" by using the appropriate colour
   8628   value.
   8629 
   8630 + Several other face groups received minor tweaks.
   8631 
   8632 + The README was improved to better present the available customisation
   8633   options and to cover other topics of interest.
   8634 
   8635 + Updated the screen shots and their description in the relevant Wiki
   8636   page: https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots.
   8637 
   8638 Added support for
   8639 -----------------
   8640 
   8641 + circe
   8642 + el-search
   8643 + eros
   8644 + golden-ratio-scroll-screen
   8645 + highlight-indentation
   8646 + hyperlist
   8647 + indium
   8648 + journalctl-mode
   8649 + minimap
   8650 + nxml-mode
   8651 + vdiff
   8652 + yasnippet
   8653 #+end_src
   8654 
   8655 * 0.8.0
   8656 :PROPERTIES:
   8657 :CUSTOM_ID: h:afa34aec-7079-4c45-8e16-ab4e7cc8cd6a
   8658 :END:
   8659 
   8660 #+begin_src text
   8661 Modus Operandi and Modus Vivendi version 0.8.0
   8662 
   8663 By Protesilaos Stavrou <info@protesilaos.com> on 2020-04-28
   8664 
   8665 This entry records the changes since version 0.7.0 (2020-03-30).  The
   8666 present release contains a little more than a hundred commits, covering
   8667 one month of intense work.
   8668 
   8669 All changes are aligned with the primary objective of this project,
   8670 which is conformance with the WCAG AAA accessibility standard for colour
   8671 contrast.  This translates to a minimum contrast ratio of 7:1 between a
   8672 given combination of foreground and background colours.
   8673 
   8674 All customisation options mentioned herein are off ('nil') by default.
   8675 The project's policy is to offer such features on an "opt-in" basis,
   8676 while always respecting the principle of least surprise.
   8677 
   8678 Refer to the README for further information.
   8679 
   8680 
   8681 Four new customisation options
   8682 ------------------------------
   8683 
   8684 The options in outline, with their detailed description below:
   8685 
   8686 + Rainbow headings
   8687 + Section headings
   8688 + 3D modeline
   8689 + Subtle diffs
   8690 
   8691 1. "Rainbow headings" will apply more vivid colours to headings in
   8692    'org-mode' and 'outline-mode'.  The gradation is similar to that of a
   8693    rainbow's colour spectrum.
   8694 
   8695    The default is to use colour values that are closer to the grey
   8696    scale.
   8697 
   8698 2. "Section headings" also apply to 'org-mode' and 'outline-mode'.  They
   8699    will draw an overline over each heading and use a nuanced background
   8700    colour that is appropriate for each level.  For Org, this option has
   8701    some additional effects, where it will render keywords and priority
   8702    cookies in a box and add to them a subtle background.  This is to
   8703    make sure that everything feels consistent (to the extent possible).
   8704 
   8705    The default is to not use overlines, backgrounds, boxes in any of the
   8706    relevant faces.  This is consistent with the standard austere
   8707    colouration of headings: to not deviate too much from a "plain text"
   8708    aesthetic.
   8709 
   8710 NOTE: "rainbow headings" and "section headings" can work on their own or
   8711 be combined together.
   8712 
   8713 3. "3D modeline" will use a faux unpressed button style for the current
   8714    window's modeline (like the standard looks of 'emacs -Q').  The
   8715    colours used for the active and inactive modelines are tweaked
   8716    accordingly to maximise the effect while retaining the visual
   8717    distinction between them.
   8718 
   8719    The default is to draw the modelines in a two-dimensional style, with
   8720    the active one having a more noticeable border around it.
   8721 
   8722 4. "Subtle diffs" will use colour-coded text for line-wise differences
   8723    without applying any appropriately-coded background value or, where
   8724    necessary, by using only a subtle greyscale background.  This affects
   8725    'diff-mode', 'magit', 'ediff', and 'smerge-mode'.  For Magit an extra
   8726    set of tweaks is implemented to account for the differentiation
   8727    between the focused and unfocused diff hunks.
   8728 
   8729    Due to their unique requirements, word-wise or refined changes are
   8730    always drawn with a colour-coded background, though it is less
   8731    intense when this option is enabled.
   8732 
   8733    The default is to use a colour-coded background and foreground
   8734    combination (e.g. light green text on a dark green backdrop) and to
   8735    make appropriate adjustments for refined diffs and modes of
   8736    interaction such as Magit's focused/unfocused diff states.
   8737 
   8738 
   8739 Other major refinements
   8740 -----------------------
   8741 
   8742 + Thoroughly revise the colours of 'ediff' and 'smerge-mode', so that
   8743   they are aligned with those of 'diff-mode' and 'magit'.  This is in
   8744   addition to the "subtle diffs" options mentioned in the previous
   8745   section.
   8746 
   8747 + Review the faces used by Flycheck and Flymake.  A wavy/curly underline
   8748   is now used in all terminals that support it.  The underlined text is
   8749   drawn with a more nuanced foreground than before.  The previous design
   8750   was exaggerating an already clear effect and could make things more
   8751   difficult under certain circumstances.
   8752 
   8753 + All language checkers, including the aforementioned linter front-ends,
   8754   now benefit from a new set of colours that are designed specifically
   8755   for this particular purpose.  Makes the affected faces feel more
   8756   different than their context.
   8757 
   8758 + Use dedicated colours for escape sequences, regular expression
   8759   constructs, and quoted characters.  The goal is to better
   8760   differentiate them from their surroundings.
   8761 
   8762 + Tweak the colours of 'hydra' to improve the distinction between its
   8763   various types of behaviour.
   8764 
   8765 + Reduce the overall luminance of the background colours used in the
   8766   fringes by the likes of 'flycheck', 'flymake', 'diff-hl', etc.  They
   8767   should now not stand out more than they should, while retaining their
   8768   intended role.
   8769 
   8770 + Implement more saturated colours in Elfeed.  The previous choices
   8771   could make it harder to differentiate the various parts of the
   8772   presentation.
   8773 
   8774 + Make better use of the customisation options for bold and slanted
   8775   constructs where that is allowed.  If a face is not tied to the
   8776   semantics of these styles then it is drawn without them, unless the
   8777   user specifically opts for the relevant customisation options.
   8778 
   8779 
   8780 Added support for packages (A-Z)
   8781 --------------------------------
   8782 
   8783 + ag
   8784 + color-rg
   8785 + ctrlf
   8786 + debbugs
   8787 + eglot
   8788 + forge
   8789 + helpful
   8790 + highlight-symbol
   8791 + ibuffer
   8792 + icomplete
   8793 + iflipb
   8794 + magit-imerge
   8795 + man
   8796 + orderless
   8797 + page-break-lines
   8798 + parrot
   8799 + phi-grep
   8800 + phi-search
   8801 + pomidor
   8802 + rcirc
   8803 + spell-fu
   8804 + switch-window
   8805 + swoop
   8806 + tab-bar-mode
   8807 + tab-line-mode
   8808 + trashed
   8809 + tomatinho
   8810 + tuareg
   8811 + vimish-fold
   8812 + visible-mark
   8813 + vterm
   8814 + wcheck-mode
   8815 + winum
   8816 + woman
   8817 
   8818 
   8819 Miscellaneous changes and concluding remarks
   8820 --------------------------------------------
   8821 
   8822 + Rewrote large parts of the README to make the customisation options
   8823   easier to discover and understand.
   8824 
   8825 + Updated the screen shots and their description in the relevant Wiki
   8826   page: https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
   8827 #+end_src
   8828 
   8829 * 0.7.0
   8830 :PROPERTIES:
   8831 :CUSTOM_ID: h:353114b7-6980-4622-8057-b8cbb8361a8a
   8832 :END:
   8833 
   8834 #+begin_src text
   8835 Modus Operandi and Modus Vivendi version 0.7.0
   8836 
   8837 By Protesilaos Stavrou <info@protesilaos.com> on 2020-03-30
   8838 
   8839 This entry documents the changes since version 0.6.0 (2020-03-01).  The
   8840 present release is the largest to date containing 110 commits.
   8841 
   8842 All changes conform with the primary objective of this project, which is
   8843 conformance with the WCAG AAA accessibility standard for colour
   8844 contrast.  This represents a minimum contrast ratio of 7:1 between a
   8845 given combination of foreground and background colours.
   8846 
   8847 All customisation options mentioned herein are off ('nil') by default.
   8848 The project's policy is to offer such features on an "opt-in" basis.
   8849 Refer to the README or each theme's source code for the names of these
   8850 user-facing symbols.
   8851 
   8852 Major refinements to existing face groups
   8853 -----------------------------------------
   8854 
   8855 + The headline feature of this release is a refined set of colours for
   8856   visualising version-control-system differences ("diffs").  The new
   8857   colours are less intense than before and are designed to better convey
   8858   the meaning of the constructs they apply to.  Affected face groups are
   8859   those of 'magit' and 'diff-mode'.  A future release will assess how
   8860   similar packages, such as 'ediff', can benefit from this work.
   8861 
   8862 + The other major set of changes concerns the colours that apply to
   8863   fringes (see 'fringe-mode').  A new customisation option allows for a
   8864   distinct background for the fringes (courtesy of Anders Johansson in
   8865   commit 80fb704).  The default uses the same colours as the main
   8866   buffer's background.  Building on this effort, fringe indicators, such
   8867   as those of 'flycheck' now benefit from an entirely new set of
   8868   background+foreground colour combinations that are designed
   8869   specifically for the fringes.
   8870 
   8871 + A new customisation option allows users to render 'org-mode' source
   8872   blocks in a distinct background colour.  The default is to use the
   8873   same background as the rest of the buffer.  When this option is
   8874   enabled, the background colour for the beginning and end line of such
   8875   blocks is extended to the end of the window (using the ':extend t'
   8876   attribute for >= Emacs 27).  Older Emacs versions already extend to
   8877   the end of the window.
   8878 
   8879 + The colour combination that shows the matching parentheses or
   8880   delimiters has been reviewed.  The commit is fairly small and the
   8881   changes are immediately noticeable only to the most discerning of
   8882   eyes.  Still, the considerations informing the review imposed a
   8883   rigorous method.  Rather than summarise the findings, interested
   8884   readers are advised to refer to commit af3a327: it offers a
   8885   comprehensive analysis on the matter.
   8886 
   8887 Added support for packages (A-Z)
   8888 --------------------------------
   8889 
   8890 + auctex/tex
   8891 + bm
   8892 + buffer-expose
   8893 + centaur-tabs
   8894 + cider (tentative, feedback is much appreciated)
   8895 + csv-mode
   8896 + dynamic-ruler
   8897 + ebdb
   8898 + elfeed-score
   8899 + flyspell-correct
   8900 + fold-this
   8901 + freeze-it
   8902 + frog-menu
   8903 + git-walktree
   8904 + helm-switch-shell
   8905 + highlight-defined
   8906 + highlight-escape-sequences (hes-mode)
   8907 + highlight-numbers
   8908 + highlight-thing
   8909 + hl-todo
   8910 + ioccur
   8911 + julia
   8912 + kaocha-runner
   8913 + markup-faces (adoc-mode)
   8914 + multiple-cursors
   8915 + num3-mode
   8916 + org-roam
   8917 + org-superstar
   8918 + org-treescope
   8919 + outline-minor-mode
   8920 + paradox
   8921 + rainbow-identifiers
   8922 + rg
   8923 + ripgrep
   8924 + sallet (tentative, feedback is much appreciated)
   8925 + selectrum
   8926 + sesman
   8927 + side-notes
   8928 + skewer-mode
   8929 + stripes
   8930 + symbol-overlay
   8931 + syslog-mode
   8932 + vc-annotate (C-x v g)
   8933 + volatile-highlights
   8934 + web-mode
   8935 + yaml-mode
   8936 
   8937 Note about VC-annotate
   8938 ----------------------
   8939 
   8940 Quoting from the relevant note in the project's README:
   8941 
   8942     Due to the unique way `vc-annotate' (`C-x v g') applies colours,
   8943     support for its background mode (`vc-annotate-background-mode') is
   8944     disabled at the theme level.
   8945 
   8946     Normally, such a drastic measure should not belong in a theme:
   8947     assuming the user's preferences is bad practice.  However, it has
   8948     been deemed necessary in the interest of preserving colour contrast
   8949     accessibility while still supporting a useful built-in tool.
   8950 
   8951     If there actually is a way to avoid such a course of action, without
   8952     prejudice to the accessibility standard of this project, then please
   8953     report as much (or contribute as per the information in the
   8954     Contributing section).
   8955 
   8956 
   8957 Overview of refinements to already supported packages
   8958 -----------------------------------------------------
   8959 
   8960 In this section the notion of "dedicated colours" pertains to colour
   8961 values that are reserved for special faces.  They are never used for
   8962 syntax highlighting or other common scenaria.
   8963 
   8964 + Define new background colours for fringe indicators (as noted in the
   8965   first section).  Apply them to 'bm', 'diff-hl', 'git-gutter',
   8966   'flycheck' fringe indicators.  All such indicators are now made more
   8967   visible and work better with the new customisation option for
   8968   rendering the fringes in a distinct background.
   8969 
   8970 + Define dedicated colours for tab-like interfaces.  Currently these
   8971   apply only to 'centaur-tabs'.  The intention is to eventually
   8972   implement them to the tab modes that ship with Emacs 27, as well as
   8973   any other package that offers such functionality.
   8974 
   8975 + Define dedicated colours for actions that "mark" items.  Use them in
   8976   'dired', 'proced', 'gnus'. An accented background is combined with an
   8977   accented foreground.  The intention is to make the underlying
   8978   construct distinct even under circumstances where the mark's
   8979   background changes, such as when it intersects with 'hl-line-mode' or
   8980   'stripes': the accented foreground will still be recognisable as a
   8981   colour that differs from the main foreground.  The use of a bold font
   8982   weight further reinforces the intended action.
   8983 
   8984 + Refine 'dired' faces to account for the new "mark" styles.
   8985   Directories are no longer rendered in a bold weight.
   8986 
   8987 + Tweak the colours used in the built-in 'diary' and 'calendar' for
   8988   better usability.
   8989 
   8990 + Tweak 'deadgrep' colours for consistency with packages that offer
   8991   similar functionality.
   8992 
   8993 + Tweak 'compilation-line-number' in the interest of consistency with
   8994   similar interfaces.
   8995 
   8996 + Use a more appropriate colour for 'trailing-whitespace'.  It now is a
   8997   colour value that was designed specifically as a background.
   8998 
   8999 + Expand 'fountain-mode' support by covering its new heading faces.  The
   9000   headings will be presented in larger font sizes, or using proportional
   9001   fonts, should the user enable the relevant theme customisation options
   9002   (see README or source code).
   9003 
   9004 + Remove bold weight from matching parentheses in 'show-paren-mode' and
   9005   'smartparens'.  The temporarily applied bold weight can cause
   9006   misalignments while using certain fonts.  Also apply the new colours
   9007   for matching delimiters, as documented in the first section.
   9008 
   9009 + Refine 'outline-mode' colours to be consistent with those of Org's
   9010   headings.
   9011 
   9012 + Several usability and colour refinements for 'helm' and related
   9013   packages in that milieu.
   9014 
   9015 + Remove box property from emphasis markers in the mode line.  It
   9016   created inconsistencies with other faces.
   9017 
   9018 + Refine the colours used in Magit logs, `change-log', `log-view'.  They
   9019   are meant to be more distinct from their context, without drawing too
   9020   much attention to themselves.
   9021 
   9022 + Minor internal fixes for indentation and the like.
   9023 
   9024 Miscellaneous changes and concluding remarks
   9025 --------------------------------------------
   9026 
   9027 + Add section in the README which documents a legal requirement for all
   9028   potential non-trivial code contributions: the need to assign copyright
   9029   to the Free Software Foundation.  The Modus Themes are now distributed
   9030   via the official GNU ELPA repository and copyright over them is
   9031   assigned to the FSF.
   9032 
   9033 + Add CHANGELOG file which consolidates all tagged release notes such as
   9034   this one.
   9035 
   9036 + Add new screen shots to the relevant Wiki page, together with detailed
   9037   descriptions on what is being demonstrated:
   9038   https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
   9039 
   9040 Special thanks to Manuel Uberti for reporting several issues and
   9041 offering feedback where appropriate.  I was able to add support for lots
   9042 of new packages.  While a few among the already supported face groups
   9043 underwent tweaks and refinements.  The 'helm' ecosystem benefited the
   9044 most.
   9045 
   9046 Thanks to Anders Johansson for the patch that introduced the
   9047 fringes-related customisation option.  It inspired me to reconsider the
   9048 use of this particular area of the interface, which eventually led to
   9049 the barrage of commits that refashioned the fringe indicators.  A major
   9050 win overall.
   9051 
   9052 Thanks to Jonathan Otsuka for fixing an error of mine on the naming of
   9053 some symbols.  My apologies for missing it: I will be more careful from
   9054 now on.
   9055 
   9056 Note: both patches were small, requiring no copyright assignment.
   9057 Larger contributions are always welcome, though make sure you read the
   9058 section in the README with regard to assigning copyright to the Free
   9059 Software Foundation.
   9060 #+end_src
   9061 
   9062 * 0.6.0
   9063 :PROPERTIES:
   9064 :CUSTOM_ID: h:c8c33ff2-6f75-4642-a27e-ee6e8abc493e
   9065 :END:
   9066 
   9067 #+begin_src text
   9068 This release contains lots of refinements and additions.
   9069 
   9070 Let me start with an administrative point: I have completed the process
   9071 of assigning my copy rights to the Free Software Foundation.  This
   9072 covers every contribution I make to GNU Emacs.  In practice, it means
   9073 that the Modus themes can now be included in the official ELPA archive
   9074 and theoretically be shipped with Emacs itself.  The ELPA inclusion is
   9075 ongoing.  Once it is completed, I will update the docs accordingly.
   9076 
   9077 The administrative change has no effect on the way this project is
   9078 handled.  I still am the developer/maintainer and will continue to
   9079 improve things further.  If you still have questions, feel free to
   9080 contact me: https://protesilaos.com/contact
   9081 
   9082 Moving on to the changes since version 0.5.0 (2020-01-26).
   9083 
   9084 Added support for:
   9085 
   9086 + alert
   9087 + apropos (built-in)
   9088 + dap-mode
   9089 + deft
   9090 + dim-autoload
   9091 + dired-git
   9092 + enhanced-ruby-mode
   9093 + gbd-mi.el (built-in library)
   9094 + helm-ls-git
   9095 + helm-xref
   9096 + imenu-list
   9097 + jira (org-jira)
   9098 + js2-mode
   9099 + jupyter
   9100 + org-pomodoro
   9101 + origami
   9102 + rmail (built-in)
   9103 + vc-print-log (built-in)
   9104 + window-divider-mode (built-in)
   9105 + xref (built-in)
   9106 
   9107 Refinements to existing faces:
   9108 
   9109 + A new subset of "nuanced" accent colours has been introduced.  These
   9110 are named {red,green,yellow,blue,magenta,cyan}-nuanced.  Their purpose
   9111 is to be used in contexts where lots of structured information is
   9112 presented to the user, but each component does not need to draw too much
   9113 attention to itself (e.g. Org's metadata).  As always, their contrast
   9114 ratio is designed to always be >= 7:1 relative to the backgrounds they
   9115 may be combined with.
   9116 
   9117 + Greatly improve the support for Gnus, even though most changes are
   9118 subtle and are made in the interest of consistency.  The group levels
   9119 now make use of the "nuanced" palette where appropriate (to denote
   9120 levels of lower importance).
   9121 
   9122 + Several refinements for Org, including the use of "nuanced" colours
   9123 for various metadata tags.  The agenda headers will now be scaled
   9124 appropriately and use a variable-pitch font if the user sets the
   9125 relevant customisation values of the theme they are using (check the
   9126 documentation in each theme file or the repo's README).
   9127 
   9128 + Lots of refinements for Helm.  Some of these were introduced to align
   9129 the overall aesthetic with equivalent metaphors in Ivy.  Others are
   9130 meant to improve the styles of the headers and make various constructs
   9131 consistent with their variants in the Helm ecosystem but also with their
   9132 non-Helm counterparts (such as xref file names with and without Helm,
   9133 but also with Helm's grep).
   9134 
   9135 + Improve the colours of buttons in contexts such as M-x customize.
   9136 This is especially noticeable in modus-vivendi-theme (the dark theme)
   9137 where the buttons are a darker shade of grey rather than the original
   9138 lighter one.
   9139 
   9140 + Keycast now uses styles that are more consistent with the overall
   9141 aesthetic of the Modus themes.  This means that the mode line indicators
   9142 are blue-ish (blue is generally used for highlights in the mode line,
   9143 but also when hovering over an item with the mouse pointer).  The pseudo
   9144 button effect (colours + 3d) has been removed in favour of a flat look,
   9145 in line with the flatness of the mode line itself.  Whereas before the
   9146 keycast faces where designed to be consistent with the package's
   9147 defaults.
   9148 
   9149 There were also a few minor refinements for:
   9150 
   9151 + calendar and diary
   9152 + icomplete
   9153 + mm-uu-extract
   9154 + nobreak-hyphen and nobreak-space
   9155 + org-habit
   9156 + tooltip-mode
   9157 
   9158 Finally, the Commentary section of each theme has been greatly expanded.
   9159 It now includes the user-facing customisation options and the complete
   9160 list of supported packages.
   9161 #+end_src
   9162 
   9163 * 0.5.0
   9164 :PROPERTIES:
   9165 :CUSTOM_ID: h:dffc2bd4-6597-4be4-88f6-b349be7ebc6e
   9166 :END:
   9167 
   9168 #+begin_src text
   9169 This release contains support for several new packages and lots of
   9170 refinements for existing ones.  A lot of work went into making the
   9171 themes more robust by reviewing the inheritance of styles from one
   9172 face group to another (in general, the ':inherit' property should not
   9173 be used frivolously).  Several subtle changes were made to the colour
   9174 palette of both themes to ensure consistency, enable more possible
   9175 combinations, and avoid potential ambiguity under certain potential
   9176 circumstances.
   9177 
   9178 Overall, this release gives me confidence that the themes have reached
   9179 a fairly stable state.  What follows is an overview of the changes
   9180 since version 0.4.0 (2020-01-02).
   9181 
   9182 Added support for:
   9183 
   9184 + equake
   9185 + flymake
   9186 + focus
   9187 + fountain (fountain-mode)
   9188 + git-lens
   9189 + git-timemachine
   9190 + hi-fill-column
   9191 + highlight-blocks
   9192 + info-colors
   9193 + lsp-mode
   9194 + lsp-ui
   9195 + proced (built-in)
   9196 + regexp-builder (built-in)
   9197 + suggest
   9198 
   9199 Refinements:
   9200 
   9201 + The header line uses its own dedicated colours.  Several changes
   9202   were made in 'eww', 'info', 'elfeed', 'magit', 'flycheck' to make
   9203   sure that any accent value that appears there conforms with the
   9204   overarching accessibility objective of the Modus themes (contrast
   9205   ratio of >= 7:1, else WCAG AAA).
   9206 + 'ivy' no longer uses a box style for the current line, as that was
   9207   not always reliable.  Appropriate colours are used instead.
   9208 + 'org-mode' blocks use a foreground value that distinguishes their
   9209   opening and closing tags from source code comments.
   9210 + The 'org-ellipsis' face was configured to always inherit the looks
   9211   of its respective heading or element, rather than have its own
   9212   excessive styling.
   9213 + 'paren-match' has colours that are designed specifically for it.
   9214   This is done to retain their utility while making sure they are not
   9215   mistaken for some other type of feedback.
   9216 + 'magit' has explicit styles for the mode line process indicators,
   9217   instead of inheriting from another face.  The intention is to use
   9218   foreground values that are designed specifically for use on the mode
   9219   line (the minimum contrast ratio requirement).
   9220 + 'erc' faces have been thoroughly reviewed in the interest of better
   9221   usability.  Its mode line indicators now use appropriate colours.
   9222 + The faces of the 'messages' library have been thoroughly reviewed.
   9223   This affects various email interfaces, but also 'elfeed' entry
   9224   metadata headings.
   9225 + 'whitespace-mode' no longer has a newline character that stands out.
   9226   That kind of emphasis was not necessary, given that the symbol used
   9227   is a dollar sign, which is already far more visible than a mid dot.
   9228 + 'font-lock' (generic syntax highlighting) has better colour
   9229   combinations for regexp grouping constructs.
   9230 + 'rainbow-delimiters' was given its missing base error face.
   9231 + 'git-commit' comment action uses a slightly different foreground
   9232   value than before to better match its context.
   9233 + 'isearch' and 'query-replace' use colours that properly denote each
   9234   action's utility.
   9235 + 'visual-regexp' has been reviewed to make the matching groups more
   9236   distinct from each other.
   9237 + 'occur' and any other buffer that relies on the 'match' face can now
   9238   benefit from the new colour combinations, in that its results cannot
   9239   be confused for the active 'isearch' or 'query-replace' or even
   9240   their lazily highlighted results (or, indeed, of any other search
   9241   tool).
   9242 + 'company' uses faces for its search feedback that are consistent
   9243   with other search metaphors.
   9244 + Emacs 27's new ':extend' property is only implemented where
   9245   necessary (note that the latest release is version 26.3).
   9246 #+end_src
   9247 
   9248 * 0.4.0
   9249 :PROPERTIES:
   9250 :CUSTOM_ID: h:1597e301-f9df-4aac-8ec5-b8ecf34f2930
   9251 :END:
   9252 
   9253 #+begin_src text
   9254 This is an overview of the changes since version 0.3.0 (2019-12-25).
   9255 
   9256 Add support for:
   9257 
   9258 	+ ert
   9259 	+ flycheck-indicator
   9260 	+ mentor
   9261 	+ mu4e-conversation
   9262 	+ powerline-evil
   9263 	+ telephone-line
   9264 	+ vc (built-in version control)
   9265 
   9266 Refinements to already-supported packages:
   9267 
   9268 	+ company-mode (several refinements)
   9269 	+ doom-modeline (major review)
   9270 	+ helm (several tweaks)
   9271 	+ hl-line-mode (use unique background)
   9272 	+ ivy (improve matching line)
   9273 	+ line-number-mode (minor tweaks)
   9274 	+ markdown-mode (comprehensive expansion)
   9275 	+ mode-line (more appropriate styles for the highlight)
   9276 	+ powerline (minor tweaks)
   9277 	+ region (use unique background)
   9278 	+ swiper (improve matching line in main window)
   9279 	+ whitespace-mode (several refinements)
   9280     + mu4e (tweak mu4e-modeline-face for consistency)
   9281 
   9282 Miscellaneous:
   9283 
   9284 	+ Fix actual and potential problems with cursor faces that would
   9285       distort the use of appropriate background and foreground colours.
   9286       The documentation stipulates that the `cursor' face cannot be
   9287       inherited by other faces, due to its peculiar nature of only
   9288       recognising the background colour.
   9289 	+ Add support for more bold constructs in code.  As with all such
   9290       options, it is disabled by default, expecting the user to
   9291       explicitly opt in.
   9292 	+ Declare additional custom faces.  Only meant for internal use.
   9293 	+ Subtle refinements to "active" colour values in both Modus
   9294       Operandi and Modus Vivendi.  These mostly concern the mode line
   9295       (with a few special exceptions), where emphasis has been placed on
   9296       the need to provide greater contrast between accent values that
   9297       can be used there.
   9298 	+ Minor documentation refinements.
   9299 #+end_src
   9300 
   9301 * 0.3.0
   9302 :PROPERTIES:
   9303 :CUSTOM_ID: h:cb0ca8dc-3960-4490-b3c4-27d10cf6ed44
   9304 :END:
   9305 
   9306 #+begin_src text
   9307 Overview of changes since 0.2.0 (2019-12-18):
   9308 
   9309 + Add support for the following packages:
   9310 
   9311   + apt-sources-list
   9312   + calfw
   9313   + counsel-css
   9314   + counsel-notmuch
   9315   + counsel-org-capture-string
   9316   + cov
   9317   + disk-usage
   9318   + evil-visual-mark-mode
   9319   + geiser
   9320   + keycast
   9321   + org-journal
   9322   + org-noter
   9323   + paren-face
   9324   + powerline
   9325   + vc
   9326   + xah-elisp-mode
   9327 
   9328 + Explicitly style the following packages (these were already covered,
   9329   in terms of the colours they used, but are now targeted directly):
   9330 
   9331   + calendar
   9332   + counsel
   9333   + cursor
   9334   + package (M-x list-packages)
   9335 
   9336 + Minor tweaks to face groups:
   9337 
   9338   + dired
   9339   + compile
   9340 
   9341 + Fixes and refinements:
   9342 
   9343   + Documentation strings will now inherit the option for slanted
   9344     constructs (off by default -- see the README about all the user
   9345     options).
   9346   + Comment delimiters have the same styles as the body of the comment
   9347     to avoid inconsistencies when the option for slanted constructs is
   9348     enabled.
   9349   + The line number that is displayed in the compile log is now
   9350     correctly styled.
   9351   + Removed duplicate entries for ivy-remote and added ivy-separator.
   9352   + Ensure that the minibuffer prompt is always above the minimum
   9353     contrast ratio of 7:1, by using a more appropriate shade of cyan.
   9354   + Properly reference a couple of variables in Modus Vivendi.
   9355 
   9356 + Internal adjustments:
   9357 
   9358   + Decouple the core dired faces from those of external packages.
   9359   + Same for org and org-recur.
   9360 
   9361 + Minor documentation updates.
   9362 #+end_src
   9363 
   9364 * 0.2.0
   9365 :PROPERTIES:
   9366 :CUSTOM_ID: h:c9746d04-adf4-41b1-9b7c-6caaf17f8816
   9367 :END:
   9368 
   9369 #+begin_src text
   9370 Overview of changes since 0.1.0 (2019-12-09):
   9371 
   9372 + Comprehensive review of `org-mode' faces.  The use of colour should
   9373 now be more consistent with the semantics of each element.  These should
   9374 also respond better to a variety of combinations, such as when the user
   9375 has `hl-line-mode' enabled.  The agenda view is the greatest beneficiary
   9376 of this review.
   9377 
   9378 + Make `mu4e' mode line faces consistent with other elements that may be
   9379 placed on the mode line.
   9380 
   9381 + Make `gnus' header name/subject more distinct.
   9382 
   9383 + Several minor refinements to `ivy' and its extensions.
   9384 
   9385 + General usability refinements to `ace-window'.
   9386 
   9387 + Minor review of `elfeed' styles, in the interest of improving the
   9388 contrast between the elements.
   9389 
   9390 + Add support for:
   9391   + `persp-mode' (fork of the already supported `perspective')
   9392   + `dashboard'
   9393   + `evil-mode'
   9394   + `evil-goggles'
   9395   + `ruler-mode'
   9396 #+end_src
   9397 
   9398 * 0.1.0
   9399 :PROPERTIES:
   9400 :CUSTOM_ID: h:e14e612e-6951-4812-bc88-62c498bd5644
   9401 :END:
   9402 
   9403 #+begin_src text
   9404 First stable release of Modus Operandi and Modus Vivendi.
   9405 #+end_src