I (Steven) have a fairly large personal project centering around keyboard remapping scripts (https://github.com/StevenTammen/personal-keyboard-config). There's a lot of functionality I have implemented, but the whole thing is hand-coded, hard-coded, and difficult to update and maintain. Quite a lot of the code is repetitive and bug-prone.

A code generator based off of a GUI configurator eliminates many of these problems. It also has the emergent benefit of making functionality accessible to those who cannot program: they can make layouts with the GUI, enter the paths to downloaded JSON, and press the generate button to get access to AutoHotkey scripts that implement a sophisticated multi-layer keyboard layout, all without touching a line of code. That's the idea at any rate.

At the hackathon we got the basic implementation hammered out for an ANSI tenkeyless keyboard layout. The generated code files number in the thousands of lines -- easy to generate at the press of a button with this project, but time-intensive and incredibly repetitive without it.

Matt did most of the heavy lifting for JSON parsing and the GUI via PyQt, and I worked with Mako templates and code generation for the AutoHotkey files. It was just the two of us since someone we thought was coming ended up not being able to. This is why the project is perhaps not as large or sophisticated as it could have been -- there's only so much a team of two can do (compared to a team of five, for example).

Built With

  • autohotkey
  • json
  • mako
  • pyqt5
  • python-3.6
Share this project:

Updates