Code Monkey home page Code Monkey logo

keymap's Introduction

Keymap Visualizer

Warning

This project is archived. Please check out keymap-drawer instead, which generalizes and improves upon this script.

This is a visualizer for keymaps, similar to keymap which was used as a starting point. Requires python >= 3.8, pyyaml and pydantic packages (pip install --user pyyaml pydantic) for reading and validating input YAML configs.

Differences from original

  • Supports non-split and custom-sized layouts
    • Arbitrary row/col sizes, number of thumb keys for splits
  • Decouples data and drawing logic by reading physical layout and keymap definitions from YAML files
  • Supports hold-tap keys
  • Supports horizontal Nu keys for integer N > 1
    • Defined by consecutive identical non-null key definitions
  • Supports combos
    • Only two neighboring positions (horizontal or vertical)
    • Uses ZMK-like position indices (starting from 0, going right then down)
  • Layer labels
  • Slightly different styling

Split layout example

3x5 layout with 2 or 3 thumb keys on each side:

python draw.py keymaps/3x5.yaml >svg/3x5.svg

Example 3x5 layout

Non-split layout example

4x12 ortho layout à la Planck with MIT layout:

python draw.py keymaps/4x12.yaml >svg/4x12.svg

Example 4x12 layout

keymap's People

Contributors

caksoylar avatar callum-oakley avatar

Stargazers

Matt avatar vi|vi|vi avatar Jawick avatar Igor  avatar Evgenii Vilkov avatar Jack avatar  avatar Chan Jia Qi avatar Muhammad Althaf avatar Steven avatar Kyle Mitchell avatar フィルターペーパー avatar Alex Zaslavsky avatar  avatar  avatar Micah Loffer avatar Parker Henderson avatar Tobias Spens avatar Andre Sachs avatar Nikita Zavgorodnii avatar ~ aka goonf!sh. avatar Kleyton Torikai avatar Jan Kampling avatar Joey Nguyen avatar  avatar Ashish Shrestha avatar Cian Dowd avatar James Barr avatar John D. Mitchell avatar  avatar Dom H avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.