diff options
Diffstat (limited to 'elchemy-dashboard.el')
| -rw-r--r-- | elchemy-dashboard.el | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/elchemy-dashboard.el b/elchemy-dashboard.el deleted file mode 100644 index 9df76cf..0000000 --- a/elchemy-dashboard.el +++ /dev/null @@ -1,91 +0,0 @@ -(defun elchemy/create-dashboard (&optional RECREATE) - "Create the user dashboard" - (interactive) - (let ((buffer (get-buffer-create "*Dashboard*"))) - (switch-to-buffer buffer) - (unless (and buffer-read-only (not RECREATE)) - (read-only-mode -1) - (erase-buffer) - (when (file-exists-p (concat elchemy/elchemy-root elchemy/dashboard-splash)) - (insert-image (create-image (concat elchemy/elchemy-root elchemy/dashboard-splash) nil nil :scale 0.25)) - (insert "\n")) - (let ((start (point))) - (insert elchemy/dashboard/header-text) - (add-text-properties start (point) - `(face (:height ,elchemy/dashboard/header-size)))) - (insert "\n") - (when (file-exists-p (concat elchemy/elchemy-root elchemy/elchemy-headings-file)) - (elchemy/display-tabular-button-alist - (elchemy/read-alist-file (concat elchemy/elchemy-root elchemy/elchemy-headings-file)) - elchemy/dashboard/heading-columns elchemy/dashboard/heading-padding) - (insert "\n")) - (when (file-exists-p (concat elchemy/elchemy-root elchemy/elchemy-projects-file)) - (let ((start (point))) - (insert "Projects") - (add-text-properties start (point) - `(face (:height ,elchemy/dashboard/subheader-size)))) - (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)) - agenda-max-length (apply 'max (mapcar #'(lambda (x) (apply 'max (mapcar #'(lambda (y) (length y)) x))) agenda-items)) - agenda-heading-format-string "") - (let ((start (point))) - (insert "Agenda") - (add-text-properties start (point) - `(face (:height ,elchemy/dashboard/subheader-size)))) - (insert "\n") - (dotimes (_ (- (length elchemy/dashboard-agenda-titles) 1)) - (setq agenda-heading-format-string (concat agenda-heading-format-string "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s"))) - (setq agenda-heading-format-string (concat agenda-heading-format-string "%s\n")) - (insert (apply 'format agenda-heading-format-string elchemy/dashboard-agenda-titles)) - (dotimes (i agenda-max-count) - (dotimes (c (length elchemy/dashboard-agenda-titles)) - (if (eq (% (+ c 1) (length elchemy/dashboard-agenda-titles)) 0) - (insert (format "%s\n" - (elchemy/replace-nil (nth i (nth c agenda-items))))) - (insert (format - (concat "%-" (format "%d" (+ agenda-max-length elchemy/dashboard/agenda-padding)) "s") - (elchemy/replace-nil (nth i (nth c agenda-items))))) - ))) - (insert "\n") - (let ((start (point))) - (insert "Overdue") - (add-text-properties start (point) - `(face (:height ,elchemy/dashboard/subheader-size)))) - (insert "\n") - (setq overdue-s (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 -1)) :sort '(todo priority date))))) - (if (eq (length overdue-s) 0) - (insert "Yay, nothing here!\n") - (insert overdue-s)) - (insert "\n") - (let ((start (point))) - (insert "Upcoming") - (add-text-properties start (point) - `(face (:height ,elchemy/dashboard/subheader-size)))) - (insert "\n") - (setq upcoming-s (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))))) - (if (eq (length upcoming-s) 0) - (if (eq (length overdue-s) 0) - (insert "You are free!\n") - (insert "Time to work on that backlog!\n")) - (insert upcoming-s)) - (insert "\n")) - (insert (buttonize "Refresh" '(lambda (x) (elchemy/recreate-dashboard)))) - (insert "\n") - (button-mode +1) - (read-only-mode +1) - (setq-local truncate-lines t) - (local-set-key (kbd "r") 'elchemy/recreate-dashboard) - (goto-char (point-min))))) - -(defun elchemy/recreate-dashboard () - "Recreate the dashboard" - (interactive) - (elchemy/create-dashboard t)) - -(provide 'elchemy-dashboard) |
