unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Start keybinding combination
       [not found] <20220130191539.mkbq77zpn7ugizfi.ref@Ergus>
@ 2022-01-30 19:15 ` Ergus
  2022-01-30 19:44   ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Ergus @ 2022-01-30 19:15 UTC (permalink / raw)
  To: Help Gnu Emacs

Hi:

I have been wondering if there is a hook or advise I could use to give
some more explicit visual feedback when the user starts a long
keybinding.

I mean:

If a user wants to start a command like `C-x r b` I would like to change
the mode-line color after the `C-x`. I suppose that this may be a call
to a hook in the same place that updates the echo area inserting the
current prefix.

I saw that packages like which-key needs to do a pooling timer to
emulate that, so maybe this needs a feature request or is there a reason
to not implement this?

Best,
Ergus



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Start keybinding combination
  2022-01-30 19:15 ` Start keybinding combination Ergus
@ 2022-01-30 19:44   ` Eli Zaretskii
  2022-01-30 20:54     ` Ergus
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-01-30 19:44 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Sun, 30 Jan 2022 20:15:39 +0100
> From: Ergus <spacibba@aol.com>
> 
> If a user wants to start a command like `C-x r b` I would like to change
> the mode-line color after the `C-x`. I suppose that this may be a call
> to a hook in the same place that updates the echo area inserting the
> current prefix.

What would such a hook do to produce the effect that you want?  The
mode-line color change will not be visible unless you force redisplay
of the mode line.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Start keybinding combination
  2022-01-30 19:44   ` Eli Zaretskii
@ 2022-01-30 20:54     ` Ergus
  2022-01-31 12:23       ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Ergus @ 2022-01-30 20:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

On Sun, Jan 30, 2022 at 09:44:58PM +0200, Eli Zaretskii wrote:
>> Date: Sun, 30 Jan 2022 20:15:39 +0100
>> From: Ergus <spacibba@aol.com>
>>
>> If a user wants to start a command like `C-x r b` I would like to change
>> the mode-line color after the `C-x`. I suppose that this may be a call
>> to a hook in the same place that updates the echo area inserting the
>> current prefix.
>
>What would such a hook do to produce the effect that you want?  The
>mode-line color change will not be visible unless you force redisplay
>of the mode line.
>
Hi Eli:

My question comes from the fact that I see the prefix in the echo area
and it looks inconspicuous. So, some redisplay is actually done
right?. I thought that a hook and let the user implement something could
work.

Something like:

(add-hook the-new-hook (lambda ()
           (face-remap-add-relative 'mode-line :background some-color)))

And then call `face-remap-remove-relative` in the opposed|symmetric exit
hook... similar to what minibuffer-setup-hook/minibuffer-exit-hook do.

But I could be wrong.

Does it makes sense?




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Start keybinding combination
  2022-01-30 20:54     ` Ergus
@ 2022-01-31 12:23       ` Eli Zaretskii
  2022-01-31 15:42         ` Ergus
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-01-31 12:23 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Sun, 30 Jan 2022 21:54:47 +0100
> From: Ergus <spacibba@aol.com>
> Cc: help-gnu-emacs@gnu.org
> 
> >What would such a hook do to produce the effect that you want?  The
> >mode-line color change will not be visible unless you force redisplay
> >of the mode line.
> >
> Hi Eli:
> 
> My question comes from the fact that I see the prefix in the echo area
> and it looks inconspicuous. So, some redisplay is actually done
> right?

A very limited variant of redisplay, which only updates the echo-area.

> Something like:
> 
> (add-hook the-new-hook (lambda ()
>            (face-remap-add-relative 'mode-line :background some-color)))
> 
> And then call `face-remap-remove-relative` in the opposed|symmetric exit
> hook... similar to what minibuffer-setup-hook/minibuffer-exit-hook do.
> 
> But I could be wrong.
> 
> Does it makes sense?

It would make the prompt much slower, because updating the mode line
requires a very thorough redisplay, the way it is implemented.  And if
you on top of that change the mode-line face, Emacs will need to
recompute all the faces (twice) as well.  I wonder if it's worth it.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Start keybinding combination
  2022-01-31 12:23       ` Eli Zaretskii
@ 2022-01-31 15:42         ` Ergus
  0 siblings, 0 replies; 5+ messages in thread
From: Ergus @ 2022-01-31 15:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

On Mon, Jan 31, 2022 at 02:23:34PM +0200, Eli Zaretskii wrote:
>> Date: Sun, 30 Jan 2022 21:54:47 +0100
>> From: Ergus <spacibba@aol.com>
>> Cc: help-gnu-emacs@gnu.org
>>
>> >What would such a hook do to produce the effect that you want?  The
>> >mode-line color change will not be visible unless you force redisplay
>> >of the mode line.
>> >
>> Hi Eli:
>>
>> My question comes from the fact that I see the prefix in the echo area
>> and it looks inconspicuous. So, some redisplay is actually done
>> right?
>
>A very limited variant of redisplay, which only updates the echo-area.
>
Oh, I see.

>> Something like:
>>
>> (add-hook the-new-hook (lambda ()
>>            (face-remap-add-relative 'mode-line :background some-color)))
>>
>> And then call `face-remap-remove-relative` in the opposed|symmetric exit
>> hook... similar to what minibuffer-setup-hook/minibuffer-exit-hook do.
>>
>> But I could be wrong.
>>
>> Does it makes sense?
>
>It would make the prompt much slower, because updating the mode line
>requires a very thorough redisplay, the way it is implemented.  And if
>you on top of that change the mode-line face, Emacs will need to
>recompute all the faces (twice) as well.  I wonder if it's worth it.
>
I understand. I don't think that in practice that slowness may be even
noticeable in our days, but considering I am always concerned about
performance, then probably you are right.

Very thanks,
Ergus



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-01-31 15:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20220130191539.mkbq77zpn7ugizfi.ref@Ergus>
2022-01-30 19:15 ` Start keybinding combination Ergus
2022-01-30 19:44   ` Eli Zaretskii
2022-01-30 20:54     ` Ergus
2022-01-31 12:23       ` Eli Zaretskii
2022-01-31 15:42         ` Ergus

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).