2323 - planck_ez
2424 - planck_ez/glow
2525 default : voyager
26+ # Temporary self-test trigger. Remove after this migration build succeeds.
2627 push :
2728 branches :
2829 - main
8485 echo "firmware_version=${firmware_version}" >> "$GITHUB_OUTPUT"
8586 echo "change_description=${change_description}" >> "$GITHUB_OUTPUT"
8687
88+ - name : Validate official dual Navigator configuration
89+ if : ${{ env.LAYOUT_GEOMETRY == 'voyager' }}
90+ run : |
91+ # Dual Navigator support is now official ZSA/Oryx behavior. Do not
92+ # synthesize either module here: the Oryx layout must own this config.
93+ grep -q '"zsa/navigator_trackball"' "${LAYOUT_ID}/keymap.json"
94+ grep -q '"zsa/navigator_trackpad"' "${LAYOUT_ID}/keymap.json"
95+
8796 - name : Save pristine Oryx source
8897 env :
8998 CHANGE_DESCRIPTION : ${{ steps.download-layout-source.outputs.change_description }}
@@ -105,7 +114,7 @@ jobs:
105114 rm -rf "${LAYOUT_ID}"
106115 git checkout oryx -- "${LAYOUT_ID}"
107116
108- - name : Apply Voyager custom configuration
117+ - name : Apply OpenRGB integration
109118 if : ${{ env.LAYOUT_GEOMETRY == 'voyager' }}
110119 run : |
111120 python3 - <<'PY'
@@ -116,37 +125,17 @@ jobs:
116125
117126 layout = Path(os.environ["LAYOUT_ID"])
118127
128+ # Oryx owns all Navigator modules and settings. Our only keymap-level
129+ # module addition is QMK-OpenRGB.
119130 keymap_json = layout / "keymap.json"
120131 data = json.loads(keymap_json.read_text())
121132 modules = data.setdefault("modules", [])
122- for module in (
123- "zsa/oryx",
124- "zsa/navigator_trackball",
125- "zsa/navigator_trackpad",
126- "zsa/automouse",
127- "zsa/defaults",
128- "openrgb",
129- ):
130- if module not in modules:
131- modules.append(module)
133+ if "openrgb" not in modules:
134+ modules.append("openrgb")
132135 keymap_json.write_text(json.dumps(data, indent=4) + "\n")
133136
134- config = layout / "config.h"
135- text = config.read_text()
136- for name, value in (
137- ("NAVIGATOR_TRACKBALL_ROTATION", "325"),
138- ("NAVIGATOR_TRACKPAD_ROTATION", "0"),
139- ):
140- pattern = rf"^#define\s+{name}\s+.*$"
141- replacement = f"#define {name} {value}"
142- if re.search(pattern, text, flags=re.MULTILINE):
143- text = re.sub(pattern, replacement, text, flags=re.MULTILINE)
144- else:
145- if text and not text.endswith("\n"):
146- text += "\n"
147- text += replacement + "\n"
148- config.write_text(text)
149-
137+ # OpenRGB plus the dedicated Oryx/Keymapp HID interface consumes one
138+ # extra USB endpoint. Sharing QMK's mouse HID endpoint reclaims it.
150139 rules = layout / "rules.mk"
151140 text = rules.read_text()
152141 pattern = r"^MOUSE_SHARED_EP\s*=.*$"
@@ -164,7 +153,7 @@ jobs:
164153 git config --local user.name "github-actions"
165154 git config --local user.email "github-actions@github.com"
166155 git add "${LAYOUT_ID}"
167- git commit -m "✨(layout): Refresh from Oryx with custom QMK settings " || echo "No customized layout change"
156+ git commit -m "✨(layout): Refresh from Oryx with OpenRGB integration " || echo "No customized layout change"
168157 git push origin HEAD:main
169158
170159 - name : Update QMK firmware submodule to matching version (${{ steps.download-layout-source.outputs.firmware_version }})
@@ -192,19 +181,20 @@ jobs:
192181 qmk_firmware/modules/openrgb
193182 echo "QMK-OpenRGB commit: $(git -C qmk_firmware/modules/openrgb rev-parse HEAD)"
194183
195- - name : Apply Voyager dual-HID patch
184+ - name : Apply OpenRGB and Keymapp dual-HID patch
196185 if : ${{ env.LAYOUT_GEOMETRY == 'voyager' }}
197186 run : |
198187 python3 scripts/patch-voyager-dual-hid.py qmk_firmware
199188
200- - name : Validate Voyager custom integration
189+ - name : Validate Voyager OpenRGB integration
201190 if : ${{ env.LAYOUT_GEOMETRY == 'voyager' }}
202191 run : |
192+ # Navigator modules must still be the ones provided by Oryx.
203193 grep -q '"zsa/navigator_trackball"' "${LAYOUT_ID}/keymap.json"
204194 grep -q '"zsa/navigator_trackpad"' "${LAYOUT_ID}/keymap.json"
195+
196+ # Our custom layer consists only of OpenRGB + transport/endpoint work.
205197 grep -q '"openrgb"' "${LAYOUT_ID}/keymap.json"
206- grep -q 'NAVIGATOR_TRACKBALL_ROTATION 325' "${LAYOUT_ID}/config.h"
207- grep -q 'NAVIGATOR_TRACKPAD_ROTATION 0' "${LAYOUT_ID}/config.h"
208198 grep -q '^MOUSE_SHARED_EP = yes$' "${LAYOUT_ID}/rules.mk"
209199
210200 # Stock OpenRGB remains on QMK Raw HID / interface 1.
0 commit comments