Skip to content

Commit 565e5c3

Browse files
committed
Use official dual Navigator configuration from Oryx
1 parent f08835c commit 565e5c3

1 file changed

Lines changed: 22 additions & 32 deletions

File tree

.github/workflows/fetch-and-build-layout.yml

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ on:
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
@@ -84,6 +85,14 @@ jobs:
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

Comments
 (0)