You can configure the boolean controls to automatically be enabled or disabled when a program exits. This
capability is controlled via two masks maintained in the X server on a per-client basis. There is no
client-side Xkb data structure corresponding to these masks. Whenever the client exits for any reason,
any boolean controls specified in the auto-resetmask are set to the corresponding value from the auto-resetvalues mask. This makes it possible for clients to "clean up after themselves" automatically, even
if abnormally terminated. The bits used in the masks correspond to the EnabledControls control bits.
For example, a client that replaces the keyboard bell with some other audible cue might want to turn off
the AudibleBell control to prevent the server from also generating a sound and avoid cacophony. If the
client were to exit without resetting the AudibleBell control, the user would be left without any
feedback at all. Setting AudibleBell in both the auto-reset mask and auto-reset values guarantees that
the audible bell will be turned back on when the client exits.
XkbGetAutoResetControls backfills auto_ctrls and auto_values with the AutoReset control attributes for
this particular client. It returns True if successful, and False otherwise.