Alternative layout visualizer for ZSA Moonlander keyboard

Overview

screenshot

General info

This is a keyboard layout visualizer for ZSA Moonlander keyboard (because I didn't find their Oryx or their training tool particularly useful). Layout information is created and updated manually in a TXT file (e.g. no automation of any kind, it doesn't read layouts from the keyboard itself, from Oryx, etc.) The intended usage is to keep it open somewhere in the corner of the screen while memorizing the layouts by typing and practicing.

Requirements

Python 3.x wxPython (pip install wxpython)

Usage

Run layout.pyw, it reads layouts information from all_layouts.txt

Layouts format

For each tab in the visualizer (the names can be anything):

SET name

...

END

The content of a set consists of one or more subsets, for example:

SUBSET normal
20 20
0 0 127
| Esc |  1  |  2  |  3  |  4  |  5  |  !  |-----|  '  |  6  |  7  |  8  |  9  |  0  |  -  |
| Prt |  Q  |  W  |  E  |  R  |  T  |  /  |-----|  .  |  Y  |  U  |  I  |  O  |  P  |     |
|  ⇧  |  A  |  S  |  D  |  F  |  G  |  \  |-----|  ,  |  H  |  J  |  K  |  L  |     |     |
|  ⇫  |  Z  |  X  |  C  |  V  |  B  |-----------------|  N  |  M  |     |     |     |  ⇫  |
|LCtrl|LAlt |     |LAlt |LCtrl|-----------------------------|  ▲  |  ▼  |RAlt |RCtrl|Ru/En|

------------------------| Win |-----------------------------|  ⏎  |------------------------
------------------------|  ⎵  | Tab |     |-----|     | Del |  ⌫  |------------------------

SUBSET symbols
10 2
220 128 0
|  +  | F1  | F2  | F3  | F4  | F5  |  *  |-----|     | F6  | F7  | F8  | F9  | F10 | F11 |
|  -  |  !  |  @  |  {  |  }  |  |  |     |-----|     |PgUp |Home |  ▲  | End |     | F12 |
|  =  |  #  |  $  |  (  |  )  |  `  |     |-----|     |PgDn |  ◀  |  ▼  |  ▶  |     | Ins |
|     |  %  |  &  |  [  |  ]  |  ~  |-----------------|     |     |     |     |     |     |
|     |     |  ^  |  <  |  >  |-----------------------------|     |     |     |     |     |

------------------------|     |-----------------------------|     |------------------------
------------------------|     |     | ⟲SYM|-----| ⟲SYM|     |     |------------------------

The second line represents where each key description is drawn, relative to the key's upper left corner.

The third line represents the RGB color of the key descriptions (decimal numbers in range 0~255).

The rest is this rigid 'matrix', each 'key' is 5 characters wide (if less than 5, should be padded with spaces), separated with vertical bars. Empty keys should be 5 spaces. The long sequences of - characters should be where they are.

Subsets are read from top to bottom of the file, if a key description in a 'lower' subset is identical to the key description in a 'higher' subset, the 'lower' one is ignored (e.g. not displayed again, possibly at different coordinates and in a different color).

Sets support a primitive form of 'inheritance': SET name2:name1 (name1 should be defined before name2). If both sets have subsets with the same name (say, symbols), and name2 had empty keys on its symbols subset, the key description from the set name1 subset symbols will be displayed for that key instead.

HiPlot makes understanding high dimensional data easy

HiPlot - High dimensional Interactive Plotting HiPlot is a lightweight interactive visualization tool to help AI researchers discover correlations and

Facebook Research 2.4k Jan 04, 2023
Lightweight, extensible data validation library for Python

Cerberus Cerberus is a lightweight and extensible data validation library for Python. v = Validator({'name': {'type': 'string'}}) v.validate({

eve 2.9k Dec 27, 2022
Because trello only have payed options to generate a RunUp chart, this solves that!

Trello Runup Chart Generator The basic concept of the project is that Corello is pay-to-use and want to use Trello To-Do/Doing/Done automation with gi

Rômulo Schiavon 1 Dec 21, 2021
The interactive graphing library for Python (includes Plotly Express) :sparkles:

plotly.py Latest Release User forum PyPI Downloads License Data Science Workspaces Our recommended IDE for Plotly’s Python graphing library is Dash En

Plotly 12.7k Jan 05, 2023
Library for exploring and validating machine learning data

TensorFlow Data Validation TensorFlow Data Validation (TFDV) is a library for exploring and validating machine learning data. It is designed to be hig

688 Jan 03, 2023
Package managers visualization

Software Galaxies This repository combines visualizations of major software package managers. All visualizations are available here: http://anvaka.git

Andrei Kashcha 1.4k Dec 22, 2022
DrawBot lets you draw images taken from the internet on Skribbl.io, Gartic Phone and Paint

DrawBot You don't speak french? No worries, english translation is over here. C'est quoi ? DrawBot est un logiciel codé par V2F qui va prendre possess

V2F 205 Jan 01, 2023
metedraw is a project mainly for data visualization projects of Atmospheric Science, Marine Science, Environmental Science or other majors

It is mainly for data visualization projects of Atmospheric Science, Marine Science, Environmental Science or other majors.

Nephele 11 Jul 05, 2022
A Python toolbox for gaining geometric insights into high-dimensional data

"To deal with hyper-planes in a 14 dimensional space, visualize a 3D space and say 'fourteen' very loudly. Everyone does it." - Geoff Hinton Overview

Contextual Dynamics Laboratory 1.8k Dec 29, 2022
Epagneul is a tool to visualize and investigate windows event logs

epagneul Epagneul is a tool to visualize and investigate windows event logs. Dep

jurelou 190 Dec 13, 2022
Insert SVGs into matplotlib

Insert SVGs into matplotlib

Andrew White 35 Dec 29, 2022
Piglet-shaders - PoC of custom shaders for Piglet

Piglet custom shader PoC This is a PoC for compiling Piglet fragment shaders usi

6 Mar 10, 2022
An application that allows you to design and test your own stock trading algorithms in an attempt to beat the market.

StockBot is a Python application for designing and testing your own daily stock trading algorithms. Installation Use the

Ryan Cullen 280 Dec 19, 2022
Generating interfaces(CLI, Qt GUI, Dash web app) from a Python function.

oneFace is a Python library for automatically generating multiple interfaces(CLI, GUI, WebGUI) from a callable Python object. oneFace is an easy way t

NaNg 31 Oct 21, 2022
Minimal Ethereum fee data viewer for the terminal, contained in a single python script.

Minimal Ethereum fee data viewer for the terminal, contained in a single python script. Connects to your node and displays some metrics in real-time.

48 Dec 05, 2022
Simple Inkscape Scripting

Simple Inkscape Scripting Description In the Inkscape vector-drawing program, how would you go about drawing 100 diamonds, each with a random color an

Scott Pakin 140 Dec 27, 2022
Implementation of SOMs (Self-Organizing Maps) with neighborhood-based map topologies.

py-self-organizing-maps Simple implementation of self-organizing maps (SOMs) A SOM is an unsupervised method for learning a mapping from a discrete ne

Jonas Grebe 6 Nov 22, 2022
Pyan3 - Offline call graph generator for Python 3

Pyan takes one or more Python source files, performs a (rather superficial) static analysis, and constructs a directed graph of the objects in the combined source, and how they define or use each oth

Juha Jeronen 235 Jan 02, 2023
Gaphas is the diagramming widget library for Python.

Gaphas Gaphas is the diagramming widget library for Python. Gaphas is a library that provides the user interface component (widget) for drawing diagra

Gaphor 144 Dec 14, 2022
Interactive plotting for Pandas using Vega-Lite

pdvega: Vega-Lite plotting for Pandas Dataframes pdvega is a library that allows you to quickly create interactive Vega-Lite plots from Pandas datafra

Altair 342 Oct 26, 2022