patch for bell in st

The XBell() call currently used when a bell is recieved sends a message
to the X server, but if the X server doesn't know how to sound it,
it just gets ignored and I have not been able to find anywhere in x.org's
code a way to configure the action that the server does.

However, if you use XkbBell() then you can have a process listening for
the XkbBellNotifyEvent that is produced and either alert you visually or
play an audio file or whatever you want as your notification. You have
to include one more header file but the function seems to be compiled as
part of Xlib, at least on my installation.

CustaiCo
This commit is contained in:
CustaiCo 2014-10-03 19:25:21 +00:00 committed by Roberto E. Vargas Caballero
parent dcfe505d3c
commit 86633ada91

3
st.c
View file

@ -27,6 +27,7 @@
#include <X11/cursorfont.h> #include <X11/cursorfont.h>
#include <X11/keysym.h> #include <X11/keysym.h>
#include <X11/Xft/Xft.h> #include <X11/Xft/Xft.h>
#include <X11/XKBlib.h>
#include <fontconfig/fontconfig.h> #include <fontconfig/fontconfig.h>
#include <wchar.h> #include <wchar.h>
@ -2423,7 +2424,7 @@ tcontrolcode(uchar ascii) {
if(!(xw.state & WIN_FOCUSED)) if(!(xw.state & WIN_FOCUSED))
xseturgency(1); xseturgency(1);
if (bellvolume) if (bellvolume)
XBell(xw.dpy, bellvolume); XkbBell(xw.dpy, xw.win, bellvolume, (Atom)NULL);
} }
break; break;
case '\033': /* ESC */ case '\033': /* ESC */