Dynamic Macros keep getting erased

Just had this happen for the fourth time and decided it was time to reach out for help.
I have around 20 dynamic macros that I am getting tired of having to reprogram in Chrysalis.

macOS 11.6.1 / Chrysalis 0.11.8 / 0.90.6-snapshot.58

Chrysalis is always open when it happens with some kind of error, this time it was:

Next time this happens, can you please go to the “Report a Problem” menu item in Chrysalis, create a bundle, and upload it here? (or DM it to me)

The debug bundle contains a lot more information that can help us figure out why certain bugs manifest. Sadly, just from the screenshot above, I have no idea what could lead to this error. We only use .trimEnd() in one place, when reading macros from the keyboard, and it shouldn’t happen if your dynamic macros are otherwise functional.

1 Like

No worries, will do!

Follow up question, is there a way to backup macros? I’ve tried exporting my layouts and then importing them after an incident like this but the dynamic macros are always empty when the layout is reloaded.

Not with Chrysalis, not yet. For the time being, I’d recommend using the focus tool from kaleidoscope-focus.rs. It can do full backups, which you can then restore, or you can individually backup & restore parts of your settings.

To use it, download the pre-built binary for macOS (amd64 or aarch64, depending on the type of hardware you have), unpack it somewhere, and then you can do the following from a terminal:

## To back things up:
./focus backup >backup.json
## To restore them:
./focus restore <backup.json
## To save macros only:
./focus send macros.map >macros.txt
## To restore macros only:
./focus send macros.map $(cat macros.txt)

Chrysalis should not be connected to the keyboard while you do this. The tool will also automatically detect your Model100, so you don’t need to tell it where to find it. If you have multiple Keyboardio keyboards connected, you can tell the tool which one to connect to with the --device option, and giving in a path, the same /dev/.... path Chrysalis displays for the device, such as:

./focus send --device /dev/cu.usbmodemCkbio01E
2 Likes

Amazing, thank you for such a helpful and detailed reply @algernon !!

I also keep losing Dynamic Macros - but without the error message @MatthewHunt84 was getting. They just disappear…or to be more precise, many of them disappear. It’s showing “Macro space used: 67/1024” when previously I had well over 100 bytes stored.

@algernon - Bundle attached as per your request above
23 10 25 chrysalis-debug.json.txt (270.5 KB)

(I’m on Chrysalis 0.12.0, which doesn’t upgrade but generates this error when it tries to:


)

I’ve tried this… backed up and restored, and it appears to have erased the remaining dynamic macros! (The “Macro space used” number behaved strangely… on the first restore it went to 1/1024, when I was expecting it to go back to 67. I tried restoring again with a different filename (no space) and it went to 101, when again I was expecting it to go to 67.)
(I’m on windows 10)

I’ve now uninstalled and reinstalled Chrysalis, and started using regular macros (by installing the default Kaleidoscope and adding macros to it).

I now find in Chrysalis that Dynamic Macros 0-9 have disappeared from the menu!
image

IIRC, this was a change to how dynamic macros got handled in Chrysalis, but it’s been quite a while