Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

339 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RMK GUI

Gui configuration for RMK based on Tauri and Svelte

Warn

本项目当前正处于史诗级屎山构建阶段, 建议您保持安全距离观赏.

This project is currently in the process of building an epic-level shit mountain. It is recommended to observe from a safe distance.

Install

Go to the release page to download the corresponding installation package. Supports Windows (x64/x86), Linux (x64/arm64) and macOS 10.15+ (intel/apple).

Features

  • Based on Rust and Tauri2 frameworks.
  • Concise and modern user interface, built with Svelte 5 and Tailwind CSS 4.
  • Talks the rynk protocol over USB serial, BLE, and Web Serial.
  • Support for Windows, macOS, and Linux.

Development

Make sure you have Rust, NodeJS and Python installed on your system.

  1. Clone the repository:
    git clone https://github.com/liyang8246/rmk-gui.git
    cd rmk-gui
  2. Install dependencies:
    pnpm install
    rustup target add wasm32-unknown-unknown
    cargo install wasm-pack
  3. Build the protocol client:
    pnpm build:wasm
    src/rynk/wasm/ is a build artifact and is not checked in, so this step is required before anything else runs. It compiles rynk-wasm from a sibling ../rmk checkout when one exists, otherwise it clones rmk-rs/rmk; set RMK_REPO to point somewhere else.
  4. Start the development server:
    pnpm dev:web     # browser only
    pnpm dev:tauri   # desktop app — runs dev:web itself, don't start both
  5. Build the application:
    pnpm build:web
    pnpm build:tauri  # runs build:web itself

Testing

pnpm test        # unit tests — no device and no wasm build needed
pnpm test:qemu   # end-to-end against the riscv fixture firmware
pnpm check       # svelte-check
CI=true pnpm lint

pnpm test:qemu builds and runs qemu/ itself, so there is nothing to start by hand. It needs qemu-system-riscv32 (brew install qemu, or apt install qemu-system-misc on Debian/Ubuntu), the riscv32imac-unknown-none-elf target, and step 3 to have run. It picks a free TCP port per run; a manual pnpm qemu defaults to 7965 and takes RMK_QEMU_PORT. Don't point both at one port — the fixture's serial port serves one client at a time.

The fixture firmware resolves rmk the same way step 3 does (RMK_REPO, then a sibling ../rmk), so the firmware and the wasm client stay on one revision. With neither, cargo falls back to the main branch and the two can drift onto different protocol commits.

CI=true matters for linting: the eslint config detects editors and relaxes some rules, so a bare pnpm lint is more permissive than CI.

Roadmap

Too many to write

Acknowledgement

RMK-GUI was based on or inspired by these projects and so on:

  • Tauri A framework for building tiny, fast binaries for all major desktop and mobile platforms.
  • Svelte A UI framework that compiles components to small, surgical JavaScript.
  • Ark UI A headless, accessible component library for building design systems.
  • Tailwind CSS A utility-first CSS framework.
  • Vial-gui An open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time.
  • RMK Rust keyboard firmware library with layers, macros, real-time keymap editing, wireless(BLE) and split support.

License

RMK-GUI is licensed under either of

at your option.

About

Rmk-Gui is a gui configuration for RMK based on Tauri and Nuxt

Topics

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages