Skip to content

Simple QMK Inspired Runtime Editable Library.

License

Notifications You must be signed in to change notification settings

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 --output-on-failure .

Clean

Cleans the build directory for a fresh build.

rm -rf ./build
mkdir build