===== XBellD ===== **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. ==== Rationale ==== 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 (see Figure 1. XBellD Block Diagram FIXME). In addition, it has native support for playing audio files, and keeps a user-configurable audio data cache, replaced in LRU order. {{http://www.meowfishies.com/img/code/xbelld-block.png}} === Figure 1. XBellD Block Diagram === ==== Features ==== * Supports all popular PCM file formats. * Single, centralized server for all clients. * Multiplexes with existing soundcard output. * Server-side audio sample caching. * Honors client requested volume. ==== License ==== As with all other “Open Source” software that I've written, **XBellD** is distributed under the terms of the BSD license. ==== Related ==== * Manual page //[[http://www.meowfishies.com/xbelld.1.pdf|xbelld(1)]]//. * //[[http://www.meowfishies.com/code/XTrap_Arch.ps|XTrap: The XTrap Architecture]]//, Alan Jamison, [[http://www.digital.com/|Digital Equipment Corporation]]. ==== Download ==== **XBellD** is currently in the beta-testing phase. Any testing, feedback, or patches would be greatly appreciated. [[http://www.meowfishies.com/code/xbelld-0.2beta2.tgz|Download Latest beta source, version 0.2beta2 (GZipped Tar file)]] (No binary packages available yet) ==== Similar Projects ==== * [[http://nis.acs.uci.edu/~strombrg/software/|Replacebell]] by Dan Stromberg. * [[http://www.stud.uni-hamburg.de/users/lennart/projects/softbeep/|Softbeep]] by Lennart Poettering. ==== Missing Features/Additional Ideas ==== * Compression of sequential bell events. * A default set of sounds for common clients. * A simple GUI to configure it with. ==== Contact ==== This project is maintained by [[start|Seth Kingsley]], email <''''''''>.