Commit graph

200 commits

Author SHA1 Message Date
Protesilaos Stavrou b23c84e6b4
Expand 'deftheme' with metadata
This is to support new features in Emacs where themes can specify
the set they belong to, as well as whether they are light or dark.
The built-in command is 'theme-choose-variant'.

This is in response to Emacs bug#65468:
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65468>.  Thanks to
Mauro Aranda for bringing this matter to my attention.
2023-08-25 06:37:18 +03:00
Protesilaos Stavrou 7b65e735b8
Add semantic colour mappings for terminal emulators
These are used by ansi-term, vterm, and the like.  The idea is to
empower users to differentiate background and foreground values.  By
convention, terminal emulators use the same value for both background
and foreground, although this is not optimal with high contrast themes
because what works as a foreground does not necessarily look nice as a
background.

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

Thanks to Tony Zorman for reporting the bug that provided the impetus
for this change:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87fs4wforf.fsf%40hyperspace%3E>.
2023-08-10 12:28:08 +03:00
Protesilaos Stavrou 4e331d27de
Revise bg-hover hue in all themes except tritanopia
The previous colour was not sufficiently distinct from bg-completion.
This would make it hard to spot the difference while, for example,
using 'vertico-mode' in tandem with 'vertico-mouse-mode'.

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

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

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

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

[1] <https://github.com/minad>
2023-07-07 09:52:13 +03:00
Protesilaos Stavrou 99b23d6983
Add support for japanese-holidays
Thanks to Olaf Meeuwissen for bringing this package to my attention
and showing me how traditional Japanese calendars style Saturdays.
This was done in issue 311 on the GitLab mirror:
<https://gitlab.com/protesilaos/modus-themes/-/issues/311>.
2023-06-15 07:22:14 +03:00
Protesilaos Stavrou 0557146806
Tone down the holiday mapping in some themes 2023-05-28 06:20:44 +03:00
Protesilaos Stavrou ae1d68d4b9
Ensure diary and holiday colours are distinct and legible 2023-05-22 09:10:57 +03:00
Protesilaos Stavrou 51eca51ef3
Define "prominent" faces and semantic colour mappings
These are used for Flymake/Flycheck fringe indicators, errors in
isearch, and other such highlights.
2023-05-17 09:24:57 +03:00
Protesilaos Stavrou adbd8e3f83
Add semantic colour mappings for space errors
This extends commit fe02830.
2023-05-17 07:53:00 +03:00
Protesilaos Stavrou b503206a62
Introduce semantic colour mappings for marks
These are encountered in various buffers, such as Dired and Trashed.
2023-05-17 07:38:30 +03:00
Protesilaos Stavrou fe028304d4
Make whitespace-mode much more subtle; add semantic colour mappings
The previous style involved the use of a dim grey background.  While
this is good to spot invisible characters quickly, it is bad for users
who want to run 'whitespace-mode' at all times (e.g. for Python which
is space-sensitive).

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

Thanks to Christian Tietze and Oliver Epper for their feedback in
issue 80 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/80>.
2023-05-17 07:17:45 +03:00
Protesilaos Stavrou 66b85092c4
Recalibrate "graph" colours
These are most notably used by the 'org-habit' consistency graph,
which is displayed in the Org agenda.
2023-05-03 07:56:27 +03:00
Protesilaos Stavrou 98690410be
Add semantic colour mapping for "date range" 2023-05-02 14:42:29 +03:00
Protesilaos Stavrou 038295f72c
Make all theme descriptions more informative 2023-03-25 17:37:33 +02:00
Protesilaos Stavrou 21099418eb
Add bg-diff-context palette entry; implement it 2023-02-04 09:09:31 +02:00
Protesilaos Stavrou 1ee4c9576f
RENAME bg-\(added\|changed\|removed\)-intense to bg-\1-fringe
This specifies what the colours are used for.  Otherwise they are
confusing.

This change breaks any colour overrides for those names.  They need to
be renamed to use "-fringe" instead of "-intense".
2023-02-04 08:31:48 +02:00
Protesilaos Stavrou 188f68ba43
Make it possible to have recursive palette mapping
This means that a semantic colour mapping in the palette can have as
its value another mapping.  The function will find the underlying
colour.

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

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

Also thanks to Christian Tietze for participating in that discussion
on the mailing list.
2023-01-04 12:28:06 +02:00
Protesilaos Stavrou 6ae40baacc
Update copyright years 2023-01-01 14:01:57 +02:00
Protesilaos Stavrou 57cb3347ad
Make sure all outline headers are the correct length 2022-12-31 15:04:53 +02:00
Protesilaos Stavrou 32dc7f9bc1
Deprecate modus-themes-region; use overrides
This is the last user option that we need to deprecate for the release
of version 4.  Now all colour-related changes happen through palette
overrides.

