OK I guess in fact I'm 1. supposed to attach the patches (?) and 2. they
contain hashes so I guess I should reattach them all together, having changed
the first. Here they are. Sorry, I'm new to this email workflow.
The new thing here since Nicolas reviewed this last year (apart from applying
changes in response to review feedback) is "greying out" habits that you just
did, by applying face 'org-agenda-done when a habit is scheduled for the future.
On Sun, 3 Feb 2019, at 16:03, John Lee wrote:
> * lisp/org-habit.el (org-habit-scheduled-past-days): New variable
>
> * lisp/org-agenda.el (org-agenda-get-scheduled): override
> `org-scheduled-past-days' for habits if
> `org-habit-scheduled-past-days` is not nil
>
> TINYCHANGE
> ---
> lisp/org-agenda.el | 4 +++-
> lisp/org-habit.el | 15 +++
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
> index 489ecec95..784a555a9 100644
> --- a/lisp/org-agenda.el
> +++ b/lisp/org-agenda.el
> @@ -90,6 +90,7 @@
> (defvar org-habit-show-habits)
> (defvar org-habit-show-habits-only-for-today)
> (defvar org-habit-show-all-today)
> +(defvar org-habit-scheduled-past-days)
>
> ;; Defined somewhere in this file, but used before definition.
> (defvar org-agenda-buffer-name "*Org Agenda*")
> @@ -6201,7 +6202,8 @@ scheduled items with an hour specification like
> [h]h:mm."
> habitp
> (bound-and-true-p org-habit-show-all-today))
> (when (or (and (> ddays 0) (< diff ddays))
> - (> diff org-scheduled-past-days)
> + (> diff (or (and habitp org-habit-scheduled-past-days)
> + org-scheduled-past-days))
> (> schedule current)
> (and (/= current schedule)
> (/= current today)
> diff --git a/lisp/org-habit.el b/lisp/org-habit.el
> index af4520729..88df38ce0 100644
> --- a/lisp/org-habit.el
> +++ b/lisp/org-habit.el
> @@ -89,6 +89,21 @@ It will be green even if it was done after the deadline."
>:group 'org-habit
>:type 'boolean)
>
> +(defcustom org-habit-scheduled-past-days nil
> +"Value to use instead of `org-scheduled-past-days', for habits only.
> +
> +If nil, `org-scheduled-past-days' is used.
> +
> +Setting this to say 1 is a way to make habits always show up
> +as a reminder, even if you set `org-scheduled-past-days' to a
> +small value because you regard scheduled items as a way of
> +\"turning on\" TODO items on a particular date, rather than as a
> +means of creating calendar-based reminders."
> + :group 'org-habit
> + :type '(choice integer (const nil))
> + :package-version '(Org . "9.3")
> + :safe (lambda (v) (or (integerp v) (null v
> +
> (defface org-habit-clear-face
>'background light)) (:background "#8270f9"))
> (((background dark)) (:background "blue")))
> --
> 2.17.1
>
>
From 81a56b4b2fd8bfa92695a8386158f6e03584f948 Mon Sep 17 00:00:00 2001
From: John Lee
Date: Sun, 3 Feb 2019 12:35:39 +
Subject: [PATCH 1/3] org-habit: Add org-habit-scheduled-past-days
* lisp/org-habit.el (org-habit-scheduled-past-days): New variable
* lisp/org-agenda.el (org-agenda-get-scheduled): override
`org-scheduled-past-days' for habits if
`org-habit-scheduled-past-days` is not nil
TINYCHANGE
---
lisp/org-agenda.el | 4 +++-
lisp/org-habit.el | 15 +++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 489ecec95..784a555a9 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -90,6 +90,7 @@
(defvar org-habit-show-habits)
(defvar org-habit-show-habits-only-for-today)
(defvar org-habit-show-all-today)
+(defvar org-habit-scheduled-past-days)
;; Defined somewhere in this file, but used before definition.
(defvar org-agenda-buffer-name "*Org Agenda*")
@@ -6201,7 +6202,8 @@ scheduled items with an hour specification like [h]h:mm."
habitp
(bound-and-true-p org-habit-show-all-today))
(when (or (and (> ddays 0) (< diff ddays))
- (> diff org-scheduled-past-days)
+ (> diff (or (and habitp org-habit-scheduled-past-days)
+ org-scheduled-past-days))
(> schedule current)
(and (/= current schedule)
(/= current today)
diff --git a/lisp/org-habit.el b/lisp/org-habit.el
index af4520729..88df38ce0 100644
--- a/lisp/org-habit.el
+++ b/lisp/org-habit.el
@@ -89,6 +89,21 @@ It will be green even if it was done after the deadline."
:group 'org-habit
:type 'boolean)
+(defcustom org-habit-scheduled-past-days nil
+"Value to use instead of `org-scheduled-past-days', for habits only.
+
+If nil, `org-scheduled-past-days' is used.
+
+Setting this to say 1 is a way to make habits always show up
+as a reminder, even if you set `org-scheduled-past-days' to a
+small value because you regard scheduled items as a way of
+\"turning on\" TODO items on a