Giter Club home page Giter Club logo

Comments (1)

bluetech avatar bluetech commented on August 26, 2024

This is definitely desirable. For the current status, see the comment here:

/* This limit is artificially enforced, we do not depend on it any where.

I provide some additional details here on the problem, in case someone other than me reads this and wants to jump in.

First, the format of the "rules" file is described here: https://github.com/xkbcommon/libxkbcommon/blob/master/doc/rules-format.txt

Currently, the most used file is the "evdev" one, commonly found in /usr/share/X11/xkb/rules/evdev. This file is built up using some scripts as can be seen here: https://cgit.freedesktop.org/xkeyboard-config/tree/rules

The problem is that the format is really inflexible about the number of layouts (groups), and so it hardcodes and repeats 1,2,3,4. Hence, if we just lift the limit, some unexpected things may start to happen starting from the 5th group.

Some ways to proceed, from most preferable to least preferable:

  • Fix up the rules format to not need to hardcode to group numbers. The linked bug (https://bugs.freedesktop.org/show_bug.cgi?id=14372) suggests an :all syntax, which will work transparently for all groups. This will require changes in both of xkbcommon and xkbcomp's implementations. Also, if the change is not backward compatible, there might be some transitionary issues (a possible workaround is to use a new file instead of "evdev").
  • Keep hardcoding the numbers, but hardcode higher, e.g. to 8. This might also need fixing to work; I didn't try.
  • Just make the change to xkbcommon, disregarding the above issues. For some scenarios, it will work just fine, I expect (didn't try either). Testing here will be appreciated.

That's it - needs a small effort to push through.

from libxkbcommon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.