Doom Emacs and Transient
2025-05-18 Sun - I've declared Emacs bankruptcy yet again and this time I decided to try out Doom Emacs. I'm pretty happy with how
consistent everything is so far. Another new thing I'm trying is transient
. I have created hydra
in the past to help
with some workflows but I'm liking the simplicity of transient
much better.
I take a lot of notes using org-mode
which should not be a surprise for most Emacs users and my system is fairly simple.
I just have an Inbox file where I capture notes and top level headings are dates.
* <2025-05-18 Sun>
** Meeting with XYZ :project-x:planning:
- Do A, then B, then C
- Follow up with UVW
This makes it very easy to capture things without thinking about where notes need to go in the moment. I have found a lot of value in reviewing notes though and tagging, and refiling, them is how I process them. Occasionally I have to create new todo items when reviewing notes as well.
The transient
I created to help with my review looks like this
(transient-define-prefix my/org-review ()
│ "A prefix for commonly used commands during an Inbox review"
│ [["Navigation"
│ │ ("n"
│ │ │"Forward Element"
│ │ │(lambda ()
│ │ │ │(interactive)
│ │ │ │(org-forward-element))
│ │ │:transient t)
│ │ │
│ │ ("p"
│ │ │"Backward Element"
│ │ │(lambda ()
│ │ │ │(interactive)
│ │ │ │(org-backward-element))
│ │ │:transient t)
│ │ │
│ │ ("u"
│ │ │"Up Element"
│ │ │(lambda ()
│ │ │ │(interactive)
│ │ │ │(org-up-element))
│ │ │:transient t)
│ │ │
│ │ ("d"
│ │ │"Down Element"
│ │ │(lambda ()
│ │ │ │(interactive)
│ │ │ │(org-down-element))
│ │ │:transient t)
│ │ │
│ │ ("t"
│ │ │"Set tags"
│ │ │(lambda ()
│ │ │ │(interactive)
│ │ │ │(org-set-tags-command)))]
│ │ │ │
│ │["Projects"
│ │ ("x"
│ │ │"X"
│ │ │my/org-x-review)]]
│ │ │
│ [:class transient-row
│ │ │ │ │ ("q"
│ │ │ │ │ │"Quit"
│ │ │ │ │ │(lambda ()
│ │ │ │ │ │ │(interactive)
│ │ │ │ │ │ │(message "Finished review"))
│ │ │ │ │ │:transient nil)])
my/org-x-review
doesn't have much at the moment, just an option to refile to a file named x.org
. I