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.8.0.tar.gz (33.8 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.8.0-cp38-abi3-win_amd64.whl (214.0 kB view details)

Uploaded CPython 3.8+Windows x86-64

qmk_via_api-0.8.0-cp38-abi3-win32.whl (196.3 kB view details)

Uploaded CPython 3.8+Windows x86

qmk_via_api-0.8.0-cp38-abi3-manylinux_2_38_x86_64.whl (475.7 kB view details)

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

qmk_via_api-0.8.0-cp38-abi3-macosx_11_0_arm64.whl (319.9 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

qmk_via_api-0.8.0-cp38-abi3-macosx_10_12_x86_64.whl (324.6 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for qmk_via_api-0.8.0.tar.gz
Algorithm Hash digest
SHA256 fb1e7220f0c10269fed3f733c27995e895634a593a6cbe7f5418deb550fe7c89
MD5 24b854d5e833ed649241cddc076a7f35
BLAKE2b-256 01f66a043c7788eb1a34d0bf850f9fc174896661f5de5c8adcde4ab6116e8973

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qmk_via_api-0.8.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c9ee9618c116a748f3f44d1cf9a30030458ca1f0d716e70cfd00d2540ca2b021
MD5 fec9f0c448f2c33b6a1c66c6edfdf7eb
BLAKE2b-256 4b99b091fbf6fe6c150ae9074346ba6a55f34fe8b73cb51501db9e7fd40a73aa

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for qmk_via_api-0.8.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 aefb8547221b6004605f393b561186f2166e58cd08542f021e506ecddf48fb61
MD5 840b75aa43c56285c292b56a830e3b96
BLAKE2b-256 e6ae5d94cb478eb07bdfd1c42d5555b5278a2a6999a1176e270a627af050cc6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qmk_via_api-0.8.0-cp38-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 d74b7f80d99d00c1f438eec486abb1c0d5dce1ac1f42cec7d907c080a07610a1
MD5 2507836148a696b00bae881439aa1c2a
BLAKE2b-256 54d8a8ff5df76a8fc389d490e51ef140da8d6fcbc791b1abc4ac5bba26fd1e43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qmk_via_api-0.8.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5dedfde0ec779d90b5c683d4c87971372d3fc46ea401d63f3e2a3e95ea02e0b
MD5 e57e5e8024cf993983c767658980b23b
BLAKE2b-256 2465606c571492c6acca74e97a14075a06409a7636fd953ffbd62401277fcde1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for qmk_via_api-0.8.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 33f543aae82e26a1599c5c2ed5e5d9cebb5b64e2b1c12b496833ef04b218e90e
MD5 949bfc6200a8266e582f6ed93733179b
BLAKE2b-256 604f189918bb6e7bb4f4474a98e55dfd230c4dbfea050fae9cd7f2605b471624

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