~abcdw/rde

047535c9b853ecbc7893f9a6701a1632ef1d43a0 — Miguel Ángel Moreno 3 months ago 05fb9d6
rde: emacs-org-agenda: Add more reasonable defaults.
1 files changed, 48 insertions(+), 23 deletions(-)

M src/rde/features/emacs-xyz.scm
M src/rde/features/emacs-xyz.scm => src/rde/features/emacs-xyz.scm +48 -23
@@ 3890,10 3890,12 @@ Indentation and refile configurations, visual adjustment."

(define* (feature-emacs-org-agenda
          #:key
          (org-agenda-files 'nil)
          (org-agenda-files #f)
          (org-agenda-custom-commands %rde-org-agenda-custom-commands)
          (org-agenda-prefix-format '()))
  "Configure org-agenda for GNU Emacs."
  (ensure-pred maybe-list? org-agenda-files)
  (ensure-pred list? org-agenda-custom-commands)
  (ensure-pred maybe-list? org-agenda-prefix-format)

  (define emacs-f-name 'org-agenda)


@@ 3975,28 3977,51 @@ result is longer than LEN."

        (rde-org-agenda-appt-mode)
        (define-key global-map (kbd "C-x C-a") 'org-agenda)
        (with-eval-after-load
         'org-agenda
         ;; Impressive agenda examples
         ;; https://github.com/fniessen/emacs-leuven/blob/master/org-leuven-agenda-views.txt
         ;; Clean agenda view
         ;; https://gist.github.com/rougier/ddb84c16c28f7cd75e27e50d4c3c43da
         ;; https://d12frosted.io/posts/2020-06-23-task-management-with-roam-vol1.html
         (setq org-agenda-custom-commands ,org-agenda-custom-commands)
         (setq org-agenda-tags-column
               ;; TODO: Name this value better
               ,(- (get-value 'olivetti-body-width config 85)))
         (setq org-agenda-window-setup 'current-window)
         (setq org-agenda-files ',org-agenda-files)
         ,@(if org-agenda-prefix-format
               (if (get-value 'org-roam-todo? config)
                   `((setq org-agenda-prefix-format
                           '((agenda . " %i %(rde-org-agenda-category 12)%?-12t% s")
                             (todo . " %i %(rde-org-agenda-category 12) ")
                             (tags . " %i %(rde-org-agenda-category 12) ")
                             (search . " %i %(rde-org-agenda-category 12) "))))
                   `((setq org-agenda-prefix-format ',org-agenda-prefix-format)))
               '()))
        (add-hook 'org-agenda-mode-hook
                  'hack-dir-local-variables-non-file-buffer)
        (with-eval-after-load 'org-agenda
          ;; Impressive agenda examples
          ;; https://github.com/fniessen/emacs-leuven/blob/master/org-leuven-agenda-views.txt
          ;; Clean agenda view
          ;; https://gist.github.com/rougier/ddb84c16c28f7cd75e27e50d4c3c43da
          (setq org-agenda-custom-commands ,org-agenda-custom-commands)
          (setq org-agenda-tags-column
                ;; TODO: Name this value better
                ,(- (get-value 'olivetti-body-width config 85)))
          (setq org-agenda-window-setup 'current-window)
          ,@(if org-agenda-files
                `((setq org-agenda-files ',org-agenda-files))
                '())
          (setq org-agenda-sticky t)
          (setq org-agenda-block-separator ?-)
          (setq org-agenda-time-grid '((daily today require-timed)
                                       (800 1000 1200 1400 1600 1800 2000)
                                       " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄"))
          (setq org-agenda-current-time-string
                "⭠ now ─────────────────────────────────────────────────")
          (setq org-agenda-start-with-log-mode t)
          (setq org-agenda-todo-ignore-scheduled t)
          (setq org-agenda-todo-ignore-deadlines t)
          (setq org-agenda-todo-ignore-timestamp t)
          (setq org-agenda-window-setup 'current-window)
          (setq org-agenda-dim-blocked-tasks t)
          (setq org-agenda-skip-scheduled-if-done t)
          (setq org-agenda-skip-deadline-if-done t)
          (setq org-agenda-compact-blocks nil)
          (setq org-agenda-include-diary t)
          (setq org-agenda-custom-commands ,org-agenda-custom-commands)
          (setq org-agenda-bulk-custom-functions
                '((?P (lambda nil
                        (org-agenda-priority 'set)))))
          ,@(if org-agenda-prefix-format
                (if (get-value 'org-roam-todo? config)
                    `((setq org-agenda-prefix-format
                            '((agenda . " %i %(rde-org-agenda-category 12)%?-12t% s")
                              (todo . " %i %(rde-org-agenda-category 12) ")
                              (tags . " %i %(rde-org-agenda-category 12) ")
                              (search . " %i %(rde-org-agenda-category 12) "))))
                    `((setq org-agenda-prefix-format ',org-agenda-prefix-format)))
                '()))
        (advice-add 'org-redo :after 'rde-org-agenda-to-appt)
        (add-hook 'org-capture-after-finalize-hook 'rde-org-agenda-to-appt))
      #:summary "\