Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Org deadline and scheduled faces don't distinguish clearly #102

Closed
alphapapa opened this issue Apr 3, 2024 · 10 comments
Closed

Org deadline and scheduled faces don't distinguish clearly #102

alphapapa opened this issue Apr 3, 2024 · 10 comments

Comments

@alphapapa
Copy link

alphapapa commented Apr 3, 2024

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!

@alphapapa alphapapa changed the title Org deadline faces don't distinguish clearly Org deadline and scheduled faces don't distinguish clearly Apr 4, 2024
@alphapapa
Copy link
Author

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.

@protesilaos
Copy link
Owner

protesilaos commented Apr 7, 2024 via email

@alphapapa
Copy link
Author

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-scheduled should not draw any special attention to itself, so its face should inherit from default.

  • org-scheduled-today should have the face it has now.

  • org-scheduled-previously should draw more attention to itself, so it should have the color of org-scheduled-today and be bold.

  • org-imminent-deadline should 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-deadline should have the same color as org-imminent-deadline but 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-deadline I think it should either look like default, or, if it's not too complicated, have a slightly fainter appearance than default, 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.

@protesilaos
Copy link
Owner

protesilaos commented Oct 16, 2024 via email

@protesilaos
Copy link
Owner

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.

@alphapapa
Copy link
Author

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!

protesilaos added a commit that referenced this issue Oct 18, 2024
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: <#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.
@protesilaos
Copy link
Owner

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(-)

@alphapapa
Copy link
Author

Thanks, Prot!

@protesilaos
Copy link
Owner

protesilaos commented Nov 4, 2024 via email

@alphapapa
Copy link
Author

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. :)

protesilaos added a commit to protesilaos/ef-themes that referenced this issue Nov 14, 2024
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 on the Modus themes repository (the same principles apply
   here): <protesilaos/modus-themes#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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants