The QMK XAP Client is a tool used for reconfiguring a XAP-enabled keyboard running QMK Firmware.
Releases can be found on the releases page.
This project is an extremely early work in progress. To begin contributing, please head to Discord and head to #qmk_firmware.
We recommend you install and use NVM to manage node versions. There is a .nvmrc file in the root of the project directory that has been tested with our dependencies.
# macOS/Linux
nvm use
Unfortunately Windows' version of nvm
does not act the same way as the macOS/Linux version -- it attempts to mirror the Unix-based version but has its own nuances. It is not compatible with the .nvmrc
file's use of the LTS version, and needs an explicit version to be specified instead -- see below.
Additionally, globally installing nodejs on your system will override the use of nvm
and as such should be uninstalled if at all possible.
# Windows
nvm on
nvm use 14.17.1
yarn
Using Visual Studio Code + Vetur is strongly recommended, and appropriate launch configurations have already been supplied in the repository to get you up and running!
yarn app:build # Note: only creates an executable for the current system architecture
Pushes to the repository will generate builds through GitHub Actions -- with appropriate access a draft release will automatically be created based on the version in package.json
.
- Linux
-
AppImage execution may fail on systems with an error:
The SUID sandbox helper binary was found, but is not configured correctly.
This can be remedied by executing:
sudo sysctl kernel.unprivileged_userns_clone=1
To permanently make this change, you can run the following:
# Enable unprivileged user namespaces echo 'kernel.unprivileged_userns_clone = 1' | sudo tee /etc/sysctl.d/00-local-userns.conf sudo chmod 644 /etc/sysctl.d/00-local-userns.conf
-
Access to
/dev/hidraw*
may fail due to permissions. If you're usingudev
for managing hotpluggable device permissions, you can set up permanent rules to add access:# Add yourself to the `plugdev` group sudo usermod -aG plugdev $USER newgrp plugdev id # Add a new udev rule for hidraw device nodes: echo 'KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/99-hidraw-permissions.rules sudo chmod 644 /etc/udev/rules.d/99-hidraw-permissions.rules sudo udevadm control --reload-rules && sudo udevadm trigger
-