Modern app for Vial-QMK, RMK devices
  • Rust 97.3%
  • Python 1.7%
  • Shell 0.5%
  • C++ 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kirill Samoylenkov 5cb039c38e
build: add Cargo.lock for reproducibility
Cargo.lock is recommended for binary applications to ensure reproducible builds across different environments.
2026-06-13 08:09:34 +05:00
.github/workflows build: add macos app packaging 2026-06-09 03:07:31 +03:00
assets restore readme screenshot hero 2026-06-11 16:28:23 +03:00
i18n v1.13.128 update footer link copy 2026-06-11 01:02:39 +03:00
installer feat: add Windows release packaging basics (v1.12.93) 2026-05-26 03:04:41 +03:00
linux v1.13.79 feed universal symbols into text expander 2026-06-10 03:49:46 +03:00
scripts build: add macos app packaging 2026-06-09 03:07:31 +03:00
src v1.13.151 restore tray instance on relaunch 2026-06-11 16:35:40 +03:00
.gitignore build: add Cargo.lock for reproducibility 2026-06-13 08:09:34 +05:00
build.rs v1.13.92 ensure Windows icon resources are embedded 2026-06-10 15:17:31 +03:00
Cargo.lock build: add Cargo.lock for reproducibility 2026-06-13 08:09:34 +05:00
Cargo.toml v1.13.151 restore tray instance on relaunch 2026-06-11 16:35:40 +03:00
CHANGELOG.md v1.13.151 restore tray instance on relaunch 2026-06-11 16:35:40 +03:00
LICENSE chore: switch license to GPL-3.0-or-later (v1.7.64) 2026-04-26 23:48:13 +03:00
README.md restore readme screenshot hero 2026-06-11 16:28:23 +03:00

Entropy

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

License: GPL-3.0-or-later Latest beta Platforms Firmware

Entropy layout editor

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.

Screenshots

Key Picker in dark theme Key Picker in light theme Matrix Tester Text Expander

Main Features

  • Modern, minimalist, intuitive design for complex device configuration
  • Complete Vial workflow: layouts, keycodes, macros, combos, tap dance, key overrides, RGB, pointing controls, and firmware settings
  • Support for keyboards, macropads, trackballs, touchpads, encoders, displays, and modular input devices
  • Text Expander for local shortcuts from programmable devices
  • Universal Symbols for typography, arrows, math, currency, and custom characters
  • Fast keycode picker with layouts, symbols, modifiers, macros, and smart filtering
  • Custom names for layers, combos, macros, tap dance entries, and other device objects
  • Live Features as a built-in qmk-hid-host replacement for firmware host data
  • Matrix Tester and Layout Indicator for testing and daily layer visibility
  • Layer hover preview, encoder controls, custom labels, and multilingual legends
  • Advanced pages for Auto Shift, Mouse Keys, Tap-Hold, One Shot, Grave Escape, Magic, Layer LEDs, touchpad settings, and modules
  • Light/dark themes, accent color, UI scaling, settings import/export, and tray mode
  • Linux udev helper plus optional IBus/Fcitx5 integrations for Wayland input workflows

Platforms

Platform Status Package
Linux x86_64 Primary beta target AppImage
Windows x86_64 Beta target Portable ZIP
macOS Source/build-script available App bundle script

Public beta builds focus on Linux and Windows first. macOS packaging exists in the repository for source builds.

Downloads

Beta builds are published on the GitHub Releases page:

  • entropy-0.1.0-beta.1-linux-x86_64.AppImage
  • entropy-0.1.0-beta.1-windows-x86_64.zip
  • SHA256SUMS.txt

Windows builds are unsigned during beta, so Windows SmartScreen may warn before launching the app.

Quick Start

  1. Download the build for your platform from GitHub Releases
  2. Connect a Vial-compatible device
  3. On Linux, install Vial udev rules if Entropy cannot open the device and install the IBus backend if you want Wayland text expansion
  4. Launch Entropy
  5. Select the device from the top-left device dropdown
  6. Edit layers, keycodes, advanced firmware features, or app settings
  7. Save/write changes when the edited feature requires it

Linux Device Access

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.

Linux IBus Backend

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.

Compatibility

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:

  • Browser-only configuration
  • Mobile platforms

Development

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

Changelog

License

Entropy is licensed under GPL-3.0-or-later. See LICENSE.