Bug 85256 - XkbSetMap does not properly update master when run on slave device, breaking device-specific xkbcomp
Summary: XkbSetMap does not properly update master when run on slave device, breaking ...
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/Input/XKB (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
Depends on:
Reported: 2014-10-20 19:29 UTC by Daniel Colascione
Modified: 2018-12-13 18:38 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Description Daniel Colascione 2014-10-20 19:29:14 UTC
When we update an XKB map for a slave device and that slave device is its master's last-used slave, we need to update the master's XKB map as well or our update of the slave will have no effect until we change slave devices, which may never happen if a machine has only one attached keyboard.

This bug is essentially the same as https://bugs.freedesktop.org/show_bug.cgi?id=21859.  The fix for that bug involved adding code to ProcXkbGetKbdByName to propagate slave changes to masters, but it dealt only with the XkbGetKeyboardByName case; it's also possible to change XKB maps using XkbSetMap, and that path is still buggy in the way XkbGetKeyboardByName was before the fix for 21859.

The specific case that this bug breaks is calling xkbcomp -i N ... $DISPLAY, where N is a slave device identifier. This command has no effect until the master's lastSlave transitions to some other device and back (e.g., by plugging in an external keyboard and banging on it). I locally hacked up my X server to update master devices in ProcXkbSetMap; after that, xkbcomp worked as intended.
Comment 1 GitLab Migration User 2018-12-13 18:38:17 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/293.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.