From: Psionic K <psionik@positron.solutions>
To: Karthik Chikmagalur <karthikchikmagalur@gmail.com>,
Ihor Radchenko <yantar92@posteo.net>
Cc: Psionic K <psionik@positron.solutions>,
Emacs developers <emacs-devel@gnu.org>,
emacs-orgmode@gnu.org, emacs.transient@jonas.bernoulli.dev,
juri@linkov.net, justin@burkett.cc, omar@matem.unam.mx,
tclaesson@gmail.com, visuweshm@gmail.com
Subject: Re: [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?)
Date: Sun, 15 Dec 2024 12:01:34 +0900 [thread overview]
Message-ID: <CADQMGASiPAGPcyrxP18F_p_pcxTBcBTT0p7tQGK+GHM8N2VDYw@mail.gmail.com> (raw)
In-Reply-To: <87o71d25fb.fsf@gmail.com>
> Do you have an example of using buffer-local variables to store
> transient state? Directing me to an appropriate section of the
> showcase should be plenty.
It's less magic than it sounds. I basically bypassed the infix system
when making transients for Master of Ceremonies.
https://github.com/positron-solutions/moc
`moc-dispatch` is a kind of utility dashboard for screen casting.
Besides controls, it displays various states you might not see in the
minibuffer or elsewhere. I used dynamic :description functions rather
than infixes to display these states. It is much simpler to bring
Elisp states into the interface this way. There's no need and there
can be no meaning of persisting the current state of Emacs.
> like the KEEP-PRED behavior of `set-transient-map'
There's more. Calling (or declining to call) `setup-prefix' manually
in an interactive form or using the stack manipulation commands can
switch between menus and pure interactive flows. It's possible to
construct flows that are more program-driven than simple KEEP-PRED or
repeat maps. Obviously we can hack them both since they are functions
that can manipulate the downstream flow. Transient's pre-commands are
a bit complex to understand when hacking in behavior but are related
to its menu stack, something transient maps don't need to express.
Instead of talking about Transient's second system behaviors, we can
identify and fix the worst ones. Jonas is aware of them and generally
in favor of normalizing how transient meshes with interactive, as long
as it doesn't break magit and all the other dependents.
> > org-speed-keys
> May you please elaborate?
I discovered org speed keys because I was making my own speed-key
system and came across the shadowed bindings. The bindings are always
shadowed, even when speed keys are off. Unlike Lispy, where I
customize the shadowing using keymaps, org speed keys has
`org-speed-commands'. From a discoverability standpoint, it breaks
some things. The commands are opaque. All I see is `org-self-insert'
whereas my own bindings have unique command names on every key,
another thing I copied from Lispy. Even if they have DWIM or
situational behavior, it is easier to identify all behavior when
starting from an entry point that doesn't implement details of other
commands.
next prev parent reply other threads:[~2024-12-15 3:01 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-14 0:37 [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?) Psionic K
2024-12-14 9:48 ` Ihor Radchenko
2024-12-14 10:12 ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? Philip Kaludercic
2024-12-14 23:20 ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?) Karthik Chikmagalur
2024-12-14 23:47 ` Karthik Chikmagalur
2024-12-15 3:01 ` Psionic K [this message]
[not found] <8734m28l9a.fsf@gmail.com>
[not found] ` <87wmhlmp83.fsf@gmail.com>
[not found] ` <871pzte929.fsf@localhost>
[not found] ` <87v7x548ri.fsf@gmail.com>
[not found] ` <87y120daue.fsf@localhost>
[not found] ` <874j4m9ep6.fsf@gmail.com>
[not found] ` <87h68gfqj1.fsf@localhost>
[not found] ` <CAO0k701CGFnQwCCuODjTFuf=OTsj9Vdqg+COP8nkpJg0wL_hQg@mail.gmail.com>
[not found] ` <87pln3f3cc.fsf@localhost>
[not found] ` <CAO0k7006goK-AfhG+3PVwhz=4QU_DMm+5edmATZpjdRHkj61Bg@mail.gmail.com>
[not found] ` <87jzd9ojj0.fsf@localhost>
[not found] ` <87cyj0ajm9.fsf@gmail.com>
[not found] ` <87zfm4s50x.fsf@localhost>
[not found] ` <CAO0k703a5SCv4Eaogjs-14zgmTi-pK5qqG=8VzB8+7h-kcC8yg@mail.gmail.com>
[not found] ` <87wmh8s358.fsf@localhost>
[not found] ` <87y11nwp9z.fsf@gmail.com>
[not found] ` <CAO0k702GsRi-h8BEY08kpf5FzMxi_MvRygNXJCyFnbtaC-a59w@mail.gmail.com>
[not found] ` <87v7wd9a2h.fsf@localhost>
[not found] ` <878qt7fbki.fsf@gmail.com>
[not found] ` <87o71jwdxz.fsf@localhost>
[not found] ` <87wmg6edr0.fsf@gmail.com>
2024-12-13 18:41 ` Ihor Radchenko
2024-12-14 1:16 ` Panayotis Manganaris
2024-12-14 10:08 ` Ihor Radchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CADQMGASiPAGPcyrxP18F_p_pcxTBcBTT0p7tQGK+GHM8N2VDYw@mail.gmail.com \
--to=psionik@positron.solutions \
--cc=emacs-devel@gnu.org \
--cc=emacs-orgmode@gnu.org \
--cc=emacs.transient@jonas.bernoulli.dev \
--cc=juri@linkov.net \
--cc=justin@burkett.cc \
--cc=karthikchikmagalur@gmail.com \
--cc=omar@matem.unam.mx \
--cc=tclaesson@gmail.com \
--cc=visuweshm@gmail.com \
--cc=yantar92@posteo.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).