Skip to content

SpaceCadet mode not saved: UI toggle OFF does not write mode=2 to EEPROM (stays at mode=1) #1417

Description

@artkpv

Summary

The "Enable SpaceCadet shifts" toggle in Preferences → My Keyboard appears to work in the UI, but toggling it OFF and clicking Save Changes does not write spacecadet.mode 2 (disabled) to the keyboard EEPROM. The value remains 1 (NO_MINIMUM).

Steps to reproduce

  1. Connect Keyboardio Atreus
  2. Open Chrysalis (web: chrysalis.keyboard.io)
  3. Go to Preferences → My Keyboard
  4. Under SpaceCadet, toggle "Enable SpaceCadet shifts" OFF
  5. Click Save Changes
  6. Export layout backup (Backup and Restore → Export)
  7. Inspect the exported JSON: deviceConfiguration["spacecadet.mode"] is still 1

Expected behavior

After toggling OFF and saving, spacecadet.mode should be 2 (disabled).

Actual behavior

spacecadet.mode remains 1 (NO_MINIMUM — SpaceCadet is still active).

This was reproduced across:

  • 3 separate save attempts with the same firmware
  • A firmware update (0.93.0+128 → 0.94.0+132) followed by another save attempt
  • Each time the exported JSON confirms mode=1

Impact

SpaceCadet mode=1 intercepts modifier-only chords (e.g. Alt+Shift for OS language switching), causing it to work inconsistently depending on keystroke timing. Users have no way to disable SpaceCadet via the UI.

Environment

  • Chrysalis version: 2025.0909.0307 (web app at chrysalis.keyboard.io)
  • Keyboard: Keyboardio Atreus
  • Firmware version: 0.94.0+132
  • OS: Linux (Arch)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions