emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Jonas Bernoulli <jonas@bernoul.li>
To: Samuel Wales <samologist@gmail.com>,
	Ihor Radchenko <yantar92@posteo.net>
Cc: "Panayotis Manganaris" <panos.manganaris@gmail.com>,
	"Tor-björn Claesson" <tclaesson@gmail.com>,
	emacs-devel@gnu.org, emacs-orgmode@gnu.org,
	"Philip Kaludercic" <philipk@posteo.net>,
	"Omar Antolín Camarena" <omar@matem.unam.mx>,
	"Jonas Bernoulli" <emacs.transient@jonas.bernoulli.dev>,
	"Juri Linkov" <juri@linkov.net>,
	karthikchikmagalur@gmail.com, Visuwesh <visuweshm@gmail.com>,
	"Justin Burkett" <justin@burkett.cc>
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: Wed, 18 Dec 2024 11:47:51 +0100	[thread overview]
Message-ID: <87cyhpclns.fsf@bernoul.li> (raw)
In-Reply-To: <CAJcAo8uxEYMCKh4aUWmv=z3BdA4jB6cQ+x=oa7Jyo7cLpX3Hgw@mail.gmail.com>

Hello!


Samuel Wales <samologist@gmail.com> writes:

> thanks for interest.

I've worked with other users with impaired vision to improve their
experience with Transient before and tend to prioritize that work.

That being said, the end-of-year crunch is upon us, so I likely won't
find the time to do anything beyond what I have already done today.

You should update Transient to the development version.  I found two
regressions affecting the features described below and fixed them this
morning.  These fixes will make it into the next release, scheduled for
very early 2025.

> the transient menu i am trying uses more character columns and
> lines than window (c-u m-x gptel-send).

I didn't notice that you effectively said "too small in both
dimensions", so the first advice below, might not be as useful as I
initially though.  Or it might, let's see.

> transient's solution does not work well for me.
>
> 1) wrapping
>    - 3 text columns.

You can tell Transient to only ever use a single column, and
additionally you can always display the menu in a new window on the
right instead of at the bottom.

(setq transient-force-single-column t)
(setq transient-display-buffer-action
      '(display-buffer-in-side-window
        (side . right)
        (dedicated . t)
        (inhibit-same-window . t)))

>                       rightmost text column (header: "Response
>      to") has lines that wrap at rhs (not word) to lhs (not
>      beginning of that text column), putting lines between items
>      in first text column.
>    - (for clarity: by rhs and lhs, i mean where text goes, at
>      smallest usable font, maximized gui frame, no wm
>      decoration, one window in frame, 2 fringes)
>    - BEST SOLUTION FOR ME: wrap at word boundaries, /within each
>      text column/, as is done when one exports org tables to
>      html
> 2) vertical scrolling
>    - BEST SOLUTION FOR ME: SPC DEL, as is done in org export
>      menu
>      - in transient, SPC and DEL make echo area say ? for help.
>        ? makes the message go away but nothing else changes.
>        another ?  brings up the help for function gptel-send.
>        i'd want scrolling.
>      - transient is vertically scrollable using up down arrows
>        and c-v m-v, but those are harder on rsi and harder to
>        locate on my kb than SPC DEL

You can add your preferred bindings like so:

  (keymap-set transient-map "SPC" #'transient-scroll-up)
  (keymap-set transient-map "DEL" #'transient-scroll-down)

Some Transient menus to *not* prevent commands from other keymaps to
be invoked while the menu is active.  If you bind "SPC" in all menus
as shown above, then that will shadow the regular binding, making it
hard to insert a space.

[However, I'll have to deeply think about the bindings used for commands
available in all transient menus in general soon, but this is not the
time and place.]

[I'll likely also have to support horizontal scrolling eventually.]

>    - i did not notice that there are lines below window.  if
>      there isn't an indicator, BEST LOCATION FOR ME: left fringe
>      in cases where fringe exists.

This enters "I'll look into that next year" territory.

The color of that line actually indicates whether a menu allows
"outside" commands to be invoked while the menu is active.

Most users don't notice this piece of information, myself included.
You can hide it, if you wish, using:

  (setq transient-mode-line-format nil)

> 3) transient does not allow changing font size with
>    text-scale-increase/decrease (but a smaller font would not be
>    legible)

To permanently use a different font size in transient menus use:

  (defun transient-i-shrunk-the-glyphs ()
    (text-scale-set -1)) ; or 1 to grow

  (add-hook 'transient-setup-buffer-hook #'transient-i-shrunk-the-glyphs)

To allow changing the size on demand, use something like:

  (defun transient-text-scale-increase (inc)
    (interactive "p")
    (with-current-buffer transient--buffer
      (text-scale-increase inc)))

  (defun transient-text-scale-decrease (dec)
    (interactive "p")
    (with-current-buffer transient--buffer
      (text-scale-decrease dec)))

  (keymap-set transient-map "C-x +" #'transient-text-scale-increase)
  (keymap-set transient-map "C-x -" #'transient-text-scale-decrease)
  (keymap-set transient-predicate-map "<transient-text-scale-increase>"
              #'transient--do-call)
  (keymap-set transient-predicate-map "<transient-text-scale-decrease>"
              #'transient--do-call)

You could also remember the size between menu invocations:

  (defvar transient-text-scale-amount 0)

  (transient-define-suffix transient-text-scale-increase (inc)
    :transient t
    (interactive "p")
    (with-current-buffer transient--buffer
      (text-scale-increase inc)
      (setq transient-text-scale-amount text-scale-mode-amount)))

  (transient-define-suffix transient-text-scale-decrease (inc)
    :transient t
    (interactive "p")
    (with-current-buffer transient--buffer
      (text-scale-decrease dec)
      (setq transient-text-scale-amount text-scale-mode-amount)))

  (keymap-set transient-map "C-x +" #'transient-text-scale-increase)
  (keymap-set transient-map "C-x -" #'transient-text-scale-decrease)

  (defun transient-restore-text-scale ()
    (unless (local-variable-p 'text-scale-mode-amount)
      (text-scale-set transient-text-scale-amount)))

I might make a refinement of one of these variants available by default,
but that will require some more though, which I don't have the time for
until next year.

     Cheers,
     Jonas


> - transient:
>     - Archive: gnu
>     - Version: 0.8.1
>     - dependency issue before explicitly installing this version.
>
> - emacs    29.4
> - org    9.7.16
> - gptel    ~/.emacs.d/elpa/gptel-0.9.6.0.20241115.83706
>
>
> some current org menus, although REALLY GOOD, have possibly
> regressed in recent years.  in any case, for example, export is
> scrollable; todo kw is not, so i cannot access some todo kw.
>
> i put a lot of effort into this response, hope it makes sense.
>
>
> On Mon, Dec 16, 2024 at 10:52 AM Ihor Radchenko <yantar92@posteo.net> wrote:
>>
>> Samuel Wales <samologist@gmail.com> writes:
>>
>> > a couple of quick and somewhat obvious comments.  i use VERY large
>> > fonts with a maximized gui emacs [vt / maximized urxvt  when needed],
>> > still resulting in, throughout emacs, often, a smaller number of
>> > screen lines or columns than content, even with my usual one window
>> > per frame.  most org menus respect this and can be scrolled or
>> > tweaked.  just wanted compatibility to be in the specs.  especially,
>> > to make sure no functionality is unreachable, but also where possible
>> > to modify column numbers / fill to look ok.  i am slowly trying
>> > transient in gptel and still getting used to it.
>>
>> Thanks for the important input!
>> Does transient look fine on your screen? If yes, we should not have a
>> problem.
>>
>> --
>> 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>
>
>
>
> --
> The Kafka Pandemic
>
> A blog about science, health, human rights, and misopathy:
> https://thekafkapandemic.blogspot.com


  parent reply	other threads:[~2024-12-18 10:57 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-14 12:36 Org-cite: Replace basic follow-processor with transient menu? Tor-björn Claesson
2024-09-15 14:36 ` Ihor Radchenko
2024-09-17 12:18   ` Tor-björn Claesson
2024-09-22 12:50     ` Ihor Radchenko
2024-09-24 10:07       ` Tor-björn Claesson
2024-10-12 17:31         ` Ihor Radchenko
2024-10-22  7:23           ` Tor-björn Claesson
2024-10-22 17:58             ` Ihor Radchenko
2024-10-24 14:18             ` Jonas Bernoulli
2024-10-24 17:32               ` Ihor Radchenko
2024-10-26 11:45                 ` Jonas Bernoulli
2024-10-27  8:09                   ` Ihor Radchenko
2024-10-27  9:17                     ` Tor-björn Claesson
2024-10-29  4:58                   ` Tor-björn Claesson
2024-10-29 18:55                     ` Ihor Radchenko
2024-10-30  5:37                       ` Tor-björn Claesson
2024-10-30 18:43                         ` Ihor Radchenko
2024-10-31 18:55                           ` Tor-björn Claesson
2024-10-31 19:05                             ` Ihor Radchenko
2024-10-31 20:47                               ` Tor-björn Claesson
2024-11-01  8:27                                 ` Tor-björn Claesson
2024-11-01 17:08                                   ` Ihor Radchenko
2024-11-02 19:04                                     ` Tor-björn Claesson
2024-11-02 19:21                                       ` Ihor Radchenko
2024-11-02 21:37                                         ` Tor-björn Claesson
2024-11-03  7:40                                           ` Ihor Radchenko
2024-11-05 10:07                                             ` Tor-björn Claesson
2024-11-09 14:08                                               ` Ihor Radchenko
2024-11-10 16:33                                                 ` Tor-björn Claesson
2024-11-10 16:41                                                   ` Ihor Radchenko
2024-11-11 10:03                                                     ` Tor-björn Claesson
2024-11-11 15:52                                                       ` Ihor Radchenko
2024-11-12  9:26                                                         ` Tor-björn Claesson
2024-11-12 18:03                                                           ` Ihor Radchenko
     [not found]                                                             ` <CAO0k703a5SCv4Eaogjs-14zgmTi-pK5qqG=8VzB8+7h-kcC8yg@mail.gmail.com>
     [not found]                                                               ` <87wmh8s358.fsf@localhost>
     [not found]                                                                 ` <87y11nwp9z.fsf@gmail.com>
2024-11-17  9:30                                                                   ` Fwd: " Tor-björn Claesson
2024-11-23 16:41                                                                     ` Ihor Radchenko
2024-11-25 17:49                                                                       ` Tor-björn Claesson
2024-12-10 19:11                                                                         ` Ihor Radchenko
2024-12-11  9:57                                                                           ` Tor-björn Claesson
2024-12-11 10:05                                                                           ` Tor-björn Claesson
2024-12-13 18:41                                                                             ` [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?) Ihor Radchenko
2024-12-13 22:09                                                                               ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? Gabriel Santos
2024-12-14  9:57                                                                                 ` Ihor Radchenko
2024-12-14 10:59                                                                                   ` Gabriel Santos
2024-12-14 13:10                                                                                     ` Ihor Radchenko
2024-12-13 22:57                                                                               ` Suhail Singh
2024-12-14  9:59                                                                                 ` Ihor Radchenko
2024-12-14 14:30                                                                                   ` Suhail Singh
2024-12-14  1:16                                                                               ` [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?) Panayotis Manganaris
2024-12-14 10:08                                                                                 ` Ihor Radchenko
2024-12-15 21:20                                                                                   ` Samuel Wales
2024-12-16 17:54                                                                                     ` Ihor Radchenko
2024-12-17  2:08                                                                                       ` Samuel Wales
2024-12-17  2:24                                                                                         ` Samuel Wales
2024-12-17 18:04                                                                                         ` Transient: accessibility problems for users who need to use large fonts (was: [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?)) Ihor Radchenko
2024-12-18  7:19                                                                                           ` Samuel Wales
2024-12-18 10:52                                                                                             ` Jonas Bernoulli
2024-12-18 10:47                                                                                         ` Jonas Bernoulli [this message]
2024-12-14 10:50                                                                               ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? indieterminacy
2024-12-14 17:53                                                                               ` Juri Linkov
2024-12-15  9:07                                                                                 ` Ihor Radchenko
2024-12-16  7:46                                                                                   ` Juri Linkov
2024-12-16 18:06                                                                                     ` Ihor Radchenko
2024-12-15 18:23                                                                               ` Kierin Bell
2024-12-17 17:23                                                                                 ` Ihor Radchenko
  -- strict thread matches above, loose matches on Subject: below --
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 23:20 ` Karthik Chikmagalur
2024-12-14 23:47 ` Karthik Chikmagalur
2024-12-15  3:01   ` Psionic K

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.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cyhpclns.fsf@bernoul.li \
    --to=jonas@bernoul.li \
    --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=panos.manganaris@gmail.com \
    --cc=philipk@posteo.net \
    --cc=samologist@gmail.com \
    --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/org-mode.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).