Hi,

I'd like to propose adding a transient-based dispatch interface for
org-agenda.  Now that transient.el is bundled with Emacs, it would be
nice to offer a modern, discoverable UI for org-agenda dispatch as an
alternative to the current custom buffer approach.

This patch:

- Extracts the built-in agenda key bindings into a data-driven alist
  (`org-agenda-builtin-key-to-action'), replacing the hard-coded `cond'
  branches in `org-agenda'.

- Extracts the custom command normalization and execution logic into
  reusable functions (`org-agenda-normalize-custom-agenda-commands' and
  `org-agenda-execute-custom-command').

- Adds `org-agenda-transient', a new transient prefix command that
  dynamically populates itself with both custom and built-in agenda
  commands.

The refactoring of `org-agenda' into smaller functions is useful on its
own, and the transient interface is entirely opt-in -- users who prefer
the current dispatch can continue using `org-agenda' as before, while
those who want the transient UI can bind `org-agenda-transient' to their
preferred key.

I have initiated the FSF copyright assignment process (email sent to
[email protected] today).

The patch is attached and also available as a branch:
https://github.com/colonelpanic8/org-mode/tree/add-org-agenda-transient

Looking forward to feedback.

Best,
Ivan Malison

Attachment: 0001-org-agenda-Add-transient-based-dispatch-interface.patch
Description: Binary data

Reply via email to