Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/donn/nudelta

Open source NuPhy Console alternative
https://github.com/donn/nudelta

air75 console halo75 keyboard linux nuphy remap

Last synced: 3 months ago
JSON representation

Open source NuPhy Console alternative

Awesome Lists containing this project

README

        

ν∂ / 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.

[Download](https://github.com/donn/nudelta/releases/latest)

![Screenshot of Nudelta Console](./res/screencap.png)

An open-source alternative to the [NuPhy Console](https://nuphy.com/pages/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](https://github.com/donn/nudelta/issues/37)
while trying to write to the keyboard, and in
[one case](https://github.com/donn/nudelta/issues/58) 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

```sh
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

```sh
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:

```yml
keys:
capslock: esc
```

See [example.yml](example.yml) for a profile and somewhat more detailed examples.

You can find a list of:
* Replaceable keys (for the Windows mode) in [res/air75/indices_win.yml](res/Air75/indices_win.yml).
* Replacement keycodes in [res/air75/default_keymap_win.yml](res/Air75/default_keymap_win.yml).

### Reset keymap to default
```sh
nudelta -r
```

## License
The GNU General Public License v3 or, at your option, any later version. Check '[License](/License)'.