Subject: Re: bug#1305: All code that currently beeps should use visual bell instead

From: Stefan Monnier <[email-masked]>
Date: Wed, 21 Apr 2021 10:33:35 -0400

>> Yes, it's perhaps a bit unfortunate that "visible-bell" is nil in this
>> case, but note that with visible-bell t and ring-bell-function ignore you
>> also do not have what you could expect.  The semantics of visible-bell and
>> ring-bell-function are a bit unclear, but they cannot be fixed anymore
>> without introducing backward incompatible changes.
>
> I think this is a bit of a mess, indeed.
>
> I would be in favour of fixing this by adding one or more new variables
> with reasonable semantics.  For example, why not have a variable called
> `alarm-bell' with these valid values:
>
>     - a function    call this function
>     - `visual'      Use a visual bell
>     - t             Ring the bell
>     - nil           Do nothing

Agreed, except I suggest to use slightly different names: `visual` becomes
`ring-bell-visual`, `t` becomes `ring-bell-beep`, `nil` becomes `ignore` and
`alarm-bell` becomes `ring-bell-function`.

        Stefan