Skip to content

codemonkey76/kinesis-configurator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kinesis Advantage 360 Configurator

A native Linux GUI application for configuring the Kinesis Advantage 360 keyboard. Since the official SmartSet app doesn't work on Linux, this tool provides a graphical interface to edit the keyboard's configuration files directly on the V-Drive.

License Rust

Features

  • 🎨 Visual Keyboard Layout - Interactive split keyboard visualization matching the actual Kinesis 360 layout
  • πŸ”„ 9 Layout Support - Switch between and manage all 9 keyboard layouts
  • πŸ“‹ Layout Copying - Easily duplicate layouts to speed up configuration
  • 🎯 Key Remapping - Visual interface for remapping keys (coming soon)
  • πŸ’Ύ Direct V-Drive Access - Reads and writes configuration files directly to the keyboard
  • 🐧 Native Linux - Built with GTK4 and Rust for a fast, native experience

Screenshots

Screenshots coming soon

Installation

Prerequisites

  • Rust 1.70 or later
  • GTK4 development libraries
  • libadwaita development libraries
  • cairo development libraries

Arch Linux

sudo pacman -S gtk4 libadwaita cairo

Ubuntu/Debian

sudo apt install libgtk-4-dev libadwaita-1-dev libcairo2-dev

Fedora

sudo dnf install gtk4-devel libadwaita-devel cairo-devel

Building from Source

git clone https://github.com/codemonkey76/kinesis-configurator.git
cd kinesis-configurator
cargo build --release

The binary will be at target/release/kinesis-configurator

Running

cargo run

Or install globally:

cargo install --path .
kinesis-configurator

Usage

1. Enable V-Drive Mode

Press SmartSet + Hk3 on your Kinesis Advantage 360 keyboard to enable V-Drive mode. The keyboard will appear as a USB storage device.

2. Mount the V-Drive (Linux)

The V-Drive typically doesn't auto-mount on Linux. You can either:

Option A: Manual mount

# Find the device
lsblk

# Mount it (replace /dev/sdX1 with your device)
sudo mkdir -p /mnt/kinesis
sudo mount /dev/sdX1 /mnt/kinesis

Option B: Use your file manager

Most Linux file managers will show the device and allow you to mount it with a click.

3. Detect and Load Configuration

  1. Click Detect Keyboard to find the mounted V-Drive
  2. Click Load Config to load your current keyboard configuration
  3. Switch between layouts using the numbered buttons (1-9)
  4. Make changes to your configuration
  5. Click Save Config to write changes back to the keyboard

4. Exit V-Drive Mode

Press SmartSet + Hk3 again to return to normal keyboard operation.

Project Structure

kinesis-configurator/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.rs              # Application entry point
β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   β”œβ”€β”€ mod.rs
β”‚   β”‚   β”œβ”€β”€ main_window.rs   # Main application window
β”‚   β”‚   └── keyboard_view.rs # Visual keyboard component
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   β”œβ”€β”€ mod.rs           # Configuration data structures
β”‚   β”‚   β”œβ”€β”€ parser.rs        # Config file parser
β”‚   β”‚   └── generator.rs     # Config file generator
β”‚   └── vdrive/
β”‚       └── mod.rs           # V-Drive detection and I/O
β”œβ”€β”€ Cargo.toml
└── README.md

Roadmap

  • V-Drive detection
  • Visual keyboard layout
  • Layout switching (1-9)
  • Layout copying
  • Key remapping interface
  • Macro editor
  • Lighting configuration
  • Import/export configurations
  • Undo/redo support
  • Configuration presets

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development

# Run with debug output
RUST_LOG=debug cargo run

# Run tests
cargo test

# Format code
cargo fmt

# Lint
cargo clippy

Technical Details

  • Language: Rust
  • GUI Framework: GTK4 with libadwaita
  • Architecture: Relm4 (Elm-inspired framework for GTK apps)
  • Drawing: Cairo for keyboard visualization

Known Issues

  • V-Drive auto-mounting doesn't work on some Linux distributions
  • Configuration file format parsing is still in development
  • Key remapping UI not yet implemented

FAQ

Q: Why doesn't the V-Drive auto-mount?
A: This is a Linux limitation with certain USB storage devices. Manual mounting is required on most systems.

Q: Will this work with the original Kinesis Advantage (non-360)?
A: Not currently, as the configuration format is different. PRs welcome!

Q: Can I brick my keyboard with this?
A: Unlikely, but always keep a backup of your configuration files. The keyboard's firmware is separate from the configuration.

License

MIT License - see LICENSE file for details

Acknowledgments

  • Built with Relm4
  • Inspired by the need for Linux support in the Kinesis community
  • Thanks to all contributors and testers

Support

If you encounter issues or have questions:

  • Open an issue on GitHub
  • Check existing issues for solutions
  • Join the discussion in the Kinesis community forums

Note: This is an unofficial tool and is not affiliated with or endorsed by Kinesis Corporation.

About

Configuration tool for Kinesis 360 Advantage

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages