Merge Fn and Sys into a single layer (system actions on hold) - #6
Draft
andersonba wants to merge 6 commits into
Draft
Merge Fn and Sys into a single layer (system actions on hold)#6andersonba wants to merge 6 commits into
andersonba wants to merge 6 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merges the Fn and Sys layers into one. The two were sparse and complementary (Fn = media + F-keys, Sys = bluetooth/bootloader/reset/alpha/lock), so they fit on a single layer without conflicts. Access stays on the Fn combo (
LH1+RH1); the old Sys combo (LH0+RH0) is freed.To avoid mistypes, every former Sys action only fires on hold (tap is inert). Media and F-keys remain plain taps.
Layer layout
BT0–3,BTclr,Boot,Reset,Alpha,Lock→ hold-only (200ms,hold-preferred).Boot/Resetare duplicated (inner columns of both halves) so either half can enter bootloader/reset.Implementation notes
HOLD_ONLY(name, action)helper wraps each system action as a hold-tap withtap = &none.&bttakes two params and can't go directly into a hold-tap (ZMK limitation), so it's wrapped:bt_clr(macro) andbt_sel_n(one-param macro for the profile index).MOUSE(6→5) andSCROLL(7→6). Everything in code uses the layer names, so only the#defines changed — except the one hardcoded index incrosses_right.overlay(layers = <7>→<6>), updated here._LH2_Sys/_RH2_Sysextra-key defines removed.Affects all boards
config/base.dtsiis shared across Urchin, Corne and Crosses. CI builds all of them.Not included
draw/*.svgwere not regenerated (no local keymap-drawer env), so the visualizations still show the old Fn/Sys split.Draft until the CI build passes (couldn't compile locally — ZMK workspace not set up).