DragonFly On-Line Manual Pages
xbelld(1) DragonFly General Commands Manual (con) xbelld(1)
NAME
xbelld - replace X11 terminal bells with different sounds
SYNOPSIS
xbelld [(*|-)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
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,
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
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.
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
conventions 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 ALSO
XBell(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 BETA March 19, 2002 Version 0.2 BETA