Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  XBELLD (1)


xbelld - replace X11 terminal bells with different sounds


Implementation Notes
See Also


.Bk xbelld [(+| -verbose)] [(+| -nofork)] [-volume volume] [-cache cache_size] [(+| -multi)] [-pidfile pid_file] [-dir audio_dir] [-esdserver esound_server] [toolkit options]


Xbelld is a small daemon for replacing the standard X Window System terminal bell with a more interesting set of sounds. This is useful for systems 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 different 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, regardless 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 written 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,

.Rs 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. )


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 running the display server, which is contrary to the architecture of X Window 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.


~/.xbells/ Default directory for audio files ( resource name audioDir ).


An example audio file directory might contain the following files: Bell for the program xterm(1). Bell for the program xbiff(1). Sound used for all other clients.


Xbelld will work with X servers that follow the extension framework conventions of the MIT sample server. The server extension DEC-XTRAP’ must be compiled into the server or loaded as a module (typically named‘’).


XBell(3X11), xtrap(1).
.Rs XTrap: The XTrap Architecture


The xbelld software and this manual page were written by
.An Seth Kingsley Aq .
Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.