How to get SpaceCadet working with model 100 and to additional map {} and []

Greetings,

I want to use my Keyboardio model 100 for Clojure. Now, a big part of Clojure is hitting the parens (). Which SpaceCadet handles.

However these other keys are also very commonly used [, ], {, }.
So we kind of want to give them the same treatment. If I understand what spacecadet does, that broadly means two things. First, making the keys easy to reach and secondly making it so that pressed by themselves they do one thing, but when pressed and held and alongside using another key, they do another.

So making them easy to reach means mapping the left CMD key to { when pressed once, and to cmd when held. As well as mapping what is currently ALT on the right, to } instead, and back to ALT when held.

Then, do the same thing to the ctrl keys on the left and right sides such that they map to [ and ], respectively.

So then, if that plan makes sense, my question is to how to go about that.

I’m confused about how to enable SpaceCadet, and then how to modify to do the above. Or maybe I should just make my own configuration from scratch.

I tried to start creating a layout to do this, you can see a picture of it below, though I’m not sure it communicates much:

Any feedback or help would be great, otherwise ill use this as a place to record my journey.


The space cadet docs specifically mention including the other keys I want to map.

https://kaleidoscope.readthedocs.io/en/latest/plugins/Kaleidoscope-SpaceCadet.html

After getting used to the Space Cadet style of typing, you may wish to enable this sort of functionality on other keys, as well. Fortunately, the Space Cadet plugin is configurable and extensible to support adding symbols to other keys. Along with ( on your left Shift key and ) on your right Shift key, you may wish to add other such programming mainstays as { to your left-side cmd key, } to your right-side alt key, [ to your left Control key, and ] to your right Control key. You can map the keys in whatever way you may wish to do, so feel free to experiment with different combinations and discover what works best for you!

so my confusion is currently how to properly enable spacecadet.

through chrysalis.keyboard.io > preferences we see this:

Doesn’t that imply it’s already enabled? Yes, yes it is. pressing the “shift” key current gives me a ( or ) and if I hold it, then it acts as a shift.

So the next step is to modify space cadet to include the other keys. How is that done?

The confusing bit is that the https://chrysalis.keyboard.io/ has this space cadet toggle (see picture). But it only handles the shift to parens.


I suspect Chrysalis has only a subset of the customisability available in Kaleidoscope, and to access the full power you have to handcraft your keymap in Arduino IDE. The Kaleidoscope manual you found explains how to get started.

If you expect to use tap/hold modifiers elsewhere on the keymap (such as amongst the letters) it might be worth replicating space cadet functionality using qukeys instead. That was a suggestion I read in this forum once and avoids activating two plugins that do broadly similar things, and is implemented on my keymap that combines space cadet shifts with mod/tap qukeys amongst the lower letter row.

Thanks squizzler,

I don’t currently have plans to apply the space cadet function beyond adding the and {} keys. But I’m curious why you went the route you did.

So, there is no way to use a chrysalis and a kaleidoscope configuration at the same time? E.g use Kaleidoscope and also make modifications using Chrysalis?

The Kaleidoscope manual you found explains how to get started.

The spacecaet one? It has some code in it, I’m I supposed to download my current keyboards… configuration (is that called it’s kaleiscope) and then add that code somewhere?

Before the Atreus I used a similar layout on Minidox, and my QMK keymap - with a brief spiel on the design choices - is still visible.

I don’t know. The example keymap in Kaleidoscope has all the plugins to allow Chrysalis management (EEPROM, Focus etc). As a programmer I’d assume you’d prefer to work in the actual code anyway :slight_smile:

Yes. Begin at the top with Getting Started, It’ll talk you through how to set up the IDE and link it to Kaleidoscope repo, etc. Once configured, the example “sketch” for your keyboard will then be available in the file menu.

1 Like

So as a first attempt to solve my overall problem of getting the {} and keys on that front row. I just used the chrysalis secondary action. This works because, as far as I can recall, I don’t need the alt and cmd.

1 Like

Drew: I have similar preferences regarding {} and and also used secondary actions for them for a bit, but I didn’t get used to holding the keys for those characters, so I ended up mapping 2 keys I rarely used which are page down and page up.

On Layer 1 I have those mapped to { and }, and on Layer 2 (via the Fn keys) I have them on [ and ].

I’ve been using this layout for over a year now and it has worked better than secondary actions for me.

This is very much a personal preferences thing but I wanted to share this in case you found it useful.

Here are the layers as reference: