Skip to content
  • Harald Sitter's avatar
    replace bespoke xkb geometry parser with xkb · c7a1f606
    Harald Sitter authored
    Summary:
    the bespoke parser was a horrendous drain on the build time of
    plasma-desktop due to recursive templates.
    it's been replaced with a new standalone binary that previews any
    model/layout/variant/options combination as requested and a qtquick UI
    which simplifies the actual rendering substantially.
    
    the new code is better in that it:
    - builds in a fraction of the time with a fraction of the power use
    - renders complex models (such as the tm2020 or the kinesis) correctly
    - because it entirely relies on xkb to figure out keysyms belonging to
      a given key, it's layout representation is not only substantially more
      complete it also correctly obeys options like eurosign:2
    - renders numlock and the like (not that this is in fact very useful ^^)
    - is following the system palette for coloring
    - the paint code should be easier to graps and more robust because xkb
      provides completely consistent geometry and layout data meaning we can
      model this verbatim in qtquick and then scale the entire
      keyboard to a useful size
    - this is now a standalone application so potential input method KCMs
      can opt to use it (e.g. fcitx)
    
    BUG: 362946
    
    Test Plan: preview all the layouts and all the models
    
    Reviewers: #plasma
    
    Subscribers: davidre, ngraham, plasma-devel
    
    Tags: #plasma
    
    Differential Revision: https://phabricator.kde.org/D25191
    c7a1f606