From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id 0Fx1OoGNXmcgggEAe85BDQ:P1 (envelope-from ) for ; Sun, 15 Dec 2024 08:04:18 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id 0Fx1OoGNXmcgggEAe85BDQ (envelope-from ) for ; Sun, 15 Dec 2024 09:04:18 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=positron.solutions header.s=google header.b=VONoN9BS; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1734249857; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=BCf+wTZXw90qcbrR0MJumlbV8uFuYaCgoeWqrnRqyWU=; b=QT9cRbcMZlKiyrBphXVLcFJ1xe1JVj8SGb3udwJ/zDVBbRYMFwRwogdLXiu6fRJrsLZGsv hCzHqWbiTST4J943ijTyK9M5Us9DCvP1mp/oNrBoa0vXJKwPcUzptGGjJsAJHdUlnNzEe4 buB6XnHQ/HO68bpl+c+Fnln6DMGswnHisWt7fspLwyvRFk9zc+T5MI7QodIvs6f6GQ2o5v 4SHMyEeFZFCdLF3ltK+Y2pBsgHM/6kOdc1BjNGI+Tt7u0iZgHOvu2tg88M444mk8pXe/+m 4j4fGimZzkeTBnANhMH7p4qU1pNrGPXfm7SbwyO6d2f4562toTPYoJjOJaGbyQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1734249857; a=rsa-sha256; cv=none; b=JJQ9YEM61GCgchPDFGZ+FuHNVLXoTxA1gTXXPMtDaeLUMEMR9xxVVsfBsFDSl8EYyHrlEe eW0cCTSeomGhDAyFSMPv2jZkFDlx6k923/Ekg1bFu9iPW2CnzFce7RpfmeQa6nKTG3wWxp +cvuaNIDUOpEc9XzbKfbNmVGhvL9mpBGjYxCz7O9P2Oyj9lndGHHzyNacEaDz2hRb1NiZO OWqZqAwX0UJwCSeItoci3/WTWvBh5ZOpGRHXZjvGqUV7WNLCTHF/epKz6VmiZMvFZXfacc RT+adXY9UCtwLoDTFcUBf0NmC/eiqGPHEX6fa2Q99YE/c/tKMcmav+rU2cM7Jw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=positron.solutions header.s=google header.b=VONoN9BS; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=none Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B9FF744D17 for ; Sun, 15 Dec 2024 09:04:17 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tMj2I-0000h6-De; Sun, 15 Dec 2024 02:27:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tMetC-0007fk-Vw for emacs-orgmode@gnu.org; Sat, 14 Dec 2024 22:01:51 -0500 Received: from mail-yb1-xb2e.google.com ([2607:f8b0:4864:20::b2e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tMetA-0000lL-2K for emacs-orgmode@gnu.org; Sat, 14 Dec 2024 22:01:50 -0500 Received: by mail-yb1-xb2e.google.com with SMTP id 3f1490d57ef6-e3c8f39cab1so2360400276.0 for ; Sat, 14 Dec 2024 19:01:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=positron.solutions; s=google; t=1734231706; x=1734836506; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=BCf+wTZXw90qcbrR0MJumlbV8uFuYaCgoeWqrnRqyWU=; b=VONoN9BSdsVQHY0iE2RTQYnrvGEfMKLd7PZtv114ZB6GtixhjrPO7MzHKQgMhsmawI 8dRf1pbTW0V2OAsCQkGs5c7ejAl0KgPEwxADmQh9QcksQmfRgxBcpQaeoXTCBtzTTIfA uGd/8GAG2bAgDN3rXUeUDI0vF6fJgFFW6TZTvwCUfoP2vYggDWNPXITl8ak23TyckSj9 xLF2M97SEbkrz3I41xJ+h9k080Dj5wrXMb4ReabGwt1PBvI8HGy6ONpqZnCivJMdx/1k X/eVvpzqqagM+jDB1/zQIu0qYqTDA4oTa3nKuqKln9pVUokTEdYvaOmEGf+vaQGK+uJS sHBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734231706; x=1734836506; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BCf+wTZXw90qcbrR0MJumlbV8uFuYaCgoeWqrnRqyWU=; b=u9ATXnwNTRlT88IoiTta9pLp6Pol+f6Hqxt/jyf+kCJDXu5yAYISzao4KzlS92ehCD X9J/5QgwODmolQlf3NJhQ82LDi6wRSTMUTT/04H86sjWu15WKL35WlYmECfYECyjYxEs FChWUpMXWHfpjABbLRImxMx/Bsys3WtWd7X1YXu5OKCtwwgNwkM0UAjRk2Nr5p/yIb+a ZjGZ+FgtDXMLyvnUGFrrgaEUHGoazPd8wAH9Q1EdLuqoELsvRKtB7YD2AdvZG2MAxHbR Cd1kff2D3tKI9O9Qkt4c1TBUFYBpWWiWvMnaIxmVyWRSIyW/ymTV9gtn8vX++8dJ+GNb cPiA== X-Forwarded-Encrypted: i=1; AJvYcCVXXVSE3K+PanSJReafNCJIImnNBQgMmAw57B3aiTtcwPZeLW6DIdzpXd05gZDTyeRtKVyh1nKCNQ0Ot3PZ@gnu.org X-Gm-Message-State: AOJu0YyyHeBE8T0qA/OrqLNh/tWMErLDgQliO4hIMy/uWQc9j/fV2LhG Gr06k9ssn02VSWEDnLY2SqXaveSaTKnAjv6Gj08xdWxP8V6tjjwpEebVtOdEY2nsIEdi0Zb92vi gbgAQpAKWeMHmaEuRvXrBSvuz6yg1ZI7QWsi0XA== X-Gm-Gg: ASbGnctW5MzXgKZZcu7CVe4GSx3OkhnCBGS4225KZ28L5sSLQ5ti509scfHhwJfWgIK d6iDaUxw1MpnIyWClSiZ2G/0K+UAkdg3DsPkPr0xa X-Google-Smtp-Source: AGHT+IGytTjwcAHFU7zjjFiIvzoOX+QS9jzILogQgOSFXNDaoaKa9m1dt4eeDu9fC3UCUD3be0TQ/c3GigiqsT+MzHQ= X-Received: by 2002:a05:6902:2582:b0:e3a:7b9:ba65 with SMTP id 3f1490d57ef6-e438fc666dcmr6591097276.22.1734231705816; Sat, 14 Dec 2024 19:01:45 -0800 (PST) MIME-Version: 1.0 References: <87o71d25fb.fsf@gmail.com> In-Reply-To: <87o71d25fb.fsf@gmail.com> From: Psionic K Date: Sun, 15 Dec 2024 12:01:34 +0900 Message-ID: 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?) To: Karthik Chikmagalur , Ihor Radchenko Cc: Psionic K , Emacs developers , 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 Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2607:f8b0:4864:20::b2e; envelope-from=exec@positron.solutions; helo=mail-yb1-xb2e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sun, 15 Dec 2024 02:27:27 -0500 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -5.38 X-Spam-Score: -5.38 X-Migadu-Queue-Id: B9FF744D17 X-Migadu-Scanner: mx11.migadu.com X-TUID: j2PNK30IUdZe > 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.