Skip to main content

VIA api implementation for QMK-based keyboards

Project description

qmk-via-api

Version image image

qmk-via-api provides an implementation of the VIA API for QMK (Quantum Mechanical Keyboard) based keyboards. It allows developers to interact with QMK keyboards programmatically, enabling tasks such as configuring keymaps, macros, lighting effects and more.

Additionally, this library includes Python bindings for all API calls for integration of QMK keyboard configuration into Python-based applications or scripts.

Usage

Rust

Add dependency with Cargo:

cargo add qmk-via-api

Usage example:

use qmk_via_api::{api::KeyboardApi, scan::scan_keyboards};

fn main() {
    if let Some(dev) = scan_keyboards().first() {
        let api = KeyboardApi::new(dev.vendor_id, dev.product_id, dev.usage_page).unwrap();
        println!("Protocol version: {:?}", api.get_protocol_version());
        println!("Layer count: {:?}", api.get_layer_count());
    } else {
        println!("No devices found");
    }
}

Disable Python Bindings

The python feature flag is enabled by default. In projects that don't interoperate with Python, the Python bindings can be disabled by turning off default features. In Cargo.toml:

[dependencies]
qmk-via-api = { version = "0.3.0", default-features = false }

Python

Install with pip:

pip install qmk-via-api

Usage example:

import qmk_via_api
from qmk_via_api import scan_keyboards

devices = scan_keyboards()
if devices:
    dev = devices[0]
    api = qmk_via_api.KeyboardApi(dev.vendor_id, dev.product_id, dev.usage_page)
    print(f"Protocol version {api.get_protocol_version()}")
    print(f"Layers count: {api.get_layer_count()}")
else:
    print("No devices found")

License & Attribution

Parts of this project are based on code from the VIA project, which is licensed under the GNU General Public License v3.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qmk_via_api-0.4.1.tar.gz (31.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qmk_via_api-0.4.1-cp38-abi3-win_amd64.whl (191.6 kB view details)

Uploaded CPython 3.8+Windows x86-64

qmk_via_api-0.4.1-cp38-abi3-win32.whl (177.1 kB view details)

Uploaded CPython 3.8+Windows x86

qmk_via_api-0.4.1-cp38-abi3-manylinux_2_34_x86_64.whl (445.2 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.34+ x86-64

qmk_via_api-0.4.1-cp38-abi3-macosx_11_0_arm64.whl (296.0 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

qmk_via_api-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl (305.2 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file qmk_via_api-0.4.1.tar.gz.

File metadata

  • Download URL: qmk_via_api-0.4.1.tar.gz
  • Upload date:
  • Size: 31.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for qmk_via_api-0.4.1.tar.gz
Algorithm Hash digest
SHA256 637a9857ae21297114878abbf1f65b7ecb6eaf47d44745a5a75e1ec191560b77
MD5 d562a00d40c775991b8392f33b2c6b21
BLAKE2b-256 a28de0900362423c42bc4d552f7db41910ab0f41a109ba12d4bd91c565f0bb79

See more details on using hashes here.

File details

Details for the file qmk_via_api-0.4.1-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for qmk_via_api-0.4.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6846ae12d4320971321dc94ec50ea92a828ce179776672d606420147a268cba8
MD5 a7c398caaa415dde456b171f9b439ecd
BLAKE2b-256 d8d43e4427a4bf6ac0b8a8c7112c4b31cd64e23801911ddd9df19331a0919997

See more details on using hashes here.

File details

Details for the file qmk_via_api-0.4.1-cp38-abi3-win32.whl.

File metadata

  • Download URL: qmk_via_api-0.4.1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 177.1 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for qmk_via_api-0.4.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 0be36e1301ced954cf742d6b147038efadac7d8926a1239320fb0c35d8f50197
MD5 b155a449b0d6cc6757c2043c1af2fcb1
BLAKE2b-256 80b4a07cb7e2dfbb3223a591397d63c70113abf632edc93f9add12cd8734bc04

See more details on using hashes here.

File details

Details for the file qmk_via_api-0.4.1-cp38-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for qmk_via_api-0.4.1-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7e815cdcaef204dd7e156f920943c2dd9abc50f1597167a7f8a1a74825e36156
MD5 d7cae5b67005a5b9ffca6f92608331e7
BLAKE2b-256 6c046f800bd2cde3f0caddf129268fe3f4733f7e2fb0a0b002299ecad622f6b4

See more details on using hashes here.

File details

Details for the file qmk_via_api-0.4.1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qmk_via_api-0.4.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 76fb03147756351f31f300723636cd1ab35d954e237e0add564366cc2809f84f
MD5 0900925a9ed5e6d659604d1a067dcd67
BLAKE2b-256 5fd5294ae04c80a2d8bbda03423d26b11360f0136a2ac98bedeab47092b9161f

See more details on using hashes here.

File details

Details for the file qmk_via_api-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qmk_via_api-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4b9fc914aa63f213f2e2b0a1d3bbbd255cf4fbffaf5ea39d2f107530ce53a57a
MD5 1ed0a1a2d6e8607594249dbe999fd44e
BLAKE2b-256 c7cb4b3c279fbde7f236bba9e05ec463a30fb4711abd9a9306d9d1e8273e9bf4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page