softbeep(1)
NAME
softbeep - Software Bell for Linux
SYNOPSIS
softbeep [program]
COPYRIGHT
softbeep is Copyright (C) 2002 Lennart Poettering
mz736f667462656570@poettering.de
DESCRIPTION
- This Linux utility program may be used for redirecting beeps of the
internal PC speaker to your sound card. It is implemented entirely in
user space by using LD_PRELOAD. It catches four different types of
beeps, which can be produced on a Linux system:
- 1. BELL-characters (#7) written to your TTYs, which should normally result in a beep executed by your terminal emulator
- 2. Calls to gdk_bell() by GTK/Gnome based programs
- 3. Calls to XBell() by Xlib based programs
- 4. Calls to beep() by curses based programs
- These together catch most of the beeps of most of the programs I use.
- To redirect the beep to the sound card, just run
- softbeep foo
- If you omit foo then a sub shell will be spawned where all children processes will have their beep redirected.
- Two environment variables SB_REMOVE_BEL and SB_RUN may be used for adjusting softbeep to your needs. When SB_REMOVE_BEL is set to "yes" every caught BELL character written to a TTY is dropped, otherwise it is passed to the next layer. SB_RUN specifies the program to run when a beep occurs. You may adjust these parameters to your needs in the top of the script softbeep. sb-beep (a short script playing a wave file via esdplay(1), which is shipped with the EsounD distribution) is used for emitting a beep by default. You might want to adjust this script to your individual needs, e.g. for playing different wave files for different programs. You can also set the SB_PLAYER environment variable to change the program used to play the sound file.
NOTES
softbeep has not been tested intensively with multi threaded programs
yet; maybe it works seamlessly, maybe it does not.
Processes with access to several different TTYs at the same time may
not be handled correctly. This is a minor bug since there are only very
few programs which make use of more than one TTY at once.
SUID/SGID programs like xterm(1) do not work with softbeep. This is a
limitation of LD_PRELOAD (due to security considerations) and not a bug
in softbeep! Solution for xterm(1): For catching all the beeps of
xterm(1) you should preload the library to the shell running inside of
the xterm(1), which is not SUID/SGID.
ssh(1) is a SUID/SGID program on several installations. I currently do
not know a way how to work around this.
AUTHOR
This man page was written by Helge Kreutzmann kreutzm@itp.uni-hannover.de for the Debian GNU/Linux project but may be used by others.
SEE ALSO
- esdplay(1), /usr/share/doc/softbeep/README.gz