Skip to content

donn/nudelta

Repository files navigation

ν∂ / Nudelta

License: GPLv3 CI Status

Note: This software is in beta. NuPhy® is a registered trademark of NuPhy Studio. Nudelta is an unofficial product and is not affiliated with NuPhy Studio.

Screenshot of Nudelta Console

An open-source alternative to the NuPhy Console created by reverse-engineering the keyboards' USB protocol.

What this has:

  • Support for NuPhy Air75 and Halo75 on Windows 10+, macOS 11+, and Linux
  • Loading and saving keymap modifications from a .yml configuration file
  • The ability to back up and dump keymaps to binary formats (CLI)
  • The ability to dump keymaps to a human-readable hex format (CLI)

What this DOESN'T have:

  • Macros
    • Need to reverse engineer those.
  • Support for Air60, Halo65, etc.
    • I don't have them.
  • RGB Control
    • I don't need that, personally.

Contributions are super appreciated for all of these.

Running Requirements

  • An x86-64 processor
  • Windows 10 or higher
  • macOS 11 or higher
  • Linux 2.6.39 or higher with glibc 2.17 or higher.

Rosetta

The app may run under Rosetta 2.0, but a number of issues have popped up, with most getting some error messages while trying to write to the keyboard, and in one case after that error, a user's keyboard was bricked.

Proceed with extreme caution.

Build Requirements

  • C++17 Compiler
    • Clang recommended for macOS/Linux
    • MSVC recommended for Windows
  • Cmake
  • Node 14+ with Yarn

Build

git clone https://github.com/donn/nudelta
cd nudelta
git submodule update --init --recursive
rm -rf build
yarn
yarn build-native # CLI / Library
yarn build # GUI

The Linux AppImage will be found under ./dist, and the Mac app will be found under ./dist/mac.

Using the CLI

You will need to use sudo on Linux. On macOS, you will need to grant Input Monitoring permissions to whichever Terminal host you're using to run Nudelta, likely Terminal.app.

No special permissions are required on Windows as far as I can tell.

Load a custom profile

nudelta -l ./donns_remap.yml

The configuration .yml file is simple: there's a top level object called "keys": which is a map of physical keys on the actual keyboard to their replacements:

keys:
    capslock: esc

See example.yml for a profile and somewhat more detailed examples.

You can find a list of:

Reset keymap to default

nudelta -r

License

The GNU General Public License v3 or, at your option, any later version. Check 'License'.