Skip to content

fix: add Stream Deck XL and missing device layouts#10

Merged
jack-arturo merged 2 commits into
verygoodplugins:mainfrom
Braxhim:fix/add-xl-and-missing-device-layouts
Apr 17, 2026
Merged

fix: add Stream Deck XL and missing device layouts#10
jack-arturo merged 2 commits into
verygoodplugins:mainfrom
Braxhim:fix/add-xl-and-missing-device-layouts

Conversation

@Braxhim
Copy link
Copy Markdown
Contributor

@Braxhim Braxhim commented Mar 30, 2026

Summary

  • MODEL_LAYOUTS only contained the Original (20GBA9901) and Virtual (UI Stream Deck) models
  • Any other device — including the XL (20GAT9902) — fell through to the 5×3 fallback in _resolve_layout(), making it impossible to address all 32 keys
  • Added: XL (8×4), XL rev2 (8×4), MK.2 (5×3), Mini (3×2), Neo (4×2)

Test plan

  • Verified on a real Stream Deck XL (20GAT9902) — layout now correctly returns columns: 8, rows: 4
  • All 32 button positions (0,0 through 7,3) are readable and writable
  • Verify other model IDs if hardware available

🤖 Generated with Claude Code

…OUTS

The MODEL_LAYOUTS dict only contained the Original (20GBA9901) and Virtual
(UI Stream Deck) models. Any other device — including the XL — fell through
to the 5×3 fallback, making it impossible to address all 32 keys.

Added models:
- Stream Deck MK.2 (20GAA9901) — 5×3, 15 keys
- Stream Deck XL (20GAT9902) — 8×4, 32 keys
- Stream Deck XL rev2 (20GBA9902) — 8×4, 32 keys
- Stream Deck Mini (20GAI9501) — 3×2, 6 keys
- Stream Deck Neo (20GBD9901) — 4×2, 8 keys + touchscreen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jack-arturo
Copy link
Copy Markdown
Member

@copilot resolve the merge conflicts in this pull request

Copilot AI added a commit that referenced this pull request Apr 17, 2026
Resolves conflicts in profile_manager.py introduced by verygoodplugins#18 (the 20GBX9901
"+ XL" keypad rewrite landing on main). MODEL_LAYOUTS now contains all
seven entries: Original (5x3), MK.2 (5x3), XL (8x4), XL rev2 (8x4),
+ XL (9x4 keypad + 6-dial encoder), Mini (3x2), Neo (4x2), plus the UI
Stream Deck emulator.

Resolution cherry-picked from copilot/fix-conflicts-in-streamdeck-mcp
(commit 02a928a) which the Copilot agent produced but couldn't push to
the PR source branch because it lives on a fork.

Co-Authored-By: Mini Brax <braxhim@users.noreply.github.com>
Co-Authored-By: copilot-swe-agent[bot] <noreply@github.com>
@jack-arturo jack-arturo merged commit c89435b into verygoodplugins:main Apr 17, 2026
6 checks passed
@Braxhim Braxhim deleted the fix/add-xl-and-missing-device-layouts branch April 18, 2026 08:06
jack-arturo added a commit that referenced this pull request Apr 28, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.3.0](v0.2.0...v0.3.0)
(2026-04-28)


### Features

* **icons:** bundle Material Design Icons for offline glyph rendering
([#19](#19))
([459d410](459d410))
* **profile:** preserve encoder controller + Stream Deck + XL layout
([#15](#15))
([f4a8402](f4a8402))
* **profile:** refuse writes while Elgato app is running + restart_app
path fix
([#16](#16))
([e1cb4e3](e1cb4e3))
* **skill:** streamdeck-designer Agent Skill + MCP transport hardening
([#22](#22))
([fd3ec6f](fd3ec6f))
* **touchstrip:** expose $X1/$A0/$A1/$B1/$B2/$C1 encoder layouts
([#21](#21))
([efa66e4](efa66e4))
* **touchstrip:** per-segment icon and background on Stream Deck + / +
XL ([#20](#20))
([a41a31c](a41a31c))


### Bug Fixes

* add Stream Deck XL and missing device layouts
([#10](#10))
([c89435b](c89435b))
* **profile:** correct Stream Deck + XL keypad layout to 9x4
([#18](#18))
([d6da4b2](d6da4b2))
* **profile:** map 20GBD9901 to Stream Deck + (4 dials + 4x2 keypad)
([#25](#25))
([da0ada5](da0ada5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants