Skip to content

drashna/qmk_xap

 
 

Repository files navigation

Quantum Mechanical Keyboard XAP Client

Build/release Discord GitHub contributors GitHub forks

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.

Development

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.

Select node version

# 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

Project setup

yarn

Debugging

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!

Producing Builds

yarn app:build   # Note: only creates an executable for the current system architecture

GitHub Actions

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.

Notes

  • 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

      See here, here, here, here.

      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 using udev 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

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 66.9%
  • TypeScript 14.2%
  • Vue 11.1%
  • CSS 6.4%
  • HTML 1.4%