0

When I display the org-habits consistency graph in org-mode's agenda view, one column/character is used per day. I am finding that it is difficult to visually pick out the current day. I'd like to modify how each day/column/character is displayed to help me find the current day faster.

I'm new to Lisp and Emacs/Spacemacs so reading through the org-habit code is difficult for me. Is there a way to increase the width of the current day column? Or perhaps style it such that it is easier to pick out the current day column.

Thank you for your attention and help.

My org-habit related configuration has some parts I have cargo-culted from various sources which I'm including here in case they affect what I'm trying to do here.

;; org-habit module:
;; http://aaronbedra.com/emacs.d/#org-habit
(setq org-habit-show-habits-only-for-today nil)
(setq org-habit-graph-column 60)
(setq org-habit-following-days 3)

;; more interesting settings to potentially adopt:
;; https://blog.aaronbieber.com/2016/09/24/an-agenda-for-life-with-org-mode.html
(defun air-org-skip-subtree-if-habit ()
  "Skip an agenda entry if it has a STYLE property equal to \"habit\"."
  (let ((subtree-end (save-excursion (org-end-of-subtree t))))
    (if (string= (org-entry-get nil "STYLE") "habit")
        subtree-end
      nil)))

(defun air-org-skip-subtree-if-priority (priority)
  "Skip an agenda subtree if it has a priority of PRIORITY.

PRIORITY may be one of the characters ?A, ?B, or ?C."
  (let ((subtree-end (save-excursion (org-end-of-subtree t)))
        (pri-value (* 1000 (- org-lowest-priority priority)))
        (pri-current (org-get-priority (thing-at-point 'line t))))
    (if (= pri-value pri-current)
        subtree-end
      nil)))

(setq org-agenda-custom-commands
     '(("d" "Daily agenda and all TODOs"
         ((tags "PRIORITY=\"A\""
                ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
                 (org-agenda-overriding-header "High-priority unfinished tasks:")))
          (agenda "" ((org-agenda-ndays 1)))
          (alltodo ""
                   ((org-agenda-skip-function '(or (air-org-skip-subtree-if-habit)
                                                   (air-org-skip-subtree-if-priority ?A)
                                                   (org-agenda-skip-if nil '(scheduled deadline))))
                    (org-agenda-overriding-header "ALL normal priority tasks:"))))
         ())))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.