Skip to content

Stream Deck Neo Infobar and touch key support#599

Open
lmiccini wants to merge 3 commits into
StreamController:mainfrom
lmiccini:neosupport
Open

Stream Deck Neo Infobar and touch key support#599
lmiccini wants to merge 3 commits into
StreamController:mainfrom
lmiccini:neosupport

Conversation

@lmiccini

Copy link
Copy Markdown

Apologies in advance as this was mostly vibecoded for fun/ personal usage, but it seems to be working decently enough to put it out there for stream deck neo owners that want to use the infobar and the touch keys, or as a poc implementation if someone else is already working on neo support.

Hardware support

  • Neo device detection with correct key spacing and layout
  • Touch keys (info buttons): press/hold events, action assignment, and configurable LED color via background color picker
  • LCD screen strip (248x58px): independent rendering pipeline with background color, images, videos, GIFs, SVGs, and labels
  • Configurable screen scale factor (1x-4x)

Clock & Date overlay

  • Optional clock/date display on the Neo screen (day + date on the left, time on the right)
  • Configurable: enable/disable, 12h/24h format, show/hide seconds, show/hide date, date format (MM/DD/YY, DD/MM/YY, YYYY-MM-DD), text color
  • Auto-updating via background timer (1s with seconds, 60s without)
  • Renders as an overlay on top of any existing screen content

UI integration

  • Screen bar preview widget in the deck config area
  • Touch key buttons with sidebar integration (action assignment, background color)
  • Screen editor in sidebar with icon selector, image editor, scale control, clock settings, background editor, and action manager
  • Plugin action compatibility: actions can target Screen and TouchKey inputs

Backend

  • Input.TouchKey and Input.Screen identifier types with full event and routing support
  • ControllerScreen/ControllerScreenState with compositing pipeline (background → image/video → labels → clock → scale)
  • ControllerTouchKey/ControllerTouchKeyState with press/hold event handling
  • FakeDeck updated with screen and touch key stubs for testing without hardware

@lmiccini

Copy link
Copy Markdown
Author
infobar touch_key

@lmiccini lmiccini changed the title Adds full Stream Deck Neo support, including hardware input handling, screen rendering, and UI integration Stream Deck Neo Infobar and touch key support May 20, 2026
Add full support for the Elgato Stream Deck Neo, including touch keys,
LCD screen rendering, and action compatibility with the existing plugin
system.

Key changes:
- Touch key handling with background color configuration
- LCD screen rendering pipeline with configurable scale factor
- Image/picture selection and clock/date overlay for the Neo screen
- Screen editor UI with wallpaper, image, and clock overlay sections
- Device-aware sidebar headers and input identifier extensions
- Font caching for clock rendering performance

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@Core447

Core447 commented Jun 10, 2026

Copy link
Copy Markdown
Member

Thank you! When trying to start, I'm getting an import error in this line and I also cannot find the class anywhere

The DeckNeo/ directory was not tracked by git, causing an ImportError
at startup on line 31 of DeckConfig.py.
@lmiccini

Copy link
Copy Markdown
Author

Thank you! When trying to start, I'm getting an import error in this line and I also cannot find the class anywhere

forgot to commit it :) should be ok now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants