6 releases

new 0.3.1 Jan 2, 2025
0.3.0 Jan 2, 2025
0.2.0 Dec 20, 2024
0.1.2 Dec 18, 2024

#329 in Hardware support

Download history 275/week @ 2024-12-15 19/week @ 2024-12-22 197/week @ 2024-12-29

491 downloads per month

MIT license

20KB
320 lines

razerctl

A rust library which allows you to control your mouse with Razer Synapse

Requirements

  • Windows operating system
  • Rust 1.56 or higher

Safety

This crate uses unsafe code for Windows API interactions but provides safe abstractions for users. All unsafe operations are thoroughly documented and contained within the implementation.

Features

  • ✅ Currently supports mouse movement/clicking
  • ✅ Supports sending keyboard inputs
  • ❌ No support for keyboard dictionary yet, you'll have to experiment yourself for now

Installation

In your root project folder, run the following to add razerctl to your dependencies.

cargo add razerctl

Quick Start

use std::io::Error;

use razerctl::{init, mouse_move};

fn main() -> Result<(), Error> {
    // Initialize with default settings
    init()?;
    
    // Move mouse to relative coordinates (100, 100)
    mouse_move(100, 100)?;
    
    Ok(())
}

Examples

Run the included examples:

# Mouse clicking demo
cargo run --example left_click

# Basic mouse movement demo
cargo run --example mouse_move1

# Fast mouse movement demo
cargo run --example mouse_move2

Contributing

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

License

This project is licensed under the MIT License.

Dependencies

~0–35MB
~522K SLoC