Home - alliecatowo/zmk-sofle GitHub Wiki
Welcome to the AllieCatKeeb Wiki!
This documentation serves as the comprehensive guide for the AllieCatKeeb, a custom Sofle keyboard running ZMK firmware.
Whether you're looking to build your own, flash the firmware, or customize the keymap, you'll find everything you need right here.
Getting Started
- Quick Start Guide: The fastest way to get your keyboard up and running.
- Hardware Overview: Details about the components used in this build.
- Building Firmware: A guide to building the firmware from source.
Key Resources
- Official ZMK Docs: The definitive resource for the ZMK firmware.
- Sofle Keyboard Project: The original design that inspired this keyboard.
- Dongle Display Module: The custom display used for the receiver dongle.
- Original AllieCatKeeb Design from AliExpress seller
🚀 Quick Start
Option 1: Use Pre-built Firmware (Easiest)
- Go to Actions
- Click the latest successful build
- Download the firmware artifacts
- Flash according to your setup:
- Standard Mode:
alliecat_keeb_studio_left.uf2
+alliecat_keeb_standard_right.uf2
- Dongle Mode:
alliecatkeeb_dongle_central.uf2
+ both peripheral firmwares
- Standard Mode:
Option 2: Fork and Build (Customizable)
- Fork this repository
- Edit
config/alliecat_keeb.keymap
to customize your layout - Push changes to trigger automatic builds
- Download firmware from Actions tab
Option 3: Manual Build Triggers
Go to Actions → Build ZMK Firmware → Run workflow and choose:
- All: Build everything (default)
- Standard: Left-side master configuration only
- Dongle: Unified receiver configuration only
- Reset Only: Settings reset firmware only
🎯 Features
- ZMK Studio Support - Edit keymaps graphically without rebuilding
- Dual Mode Operation:
- Standard split keyboard mode (left side master)
- Dongle mode with unified receiver
- Display Support: OLED and Nice!View e-ink displays
- RGB Underglow: Customizable lighting effects
- Low Power: Optimized for battery life
- Automated Builds & Keymap Diagrams: CI/CD integration
🛠️ Hardware Requirements
This project is configured for the Eyelash Sofle, which typically uses:
- Controllers: 2x Nice!Nano v2 (3x for dongle mode)
- Displays: 2x Nice!View (or 128x64 OLEDs)
- Dongle Display: 1x 128x64 OLED
Official Product Links
🎨 Keymap
The keymap diagram below is automatically updated with every change to the config/alliecat_keeb.keymap
file.
🚀 CI/CD - Continuous Integration
This repository is configured with GitHub Actions to ensure code quality and automate tasks.
Branch Protection (Manual Setup Required)
To prevent broken changes from being merged into main
, you should enable branch protection.
- Go to your repository Settings > Branches.
- Click Add branch protection rule.
- Set Branch name pattern to
main
. - Enable Require status checks to pass before merging.
- Select the
build
job from the status checks list. - Click Save changes.
This will ensure that all firmware variants build successfully before a pull request can be merged.
📦 Release Management
This repository uses a system that combines automated changelogs with manual release tagging to give you full control over the release process.
Versioning
We use Semantic Versioning (e.g., v1.2.3
). To create a new version, create a new Git tag:
# Example for a new minor version
git tag v1.3.0
git push origin v1.3.0
Automated Changelog
A CHANGELOG.md
is automatically generated based on your commit history. To update it, go to Actions > Generate Changelog and run the workflow.
Creating a Release
- Generate the changelog using the GitHub Action.
- Create a new release on GitHub from the Releases page.
- Choose the Git tag you created (e.g.,
v1.3.0
). - Copy the relevant section from
CHANGELOG.md
into the release description. - Add your release notes and classify the release (e.g., "Pride," "Normal," or "Shame") in the description.
📚 GitBook Documentation
This repository is GitBook-ready. GitBook creates a beautiful, user-friendly documentation site from your docs
folder.
Manual Setup Required
- Go to GitBook and sign up with your GitHub account.
- Create a new space and choose to sync it with a GitHub repository.
- Select your
zmk-sofle
fork. - GitBook will automatically detect your
docs
folder andSUMMARY.md
file to build your site.
Your documentation will be publicly available and automatically updated whenever you push changes to your main
branch.
🤝 Contributing
Issues and pull requests are welcome! Please check existing issues before creating new ones.
📄 License
This project inherits the licenses of its components:
- ZMK firmware is MIT licensed
- Hardware designs follow their original licenses
🙏 Credits
- Original Eyelash Sofle design from AliExpress seller
- ZMK firmware team for the excellent keyboard firmware
- @englmaxi for the zmk-dongle-display module
Need help? Check the documentation or open an issue!
Dongle Display
The dongle firmware uses the excellent zmk-dongle-display module by englmaxi
. This provides a rich status screen with widgets for:
- Active HID indicators (Caps/Num/Scroll Lock)
- Active key modifiers
- Bongo Cat (because why not?)
- Highest active layer name
- Output status (USB/Bluetooth)
- Peripheral battery levels
Resources
- ZMK Documentation: For firmware customization and feature information, refer to the official ZMK documentation.
- Sofle Keyboard: Learn more about the original keyboard design here.
Flashing Instructions
You can find pre-built firmware files ready for flashing in the "Artifacts" section of the latest GitHub Actions build run.
- Reset to Bootloader: Double-tap the reset button on the PCB.
- Flash Firmware: Drag and drop the appropriate
.uf2
file onto theNICENANO
orXIAO
drive that appears.alliecatkeeb_left_peripheral.uf2
-> Left Halfalliecatkeeb_right_peripheral.uf2
-> Right Halfalliecatkeeb_dongle_central.uf2
-> Dongle
If you encounter issues, flash the settings_reset.uf2
firmware to all devices first, then flash the main firmware.
Repository Management
This repository is set up with automated workflows for:
- Building Firmware: Triggered on push to
main
or manually. - Keymap Diagram: Automatically updates on changes to
*.keymap
. - Changelog Generation: Creates a
CHANGELOG.md
upon release. - Wiki Publishing: Syncs the
docs/
folder to the GitHub Wiki.