Russell Adams <rlad...@adamsinfoserv.com> writes:

> On Thu, Nov 04, 2021 at 12:16:19PM +0800, stardiviner wrote:
>> How to use elisp code to generate an org-agenda view for clocked tasks and
>> logs etc which are sorted by timestamps? I want to view my daily done tasks
>> and attach them as part of diary (maybe use org source block elisp code to
>> generate output?)
>>
>> So how to setup `org-agenda-custom-commands` to archive this purpose?
>
> I routinely export my agenda to HTML with logbook mode enabled and
> inactive timestamps. This shows a complete timeline of my actions.  I
> save timestamps on changing TODO to DONE, use active timestamps for
> appointments, and I constantly add inactive timestamps while taking
> notes. I use this to justify billing to clients.
>
> I open the agenda, v m to make a monthly view, L for logbook, ] to
> enable inactive timestamps, and then C-x C-w to save. You may be able
> to just use elisp to trigger these actions.
>
> I don't do it often enough to automate it. I love being able to
> flatten my tree of notes into a timeline this way.
>
> ------------------------------------------------------------------
> Russell Adams                            rlad...@adamsinfoserv.com
>
> PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/
>
> Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

Russell, Thanks for your hint.

I have a prototype code now, but still have problem.

#+begin_src emacs-lisp
(add-to-list
 'org-agenda-custom-commands
 '("c" "Tody [c]locked tasks."
   ((agenda ""
            ((org-agenda-ndays 1)
             (org-agenda-span-1)
             (org-agenda-use-time-grid t)
             (org-agenda-include-diary nil)
             (org-agenda-show-log (quote clockcheck))
             (org-agenda-clockreport t))))))
#+end_src

#+begin_src emacs-lisp
(let* ((org-agenda-sticky t)
       ;; FIXME how to run it in background instead of switch to agenda buffer.
       (_ (org-agenda nil "c"))
       (origin-buffer (current-buffer))
       (origin-buffer-point (point))
       (agenda-buffer (with-current-buffer "*Org Agenda(c)*"
                        (buffer-substring (point-min) (point-max)))))
  (switch-to-buffer origin-buffer)
  (with-current-buffer origin-buffer
    (goto-char origin-buffer-point)
    (insert agenda-buffer)))
#+end_src

In the source code comment "FIXME" org-agenda always in frontend and popup 
buffer. I can't generate
org-agenda in background then get the buffer content.

Does anybody knows some tricky method for my code?


<#secure method=pgpmime mode=sign>
-- 
[ stardiviner ]
       I try to make every word tell the meaning that I want to express.

       Blog: https://stardiviner.github.io/
       IRC(freenode): stardiviner, Matrix: stardiviner
       GPG: F09F650D7D674819892591401B5DF1C95AE89AC3

Reply via email to