Bugzilla – Bug 19501
Support for more than 4 groups in xkb
Last modified: 2016-03-18 06:24:13 UTC
Some users need more than 4 layouts to switch between, so it would be nice if xkb could support more than 4 groups.
Forwarded from https://bugs.kde.org/show_bug.cgi?id=174753
For some users this is an important, to-have feature. There are users who turn away from Linux because of this limitation. An obvious example is translation agencies. Link to a relevant discussion:
Some information about this feature and why it hasn't been implemented yet:
The 4 group limit is forced by the protocol wire format. support for more than 4 groups can only be added by adding additional requests and events to XKB and rewriting clients to switch to this new XKB version.
In addition, compatibility to the old protocol must be ensured so that current XKB clients will still function correctly with the new XKB version.
This is both complex and very time-consuming. Volunteers to tackle this problem are of course very welcome.
Considering the number of users who actually cannot do without 5+ groups, I would not overestimate the probability of this bug being fixed...
I mean the probability of coincidence of 3 prereqs:
- The person needs (himself) 5+ groups
- C skills are high enough
- The person has enough time to dig rather deep into XKB code
Excuse my simplistic view, but isn't that just a number?
Like instead of having const int layoutCountLimit = 4, you put a 10/20/xx? And do the same thing for the clients of xkb and do the same thing for X11 and call it X12? Then recompile and done.
Wikipedia says we have the current one since 1987. And I know there are other protocol limitations which need to be addressed in a future version, I just can't find that list :).
(In reply to comment #4)
> Excuse my simplistic view, but isn't that just a number?
It's encoded in some bits on the protocol, with the other bits being used for other information. so you need extra bytes in the requests/events for anything above 4, and adding extra bytes requires bumping the protocol. And then you have to deal with those clients that only understand 4 groups and what to do with them if a keyboard is on group 5.
See also http://www.x.org/wiki/Development/X12
On 15 November 2011 09:05, <email@example.com> wrote:
> --- Comment #6 from Michael Shigorin <firstname.lastname@example.org> 2011-11-15 01:05:08 PST ---
> See also http://www.x.org/wiki/Development/X12
Note that apps/toolkits using Xi2 (i.e. the second version of the X
Input Extension, not the twelfth version of the X protocol) already
get a uint16_t for group numbers. XKB, however, still needs to be
*** Bug 56277 has been marked as a duplicate of this bug. ***