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.

Flexitext is a Python library that makes it easier to draw text with multiple styles in Matplotlib

Flexitext is a Python library that makes it easier to draw text with multiple styles in Matplotlib

Tomás Capretto 93 Dec 28, 2022
a python function to plot a geopandas dataframe

Pretty GeoDataFrame A minimum python function (~60 lines) to draw pretty geodataframe. Based on matplotlib, shapely, descartes. Installation just use

haoming 27 Dec 05, 2022
Plotting library for IPython/Jupyter notebooks

bqplot 2-D plotting library for Project Jupyter Introduction bqplot is a 2-D visualization system for Jupyter, based on the constructs of the Grammar

3.4k Dec 29, 2022
Advanced hot reloading for Python

The missing element of Python - Advanced Hot Reloading Details Reloadium adds hot reloading also called "edit and continue" functionality to any Pytho

Reloadware 1.9k Jan 04, 2023
Ana's Portfolio

Ana's Portfolio ✌️ Welcome to my Portfolio! You will find here different Projects I have worked on (from scratch) 💪 Projects 💻 1️⃣ Hangman game (Mad

Ana Katherine Cortes Sobrino 9 Mar 15, 2022
3D rendered visualization of the austrian monuments registry

Visualization of the Austrian Monuments Visualization of the monument landscape of the austrian monuments registry (Bundesdenkmalamt Denkmalverzeichni

Nikolai Janakiev 3 Oct 24, 2019
A dashboard built using Plotly-Dash for interactive visualization of Dex-connected individuals across the country.

Dashboard For The DexConnect Platform of Dexterity Global Working prototype submission for internship at Dexterity Global Group. Dashboard for real ti

Yashasvi Misra 2 Jun 15, 2021
ICS-Visualizer is an interactive Industrial Control Systems (ICS) network graph that contains up-to-date ICS metadata

ICS-Visualizer is an interactive Industrial Control Systems (ICS) network graph that contains up-to-date ICS metadata (Name, company, port, user manua

QeeqBox 2 Dec 13, 2021
Handout for the tutorial "Creating publication-quality figures with matplotlib"

Handout for the tutorial "Creating publication-quality figures with matplotlib"

JB Mouret 1.9k Jan 02, 2023
GitHub English Top Charts

Help you discover excellent English projects and get rid of the interference of other spoken language.

kon9chunkit 529 Jan 02, 2023
This is a web application to visualize various famous technical indicators and stocks tickers from user

Visualizing Technical Indicators Using Python and Plotly. Currently facing issues hosting the application on heroku. As soon as I am able to I'll like

4 Aug 04, 2022
Statistics and Visualization of acceptance rate, main keyword of CVPR 2021 accepted papers for the main Computer Vision conference (CVPR)

Statistics and Visualization of acceptance rate, main keyword of CVPR 2021 accepted papers for the main Computer Vision conference (CVPR)

Hoseong Lee 78 Aug 23, 2022
Functions for easily making publication-quality figures with matplotlib.

Data-viz utils 📈 Functions for data visualization in matplotlib 📚 API Can be installed using pip install dvu and then imported with import dvu. You

Chandan Singh 16 Sep 15, 2022
An interactive UMAP visualization of the MNIST data set.

Code for an interactive UMAP visualization of the MNIST data set. Demo at https://grantcuster.github.io/umap-explorer/. You can read more about the de

grant 70 Dec 27, 2022
Displaying plot of death rates from past years in Poland. Data source from these years is in readme

Average-Death-Rate Displaying plot of death rates from past years in Poland The goal collect the data from a CSV file count the ADR (Average Death Rat

Oliwier Szymański 0 Sep 12, 2021
HM02: Visualizing Interesting Datasets

HM02: Visualizing Interesting Datasets This is a homework assignment for CSCI 40 class at Claremont McKenna College. Go to the project page to learn m

Qiaoling Chen 11 Oct 26, 2021
Data Visualizer Web-Application

Viz-It Data Visualizer Web-Application If I ask you where most of the data wrangler looses their time ? It is Data Overview and EDA. Presenting "Viz-I

Sagnik Roy 17 Nov 20, 2022
Example scripts for generating plots of Bohemian matrices

Bohemian Eigenvalue Plotting Examples This repository contains examples of generating plots of Bohemian eigenvalues. The examples in this repository a

Bohemian Matrices 5 Nov 12, 2022
Visualizations of some specific solutions of different differential equations.

Diff_sims Visualizations of some specific solutions of different differential equations. Heat Equation in 1 Dimension (A very beautiful and elegant ex

2 Jan 13, 2022
A simple project on Data Visualization for CSCI-40 course.

Simple-Data-Visualization A simple project on Data Visualization for CSCI-40 course - the instructions can be found here SAT results in New York in 20

Hugo Matousek 8 Oct 27, 2021