Thanks to Christian Tietze for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1ilhtrs09.fsf%40christiantietze.de%3E>.
2022-12-30 18:56:51 +02:00
Protesilaos Stavrou 575644f9a3
Add uncommon accent backgrounds 2022-12-30 18:56:51 +02:00
Protesilaos Stavrou 52a848e42c
Add missing entry for paren match underline
Thanks to Tony Zorman for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E>.
2022-12-30 05:26:53 +02:00
Protesilaos Stavrou 93401ca2c8
Clarify that mappings cannot be recursive
Thanks to tumashu for reminding me of this in issue 56 on the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/56>.
2022-12-29 14:47:42 +02:00
Protesilaos Stavrou 72eb32f4fb
Implement rainbow mappings
These are now used in the rainbow-delimiters package, but there may be
more applications.

Thanks to Aleksei Pirogov for bringing this matter to my attention in
issue 54 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/54>.
2022-12-29 10:38:44 +02:00
Protesilaos Stavrou 2fa9a272fe
Simplify modus-themes-prompts; add overrides for its colors 2022-12-28 15:47:18 +02:00
Protesilaos Stavrou eb38b92495
Decouple accent mappings from completion 2022-12-28 14:58:12 +02:00
Protesilaos Stavrou 7c74495bf7
Give appropriate name to intense backgrounds 2022-12-28 14:56:08 +02:00
Protesilaos Stavrou 8bb44672da
Refine uncommon accents for the dark themes 2022-12-28 14:35:37 +02:00
Protesilaos Stavrou 737253a0bd
Remove some of the uncommon colors from the palettes 2022-12-28 06:34:13 +02:00
Protesilaos Stavrou 13beb314f8
Add 'date-weekday' mapping 2022-12-28 05:44:00 +02:00
Protesilaos Stavrou ff4bbd5dae
Refine colour-coded underlines 2022-12-27 07:28:20 +02:00
Protesilaos Stavrou 8f74db7030
Revise info mapping for all except deuteranopia 2022-12-27 06:53:29 +02:00
Protesilaos Stavrou 670bbaf869
Add intense diff foregrounds; use them for diffstat 2022-12-27 06:45:27 +02:00
Protesilaos Stavrou c45374473a
Refine mode line err, warning, info 2022-12-27 06:25:37 +02:00
Protesilaos Stavrou 54f27735dc
Refine mode line grays for modus-{operandi,vivendi} 2022-12-27 05:50:36 +02:00
Protesilaos Stavrou daeb717da8
Revise color of info mapping except for deuteranopia 2022-12-26 10:56:30 +02:00
Protesilaos Stavrou b8aa0887be
Implement mode line mappings for err, warning, info 2022-12-26 10:48:52 +02:00
Protesilaos Stavrou 83b6cfd9d7
Dim the fringe mapping 2022-12-26 10:17:26 +02:00
Protesilaos Stavrou 85eaba2c52
Tweak mode line grays for modus-{operandi,vivendi} 2022-12-26 10:13:44 +02:00
Protesilaos Stavrou 533595cf16
Define a 'date-now' mapping 2022-12-26 03:53:12 +02:00
Protesilaos Stavrou d8daaf85b9
Only allow 'unspecified' in palettes
Makes it easier to read for someone who is not familiar with what 't'
means for underlines.
2022-12-26 03:33:10 +02:00
Protesilaos Stavrou 9e4d1eb4c6
Remove duplicate TODOs 2022-12-25 14:49:24 +02:00
Protesilaos Stavrou e478002d82
Use overrides for heading background and overline 2022-12-24 09:09:33 +02:00
Protesilaos Stavrou 41a9d726a8
Reorganise the palettes 2022-12-24 08:49:24 +02:00
Protesilaos Stavrou 30b7868fed
Rename accent mappings for consistency 2022-12-23 13:23:32 +02:00
Protesilaos Stavrou baa8dcec18
Expand link mappings; accept 't' and 'unspecified' values 2022-12-23 13:22:54 +02:00
Protesilaos Stavrou d7affae1b6
Add nuanced accented backgrounds 2022-12-23 13:16:10 +02:00
Protesilaos Stavrou 86547e4c21
Clarify doc strings of palette overrides 2022-12-23 12:34:58 +02:00
Protesilaos Stavrou 9cd3314018
Deprecate modus-themes-links; use mappings instead 2022-12-22 12:15:15 +02:00
Protesilaos Stavrou 53e98dd349
Deprecate modus-themes-subtle-line-numbers; add mappings 2022-12-22 07:09:16 +02:00
Protesilaos Stavrou 718557503a
Make box buttons respond to palette overrides 2022-12-21 12:05:23 +02:00