turn overlay server into a native Electron desktop app - #6
Open
Arkyan wants to merge 43 commits into
Open
Conversation
Arkyan
commented
Jul 17, 2026
Contributor
- Migrate from a plain Node/Express server to a packaged Electron desktop app (frameless window, custom titlebar, system tray)
- Route all external links (Twitch OAuth, ngrok docs) to the system browser instead of the in-app window
- Redesign the admin UI and on-stream alerts, replacing the previous ad-hoc styling
- Fix stale EventSub subscriptions not refreshing when the ngrok URL changes on restart
- Add auto-update support via electron-updater + GitHub Releases
- Add log viewer (/logs) and event simulation tools (/tests) for easier debugging
…ge dans la configuration
…b management - Introduced a new route for testing Twitch events with fake data to simulate alerts and overlays. - Enhanced EventSubManager to handle existing subscriptions more effectively, including deletion of outdated subscriptions. - Implemented a logging buffer to capture console logs for real-time monitoring via WebSocket. - Updated NgrokManager to handle connection retries for establishing tunnels. - Improved StreamStatsManager to generate a more user-friendly HTML page for stream statistics. - Refactored TruckyApi to utilize installed Chrome/Edge browsers instead of bundled Chromium. - Added user token validation in TwitchAuth to ensure proper scopes are present. - Adjusted WebhookHandler to use the new configuration structure.
Merge pull request #1 from Arkyan/main
…ructions, and feature list; enhance clarity and organization for better user experience.
- Introduced profile management functionality allowing users to create, rename, delete, and activate profiles. - Implemented audio settings for alert types, enabling users to upload custom sounds for alerts. - Added a new configuration file for theme presets to provide ready-to-use color themes. - Enhanced settings page to support profile selection and display relevant settings for the selected profile. - Updated the configuration system to handle profiles and their associated display and audio settings. - Added API routes for managing profiles and audio uploads, including import/export functionality for profiles. - Introduced sound volume control in settings, allowing users to adjust the volume of alert sounds.
Adds POST /api/panels/:panel/show and a 'show-panel' WebSocket broadcast so /tests and the Stream Deck plugin can trigger the left panel or bottom bar immediately, bypassing the auto-cycle timer. Forced triggers show even when the panel is disabled in settings; the automatic cycle still respects that setting.
Twitch doesn't push viewer count via EventSub like it does for follows/subs, so TwitchAuth.getViewerCount() polls the Helix Get Streams endpoint directly. TwitchOverlayServer polls every 60s while running and feeds the result into StreamStatsManager, alongside the existing heartbeat.
New subproject at streamdeck-plugin/ (separate toolchain: Node 24+, TypeScript, rollup, @elgato/streamdeck SDK) with four actions calling ElectrumOverlay's HTTP API: trigger a test alert, activate a profile (with live active/inactive state via polling), show a panel on demand, and display a live stream stat. Host/port are configurable per action for non-default setups.
Adds a Stream Deck plugin section to both READMEs (installation, actions, dev pointer), plus npm run package:streamdeck to build the .streamDeckPlugin and a scripts/upload-streamdeck-asset.js step chained into publish:win so it gets attached to the same GitHub release as the app installer.
- Added checkbox row alignment for better layout in forms. - Refactored settings navigation to use a tabbed interface for themes and alerts. - Improved responsiveness of settings layout for mobile devices. - Introduced color grid for color pickers to allow multiple items per row. - Updated theme and alert configurations to use gradient colors instead of solid. - Enhanced JavaScript to manage tab navigation and section visibility in settings. - Added timer color configuration to the left panel settings. - Updated default configuration to include new gradient properties for alerts. - Improved overall styling consistency across various CSS files.
…ionnement de la barre de sauvegarde
…l'exposer via l'API
…ations personnalisées
- Implemented a new scene editor allowing users to position and customize overlay elements (chat, alerts, titles) directly on a preview. - Added API endpoints for managing element layout, visibility, and custom text. - Updated HTML templates for pause and starting screens to support scene editing features. - Introduced new configuration options for layout and text overrides in user profiles. - Enhanced server routes to handle scene editor functionalities.
…ssion dans l'éditeur de scène
…tégration dans l'overlay, fix spotify pour disparaitre si rien n'est joué, fix emojis custom dans le chat
- Implemented inputCapture.js to handle keyboard and mouse events, filtering allowed keys and buttons. - Integrated input capture start/stop functionality in main.js, allowing toggling via config. - Added UI elements in overlay-common.css and overlay-common.js for displaying pressed keys and mouse buttons. - Updated scene editor and integrations routes to support new input display settings. - Introduced configuration options for input display in defaults.json and store.js. - Enhanced scene editor with options for customizing key display settings.
…tion, ajustements de style pour maintenir une taille visuelle constante
…lay, incluant le chat et le bandeau défilant, avec des endpoints API pour la mise à jour des styles
…ion des messages, avec des ajustements dans overlay-common.js et scene-editor-bridge.js
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.