xbelld(1) Contributed Software Manual xbelld(1)NAMExbelld — replace X11 terminal bells with different sounds
SYNOPSISxbelld [(+|-)verbose] [(+|-)nofork] [-volume volume] [-cache cache_size]
[(+|-)multi] [-pidfile pid_file] [-dir audio_dir]
[-esdserver esound_server] [toolkit options]
DESCRIPTION
Xbelld is a small daemon for replacing the standard X Window System ter‐
minal bell with a more interesting set of sounds. This is useful for sys‐
tems where the terminal bell is handled by the “PC Speaker”, or where
different sounds are desired for different classes of X clients.
Xbelld works by intercepting terminal bell requests on the server side,
and then playing user-specified sounds through a PCM capable soundcard.
The resource class of the client making a terminal bell request is used
to match a corresponding sound file which should be played when such a
request is made.
After starting, xbelld forks into the background and monitors the display
specified for incoming terminal bell requests. Sound files are selected
from the directory named in the audioDir resource, using the client class
name as the filename base. A file named with ‘default’ as a base is
treated specially; it is used in the abscense of a match against a given
class name. If multiple files exist for a given class name but with dif‐
ferent suffixes, the order of preference is undefined. See the section
EXAMPLES for a set of example filenames. A wide variety of audio file
formats are supported, namely those that the library “libaudiofile” can
read.
The process exits when it receives a fatal signal or when its connection
to the display is shut down. Upon receiving a SIGHUP signal, the audio
directory is examined for differences since the process began, or since
the last time it received a SIGHUP. Xbelld does not explictly poll this
directory for changes after starting.
Below is a list of command options and their corresponding X resource
names. The default resource class is ‘XBellD’.
+verbose Set the resource verbose to ‘False’ (default).
-verbose Set the resource verbose to ‘True’.
A value of ‘True’ indicates that extra diagnostic output
should be produced.
+nofork Set the resource dontFork to ‘False’ (default).
-nofork Set the resource dontFork to ‘True’.
A value of ‘True’ indicates the program should run in the
foreground rather than forking off as a daemon.
-volume volume
Set the resource volume to the value specified (default: 33).
This must be an integral value in between -100 and 100. If
the value is positive, it is used as a percentage of the bell
volume requested by the client. A negative value indicates
that the absolute value of the volume should be used, regard‐
less of what volume the client requests.
-cache cache_size
Set the resource cacheSize to the value specified (default:
512). This will set the size of the audio data cache to the
number specified, in units of kilobytes.
+multi Set the resource multiplexAudio to ‘False’.
-multi Set the resource multiplexAudio to ‘True’ (default).
This indicates sounds should be played using additional
available audio output channels, even if the soundcard is
already active on another channel.
-pidfile pid_file
Set the resource pidFile to the value specified (default:
‘’.) This gives the location of a file that should be writ‐
ten with the process-ID of the currently running xbelld. An
empty value disables writing of the file.
-dir Set the resource audioDir to the value specified (Default:
~/.xbells). This names the directory that will be searched
for audio files to match client class names.
-esdserver esound_server
Set the resource esoundServer to the value specified (Default
‘’). This names the EsounD server to connect to. See the
document,
Eric 'Ricdude Mitchell, EsounD: The Enlightened Sound Daemon.
for details.
In addition to the options listed above, all the standard X toolkit
options are supported (-display, -class, -name, -geom, etc.)
IMPLEMENTATION NOTES
Other software of this type utilize the LD_PRELOAD environment variable
for overriding library calls. This approach has several drawbacks and
generates a lot of overhead on the client side. It makes the assumption
that the machine executing the client program is the same as the one run‐
ning the display server, which is contrary to the architecture of X Win‐
dow System. Additionally, it requires extra runtime linking overhead for
every single program invoked within the client's environment, regardless
of whether the program actually makes any bell requests.
Xbelld, on the other hand, uses the ‘DEC-XTRAP’ extension to monitor
requests of type ‘X_Bell’ on the server side. In addition, it has native
support for playing audio files, and keeps a user-configurable audio data
cache, replaced in LRU order.
FILES
~/.xbells/ Default directory for audio files (resource name
audioDir).
EXAMPLES
An example audio file directory might contain the following files:
XTerm.au Bell for the program xterm(1).
XBiff.au Bell for the program xbiff(1).
default.au Sound used for all other clients.
COMPATIBILITY
Xbelld will work with X servers that follow the extension framework con‐
ventions of the MIT sample server. The server extension ‘DEC-XTRAP’ must
be compiled into the server or loaded as a module (typically named
‘libxtrap.so’).
SEE ALSOXBell(3X11), xtrap(1).
Alan Jamison, XTrap: The XTrap Architecture, Digital Equipment
Corporation.
AUTHORS
The xbelld software and this manual page were written by Seth Kingsley
⟨sethk@meowfishies.com⟩.
Version 0.2 March 19, 2002 Version 0.2