DragonFly On-Line Manual Pages

Search: Section:  


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

Search: Section: