From 191f2a68569ba611898b630cdb94042033baa5a8 Mon Sep 17 00:00:00 2001 From: Protesilaos Stavrou Date: Wed, 1 Jun 2022 13:05:51 +0300 Subject: [PATCH] Update to version 2.4.0 --- CHANGELOG.org | 336 ++++++++++++++++++++++++++++++++++++++++++ doc/modus-themes.info | 105 +++++++------ doc/modus-themes.org | 19 ++- modus-themes.el | 4 +- 4 files changed, 399 insertions(+), 65 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 7627d36..12374d8 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -15,6 +15,342 @@ For further details, please consult these additional resources: + Manual :: + Screenshots :: +* 2.4.0 + +#+begin_src text +Modus themes version 2.4.0 + +By Protesilaos Stavrou on 2022-06-01 + +This entry documents the changes made to the project since the +publication of version 2.3.0 on 2022-04-01. It spans more than 60 +commits to an already stable project. + +The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28 +(next stable release) or later, and are available on GNU ELPA as well as +other archives. Emacs-28 ships version 1.6.0, while the current +'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the +latest tagged release. The packaged version is available as +'modus-themes'. + +Read the manual inside Emacs by evaluating: + + (info "(modus-themes) Top") + +Or visit: . + + +Migration to SourceHut +====================== + +The sources of the project are as follows: + +- Git repo on SourceHut: + - Mirrors: + - GitHub: + - GitLab: +- Mailing list: + +- Official manual: +- Change log: +- Colour palette: +- Sample pictures: + +It is still possible to open issues on either of the mirrors and I will +handle them in a timely fashion, though I encourage you to at least try +the mailing list workflow---it is ordinary email (just remember to +"reply to all"). + +Further reading that is relevant to SourceHut: + +- Moving all my Emacs projects to SourceHut: + + +- Primer on formatting Git patches with Emacs (Magit): + + + +Problems with byte compilation on Emacs 29 +========================================== + +For some time between mid-April to mid-May, users of Emacs 29 could not +byte compile the Modus themes. This has now been fixed in emacs.git, +per bug#55414: . +Thanks to everyone involved (A-Z): Alan Mackenzie, Eli Zaretskii, Lars +Ingebrigtsen, Mattias Engdegård, Stefan Monnier. + + +Messages about invalid face attributes while using the centaur-tabs +=================================================================== + +I mentioned this issue in the previous change log as well: upstream does +not allow us to use indirection in faces (the ':inherit' attribute). +This is not our bug. It is standard behaviour for themes to use +inheritance. + +I have an open pull request on the matter (since 2022-02-24): +. + +Relevant reports: + +- +- +- + + +Support for new faces or face groups +==================================== + +Directly supported +------------------ + +These are packages whose faces we override to make them work with the +themes. + +- 'calibredb'. I have tried to limit the wanton use of colour in the + relevant buffers and also align the package with the overall style of + the themes. The currently selected line is affected by the user + option 'modus-themes-hl-line'. + + Thanks to Ivan Popovych for the feedback on the official mailing list: + . + + Ivan also introduced some new faces to 'calibredb', which I helped + test. See: . + +- 'ein' (Emacs IPython Notebook). We support its code blocks with the + appropriate colouration, while avoiding exaggerations. Thanks to + Maxime Tréca for the feedback in issue 31 over at the GitHub mirror: + . + +- 'tree-sitter'. My intent was to reduce the overall colouration + produced by the default 'tree-sitter' faces. These tweaks give us + good results, though there still are some cases where 'tree-sitter' + exaggerates the styles it uses, such as by combining types with + constants to produce ad-hoc (anonymous) faces. We cannot do anything + about anonymous faces at the theme level. As such, we may get an + additional bold weight (when 'modus-themes-bold-constructs' is + non-nil) when we would rather not have it and/or a different colour + than the one desired. + + Thanks to Przemysław Kryger for the feedback in issue 303 over at the + GitLab mirror: . + + If you are involved in the 'tree-sitter' project, please eliminate all + anonymous faces and replace them with symbols (i.e. defface) that are + editable by the user/theme. You are welcome to contact me if you need + help/ideas. + +- 'vundo' + + +Indirectly supported +-------------------- + +These are packages that either (i) inherit from base faces we already +support, or (ii) use colours from the Modus themes' palette. A list of +them is available in the manual. + +- egerrit. an in-development package by Niklas Eklund which provides an + Emacs interface to Gerrit: . + + +Changes to supported face +========================= + +- Reworked the internal functions that handle the styling of diffs to + allow the user option 'modus-themes-deuteranopia' to combine with the + styles of the 'modus-themes-diffs' option. + + Before, when 'modus-themes-deuteranopia' was non-nil it would affect + diffs by forcibly applying the default style of 'modus-themes-diffs' + (fairly prominent background colours) with the primary difference of + replacing greens with blues. + + Now all combinations work as expected. For example: + + (setq modus-themes-deuteranopia t + modus-themes-diffs 'desaturated) ; nil, 'desaturated, 'bg-only + + Thanks to Kevin Le Gouguec for the feedback on the mailing list: + + +- Conducted a major (and highly demanding) review of the colours used by + Avy in the interest of optimising the contrast between its constructs. + Read the analysis: . + + Thanks to Daniel Mendler and Damien Cassou for their feedback on the + mailing list: + + - + - + +- Updated the 'vertico-quick' faces to be consistent with Avy. + +- Made the 'line-number' face conform with the user option + 'modus-themes-mixed-fonts'. This means that if the user option is + non-nil, line numbers of 'display-line-numbers-mode' will use a + monospaced typeface at all times (inheriting the 'fixed-pitch' face, + as explained in the themes' manual). Otherwise they use whatever font + the 'default' face has. This makes it better when the user enables + 'variable-pitch-mode' but still wants spacing-sensitive constructs to + remain monospaced. + + Thanks to Christopher League for the feedback in issue 302 over at the + GitLab mirror: . + +- Aligned the regexp construct faces with the meaning of the user option + 'modus-themes-bold-constructs'. They will use a bold weight only when + the user option is non-nil. This design is consistent with all other + aspects of syntax highlighting. These specific faces were + unconditionally bold due to a mistake of mine. + + Remember to check the manual on what "a bold weight" means, as we make + everything easy to customise (e.g. if you prefer a semibold weight): + . + +- Removed the typographic emphasis from the 'file-name-shadow' face by + no longer inheriting the 'italic' face. Thanks to Nicolas De Jaeghere + for the patch. + + [ Nicolas has assigned copyright to the Free Software Foundation. ] + +- Stopped using the 'inverse-video' face attribute in 'powerline'. We + now apply the colours directly. The reason is that 'inverse-video' + makes it tricky to override the face as it swaps the foreground with + the background. That behaviour is only needed in special cases: + 'powerline' is not one of them. + + Thanks to Thibaut Verron for the feedback in issue 305 over at the + GitLab mirror: . + +- Ensured that git commit/rebase comments (as seen in the workflow of + the 'magit' package) inherit from appropriate font-lock faces. This + makes it possible to customise 'font-lock-comment-face' and have the + changes apply to those elements as well. Such a customisation can, + for example, involve the change of the font family or the addition of + a background colour. We want the whole comment block, including those + special keywords from Git, to look consistent. This change also makes + git-{commit,rebase}-comment-heading attain the foreground colour of + comments, instead of the default one (black or white), making it look + part of the comment block. + +- Tweaked the 'fountain' package comments to be the same as all others. + This avoids inconsistencies, such as when the user opts for something + like the following: + + (setq modus-themes-syntax '(yellow-comments)) + +- Disabled padding in the 'keycast' package, meaning that the box around + the key indicator always has the same height, even if the user opts + for a padding value in 'modus-themes-mode-line' (read the manual or + its doc string for how to assign a padding). + + This is in response to a change upstream that introduces the + 'keycast-tab-bar-mode', which re-uses the faces that were originally + intended for the mode line in the tab-bar. Ideally, upstream will + provide distinct faces for each context so that we can have padding in + the mode line but not the tab-bar. However, I have not had the + opportunity to suggest such a change and/or prepare the relevant patch + (it is not straightforward). + +- Refined some colour combinations for the "alternative syntax" style + that is available when the user option 'modus-themes-syntax' includes + the 'alt-syntax' property. These tweaks pertain to changes in hue + that improve the appearance of certain faces in their context. + +- Enabled conditional use of 'fixed-pitch' for key bindings. This + happens when the user option 'modus-themes-mixed-fonts' is non-nil + (all spacing-sensitive elements become monospaced even if the user + opts for a default font that is proportionately spaced or activates + the 'variable-pitch-mode'). Thanks to Manuel Giraud for the patch. + + [ Manuel has assigned copyright to the Free Software Foundation. ] + +- Covered the face rotation option of 'highlight-changes-mode'. It is + done with the 'highlight-changes-rotate-faces' command when + 'highlight-changes-mode' is enabled (the mode is built into Emacs). + + Thanks to Philip Kaludercic for the feedback on the mailing list: + https://lists.sr.ht/~protesilaos/modus-themes/<878rs14il4.fsf@posteo.net> + + +Updates to the manual +===================== + +- Acknowledged Andrew Tropin as one of the contributors to the Guix + package of the Modus themes. The latest patch to that end: + . + +- Rewrote the note on 'fill-column-indicator' to show how the user can + use a thicker line than the one we style by default. + +- Wrote a note in manual about 'php-mode' multiline comments which use + the 'font-lock-doc-face' instead of 'font-lock-comment-face'. Sample + code is provided to ensure consistency between all types of comments. + +- Added note about custom 'hl-todo' colours, specifically the user + option 'hl-todo-keyword-faces' (which the themes customise as an + exception to the rule, otherwise the default colours would not always + be accessible). + + This is in relation to the mailing list thread on the matter with + feedback from Vincent Foley and Christian Tietze: + . + +- Elaborated on the style of 'git-gutter' faces in Doom Emacs, which are + not as the Modus themes intend. Basically, the problem is that Doom + changes the way that package draws its bitmaps: the faces we configure + no longer appear as intended and sensitive colouration is lost. + + Thanks to Gonçalo Marrafa for reporting the issue, testing the code we + recommend on Doom Emacs, and suggesting the inclusion of the reference + to the 'after!' call (a macro that Doom defines). + + +Miscellaneous +============= + +- Dedicated the colours of the Modus themes---just the colours---to the + public domain. The Emacs package as a whole is still distributed + under the terms of the GNU General Public License. The announcement: + + +- Stopped using a timestamp in the modus-themes.el file. It could lead + to situations where there was a mismatch between the latest change and + the recorded time. It also introduced a barrier to entry for + contributors, as they need to set up 'time-stamp.el'. + +- Removed the unnecessary 'require' call to the 'seq' library and made + the necessary changes. Thanks to Daniel Mendler for the patch. + + [ Daniel has assigned copyright to the Free Software Foundation. ] + +- Applied the correct order of inheritance for all markup faces. This + fixes a problem where not all typographic attributes where applied to + the faces when 'modus-themes-mixed-fonts' was non-nil and the value of + 'modus-themes-markup' included '(bold italic)'. + +- Tweaked how 'org-date' conditionally uses 'fixed-pitch'. Basically, + we remove an internal stylistic inconsistency. There is no + user-facing change. Thanks to Manuel Giraud for the patch. + +- Implemented the command 'modus-themes-report-bug'. It might help + users find the email address of the mailing list and get started with + the email-centric workflow of SourceHut. Note this is but a first + step in that direction. If you think it can be improved, please + report as much (or send a patch). + +- Included the command 'modus-themes-version', which prints in the echo + area the current version of the package. With an optional prefix + argument, it inserts the string at point. + + The version either is the last tagged release, such as '2.4.0', or an + in-development version like '2.5.0-dev'. As we use semantic + versioning, tags of the '2.4.1' sort are not considered: those would + count as part of '2.5.0-dev'. +#+end_src + * 2.3.0 #+begin_src text diff --git a/doc/modus-themes.info b/doc/modus-themes.info index eeae54a..be8694e 100644 --- a/doc/modus-themes.info +++ b/doc/modus-themes.info @@ -43,11 +43,11 @@ customization options for the ‘modus-operandi’ and ‘modus-vivendi’ themes, and provides every other piece of information pertinent to them. The documentation furnished herein corresponds to stable version -2.3.0, released on 2022-04-01. Any reference to a newer feature which +2.4.0, released on 2022-06-01. Any reference to a newer feature which does not yet form part of the latest tagged commit, is explicitly marked as such. - Current development target is 2.4.0-dev. + Current development target is 2.5.0-dev. • Homepage: . • Git repository: . @@ -4185,7 +4185,7 @@ have lots of extensions, so the “full support” may not be 100% true… • breakpoint (provided by the built-in ‘gdb-mi.el’ library) • calendar and diary • calfw - • calibredb [ part of 2.4.0-dev ] + • calibredb • centaur-tabs • cfrs • change-log and log-view (such as ‘vc-print-log’, @@ -4201,7 +4201,7 @@ have lots of extensions, so the “full support” may not be 100% true… • completions • consult • corfu - • corfu-quick [ part of 2.4.0-dev ] + • corfu-quick • counsel* • counsel-css • cov @@ -4236,7 +4236,7 @@ have lots of extensions, so the “full support” may not be 100% true… • easy-jekyll • ebdb • ediff - • ein (Emacs IPython Notebook) [ part of 2.4.0-dev ] + • ein (Emacs IPython Notebook) • eglot • el-search • eldoc-box @@ -4450,7 +4450,7 @@ have lots of extensions, so the “full support” may not be 100% true… • visible-mark • visual-regexp • vterm - • vundo [ part of 2.4.0-dev ] + • vundo • wcheck-mode • web-mode • wgrep @@ -5681,7 +5681,7 @@ File: modus-themes.info, Node: Issues you can help with, Next: Patches require A few tasks you can help with by sending an email to the general modus-themes public mailing list (https://lists.sr.ht/~protesilaos/modus-themes) (or use the command -‘modus-themes-report-bug’ [part of 2.4.0-dev]). +‘modus-themes-report-bug’). • Suggest refinements to packages that are covered. • Report packages not covered thus far. @@ -5699,8 +5699,7 @@ or short videos, as well as further instructions to reproduce a given setup. Though this is not a requirement. Also consider mentioning the version of the themes you are using, -such as by invoking the command ‘modus-themes-version’ [part of -2.4.0-dev]. +such as by invoking the command ‘modus-themes-version’. Whatever you do, bear in mind the overarching objective of the Modus themes: to keep a contrast ratio that is greater or equal to 7:1 between @@ -6625,50 +6624,50 @@ Node: Near-monochrome syntax highlighting164279 Node: Custom hl-todo colors173276 Node: Face coverage174760 Node: Supported packages175212 -Node: Indirectly covered packages181956 -Node: Notes on individual packages183028 -Node: Note on calendarel weekday and weekend colors184176 -Node: Note on git-gutter in Doom Emacs185324 -Node: Note on php-mode multiline comments187352 -Node: Note on underlines in compilation buffers188044 -Node: Note on inline Latex in Org buffers188881 -Node: Note on dimmerel189491 -Node: Note on display-fill-column-indicator-mode190976 -Node: Note on highlight-parenthesesel192374 -Node: Note on mmm-modeel background colors198363 -Node: Note for prism200678 -Node: Note for god-mode203834 -Node: Note on company-mode overlay pop-up205438 -Ref: Note on company-mode overlay pop-up-Footnote-1206128 -Ref: Note on company-mode overlay pop-up-Footnote-2206195 -Node: Note on ERC escaped color sequences206250 -Ref: Note on ERC escaped color sequences-Footnote-1207678 -Node: Note on powerline or spaceline207788 -Node: Note on SHR colors208202 -Node: Note on SHR fonts208626 -Node: Note on Ement colors and fonts209259 -Node: Note on Helm grep210758 -Node: Note on vc-annotate-background-mode212235 -Node: Note on pdf-tools link hints213120 -Node: Note on the Notmuch logo215585 -Node: Frequently Asked Questions216083 -Node: Is the contrast ratio about adjacent colors?216714 -Node: What does it mean to avoid exaggerations?218221 -Node: Why are colors mostly variants of blue magenta cyan?220050 -Node: What is the best setup for legibility?224356 -Node: Are these color schemes?227001 -Node: Port the Modus themes to other platforms?230721 -Node: Contributing233502 -Node: Sources of the themes233899 -Node: Issues you can help with234598 -Node: Patches require copyright assignment to the FSF236210 -Node: Acknowledgements238430 -Node: Other notes about the project241805 -Node: GNU Free Documentation License244803 -Node: Indices270180 -Node: Function index270359 -Node: Variable index272162 -Node: Concept index274449 +Node: Indirectly covered packages181868 +Node: Notes on individual packages182940 +Node: Note on calendarel weekday and weekend colors184088 +Node: Note on git-gutter in Doom Emacs185236 +Node: Note on php-mode multiline comments187264 +Node: Note on underlines in compilation buffers187956 +Node: Note on inline Latex in Org buffers188793 +Node: Note on dimmerel189403 +Node: Note on display-fill-column-indicator-mode190888 +Node: Note on highlight-parenthesesel192286 +Node: Note on mmm-modeel background colors198275 +Node: Note for prism200590 +Node: Note for god-mode203746 +Node: Note on company-mode overlay pop-up205350 +Ref: Note on company-mode overlay pop-up-Footnote-1206040 +Ref: Note on company-mode overlay pop-up-Footnote-2206107 +Node: Note on ERC escaped color sequences206162 +Ref: Note on ERC escaped color sequences-Footnote-1207590 +Node: Note on powerline or spaceline207700 +Node: Note on SHR colors208114 +Node: Note on SHR fonts208538 +Node: Note on Ement colors and fonts209171 +Node: Note on Helm grep210670 +Node: Note on vc-annotate-background-mode212147 +Node: Note on pdf-tools link hints213032 +Node: Note on the Notmuch logo215497 +Node: Frequently Asked Questions215995 +Node: Is the contrast ratio about adjacent colors?216626 +Node: What does it mean to avoid exaggerations?218133 +Node: Why are colors mostly variants of blue magenta cyan?219962 +Node: What is the best setup for legibility?224268 +Node: Are these color schemes?226913 +Node: Port the Modus themes to other platforms?230633 +Node: Contributing233414 +Node: Sources of the themes233811 +Node: Issues you can help with234510 +Node: Patches require copyright assignment to the FSF236082 +Node: Acknowledgements238302 +Node: Other notes about the project241677 +Node: GNU Free Documentation License244675 +Node: Indices270052 +Node: Function index270231 +Node: Variable index272034 +Node: Concept index274321  End Tag Table diff --git a/doc/modus-themes.org b/doc/modus-themes.org index d9e4565..7b566f5 100644 --- a/doc/modus-themes.org +++ b/doc/modus-themes.org @@ -5,9 +5,9 @@ #+options: ':t toc:nil author:t email:t num:t #+startup: content -#+macro: stable-version 2.3.0 -#+macro: release-date 2022-04-01 -#+macro: development-version 2.4.0-dev +#+macro: stable-version 2.4.0 +#+macro: release-date 2022-06-01 +#+macro: development-version 2.5.0-dev #+macro: file @@texinfo:@file{@@$1@@texinfo:}@@ #+macro: space @@texinfo:@: @@ #+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@ @@ -4164,7 +4164,7 @@ have lots of extensions, so the "full support" may not be 100% true… + breakpoint (provided by the built-in {{{file(gdb-mi.el)}}} library) + calendar and diary + calfw -+ calibredb [ part of {{{development-version}}} ] ++ calibredb + centaur-tabs + cfrs + change-log and log-view (such as ~vc-print-log~, ~vc-print-root-log~) @@ -4179,7 +4179,7 @@ have lots of extensions, so the "full support" may not be 100% true… + completions + consult + corfu -+ corfu-quick [ part of {{{development-version}}} ] ++ corfu-quick + counsel* + counsel-css + cov @@ -4214,7 +4214,7 @@ have lots of extensions, so the "full support" may not be 100% true… + easy-jekyll + ebdb + ediff -+ ein (Emacs IPython Notebook) [ part of {{{development-version}}} ] ++ ein (Emacs IPython Notebook) + eglot + el-search + eldoc-box @@ -4427,7 +4427,7 @@ have lots of extensions, so the "full support" may not be 100% true… + visible-mark + visual-regexp + vterm -+ vundo [ part of {{{development-version}}} ] ++ vundo + wcheck-mode + web-mode + wgrep @@ -5638,7 +5638,7 @@ An HTML version of this manual is provided as an extension of the #+findex: modus-themes-report-bug A few tasks you can help with by sending an email to the general [[https://lists.sr.ht/~protesilaos/modus-themes][modus-themes public mailing list]] (or use the command -~modus-themes-report-bug~ [part of {{{development-version}}}]). +~modus-themes-report-bug~). + Suggest refinements to packages that are covered. + Report packages not covered thus far. @@ -5657,8 +5657,7 @@ setup. Though this is not a requirement. #+findex: modus-themes-version Also consider mentioning the version of the themes you are using, such -as by invoking the command ~modus-themes-version~ [part of -{{{development-version}}}]. +as by invoking the command ~modus-themes-version~. Whatever you do, bear in mind the overarching objective of the Modus themes: to keep a contrast ratio that is greater or equal to 7:1 between diff --git a/modus-themes.el b/modus-themes.el index d90d79a..daabb0d 100644 --- a/modus-themes.el +++ b/modus-themes.el @@ -5,7 +5,7 @@ ;; Author: Protesilaos Stavrou ;; URL: https://git.sr.ht/~protesilaos/modus-themes ;; Mailing list: https://lists.sr.ht/~protesilaos/modus-themes -;; Version: 2.3.2 +;; Version: 2.4.0 ;; Package-Requires: ((emacs "27.1")) ;; Keywords: faces, theme, accessibility @@ -108,7 +108,7 @@ cover the blue-cyan-magenta side of the spectrum." :prefix "modus-themes-" :tag "Modus Themes Faces") -(defvar modus-themes--version "2.4.0-dev" +(defvar modus-themes--version "2.4.0" "Current version of the Modus themes. The version either is the last tagged release, such as '2.4.0',