Skip to content

headblockhead/SQUIRREL

Repository files navigation

SQUIRREL - Simplified, runtime-configurable QMK as a library

or: Simplified QMK Uniquely Immaculate (and) Readable Runtime Editable Library

🚧 This project is currently under construction, so do not expect a usable result yet! 🚧

Goals:

  • Create an easy to understand and simple keyboard library that allows for runtime layout and configuration edits.
  • Make sure it is as documented and clearly organised as possible.
  • Keep it independent of any microcontroller.

For an example implementation of SQUIRREL, see the SQUIRREL-pico example template.

Development

SQUIRREL uses nix.

To develop, run the nix shell using nix develop. SQUIRREL can also be built using nix build.

Tasks

Build

Directory: ./build

Builds a static archive library (.a).

cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

Build-debug

Directory: ./build

Builds the library with debug build type.

cmake -DCMAKE_BUILD_TYPE=Debug .. 
make -j4
cp compile_commands.json ../ # Copies the autocomplete information for ccls.

Test

Directory: ./build

Tests the library

cmake -DCMAKE_BUILD_TYPE=Testing ..
make -j4
ctest -T Test -T Coverage .

Clean

Cleans the build directory for a fresh build.

rm -rf ./build
mkdir build

Test

Directory: ./build

Runs the unit tests.

cmake -S. -DBUILD_TESTING=true ..
cmake --build .
ctest

About

Simple QMK Inspired Runtime Editable Library.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published