The state of Chrysalis, the graphical configuration tool for keyboard layouts

Has anyone come up with a graphical configuration yet? I.e. something to generate the .ino file?

Never mind. I see Chrystalis is intended for this. But still heavy wip. I’ll give that a shot.

1 Like

A few of us are working on Chrysalis, a tool that will, eventually, let you change your layout, and a few other things, without having to flash anything. It’s not quite there yet, and it does not generate an .ino file.

Will Chrysalis support all plugins? Will it support macros? What are the limits?

The plan is that it will support all plugins that can talk the protocol Chrysalis uses (most plugins that have settings can do that, and if not, adding support is easy). It already has a REPL, with which you can send commands to the keyboard, so in a way, it already supports every plugin - just not in the most user-friendly way. :slight_smile:

Macros would be nice to support, but for that to work, we need to store macros in EEPROM, and the Kaleidoscope side of that is not there yet. It’s not a simple task, because we want to be both compact, and not require the firmware code to be overly complicated.

The limits are… well, whatever you can squeeze onto you keyboard, basically. To name a few things we want (in no particular order):

  • Support editing a keymap (including plugins such as OneShot and DualUse, where you can do all the configuration within the keymap declaration). Of course layers will be supported as well.
  • Support for the Colormap plugin, which lets you set a color map for each layer.
  • Support for setting the LED theme directly (the theme would be stored on the host, and would need to be re-set when rebooting the keyboard).
  • Flashing a compiled firmware onto the keyboard.
  • Managing profiles so you can use the same tool with as many keyboards as you want.
  • Support any keyboard that talks our protocol (this includes the Model01 and upcoming keyboards from Dygma).

…and a bunch of things I probably forgot. Most of the limitations of what Chrysalis can do, are on the firmware side, and are related to code size and complexity.


Oh sweet the Chrysalis project is way more ahead than me than my feeble attempts. I had made a super hacky typing tutor and was going so suggest it as a potential starting point, but I’ll just sit back down. :wink:

deployed at

@algernon What is the current development status of Chrysalis?

If I look at github, the last commit was in January some 7-8 months ago, and if I try to download the latest precompiled build for linux it starts and shows the initial device selection window, but never moves on. I’m too lazy/busy to set up a whole node/clojure dev environment right now, so I haven’t tried directly from the latest master commit.

It would be awesome to have a working graphical configuration tool, especially if some of the Model01 users are not programmers, although for me personally, I’m ok rebuilding and flashing the firmware (I’m a programmer).

Chrysalis is undergoing a rewrite right now, based on the lessons learned from the earlier ClojureScript implementation. We’re rebuilding it with better architecture, and in a language that is more accessible for potential contributors (plain ol’ JavaScript). There’s good progress being made, and I hope to have something usable by end users in a month or two (and I’m being a bit pessimistic there). Mind you, we’re also reworking EEPROM storage at roughly the same time. This is not a required part of development, but the reworked EEPROM storage will make things a lot smother, and easier too, for Chrysalis.

See the other repos under the GitHub organization, they have plenty more activity than the main Chrysalis one (which will be eventually retired).

Thanks for the update! Is this rewrite happening in some other repo or branch, or is currently done behind closed doors?

It’s all public under the Lepidopterarium organization. It’s early stages right now, mind you:

1 Like

Hey! I’m just going to make an announcement about my latest project (hacked together during the last two extremely hot days in the Czech Republic)

LED Custom Palette GUI for setting your own colors layout! I hope you find this useful. I’m really excited about your opinions!

I made it basically for me. I’ve seen Chrysalis project, but haven’t tried it – I was lazy and it seems over-engineered, I just wanted an easy way how to configure my own color layout and ideally store the layout in EEPROM. So I came up with my own solution. (yep… and I wanted to hack something :smile: )

Go check it out, you just have to apply a plugin into your keyboard’s firmware and then run the utility. From that point, it should be quite straightforward.




This is all kinds of awesome. Thank you!

1 Like

Thanks for such kind words, especially from you – without the plugins you have made it wouldn’t be possible to make it!

I’ve created a new thread for it, so we can continue there.