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() -> Result<(), qmk_via_api::Error> {
    let devices = scan_keyboards()?;
    let dev = match devices.first() {
        Some(dev) => dev,
        None => {
            println!("No devices found");
            return Ok(());
        }
    };
    let api = KeyboardApi::from_device(dev)?;

    println!("Protocol version: {:?}", api.get_protocol_version()?);
    println!("Layer count: {:?}", api.get_layer_count()?);

    let original = api.get_key(0, 0, 0)?;
    api.set_key(0, 0, 0, original)?;

    Ok(())
}

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 not devices:
    print("No devices found")
    raise SystemExit(0)

dev = devices[0]
api = qmk_via_api.KeyboardApi.from_device(dev)

print(f"Protocol version {api.get_protocol_version()}")
print(f"Layers count: {api.get_layer_count()}")

original = api.get_key(0, 0, 0)
api.set_key(0, 0, 0, original)

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.7.0.tar.gz (32.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.7.0-cp38-abi3-win_amd64.whl (209.0 kB view details)

Uploaded CPython 3.8+Windows x86-64

qmk_via_api-0.7.0-cp38-abi3-win32.whl (193.4 kB view details)

Uploaded CPython 3.8+Windows x86

qmk_via_api-0.7.0-cp38-abi3-manylinux_2_38_x86_64.whl (475.4 kB view details)

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

qmk_via_api-0.7.0-cp38-abi3-macosx_11_0_arm64.whl (318.5 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

qmk_via_api-0.7.0-cp38-abi3-macosx_10_12_x86_64.whl (324.4 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for qmk_via_api-0.7.0.tar.gz
Algorithm Hash digest
SHA256 100be7d9803c293eea7ae2016714870c178a17b6de9275526b12e4d253443671
MD5 ea3657b65810f76901124f7f468a18ed
BLAKE2b-256 cac06f9a51f9b7872d67038faabb8e0233215795db8dace03a7a30b9618c6197

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qmk_via_api-0.7.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6f5272d30bb1eec23e93289644995d78aae5335688fe0086bde1d0d7efe81ef6
MD5 a57589335c15ab578656da462dc81bdd
BLAKE2b-256 baa1dbb1cc3b7d1a2953e18912af2958064a72607a5878451eb2c2bd9c03b5a1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for qmk_via_api-0.7.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 68f9c153d099d07fb708114c140d8cb71fb9c2ed4043e511e053ca163f907494
MD5 26e91ced87dcf30f473edfbaaeea9184
BLAKE2b-256 4ea9a0c6f37d1b1bb599279ffd46f316b9218002cf0676af5081180014b059e0

See more details on using hashes here.

File details

Details for the file qmk_via_api-0.7.0-cp38-abi3-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for qmk_via_api-0.7.0-cp38-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 6d7ae9ded7f7e2908412eaead3dfc283fdaa3cbe2105a18bdacd37172454ca8e
MD5 08a27f7b9eb023d51e097818500233e2
BLAKE2b-256 58115b6e82a74f64110c4882f070f74fbe5e69b073993701add92ebf56b67a82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qmk_via_api-0.7.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52f9c985ed87da08aacda245e2f036c99107c508614a417827582e5a1d04ca67
MD5 053b7bf038152bab51280fa0f2c340fc
BLAKE2b-256 3c8cb76c0c8f9c217346f54d26ac725862832f4e80d43080c1b06d7c15cae7c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qmk_via_api-0.7.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1795362e6d8e7a64508ea5c56a3418491a6bfc552a90d993bb5494a9bc64f8c5
MD5 2476a6d618d1acc8f5c9884c9a01665e
BLAKE2b-256 374960b56bd9907aed80d5fb2a23747d4c96dbcb82840fa2ed4d6b1fff4b59d8

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