program xkbbell;
uses
xkb, xkblib, xlib, x;
var
dpyName: string= '';
volume: integer= 99;
devSpec: integer= xkb.XkbUseCoreKbd;
xlass: integer= -1;
id: integer= -1;
bellName: string= '';
nameAtom: TAtom= x.None;
synch: integer= 0;
win: TWindow= x.None;
force: integer= 0;
nobeep: integer= 0;
function parseArgs(): integer;
begin
result := 1
end { parseArgs } ;
const
XkbMajorVersion= 1;
XkbMinorVersion= 0;
var
dpy: PDisplay;
ok: boolean;
i1: smallint= XkbMajorVersion;
i2: smallint= XkbMinorVersion;
i3, i4, i5: smallint;
begin
if parseArgs() < 1 then begin
WriteLn(StdErr, 'Sorry, helpless');
Halt(1)
end;
dpy := XOpenDisplay(nil (* PChar(dpyName) *) );
if dpy = nil then begin
WriteLn(StdErr, 'Couldn''t open display ""');
Halt(1)
end;
if not XkbLibraryVersion(@i1, @i2) then begin
WriteLn(StdErr, 'Wrong xkblib library version');
Halt(1)
end;
if not XkbQueryExtension(dpy, @i1, @i2, @i3, @i4, @i5) then begin
WriteLn(StdErr, 'Wrong xkblib extension');
Halt(1)
end;
ok := xkblib.XkbForceBell(dpy, volume);
// ok := xkblib.XkbBell(dpy, win, volume, nameAtom);
// ok := xkblib.XkbBell(dpy, rootWindow(dpy, DefaultScreen(dpy)), 99, nameAtom);
if not ok then
WriteLn(StdErr, 'XkbBell request failed')
end.