20 releases

0.4.11 Sep 30, 2024
0.4.9 Jul 9, 2024
0.4.6 Feb 8, 2024
0.2.4 Dec 30, 2023

#396 in Hardware support

Custom license

220KB
3.5K SLoC

Dygma Focus API (Rust)

crates.io

About

This crate is a Rust implementation of the Dygma Focus API.

Make sure to not have Bazecor running and connected while trying to communicate with your keyboard.

Usage

Cargo.toml

[dependencies]
anyhow = "1.0"
dygma_focus = { version = "0.4", default-features = false, features = ["is_async"] }
tokio = { version = "1", features = ["full"] }

You can set the features to is_async or is_sync depending on your use case, default is is_async.

src/main.rs

use anyhow::Result;
use dygma_focus::prelude::*;

#[tokio::main]
async fn main() -> Result<()> {
    // Open the first device found and declare as mutable
    // Other constructors are under Focus::new_*
    let mut focus = Focus::new_first_available()?;

    // Here is an example method, most have a get and set method
    // There are also other methods for triggering macros or switching layers for example
    println!("version: {}", &focus.version().await?);

    Ok(())
}

Projects using this crate

Dygma Layer Switcher

Dependencies

~135MB
~2M SLoC