Resolved: keymapping failures
I've been using my lily 58 for a while now, but recently I've had a number of issues getting the firmware to behave with what I'm telling the visual online keymap editor by Nick Coutsos to assign. I check the keymap file and things seem to be in order, but then in actuality only some of the keys get changed. ZMK studio properly recognizes the keys that have been mapped, and i can reassign things from there, but of course some functions like behaviors and combos are not able to be changed within zmk studio.
11 Replies
Got it â thatâs frustrating. A few quick checks usually fix âonly some keys changedâ after updating a Lily58 keymap:
1) Make sure you flashed both halves
- Build/Download your latest firmware artifact after your edits.
- Flash the LEFT uf2 to the left nice!nano and the RIGHT uf2 to the right nice!nano.
- Also be sure youâre using the correct variant (with/without nice!view). See: Lily58 Firmware docs: https://docs.typeractive.xyz/build-guides/lily58-wireless/firmware
2) Confirm you flashed the newest build
- After saving changes in the editor, wait for GitHub Actions to finish and download the newest âfirmwareâ artifact from the latest workflow. Older artifacts can cause partial updates.
3) Clear ZMK Studio overrides
- ZMK Studio stores runtime keymap changes that persist across flashes and override your compiled keymap on a per-key basis. If you used Studio previously, remove/reset those per-key edits so your freshly flashed firmware takes effect everywhere.
4) Behaviors/combos
- These must be compiled into the firmware; Studio canât change them. Ensure theyâre defined in your repo (e.g. in your lily58.keymap or included files per ZMK docs), rebuild, then flash both halves.
- ZMK keymap docs: https://zmk.dev/docs/features/keymaps
If it still acts odd, can you share:
- Which keys didnât update and on which half?
- A screenshot of the artifact filenames you flashed (left/right + view/no-view)?
- A link to your config repo or the relevant keymap section?
Reply here or tag me and Iâll help you zero in on it.
Firmware | Typeractive.xyz Documentation
If you're not familiar, ZMK is a wireless-focused firmware, and it powers our Lily58 Wireless.
Keymaps & Behaviors | ZMK Firmware
ZMK uses a declarative approach to keymaps, using devicetree syntax to configure them in a .keymap file.
I do flash both halves with the latest build, with the views. Both halves have update failures, but I'm not sure what keys right now. Here's my config repo:
how do I clear zmk studio overrides?
Thanks for the repo link! On clearing ZMK Studio overrides:
- In ZMK Studio, connect to your Lily58, open the Keymap view.
- Global reset: open the menu (gear or â˘â˘â˘) in the keymap view and choose âReset to firmware defaultsâ or âClear all overrides,â then Apply/Save to device. Do this for each layer (overrides are per key per layer).
- Perâkey reset: select a key that was edited in Studio and use the revert/eraser icon (or rightâclick) to clear that keyâs override on the current layer, then Apply.
If those options arenât visible, update to the latest ZMK Studio (native app). As a bruteâforce check, you can temporarily disable Studio so any stored overrides are ignored:
- Add to your .conf: CONFIG_ZMK_STUDIO=n
- Rebuild, flash both halves (view variants), verify the compiled keymap behaves.
- Reâenable Studio later by setting CONFIG_ZMK_STUDIO=y and rebuilding.
A few repo/flash sanity checks (common causes of âsome keys changedâ):
- Flash the correct artifacts: lily58_left-nice_view_adapter-nice_view-nice_nano_v2-zmk.uf2 to left, and the right one to right. Download from the latest successful Actions run after your most recent commit. Docs: Lily58 Firmware https://docs.typeractive.xyz/build-guides/lily58-wireless/firmware
- Behaviors/combos must be in your repo and compiled; Studio canât change those. After editing your keymap/combos, rebuild and flash both halves. Keymap docs: https://zmk.dev/docs/features/keymaps
If you want, tell me the Actions run/commit SHA you flashed and which keys still donât match after clearing overrides, and Iâll dig in. Reply here or tag me and Iâll help.
Firmware | Typeractive.xyz Documentation
If you're not familiar, ZMK is a wireless-focused firmware, and it powers our Lily58 Wireless.
Keymaps & Behaviors | ZMK Firmware
ZMK uses a declarative approach to keymaps, using devicetree syntax to configure them in a .keymap file.
the zmk studio global reset fixed it, thanks!
Awesome â glad the Studio reset did the trick!
Tips to avoid this happening again:
- ZMK Studio overrides are per-key and per-layer and persist across flashes. If you manage your layout in your repo, do a âReset to firmware defaultsâ in Studio after flashing, or avoid making edits in Studio for those keys/layers.
- For behaviors/combos, make the changes in your repo, rebuild, and flash both halves (view variants). Docs: Lily58 Firmware page: https://docs.typeractive.xyz/build-guides/lily58-wireless/firmware and ZMK keymap docs: https://zmk.dev/docs/features/keymaps
If anything drifts again, share which commit/artifact you flashed and what keys donât match, and I can take a look. Reply here or tag me and Iâll help.
Firmware | Typeractive.xyz Documentation
If you're not familiar, ZMK is a wireless-focused firmware, and it powers our Lily58 Wireless.
Keymaps & Behaviors | ZMK Firmware
ZMK uses a declarative approach to keymaps, using devicetree syntax to configure them in a .keymap file.
any advice for pulling choc v1 switches?
Yep! Choc v1s can be snug. Hereâs the safest way to pull them without hurting the plate or hotswap sockets:
Tools
- Choc-compatible switch puller or fine-tipped tweezers
- Optional: thin flat screwdriver/guitar pick for stubborn clips
Steps
1) Power off and remove the keycap.
2) Support the PCB/plate from below with your hand so youâre not prying against the hotswap socket.
3) Insert a Choc puller (or tweezers) into the small side notches of the switch housing to compress both retention tabs.
4) While tabs are compressed, pull straight up. Gentle front/back rocking is OK; avoid twisting side-to-side.
5) If itâs stuck:
- Slip a thin flat tool in from the top to press a tab in, then pull.
- Or loosen the case/backplate screws to reduce pressure, then try again.
- In a worst case, remove the plate/PCB assembly and press the tabs from the top side while pushing up from underneath. Do not lever against the PCB.
Tips
- Donât use an MX wire puller; it doesnât grab Choc tabs well and can mar the plate.
- Avoid prying on the stem or keycap post.
- If a switch fights you, remove neighboring switches first for better access.
- Reinsert carefully: align pins, press straight down so you donât spread the hotswap contacts.
If you run into a particularly stubborn spot, a quick photo of the area (plate type and switch orientation) helps me give more specific advice. Reply here or tag me and Iâll help.
all of my searching has not revealed any choc switch pullers, everything is just labeled "mechanical keyboard switch puller" etc. the only thing that's really working is the guitar pick but that's very slow going
Youâre right: most âswitch pullersâ are for MX. True Choc pullers are rare, but here are fast, safe alternatives that work well:
Best readily-available tools
- Fine, stiff tweezers (angled or straight, thin tips)
- Two thin guitar picks or old credit card corners
- Automotive feeler gauges (0.2â0.3 mm blades)
- Nylon spudger/thin flathead for stubborn tabs
Fast methods
- Tweezers: insert tips into the small side notches to compress both Choc tabs at once, then pull straight up. Gentle front/back rock only.
- Two-pick method: slide a thin pick on each side to hold both tabs in, then lift. Much faster than one pick.
- Feeler gauge method: slide a blade down each side to keep tabs compressed; pull straight up.
If still stuck
- Loosen case/backplate screws to reduce plate pressure.
- Remove 1â2 neighboring switches to gain access for tools.
- As a last resort, pull the plate/PCB out; press each tab from the top with tweezers while pushing the switch up from underneath. Do not lever against the PCB or hotswap socket.
DIY/printing
- If you can 3D print, search for âChoc switch pullerâ or âKailh Choc pullerâ STLs. Printed pullers that squeeze both sides at once are the quickest option.
Avoid
- MX wire pullers (they donât grab Choc tabs well and can mar the plate)
- Twisting side-to-side (can spread/bend the hotswap contacts)
If you tell me your plate material/thickness and a photo of the cutout, I can suggest the quickest approach for your setup. Reply here or tag me and Iâll help.
do you have stl or cad files for the lily58 case?
Short answer: we donât currently publish STL/CAD files for the Lily58 case.
If youâre looking for something specific (e.g., exact plate outline, standoff locations, clearance around nice!view, etc.), email hello@typeractive.xyz with details about what you need (standard vs. premium case, Choc spacing, any mods), and weâll see what we can share.
If your goal is fit/assembly reference, our Lily58 case and display cover guides have photos and steps here:
- Lily58 Case: https://docs.typeractive.xyz/build-guides/lily58-wireless/case
- Display Cover: https://docs.typeractive.xyz/build-guides/lily58-wireless/display-cover
If you want me to pass along a specific request to the team, reply here or tag me with exactly which files youâre after.
Case | Typeractive.xyz Documentation
The case ties the whole build together. This guide will go over installing the case and the PCB.
Display Cover | Typeractive.xyz Documentation
The display cover helps protect your display and nice!nano from damage. In this guide, we'll go over installing the display cover.