Svalboard Keymap Image Maker
Project description
qmk-skim (Svalboard Keymap Image Maker)
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)
- Keybard (
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83463e4b0c69b9d7912915ccf4e1a84694d53cd69cafa6eec7fd92ebd19d426c
|
|
| MD5 |
009fb1f629ba843f21f7393850cc822e
|
|
| BLAKE2b-256 |
8d40375601adf26eda5bcc222b53b4fbd31edcc8f0fc5b7edba066de8420bc2a
|
Provenance
The following attestation bundles were made for qmk_skim-0.5.2.tar.gz:
Publisher:
release.yml on Townk/skim
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qmk_skim-0.5.2.tar.gz -
Subject digest:
83463e4b0c69b9d7912915ccf4e1a84694d53cd69cafa6eec7fd92ebd19d426c - Sigstore transparency entry: 1360845834
- Sigstore integration time:
-
Permalink:
Townk/skim@0a7200ace7e5ff971fc3b44f4f6ace992c31d32c -
Branch / Tag:
refs/heads/mainline - Owner: https://github.com/Townk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0a7200ace7e5ff971fc3b44f4f6ace992c31d32c -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e646543debc999765a2cad3e9045ed18918ec40a53e441dab774e718520dabe
|
|
| MD5 |
21f6b85839a0169fe384730c3f14a4fe
|
|
| BLAKE2b-256 |
d43bcc0c70f9b93c1f44002ef6e73cfdccd33ef4b82171752e0a9a5b8bb765c2
|
Provenance
The following attestation bundles were made for qmk_skim-0.5.2-py3-none-any.whl:
Publisher:
release.yml on Townk/skim
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qmk_skim-0.5.2-py3-none-any.whl -
Subject digest:
1e646543debc999765a2cad3e9045ed18918ec40a53e441dab774e718520dabe - Sigstore transparency entry: 1360845898
- Sigstore integration time:
-
Permalink:
Townk/skim@0a7200ace7e5ff971fc3b44f4f6ace992c31d32c -
Branch / Tag:
refs/heads/mainline - Owner: https://github.com/Townk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0a7200ace7e5ff971fc3b44f4f6ace992c31d32c -
Trigger Event:
push
-
Statement type: