Subject: 23.1; Customizing the bell

From: Eli Barzilay <[email-masked]>
Date: Fri, 12 Mar 2010 10:54:49 -0500

I'd like for my Emacs to sometimes ring the bell as usual, sometimes
flash the screen, and sometimes play a sound.  Currently, I can change
it to do one of these things in the usual way, but I cannot write code
that determines what to do dynamically.  What's missing is a primitive
function to the "real" beep.  Something that would allow me to do
this:

  (setq ring-bell-function
        (lambda ()
          (if (foo)
            (call-process "aplay" nil 0 nil "foo.wav")
            (let ((visible-bell (bar))) (real-ding)))))

(I could do this in a bad way, by installing some hook that will set
`ring-bell-function' and `visible-bell' -- for example in an idle
timer, but the above would be much more convenient.)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!