---
name: "xkbevd"
section: "1x"
platform: "linux"
package: "xbase-clients"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/xkbevd/1x"
---

# xkbevd(1x)

XKB event daemon

## NAME

xkbevd - XKB event daemon

## SYNOPSIS

**xkbevd** \[*option* ...\]

## DESCRIPTION

This command is very raw and is therefore only partially implemented;  we present it here as a rough prototype for developers, not as a general purpose tool for end users. Something like this might make a suitable replacement for [**xev**(1x)](/xev/1x.md); I'm not signing up, mind you, but it's an interesting idea.

The *xkbevd* event daemon listens for specified XKB events and executes requested commands if they occur. The configuration file consists of a list of event specification/action pairs and/or variable definitions.

An event specification consists of a short XKB event name followed by a string or identifier which serves as a qualifier in parentheses; empty parentheses indicate no qualification and serve to specify the default command, which is applied to events which do not match any of the other specifications. The interpretation of the qualifier depends on the type of the event: bell events match using the name of the bell; message events match on the contents of the message string; and slow key events accept any of **press**, **release**, **accept**, or **reject**. No other events are currently recognized.

An action consists of an optional keyword followed by an optional string argument. Currently, **xkbevd** recognizes the actions **none**, **ignore**, **echo**, **printEvent**, **sound**, and **shell**. If the action is not specified, the string is taken as the name of a sound file to be played unless it begins with an exclamation point, in which case it is taken as a shell command.

Variable definitions in the argument string are expanded with fields from the event in question before the argument string is passed to the action processor. The general syntax for a variable is either $*c* or $(*str*), where *c* is a single character and *str* is a string of arbitrary length. All parameters have both single-character and long names.

The list of recognized parameters varies from event to event and is too long to list here right now. This is a developer release anyway, so you can be expected to look at the source code (*evargs.c* is of particular interest).

The **ignore**, **echo**, **printEvent**, **sound**, and **shell** actions do what you would expect commands named **ignore**, **echo**, **printEvent**, **sound**, and **shell** to do, except that the **sound** command has only been implemented and tested for SGI machines. It launches an external program right now, so it should be pretty easy to adapt, especially if you like audio cues that arrive about a half-second after you expect them.

The only currently recognized variables are *soundDirectory* and *soundCmd*. I'm sure you can figure out what they do.

## OPTIONS

- **-?**, **-help**

  Print a usage message that is far more up-to-date than anything in this manpage (or not).

- **-bg**

  Fork and run in the background.

- **-cfg** *file*

  Read the specified configuration file. If no configuration file is specified, **xkbevd** looks for $HOME*/.xkb/xkbevd.cf* and */usr/X11R6/lib/X11/xkb/xkbevd.cf*, in that order.

- **-d** *display,* **-display** *display*

  Connect to the X server at *display*. If not specified, **xkbevd** uses *$DISPLAY*.

- **-s**, **-synch**

  Force synchronization of all X requests. Slow.

- **-sc** *cmd*

  Use the command *cmd* to play sounds.

- **-sd** *directory*

  Look for sound files at the file specification *directory* (should be an absolute path).

- **-v**

  Print more information, including debugging messages. Multiple specifications of **-v** cause more output, to a point.

## SEE ALSO

[**X**(7x)](/X/7x.md), [**setxkbmap**(1x)](/setxkbmap/1x.md), [**xkbbell**(1x)](/xkbbell/1x.md), [**xkbcomp**(1x)](/xkbcomp/1x.md), [**xkbprint**(1x)](/xkbprint/1x.md), [**xkbvleds**(1x)](/xkbvleds/1x.md), [**xkbwatch**(1x)](/xkbwatch/1x.md)

## COPYRIGHT

Copyright 1995 Silicon Graphics Computer Systems\
 Copyright 1995, 1998 The Open Group\
 See [**X**(7x)](/X/7x.md) for a full statement of rights and permissions.

## AUTHOR

Erik Fortune, Silicon Graphics
