Skip to main content

Svalboard Keymap Image Maker

Project description

qmk-skim (Svalboard Keymap Image Maker)

Coverage Python Version Build Status PyPI version

A Python CLI tool for generating high-quality keymap layout images for the Svalboard keyboard.

Features

  • Generate individual layer keymap images
  • Generate overview images showing all layers
  • Support for multiple keymap formats:
    • Keybard (.kbi)
    • Vial (.vil)
    • QMK c2json (.json)
  • Configurable colors and appearance
  • High-quality output in multiple formats:
    • Vector: SVG
    • Raster: PNG, JPEG, WEBP, AVIF

Installation

You can install qmk-skim using pip, pipx, or uv.

Using uv (Recommended)

uv tool install qmk-skim

Using pipx

pipx install qmk-skim

Using pip

pip install qmk-skim

Usage

The package installs the skim command-line tool.

Generate keymap images

# Generate from a keymap file
skim generate --keymap my-keymap.kbi --output-dir ./images

# Generate with custom configuration
skim generate --keymap my-keymap.kbi --config skim-config.yaml --output-dir ./images

# Generate specific layers only
skim generate --keymap my-keymap.kbi --layer 1 --layer 3-5 --layer overview

Configuration helper

# Create a configuration file from QMK color.h
skim configure --qmk-color-header /path/to/qmk/quantum/color.h --output skim-config.yaml

Development

This project uses uv for dependency management and just as a command runner.

Setup

# Clone the repository
git clone https://github.com/Townk/skim.git
cd skim

# Install dependencies
just sync

Testing

# Run all tests (unit + integration)
just tests

# Run only unit tests
just unit-tests

# Run only integration tests
just integration-tests

Code Quality

Run the full suite of checks (linting, formatting, type checking) before submitting a PR:

just check

Individual checks:

just lint      # Run ruff linter
just format    # Format code with ruff
just typecheck # Run basedpyright

Building Documentation

just build-docs

License

MIT License

Contributing

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

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_skim-0.5.2.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

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

qmk_skim-0.5.2-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

Details for the file qmk_skim-0.5.2.tar.gz.

File metadata

  • Download URL: qmk_skim-0.5.2.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qmk_skim-0.5.2.tar.gz
Algorithm Hash digest
SHA256 83463e4b0c69b9d7912915ccf4e1a84694d53cd69cafa6eec7fd92ebd19d426c
MD5 009fb1f629ba843f21f7393850cc822e
BLAKE2b-256 8d40375601adf26eda5bcc222b53b4fbd31edcc8f0fc5b7edba066de8420bc2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for qmk_skim-0.5.2.tar.gz:

Publisher: release.yml on Townk/skim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qmk_skim-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: qmk_skim-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qmk_skim-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1e646543debc999765a2cad3e9045ed18918ec40a53e441dab774e718520dabe
MD5 21f6b85839a0169fe384730c3f14a4fe
BLAKE2b-256 d43bcc0c70f9b93c1f44002ef6e73cfdccd33ef4b82171752e0a9a5b8bb765c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for qmk_skim-0.5.2-py3-none-any.whl:

Publisher: release.yml on Townk/skim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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