Subject: bug#40774: Error messages shouldn't be hidden when the user is idle

From: Eli Zaretskii <[email-masked]>
Date: Wed, 22 Apr 2020 19:44:47 +0300

> Date: Wed, 22 Apr 2020 16:21:38 +0000
> From: ndame via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> If a message is printed in the echo area then it can be hidden in two
> ways: either the user uses some command and the echo area is cleared
> automatically or an other message comes which replaces the previous
> one.
> 
> I use several timers which perform recurring or background tasks,
> e.g. fetching things from the network. When there is an error in such
> a timer then often I only know about it by noticing that the task does
> not produce the usual results, e.g. fails to update something, because
> other progress messages hide the printed errors.

That's why we have the *Messages* buffer, where all the messages are
logged, even those that aren't shown in the echo area.  A simple
solution to your use case is to have the *Messages* buffer shown in a
window at all times.

> So when the user is not idle then things should work as today. But if
> the user is idle (e.g. uses an other app or is away from the computer)
> then error messages should not be hidden by other messages, rather
> they should all be shown in a multiline echo area, so when the user
> gets back to emacs he can see all the errors which happened while he
> was away.

How do you define "user is idle"?  is that only keyboard input, or
does that include other kinds of input as well?  On a modern graphical
system, it isn't trivial to decide whether the user is idle, because
there are input events that come from the system, not just from the
user making keyboard or mouse gestures.