Man Linux: Main Page and Category List

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)