Psionic K <psionik@positron.solutions> writes: >> intercepts the main loop
> This is optional, per transient menu (prefix) and the commands within it. > A common technique, used by magit and others, is to have entry point > commands in the regular keymap so that many commands can be started without > traversing several menus. If you want normal un-shadowed bindings active > at the same time, the prefix has a slot called `transient-non-suffix' that > is similar to the `:suppress' option in keymaps or setting a `t' > `undefined' binding in a keymap. However the results of mixing self-insert > and modal or modal and another modal are generally bad. Thanks for the info! So, we can have something like :transient-non-suffix 'leave and then pressing something that is not bound to a suffix or infix will run the parent keymap command, automatically leaving transient state. > - Normalizing how to obtain arguments when being called independently as an > interactive command versus being called as a Transient suffix I think it is addressed in the example patch I shared. There, we pass around the original function arguments via macro expansion (!arg-name) ["Open" ("b" "bibliography entry" (org-cite-basic-goto !citation !prefix))] > In the short term, to punch the first two problems in the face, override > the `:setup-children' method. If you know what keymap you are borrowing > bindings from, you can synchronize it at display time. This is also partially solved. We do use :setup-children, although the initial implementation simply reads user customization into menu layout. I believe that we can read a keymap in similar way and generate transient layout automatically. > What I fear is a system like org-speed-keys which relies on an override of > `org-self-insert' and is yet another orthogonal system. I much prefer the > Lispy style of integration, which uses a keymap. Using keymaps, even if > they are not active, to generate transient key bindings via :setup-children > is the best way to have certain integration with other Emacs tools. May you please elaborate? -- Ihor Radchenko // yantar92, Org mode maintainer, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>