Modern app for programmable keyboards and input devices, built by Ergohaven.

Entropy is a desktop app with a modern, minimalist, and intuitive interface for configuring programmable input devices running Vial-QMK or Vial-RMK firmware: split keyboards, macropads, trackballs, touchpad modules, and other hardware that exposes keyboard-style firmware features through HID.
It is designed to feel direct and predictable: connect a device, pick it from the device list, and work through layout, keycodes, macros, lighting, pointing controls, and firmware settings from one coherent interface.

| Platform | Status | Package |
|---|---|---|
| Linux x86_64 | Primary beta target | AppImage |
| Windows x86_64 | Beta target | Portable EXE |
| macOS x86_64 (Intel) | Beta target | Unsigned DMG |
Public beta builds are published for Linux, Windows, and macOS. macOS builds are unsigned and not notarized during beta.
Beta builds are published on the GitHub Releases page:
entropy-v1.14.3-x86_64.AppImageentropy-v1.14.3-windows-x86_64.exeentropy-v1.14.3-macos-x86_64.dmgWindows builds are unsigned during beta, so Windows SmartScreen may warn before launching the app.
macOS DMG builds are x86_64/Intel, unsigned, and not notarized during beta. To run a downloaded DMG on macOS:
.dmgEntropy.app to /Applicationsxattr -dr com.apple.quarantine /Applications/Entropy.app
open /Applications/Entropy.app
Vial devices use hidraw access on Linux. If your device appears but cannot be opened, use the Install Vial udev rules action in Entropy settings, or install the included udev rule manually from a source checkout:
./linux/udev/install-vial-rules.sh
Replug the device after installing the rule.
On Wayland, Entropy uses IBus for Universal Symbols and Text Expander input. Use the Install IBus action in Entropy settings to install the bundled Entropy IBus engine. The AppImage includes the installer and engine, so a separate source checkout is not required.
IBus itself and its Python bindings must still be installed by the system package manager. On Debian/Ubuntu-like systems:
sudo apt-get install ibus python3-gi gir1.2-ibus-1.0
After installation, restart IBus if Entropy did not do it automatically, then add Entropy Universal Symbols as an input source in your desktop input settings.
Universal Symbols let a keyboard type the same punctuation, typography, math, currency, and Cyrillic characters regardless of the active OS keyboard layout. They are intended for characters that are inconvenient or inconsistent across language layouts.
Entropy implements this by using F13-F24 as transport keys. Firmware sends
F13-F24, optionally with Shift, Ctrl, and/or Alt; Entropy catches those
carrier events and types the mapped Unicode character through the native OS
input backend.
Because of that, F13-F24 must be treated as reserved when Universal Symbols
are enabled:
F13-F24 to personal firmware actions, macros, combos, tap
dance entries, key overrides, or OS/application shortcutsF13-F24 chords such as Alt+F13, Ctrl+F13, or
Ctrl+Alt+F13 for unrelated firmware behaviorF13-F24 keycodesF13-F24 eventsThis reservation avoids conflicts where browsers, mail clients, or other desktop
apps interpret raw or modified F13-F24 events as interface shortcuts instead
of text input.
Entropy currently communicates with Vial-compatible HID devices. Its UI is designed for programmable keyboards and adjacent input devices such as macropads, trackballs, touchpads, and encoder/display modules when those features are exposed by firmware.
Best-tested hardware is Ergohaven hardware and Vial-compatible QMK/RMK-style devices. Firmware support varies by device; Entropy hides firmware-gated pages when the connected device does not expose the required capability.
Not in scope for this beta:
Install a stable Rust toolchain, then build the desktop app:
cargo run
cargo build --release
Linux builds require native GUI/HID dependencies. On Debian/Ubuntu-like systems:
sudo apt-get install \
libhidapi-dev \
libudev-dev \
libxcb-render0-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libxkbcommon-dev \
libssl-dev \
libgtk-3-dev
Build a macOS app bundle and DMG on macOS:
scripts/build_macos_app.sh
Build a Windows release binary from Linux with the GNU target:
cargo build --release --target x86_64-pc-windows-gnu
Entropy is licensed under GPL-3.0-or-later. See LICENSE.
$ claude mcp add entropy \
-- python -m otcore.mcp_server <graph>