Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete rewrite of Qukeys #640

Merged
merged 1 commit into from
Aug 22, 2019

Commits on Jul 27, 2019

  1. Rewrite Qukeys plugin from scratch

    This is a complete rewrite of Qukeys, in order to implement several improvements
    and new features:
    
    - A new KeyAddrEventQueue class has been introduced, in order to store both key
      press and release events in the queue.
    - The direct dependence on KeyboardioHID is removed by only flushing one event
      from the queue per cycle.
    - The array of Qukey objects is now stored in PROGMEM instead of SRAM, and is
      configured via an array reference template function in order to automatically
      ensure the count will be correct.
    - There is a new algorithm for determining which state a qukey will collapse
      into in the case of rollover from qukey to another key, which should reduce
      the rate of errors for "sloppy" typists.
    - A Qukey with a primary key value that is a modifier (including layer shift
      keys) is treated like a SpaceCadet key, with different semantics. The
      alternate (non-modifier) key value is only used if the SpaceCadet key is
      pressed and released on its own, without rolling over to any other key.
    - The code is generally simpler and easier to understand, with better inline
      comments explaining how it all works.
    
    Fixes keyboardio#626.
    
    Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
    gedankenexperimenter committed Jul 27, 2019
    Configuration menu
    Copy the full SHA
    1e58fcf View commit details
    Browse the repository at this point in the history