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.

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

Download

XBellD is currently in the beta-testing phase. Any testing, feedback, or patches would be greatly appreciated.

Download Latest beta source, version 0.2beta2 (GZipped Tar file)

(No binary packages available yet)

Similar Projects

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 Seth Kingsley, email <sethk@magnesium.net>.

 
software/xbelld.txt · Last modified: 2007/01/09 22:59 by sethk
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki