summaryrefslogtreecommitdiff
path: root/elchemy-dashboard.el
diff options
context:
space:
mode:
Diffstat (limited to 'elchemy-dashboard.el')
-rw-r--r--elchemy-dashboard.el48
1 files changed, 25 insertions, 23 deletions
diff --git a/elchemy-dashboard.el b/elchemy-dashboard.el
index 6e8b0ae..eee2808 100644
--- a/elchemy-dashboard.el
+++ b/elchemy-dashboard.el
@@ -14,16 +14,9 @@
(add-text-properties start (point)
'(face (:height 4.0))))
(insert "\n\n")
- (dotimes (i (length elchemy/dashboard/heading-buttons))
- (let* ((button (nth i elchemy/dashboard/heading-buttons))
- (title (car button))
- (callback (cdr button)))
- (insert (buttonize title callback))
- (if (eq (% (+ i 1) elchemy/dashboard/heading-columns) 0)
- (insert "\n")
- (insert (format (concat "%-" (format "%d" (+ (- elchemy/dashboard/heading-max-length (length title)) elchemy/dashboard/heading-padding)) "s") " ")))))
- (unless (eq (% (length elchemy/dashboard/heading-buttons) elchemy/dashboard/heading-columns) 0)
- (insert "\n"))
+ (elchemy/display-tabular-button-alist
+ elchemy/dashboard/heading-buttons
+ elchemy/dashboard/heading-columns elchemy/dashboard/heading-padding)
(insert "\n\n")
(when (file-exists-p (concat elchemy/elchemy-root elchemy/elchemy-projects-file))
(let ((start (point)))
@@ -31,11 +24,10 @@
(add-text-properties start (point)
'(face (:height 1.5))))
(insert "\n")
- (mapcar #'(lambda (x) (let ((name (car x))
- (path (cdr x)))
- (insert (buttonize name (lambda (y) (elchemy/find-file y)) path) "\n")))
- (elchemy/read-alist-file (concat elchemy/elchemy-root elchemy/elchemy-projects-file)))
- (insert "\n"))
+ (elchemy/display-tabular-button-alist
+ (elchemy/read-alist-file (concat elchemy/elchemy-root elchemy/elchemy-projects-file))
+ elchemy/dashboard/projects-columns elchemy/dashboard/projects-padding)
+ (insert "\n"))
(ignore-errors
(setq agenda-items (mapcar #'(lambda (x) (elchemy/get-agenda-items x 3)) elchemy/dashboard-agenda-titles)
agenda-max-count (apply 'max (mapcar #'(lambda (x) (length x)) agenda-items))
@@ -45,11 +37,7 @@
(add-text-properties start (point)
'(face (:height 1.5))))
(insert "\n")
- (let ((start (point)))
- (insert (apply 'format (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s" "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s" "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s") elchemy/dashboard-agenda-titles))
- (add-text-properties start (point)
- '(face (:weight bold :slant italic :foreground "red"))))
- (insert "\n")
+ (insert (apply 'format (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s" "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s" "%s\n") elchemy/dashboard-agenda-titles))
(dotimes (i agenda-max-count)
(insert (format
(concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s")
@@ -58,11 +46,25 @@
(concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s")
(elchemy/replace-nil (nth i (nth 1 agenda-items)))))
(insert (format
- (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard-agenda-padding)) "s")
+ "%s"
(elchemy/replace-nil (nth i (nth 2 agenda-items)))))
(insert "\n")
- ))
- (insert "\n")
+ )
+ (insert "\n")
+ (let ((start (point)))
+ (insert "Overdue")
+ (add-text-properties start (point)
+ '(face (:height 1.5))))
+ (insert "\n")
+ (insert (elchemy/format-processed-agenda (mapcar 'elchemy/process-agenda-heading (org-ql-select (org-agenda-files) `(and (todo "STRT" "WAIT" "TODO" "CYCL") (ts :from ,(- elchemy/schedule-lookahead) :to today)) :sort '(todo priority date)))))
+ (insert "\n")
+ (let ((start (point)))
+ (insert "Upcoming")
+ (add-text-properties start (point)
+ '(face (:height 1.5))))
+ (insert "\n")
+ (insert (elchemy/format-processed-agenda (mapcar 'elchemy/process-agenda-heading (org-ql-select (org-agenda-files) `(and (todo "STRT" "WAIT" "TODO" "CYCL") (ts :from today :to ,elchemy/schedule-lookahead)) :sort '(todo priority date)))))
+ (insert "\n"))
(let ((start (point)))
(insert "Command Reference")
(add-text-properties start (point)