• Stars
    star
    496
  • Rank 88,807 (Top 2 %)
  • Language
    JavaScript
  • License
    GNU General Publi...
  • Created about 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Graphical configurator for Kaleidoscope-powered keyboards

Chrysalis

Chrysalis screenshot

Downloads

Latest production builds Latest development builds

About

Chrysalis is a graphical configurator for Kaleidoscope-powered keyboards. While still under development, it is already usable for a number of tasks. To try it, you don't even need to flash Kaleidoscope beforehand, Chrysalis can do that for you, as it ships with reasonable default firmware for each supported board.

The primary purpose of the application is to allow one to configure their keyboard without having to compile or flash firmware, by storing the configuration on the keyboard itself, in EEPROM. There are no external tools required, just Chrysalis itself.

Features

  • Layout editor to edit the keymap on-the-fly, with the ability to copy one layer to another, and to set a default one.
  • Colormap editor to edit the per-key LED colormap on boards that support it.
  • Firmware upgrade to upload either the default, Chrysalis-enabled firmware that ships with the application, or a custom one.

Supported Hardware

Chrysalis supports the Keyboardio Model01, the Keyboardio Model100 and the Keyboardio Atreus.

The original Atreus, the ErgoDox EZ (and any other keyboard wired like it), and the SOFT/HRUF Splitography keyboards are also supported, as long as they run suitable firmware.

Supported operating systems

Chrysalis is primarily developed under Linux and macOS, but we target and test on recent releases of Windows as well.

We generally support the most recent long-term-support releases of Ubuntu and Fedora, as well as the current releases of macOS and Windows 11. While we expect Chrysalis to work well on other recent releases of macOS, Windows, and major Linux distributions, our support resources are pretty limited and we may not be able to chase down problems that we can't reproduce on a current operating system release.

The protocol Chrysalis uses to communicate with the keyboard requires USB serial support, which is known to be problematic on Windows prior to Windows 10.

Some Linux distributions package and build Chrysalis with changes that cause it not to work correctly. If you're having trouble with a vendor-packaged Chrysalis, we recommend that you try the latest release distributed by the project.

Installation

From installer packages

Choose whether to install the production release, or a development snapshot from the links above, and from the release page, select the installer appropriate for your operating system.

macOS Homebrew

brew update && brew upgrade
brew install --cask chrysalis

Reporting issues

Chrysalis is alpha quality software. There will be bugs, missing features and non-obvious things. Reporting any and all of these help us make the software better, please feel free to open issues liberally!

Using custom firmware

While Chrysalis comes bundled with supported firmware files, it also supports custom firmware, as long as it has a few Kaleidoscope plugins enabled: FocusSerial to make it possible to communicate with the keyboard in the first place, EEPROM-Settings to be able to store configuration in EEPROM. The FocusSerial plugin provides multiple plugins, and Chrysalis needs Focus, FocusEEPROMCommand, and FocusSettingsCommand all enabled in the custom firmware's KALEIDOSCOPE_INIT_PLUGINS().

Additionally, for Chrysalis to be able to edit the keymap, the EEPROM-Keymap plugin is also required. Similarly, to configure the colormap, the custom firmware will need to have the Colormap plugin enabled.

If none of the bundled firmwares suit you, and you wish to customise them, or build one from scratch, you can do that, and doing so is fully supported!

Development

To launch the development environment, simply type yarn && yarn start. To do a production build, use yarn run build:all, or limit it to a particular OS: yarn run build:linux, yarn run build:mac or yarn run build:win. See the scripts section of package.json for more scripts.

Translations

Translation status

We're using Weblate to manage and maintain translations.

Debugging

There are sample debugging configurations provided in the dev/sample directory. There is also an example launch.json for VSCode under the .vscode directory under dev/sample/.vscode/launch.json. To debug the main process, you may wish to launch from an IDE (without using the above in a terminal), configurations for VSCode are provided.

More Repositories

1

Kaleidoscope

Firmware for Keyboardio keyboards and other keyboards with AVR or ARM MCUs.
C++
757
star
2

keyswitch_documentation

A shared public repository of datasheets and other public documentation of keyswitches, both current and historical
CSS
266
star
3

Model01-Firmware

The "standard" Keyboardio Model 01 Firmware sketch.
C++
172
star
4

FingerprintUSBHost

An Arduino USB plugin that attempts to guess the host OS
C++
74
star
5

Chrysalis-Firmware-Bundle

Firmware sketches for boards supported by Chrysalis
Shell
31
star
6

Model01-Legends

Key legends for the Model 01
PostScript
23
star
7

schematics

Design schematics for Keyboardio's Keyboards
23
star
8

Keygen

A keyboard generator tool
Perl
17
star
9

Kaleidoscope-Bundle-Keyboardio

A Kaleidoscope distribution for the Keyboardio Model 01 and other keyboards.
C
17
star
10

attiny_i2c_bootloader

An I2C bootloader for ATTiny devices based on AVR112.
C
16
star
11

keyboardio-kicad-libraries

Footprints, Symbols, and 3D Models for KiCad
HTML
11
star
12

KeyboardioScanner

Arduino client library for the Keyboardio ATTiny keyscanner
C
7
star
13

Kaleidoscope-Docker

Docker-based tool to help building Kaleidoscope-based firmware
Shell
7
star
14

teensy-loader.js

JavaScript library to flash new firmware onto Teensy MCUs
JavaScript
6
star
15

kaleidoscope-focus.rs

A tiny Rust library (& CLI tools) to interface with Kaleidoscope-powered keyboards via Focus.
Rust
5
star
16

chrysalis-api

Chrysalis low-level, backend API
JavaScript
4
star
17

Atreus-Legends

Key legends for the Atreus and layout cards
3
star
18

Model01-Bootloader

A caterina-derived bootloader for the Model 01 keyboard
C
2
star
19

Kaleidoscope-NumPad

A simpler version of the numlock plugin with slightly different semantics
C++
2
star
20

Arduino-HID

Library to override the arduino HID library to change the device shortName
C++
2
star
21

Kaleidoscope-HIDAdaptor-KeyboardioHID

Kaleidoscope HID Adaptor that uses KeyboardioHID
C++
2
star
22

Factory-Firmware-Builds

Built copies of factory firmware for Keyboardio keyboards.
C++
2
star
23

Chorder

A microwriter compatible chorder
Arduino
1
star
24

Kaleidoscope-Plugin

OBSOLETE
Makefile
1
star
25

Keyboardio-Windows-Driver-Serial

Windows Serial Port Driver configuration for Keyboardio Keyboards
Makefile
1
star
26

keyboardio-controller-osx

Objective-C
1
star
27

Kaleidoscope-Website

Kaleidoscope blog & website
1
star
28

pcbs

Some keyboard PCB designs
1
star
29

Kaleidoscope-Build-Tools

Makefile
1
star
30

Kaleidoscope-KeyLogger

A key logger for Kaleidoscope.
C++
1
star
31

Kaleidoscope-LEDControl

LED Control plugin for Kaleidoscope.
C++
1
star