From 81a56b4b2fd8bfa92695a8386158f6e03584f948 Mon Sep 17 00:00:00 2001 From: John Lee Date: Sun, 3 Feb 2019 12:35:39 +0000 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 10000 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