Provided by: libx11-doc_1.8.6-1ubuntu1_all bug

NAME

       XkbSetIndicatorMap - Downloads the changes to the server based on modifications to a local
       copy of the keyboard description which will update the maps for one or more indicators

SYNOPSIS

       Bool XkbSetIndicatorMap (Display *dpy, unsigned int which, XkbDescPtr desc);

ARGUMENTS

       dpy    connection to the X server

       which  mask of indicators to change

       desc   keyboard description from which the maps are taken

DESCRIPTION

       This section discusses the  effects  of  explicitly  changing  indicators  depending  upon
       different  settings  in the indicator map. See Tables 1 and Table 2 for information on the
       effects of the indicator map fields when explicit changes are made.

            Table 1 XkbIndicatorMapRec which_groups and groups,
                          Indicator Drives Keyboard
       ────────────────────────────────────────────────────────────────
       which_groups         New State   Effect on Keyboard Group State
       ────────────────────────────────────────────────────────────────
       XkbIM_UseNone        On or Off   No effect
       XkbIM_UseBase        On or Off   No effect
       XkbIM_UseLatched     On          The groups field is treated as
                                        a  group  mask.  The  keyboard
                                        group latch is changed to  the
                                        lowest      numbered     group
                                        specified in groups; if groups
                                        is  empty, the  keyboard group
                                        latch is changed to zero.
       XkbIM_UseLatched     Off         The groups field is treated as
                                        a group mask. If the indicator
                                        is  explicitly   extinguished,
                                        keyboard    group   latch   is
                                        changed to the lowest numbered
                                        group not specified in groups;
                                        if   groups   is   zero,   the
                                        keyboard group latch is set to
                                        the index of the highest legal
                                        keyboard group.
       XkbIM_UseLocked or
       XkbIM_UseEffective   On          If  the  groups mask is empty,
                                        group    is    not    changed;
                                        otherwise, the locked keyboard
                                        group is changed to the lowest
                                        numbered  group  specified  in
                                        groups.
       XkbIM_UseLocked or
       XkbIM_UseEffective   Off         Locked   keyboard   group   is
                                        changed to the lowest numbered
                                        group that is not specified in
                                        the  groups mask, or to Group1
                                        if the  groups  mask  contains
                                        all keyboard groups.

               Table 2 XkbIndicatorMapRec which_mods and mods,
                          Indicator Drives Keyboard
       ─────────────────────────────────────────────────────────────────
       which_mods            New State   Effect on Keyboard Modifiers
       ─────────────────────────────────────────────────────────────────
       XkbIM_UseNone or
       XkbIM_UseBase         On or Off   No Effect
       XkbIM_UseLatched      On          Any modifiers specified in the
                                         mask field of mods  are  added
                                         to the latched modifiers.
       XkbIM_UseLatched      Off         Any modifiers specified in the
                                         mask field of mods are removed
                                         from the latched modifiers.
       XkbIM_UseLocked,
       XkbIM_UseCompat, or
       XkbIM_UseEffective    On          Any modifiers specified in the
                                         mask field of mods  are  added
                                         to the locked modifiers.
       XkbIM_UseLocked       Off         Any modifiers specified in the
                                         mask field of mods are removed
                                         from the locked modifiers.
       XkbIM_UseCompat or
       XkbIM_UseEffective    Off         Any modifiers specified in the
                                         mask field of mods are removed
                                         from   both   the  locked  and
                                         latched modifiers.

       If XkbIM_LEDDrivesKB is set and XkbIM_NoExplicit is not, and if you call a  function  that
       updates   the  server's  image  of  the  indicator  map  (such  as  XkbSetIndicatorMap  or
       XkbSetNamedIndicator), Xkb changes the keyboard state and controls to  reflect  the  other
       fields of the indicator map. If you attempt to explicitly change the value of an indicator
       for which XkbIM_LEDDrivesKB is absent or for which XkbIM_NoExplicit is  present,  keyboard
       state or controls are unaffected.

       If  neither  XkbIM_NoAutomatic nor XkbIM_NoExplicit is set in an indicator map, Xkb honors
       any request to change the state of the indicator, but the new state might  be  immediately
       superseded  by  automatic changes to the indicator state if the keyboard state or controls
       change.

       The effects of changing an indicator that  drives  the  keyboard  are  cumulative;  it  is
       possible   for  a  single  change  to  affect  keyboard  group,  modifiers,  and  controls
       simultaneously.

       If you change an indicator for which  both  the  XkbIM_LEDDrivesKB  and  XkbIM_NoAutomatic
       flags are specified, Xkb applies the keyboard changes specified in the other indicator map
       fields and changes the indicator to reflect the state that was explicitly  requested.  The
       indicator remains in the new state until it is explicitly changed again.

       If  the  XkbIM_NoAutomatic  flag  is not set and XkbIM_LEDDrivesKB is set, Xkb applies the
       changes specified in the other indicator map fields and sets the state of the indicator to
       the  values  specified by the indicator map. Note that it is possible in this case for the
       indicator to end up in a different state than the one that was explicitly  requested.  For
       example, Xkb does not extinguish an indicator with which_mods of XkbIM_UseBase and mods of
       Shift if, at the time Xkb processes the request to extinguish the indicator,  one  of  the
       Shift keys is physically depressed.

       If  you  explicitly light an indicator for which XkbIM_LEDDrivesKB is set, Xkb enables all
       of the boolean controls specified in the ctrls field  of  its  indicator  map.  Explicitly
       extinguishing  such  an  indicator  causes  Xkb  to  disable  all  of the boolean controls
       specified in ctrls.

       For each bit set in  the  which  parameter,  XkbSetIndicatorMap  sends  the  corresponding
       indicator map from the desc parameter to the server.

SEE ALSO

       XkbSetNamedIndicator(3)