On Mon, Dec 25, 2023, at 14:35, Ihor Radchenko wrote: > equal.moon0...@fastmail.com writes: > >> I'm trying to figure out how to start a note (C-c C-z) on the currently >> clocked task from emacsclient. Here's what I have so far: >> ... >> emacsclient -s test -nw --eval '(progn (org-clock-goto) (org-add-note))' >> >> This seems to have no effect. Oddly, if I paste this into M-:, it works >> fine. I've tried a number of things with e.g. plain capture templates that >> run the above code :after-finalize, using call-interactively, etc. After a >> cursory reading through the info manual on interactivity I find I'm still a >> bit lost. Can anyone explain what I'm doing wrong and hopefully point me to >> the right manual page to read on this? > > `org-add-note' is implemented a bit awkwardly using post-command-hook, > which makes it work only interactively. > The hook does not trigger when you use --eval. That's why you are not > seeing the note buffer after running the above shell command. > > What you can do is manually call the function used to raise the note > buffer: > > emacsclient -nw --eval '(progn (org-clock-goto) (org-add-note) > (org-add-log-note))'
Thanks, this works! I'm curious as to why though. Shouldn't something like call-interactively solve this problem too? I'm thinking it has something to do with how the command loop works that I don't understand.