Org deadline and scheduled faces don't distinguish clearly
Hi Prot,
I hope you're doing well. I've been working with my Org configuration, and I noticed that in modus-themes and ef-themes, the three Org Agenda deadline faces aren't clearly distinguished. They are:
-
org-imminent-deadline: Face for current deadlines in the agenda. -
org-upcoming-deadline: Face for items scheduled previously, and not yet done. -
org-upcoming-distant-deadline: Face for items scheduled previously, not done, and have a distant deadline.
In, e.g. modus-vivendi, all three of them are a bright red color, and the "imminent" face is also bold.
In the default Emacs theme, the "imminent" face is bright red and bold; the "upcoming" face is orange (actually, "Firebrick"); and the "distant" face inherits from org-default and has no other specified attributes. This way, in the Agenda, each relative deadline status is clearly distinguished. But with modus and ef, even distant deadlines look "angry", as if they are imminent or past due.
Maybe these faces aren't ones you use very much in your configuration (I'm not even sure if you really use Org Agenda much). But it would be great if these faces, in your excellent themes, could be fashioned after the defaults to preserve their distinct appearances.
Thanks as always for your work. My Emacs experience would not be the same without it!
Hi again Prot,
I just noticed that the same is true for the scheduled faces:
-
org-scheduled: Items scheduled for a certain day -
org-scheduled-today: Items scheduled for today -
org-scheduled-previously: Items scheduled previously, and not yet done
In the default theme, the first two faces are identical (although it seems to me that they should be at least slightly different), and the last one is orange (actually, "Firebrick", like `org-upcoming-deadline).
But in ef-themes, only org-scheduled has a defined foreground, and the other two faces merely inherit from it.
I notice that in modus-themes, org-scheduled-today is also bold; but org-scheduled-previously looks the same as org-scheduled.
Thanks for your consideration.
From: Adam Porter @.***> Date: Wed, 3 Apr 2024 19:08:45 -0700
Hi again Prot,
Hello Adam!
I just noticed that the same is true for the scheduled faces:
org-scheduled: Items scheduled for a certain dayorg-scheduled-today: Items scheduled for todayorg-scheduled-previously: Items scheduled previously, and not yet done
The reason I have not done much with them is because nobody asked and I was not sure what the best approach is. In my workflow, I do not differentiate between them because I remove the forewarnings and past dates from the today view.
On a more technical level, it is hard to communicate this nuance with colour alone. For scheduled dates we use a yellow hue. It is difficult to provide shades of yellow that are both legible and sufficiently distinct from each other when placed in the same context.
In the default theme, the first two faces are identical (although it seems to me that they should be at least slightly different), and the last one is orange (actually, "Firebrick", like `org-upcoming-deadline).
Perhaps the best way forward is to define semantic colour mappings in each theme palette and let the user set the colours they like?
Or do you think we should make strategic use of bold and italic (which note that it does not work---or work well---with all typefaces).
-- Protesilaos Stavrou https://protesilaos.com
Hi Prot,
Thanks for your kind reply, and my apologies for neglecting this issue since then. I would like to revisit this, but I'd also like to do so in the context of ef-themes (I find myself using ef-themes and modus-themes nearly equally, and both collections seem to handle these faces similarly).
Here are my suggestions at the moment:
-
org-scheduledshould not draw any special attention to itself, so its face should inherit fromdefault. -
org-scheduled-todayshould have the face it has now. -
org-scheduled-previouslyshould draw more attention to itself, so it should have the color oforg-scheduled-todayand be bold. -
org-imminent-deadlineshould have the color it does now (especially since, surprisingly, there doesn't appear to be a distinct face for overdue deadlines), and it should be bold (since it's urgent). -
org-upcoming-deadlineshould have the same color asorg-imminent-deadlinebut have normal weight (I'd truly prefer that it have a less urgent-looking color, but in the interest of avoiding adding additional colors, using different weights would still help distinguish them). -
org-upcoming-distant-deadlineI think it should either look likedefault, or, if it's not too complicated, have a slightly fainter appearance thandefault, since it's less urgent.
Past that, I'd suggest that users (perhaps including myself, if I can find the time) experiment with using additional colors to help distinguish the faces, and if some satisfactory ones are found, that those be additionally considered later.
You also mentioned using italic: that could be useful, but I think I'd prefer not to use it, because its meaning seems unclear to me, relative to other styles; so it might be best left to be applied by users as desired.
What do you think? Thanks.
From: Adam Porter @.***> Date: Fri, 27 Sep 2024 19:58:56 -0700
Hi Prot,
Hello Adam,
Thanks for your kind reply,
You are welcome!
and my apologies for neglecting this issue since then.
No worries! There is no pressure to do this quickly.
I would like to revisit this, but I'd also like to do so in the context of
ef-themes(I find myself usingef-themesandmodus-themesnearly equally, and both collections seem to handle these faces similarly).
Sure. Whatever we do here I will adapt it for the ef-themes as well.
Here are my suggestions at the moment:
org-scheduledshould not draw any special attention to itself, so its face should inherit fromdefault.
org-scheduled-todayshould have the face it has now.
org-scheduled-previouslyshould draw more attention to itself, so it should have the color oforg-scheduled-todayand be bold.
org-imminent-deadlineshould have the color it does now (especially since, surprisingly, there doesn't appear to be a distinct face for overdue deadlines), and it should be bold (since it's urgent).
org-upcoming-deadlineshould have the same color asorg-imminent-deadlinebut have normal weight (I'd truly prefer that it have a less urgent-looking color, but in the interest of avoiding adding additional colors, using different weights would still help distinguish them).
org-upcoming-distant-deadlineI think it should either look likedefault, or, if it's not too complicated, have a slightly fainter appearance thandefault, since it's less urgent.
Since we are doing this, I think it is the right time to also consider using a wider colour palette as well as make all the requisite changes to the font weights.
With regard to the font weights, I agree with you fully.
About the colours, I agree with you in principle though since we can expand what we use here, how about this diff relative to your suggestion?
-
'org-scheduled' uses a faint variant of the colour applied to 'org-scheduled-today'.
-
'org-upcoming-deadline' uses a faint variant of the colour applied to 'org-imminent-deadline'
-
'org-upcoming-distant-deadline' is even more faint than 'org-upcoming-deadline' but still has a colour to it than being equal to the 'default'.
I will draw up a sample now and keep you posted.
-- Protesilaos Stavrou https://protesilaos.com
Here is the diff for one theme file:
modus-operandi-theme.el | 2 ++
modus-themes.el | 12 ++++++------
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/modus-operandi-theme.el b/modus-operandi-theme.el
index 6fd2ddd..1a5af49 100644
--- a/modus-operandi-theme.el
+++ b/modus-operandi-theme.el
@@ -302,12 +302,14 @@ ;;;; Date mappings
(date-common cyan)
(date-deadline red)
+ (date-deadline-subtle red-faint)
(date-event fg-alt)
(date-holiday red-cooler)
(date-holiday-other blue)
(date-now fg-main)
(date-range fg-alt)
(date-scheduled yellow-warmer)
+ (date-scheduled-subtle yellow-faint)
(date-weekday cyan)
(date-weekend red-faint)
diff --git a/modus-themes.el b/modus-themes.el
index 4d48147..4960877 100644
--- a/modus-themes.el
+++ b/modus-themes.el
@@ -3300,7 +3300,7 @@ ;;;;; org
`(org-headline-todo ((,c :inherit org-todo)))
`(org-hide ((,c :foreground ,bg-main)))
`(org-indent ((,c :inherit (fixed-pitch org-hide))))
- `(org-imminent-deadline ((,c :inherit modus-themes-bold :foreground ,date-deadline)))
+ `(org-imminent-deadline ((,c :inherit bold :foreground ,date-deadline)))
`(org-latex-and-related ((,c :foreground ,type)))
`(org-level-1 ((,c :inherit modus-themes-heading-1)))
`(org-level-2 ((,c :inherit modus-themes-heading-2)))
@@ -3319,9 +3319,9 @@ ;;;;; org
`(org-priority ((,c :foreground ,prose-tag)))
`(org-property-value ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata-value)))
`(org-quote ((,c :inherit org-block)))
- `(org-scheduled ((,c :foreground ,date-scheduled)))
- `(org-scheduled-previously ((,c :inherit org-scheduled)))
- `(org-scheduled-today ((,c :inherit (modus-themes-bold org-scheduled))))
+ `(org-scheduled ((,c :foreground ,date-scheduled-subtle)))
+ `(org-scheduled-previously ((,c :inherit (bold org-scheduled-today))))
+ `(org-scheduled-today ((,c :foreground ,date-scheduled)))
`(org-sexp-date ((,c :foreground ,date-common)))
`(org-special-keyword ((,c :inherit org-drawer)))
`(org-table ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-table)))
@@ -3331,8 +3331,8 @@ ;;;;; org
`(org-target ((,c :underline t)))
`(org-time-grid ((,c :foreground ,fg-dim)))
`(org-todo ((,c :foreground ,prose-todo)))
- `(org-upcoming-deadline ((,c :foreground ,date-deadline)))
- `(org-upcoming-distant-deadline ((,c :inherit org-upcoming-deadline)))
+ `(org-upcoming-deadline ((,c :foreground ,date-deadline-subtle)))
+ `(org-upcoming-distant-deadline ((,c :foreground ,fg-main)))
`(org-verbatim ((,c :inherit modus-themes-prose-verbatim)))
`(org-verse ((,c :inherit org-block)))
`(org-warning ((,c :inherit warning)))
I changed my mind about org-upcoming-distant-deadline and will use the main foreground as you had suggested. Otherwise, we cannot get sufficient differentiation with the colour values.
Hi Prot,
Since we are doing this, I think it is the right time to also consider using a wider colour palette as well as make all the requisite changes to the font weights. With regard to the font weights, I agree with you fully. About the colours, I agree with you in principle though since we can expand what we use here, how about this diff relative to your suggestion? - 'org-scheduled' uses a faint variant of the colour applied to 'org-scheduled-today'. - 'org-upcoming-deadline' uses a faint variant of the colour applied to 'org-imminent-deadline' - 'org-upcoming-distant-deadline' is even more faint than 'org-upcoming-deadline' but still has a colour to it than being equal to the 'default'. I will draw up a sample now and keep you posted.
I fully trust your judgement here. I wanted to avoid suggesting too much additional work for you, but if you want to go further with the ideas, I'll be happy to benefit from your thorough approach. :) Thank you!
I just pushed the changes:
commit 77a0310b5cba1720405d0587297d2f7781b02dad
Author: Protesilaos Stavrou <[email protected]>
Date: Fri Oct 18 13:14:24 2024 +0300
Revise colours for deadlines and scheduled tasks
The goal is two-fold:
1. Improve the semantics of relevant faces. This now covers the Org
agenda. We want pending/urgent tasks to be rendered in a bold font
and use a vivid colour. Whereas tasks that are not urgent should
have a subtle colour and a normal weight. Thanks to Adam
Porter (GitHub @alphapapa) for discussing this with me in issue
102: <https://github.com/protesilaos/modus-themes/issues/102>.
2. Make the applicable colours be more consistent with the rest of the
theme. In practice, this means that the colour values are cooler
overall and the intensity is lower.
modus-operandi-deuteranopia-theme.el | 4 +++-
modus-operandi-theme.el | 10 ++++++----
modus-operandi-tinted-theme.el | 10 ++++++----
modus-operandi-tritanopia-theme.el | 4 +++-
modus-themes.el | 12 ++++++------
modus-vivendi-deuteranopia-theme.el | 4 +++-
modus-vivendi-theme.el | 10 ++++++----
modus-vivendi-tinted-theme.el | 10 ++++++----
modus-vivendi-tritanopia-theme.el | 4 +++-
9 files changed, 42 insertions(+), 26 deletions(-)
Thanks, Prot!
From: Adam Porter @.***> Date: Sun, 3 Nov 2024 11:40:08 -0800
Thanks, Prot!
You are welcome! As we discussed, I will do this for the ef-themes as well.
-- Protesilaos Stavrou https://protesilaos.com
I can't wait! As much as I love the modus-themes, I find myself using a variety of ef-themes most of the time. :)