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.
- 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.
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.
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.
brew update && brew upgrade brew install --cask chrysalis
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!
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
enabled in the custom firmware's
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!
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.
We're using Weblate to manage and maintain translations.
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.