Repository navigation
Releases
Macro Deck 3.1.0-beta.1
What's Changed
๐ Exciting New Features
- Add a Wake on LAN integration to wake devices on the network by @manuelmayer-dev in #1669
- Keep the display awake in browsers without a native wake lock by @manuelmayer-dev in #1676
- Add a Ping integration to monitor devices on your network by @manuelmayer-dev in #1670
- Add application instance and window state variables to System by @manuelmayer-dev in #1686
- Let users replace a recovery key that can no longer be read by @manuelmayer-dev in #1687
- Add Next Folder and Previous Folder actions to the Deck integration by @manuelmayer-dev in #1688
๐ Improvements
- Make the store registry refresh faster and add a forced refresh by @manuelmayer-dev in #1675
๐ Bug Fixes
- Stop widget variables from triggering events of a same-named global variable by @manuelmayer-dev in #1678
- Prevent a second host when Macro Deck is reopened right after quitting by @manuelmayer-dev in #1677
โฌ๏ธ Dependencies
- Bump follow-redirects from 1.16.1 to 1.16.2 in /ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1607
- Update dependency @playwright/test to v1.64.1 by @renovate[bot] in #1638
- Lock file maintenance by @renovate[bot] in #1626
- Update docs site to ^0.27.0 by @renovate[bot] in #1644
- Bump the npm_and_yarn group across 2 directories with 2 updates by @dependabot[bot] in #1646
- Update all patch updates by @renovate[bot] in #1635
- Bump follow-redirects from 1.16.1 to 1.16.2 in /ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1651
Full Changelog: v3.0.1...v3.1.0-beta.1
Macro Deck 3.0.1
What's Changed
๐ Security
- End all sessions of a device when it signs out by @manuelmayer-dev in #1610
- Keep admin-only UI events away from client devices by @manuelmayer-dev in #1617
๐ Bug Fixes
- Translate the Set Variable operation labels by @manuelmayer-dev in #1608
- Keep the desktop UI connected after a 401 when re-authentication is unavailable by @manuelmayer-dev in #1611
- Compare numbers in conditions the same way on every system language by @manuelmayer-dev in #1614
- Stop refusing existing widgets and folders while the host is starting by @manuelmayer-dev in #1622
- Stop actions while a Linux desktop is locked by @manuelmayer-dev in #1623
- Fix errors and stacked widgets when widgets are created concurrently by @manuelmayer-dev in #1624
- Keep plugins from launching before the host port is known by @manuelmayer-dev in #1625
- Stop stale, dropped and runaway event triggers by @manuelmayer-dev in #1627
- Fix Linux autostart for paths with special characters by @manuelmayer-dev in #1629
- Detect running macOS apps and let Stop quit them gracefully by @manuelmayer-dev in #1630
- Let two users on one Linux computer run Macro Deck side by side by @manuelmayer-dev in #1628
- Warn about Wayland limits and keep typed characters on Linux by @manuelmayer-dev in #1633
- Fix plugin install cancel, launch retries, health docs and staging leftovers by @manuelmayer-dev in #1640
- Show why a backup before an update failed and say when it was skipped by @manuelmayer-dev in #1631
- Wait for a replaced host to exit before starting the new one by @manuelmayer-dev in #1639
- Fix Car Thing buttons doing nothing on tiles with a live UI tree by @manuelmayer-dev in #1642
- Confirm Claude Desktop's risky actions in Macro Deck instead of refusing them by @manuelmayer-dev in #1666
- Fix Unknown client entries in the AI clients connection list by @manuelmayer-dev in #1668
- Fix Discord setup failing with invalid_scope instead of retrying by @manuelmayer-dev in #1674
- Fix blank tiles and lost presses in plugin virtual profiles by @manuelmayer-dev in #1683
- Fix the SoundPad muted variable never changing by @manuelmayer-dev in #1684
Full Changelog: v3.0.0...v3.0.1
Macro Deck 3.0.0
Macro Deck 3 is finally here!
After months of development and an extensive public beta, Macro Deck 3.0.0 is officially stable!
This is the biggest update in Macro Deck's history. Almost everything has been rebuilt from the ground up, introducing a completely new architecture, a redesigned editor, powerful automation capabilities, a built-in plugin store, and much more.
What's New
Completely Rebuilt Architecture
- Rebuilt from the ground up using .NET 10.
- New modern desktop application powered by Angular and Tauri.
- Redesigned user interface with a more intuitive editing experience.
- Cross-platform support for Windows, Linux, and macOS.
- New communication architecture using REST APIs and WebSockets.
- Improved performance, stability, and resource management.
- Plugins now run in isolated processes, improving reliability and preventing plugin crashes from taking down the host.
New Editor & Customization
- Completely redesigned deck editor.
- Live synchronization of changes across connected devices.
- Customizable buttons, folders, layouts, and widgets.
- Multi-state buttons with dynamic states and appearances.
- Variable-driven labels, colors, icons, and other properties.
- New interactive widgets, including sliders, clocks, and dynamic content.
- Support for custom widgets provided by plugins.
- Improved icon management and customization.
- More flexible profiles and folder navigation.
Powerful Automation
- New flow-based automation system for chaining actions together.
- Conditional logic, delays, and variable-based operations.
- Local variables for scripts and automations.
- Scheduled triggers and event-driven automation.
- Integration events that can automatically trigger flows.
- Secure handling of credentials and secrets with explicit approval requirements.
- Improved keyboard, mouse, application, and system actions.
- Control and delegate actions to other connected computers.
Built-in Macro Deck Store
- Discover, install, and update plugins directly within Macro Deck.
- Browse plugins, integrations, and their available features.
- Automatic plugin update management.
- Detailed plugin information, including versions, dependencies, and source code.
- Community-driven plugin ecosystem with a dedicated Creator Portal.
Security is a major part of the new Store:
- Store plugins must be open source.
- Submissions undergo automated and human review.
- Dependencies are checked for security concerns.
- Trusted publishing provides a verifiable connection between source code and published packages.
- Approved packages are cryptographically signed.
- Macro Deck warns when installing packages without a trusted signature.
New Plugin System & SDK
- Completely redesigned plugin architecture.
- Out-of-process plugins communicating through APIs.
- New C# SDK distributed through NuGet.
- Extensible actions, variables, events, widgets, and configuration interfaces.
- Declarative UI framework for plugin-provided interfaces.
- Plugin development and publishing tools.
- Improved plugin lifecycle management and error handling.
Built-in Integrations
Macro Deck 3 includes a growing collection of built-in integrations, including:
- OBS Studio
- Spotify
- Twitch
- Discord
- Streamer.bot
- Streamlabs Desktop
- YouTube Music Desktop
- SinusBot
- Steam
- AutoHotkey v2
- Discord Webhooks
- RSS & Atom feeds
- Weather and system monitoring
Additional integrations are available through the Macro Deck Store.
Web Client & Companion Apps
- Free Web Client that works directly in a browser.
- Redesigned native Companion Apps for Android and iOS.
- Support for multiple devices and connections to multiple computers.
- USB connectivity for supported Android and iOS devices.
- Native widgets and dynamic content.
- NFC tag support and external automation links.
- iOS Shortcuts integration.
- Device battery information and monitoring.
- Automatic reconnection and improved connection handling.
- Idle dimming and automatic startup options on supported devices.
The Web Client remains free. The optional native Companion Apps offer a 7-day free trial followed by a one-time purchase.
AI & External Automation
- Built-in MCP server for interacting with Macro Deck through compatible AI clients.
- Inspect, configure, and control Macro Deck through supported MCP tools.
- One-click Claude Desktop extension.
- Expanded possibilities for external automation and integrations.
Security, Reliability & Performance
- Improved authentication and protection against brute-force attacks.
- Safer backup and restore operations with validation and rollback handling.
- Backup progress indicators, estimated remaining time, and cancellation.
- Improved plugin process isolation and lifecycle management.
- Publisher signature verification during plugin updates.
- Improved recovery and handling of failed updates.
- Better WebSocket reconnection and connection recovery.
- Reduced idle CPU and memory usage on Linux.
- Numerous fixes for keyboard input, widgets, variables, integrations, and platform-specific behavior.
Upgrading from Macro Deck 2
Macro Deck 3 is a major architectural change and uses a separate data directory from Macro Deck 2.
Existing Macro Deck 2 installations are not overwritten. Migration support is available to help transfer existing configurations, but some plugins and functionality may require adjustments due to the new plugin architecture.
Macro Deck 2 plugins are not directly compatible with Macro Deck 3. Updated plugins can be found in the new Macro Deck Store.
Beta Update Channel
With the stable release, the Receive beta updates option under Settings โ About is automatically disabled for everyone.
This means you'll receive stable updates by default.
If you'd like to continue testing upcoming features before their official release, you can enable beta updates again at any time.
Beta releases may contain unfinished features or bugs, so they're primarily intended for users who are comfortable testing and reporting issues.
What's Next?
Macro Deck 3.0.0 is the foundation for future development.
Upcoming releases will continue expanding the available integrations, automation capabilities, widgets, and plugin ecosystem.
Bug fixes will be delivered through patch releases such as 3.0.1, while new features and larger improvements will arrive in 3.1.0 and beyond.
Thank You!
A huge thank you to everyone who participated in the beta, reported bugs, contributed code, developed plugins, translated Macro Deck, or helped other users.
Your feedback and contributions made this release possible.
Welcome to Macro Deck 3!
Macro Deck 3.0.0-beta.20
What's Changed
๐ Security
- Refuse backups whose files would land outside the data folder or exceed the archive limits by @manuelmayer-dev in #1517
๐ Exciting New Features
- Add an OBS action to control input audio monitoring by @manuelmayer-dev in #1473
- Show detailed backup progress, estimated time remaining, and cancellation options by @manuelmayer-dev in #1493
- Add a built-in MCP server to let AI clients inspect, configure, and control Macro Deck by @manuelmayer-dev in #1559
- Connect Claude Desktop to Macro Deck through a one-click extension by @manuelmayer-dev in #1562
๐ Improvements
- Show Android Companion devices with the correct phone or tablet icon in the Battery widget by @manuelmayer-dev in #1474
- Redesign the notification center with clearer priorities and improved notification management by @manuelmayer-dev in #1490
- Require explicit approval before flows can access stored secrets by @manuelmayer-dev in #1539
- Show the Approvals sidebar entry only when something requires attention by @manuelmayer-dev in #1561
- Add reverse proxy support for forwarding client addresses and HTTPS information by @manuelmayer-dev in #1574
- Keep unsaved editor changes when the desktop UI reconnects by @manuelmayer-dev in #1572
๐ Bug Fixes
- Cancel feed taps that acquire the gate after disposal started by @manuelmayer-dev in #1475
- Show plugin variables under their published names on the integration page by @manuelmayer-dev in #1480
- Keep the slider track tips inside the thumb ring by @manuelmayer-dev in #1482
- Open the website donation page from the footer Donate link by @manuelmayer-dev in #1488
- Show names instead of ids for Email and Music Player variables by @manuelmayer-dev in #1489
- Fix Type text dropping AltGr, Shift and line breaks on Linux by @manuelmayer-dev in #1499
- Keep returning to the previous folder after quickly switching apps by @manuelmayer-dev in #1503
- Show icons from icon-provider actions in the button editor preview by @manuelmayer-dev in #1504
- Keep folders open after switching back to an app with Alt+Tab on Windows by @manuelmayer-dev in #1511
- Keep the host running while a large restore is still being applied at startup by @manuelmayer-dev in #1515
- Undo every change of a failed restore and keep access errors from stopping the start by @manuelmayer-dev in #1516
- Keep live tiles in the Web Client updating after a UI update fails to apply by @manuelmayer-dev in #1521
- Stop plugin updates from failing and rolling back when the reconcile loop restarts the plugin mid-update by @manuelmayer-dev in #1523
- Keep a hostile or broken RSS or Atom feed from pinning a CPU core and freezing feed management by @manuelmayer-dev in #1526
- Let a stop win over a plugin launch that is still starting and never run two processes for one plugin by @manuelmayer-dev in #1525
- Keep apps started from the deck running when Macro Deck quits on Linux and macOS by @manuelmayer-dev in #1528
- Refuse a plugin update signed by a different publisher than the installed version by @manuelmayer-dev in #1529
- Restart the host and keep Quit working after a failed in-app update by @manuelmayer-dev in #1532
- Clean up a deleted profile's widget secrets, variables and sessions by @manuelmayer-dev in #1534
- Keep unreadable user variable and integration state files intact by @manuelmayer-dev in #1535
- Refuse a database or backup migrated by a newer Macro Deck by @manuelmayer-dev in #1536
- Stop login guesses from getting past the brute-force lockout by @manuelmayer-dev in #1537
- Keep the Remove button visible when a bound variable has a long name by @manuelmayer-dev in #1541
- Stop markup injection and code replay on the OAuth callback page by @manuelmayer-dev in #1538
- Make Right Alt work as AltGr in Linux keyboard actions by @manuelmayer-dev in #1540
- Run commands and programs normally in the Linux AppImage by @manuelmayer-dev in #1542
- Let updates install while Macro Deck waits for the recovery key by @manuelmayer-dev in #1544
- Delete a plugin's connections and saved sign-ins when its data is deleted on uninstall by @manuelmayer-dev in #1531
- Stop and restart a host that Macro Deck took over from an earlier instance by @manuelmayer-dev in #1543
- Stop the host gracefully when Macro Deck quits while it is still starting by @manuelmayer-dev in #1545
- Make contains and starts with work on text that looks like a number by @manuelmayer-dev in #1557
- Use the new time right away after a scheduled trigger is edited by @manuelmayer-dev in #1558
- Keep reconnecting Discord after a token timeout or server error by @manuelmayer-dev in #1560
- Keep button states live during slow flows and labels in sync with variables by @manuelmayer-dev in #1566
- Keep the Web Client and desktop UI working after a connection drop by @manuelmayer-dev in #1565
- Fix Windows shortcut app detection and fallback notification leak by @manuelmayer-dev in #1564
โฌ๏ธ Dependencies
- Bump the npm_and_yarn group across 2 directories with 4 updates by @dependabot[bot] in #1470
- Bump rustls from 0.23.45 to 0.23.46 in /ui/bootstrapper in the cargo group across 1 directory by @dependabot[bot] in #1575
- Bump qs from 6.16.0 to 6.16.2 in /ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1576
Full Changelog: v3.0.0-beta.19...v3.0.0-beta.20
Macro Deck 3.0.0-beta.19
What's Changed
๐ New Integrations
- Add an AutoHotkey v2 integration with managed scripts by @manuelmayer-dev in #1467
๐ Exciting New Features
- Show the data and widgets an integration provides on its detail page by @manuelmayer-dev in #1456
- Show Companion, laptop and Home Assistant batteries in the Battery widget by @manuelmayer-dev in #1457
๐ Improvements
- Center the Live and Offline pill in the Stream Stats widgets by @manuelmayer-dev in #1441
- Let plugins stop gracefully on host shutdown instead of being killed by @manuelmayer-dev in #1444
- Report where the JSON is invalid when a portable import fails by @Gazz-gg in #1461
โก Performance
- Fix plugins taking up to a minute to start on macOS by @manuelmayer-dev in #1451
๐ Bug Fixes
- Fix preview render drawing multi-cell tiles as one cell by @manuelmayer-dev in #1452
- Fix NumLock and PrintScreen key actions doing nothing on Windows by @manuelmayer-dev in #1458
- Fix the Play on Device picker failing to open by @manuelmayer-dev in #1462
- Keep Macro Deck running when the Windows key isolation service is unavailable by @manuelmayer-dev in #1463
- Prevent plugin error dialogs when Windows shuts down by @manuelmayer-dev in #1465
โฌ๏ธ Dependencies
- Bump the npm_and_yarn group across 2 directories with 2 updates by @dependabot[bot] in #1443
- Bump the npm_and_yarn group across 2 directories with 3 updates by @dependabot[bot] in #1454
๐ ๏ธ Other Changes
- Let astro-mermaid accept mermaid 12 so the docs install again by @manuelmayer-dev in #1453
- Build the documentation site on pull requests by @manuelmayer-dev in #1455
New Contributors
Full Changelog: v3.0.0-beta.18...v3.0.0-beta.19
Macro Deck 3.0.0-beta.18
What's Changed
๐ New Integrations
- Add Discord Webhooks integration with a live message editor by @manuelmayer-dev in #1434
- Add an RSS and Atom feed reader with widgets, events and variables by @manuelmayer-dev in #1432
๐ Exciting New Features
- Add a Variables button and local variables to scripts and automations by @manuelmayer-dev in #1377
- Add Issues, Versions, Dependencies and Code tabs to Store pages by @manuelmayer-dev in #1401
- Show an update badge on the tray icon when an update is available by @manuelmayer-dev in #1402
๐ Improvements
- Show a percent unit on the battery level variable by @manuelmayer-dev in #1386
- Make clear that Steam needs the key and SteamID together by @manuelmayer-dev in #1400
โก Performance
- Reduce idle CPU and memory use of the host on Linux by @manuelmayer-dev in #1439
๐ Bug Fixes
- Fit clocks with their seconds at size and state the hour's leading zero by @manuelmayer-dev in #1380
- Keep YouTube and Twitch stream stats updating during long streams by @manuelmayer-dev in #1384
- Fix Twitch Hype Train events being rejected by Twitch by @manuelmayer-dev in #1394
- Show the current widget state when returning to a folder by @manuelmayer-dev in #1395
- Keep the update window from stealing focus when an update is found in the background by @manuelmayer-dev in #1396
- Fix Spotify sign-in failing with a server error when Spotify times out by @manuelmayer-dev in #1397
- Fix flow steps reading variable values from before the run started by @manuelmayer-dev in #1399
- Fix Steam game launcher tiles not starting games by @manuelmayer-dev in #1409
- Stop warning on every press of a button whose state follows a mapping by @manuelmayer-dev in #1410
- Keep the Web Client retrying when a startup request goes unanswered by @manuelmayer-dev in #1412
- Fix the icon display reset on buttons with multiple states by @manuelmayer-dev in #1419
- Update variables as soon as integrations report a change by @manuelmayer-dev in #1435
- Fix the Discord setup blaming elevation for every refused connection by @manuelmayer-dev in #1437
- Fix the color picker eyedropper doing nothing in the Windows app by @manuelmayer-dev in #1438
๐ Documentation
- Document opening the Companion App after the device starts by @manuelmayer-dev in #1403
- Document idle dimming in the Companion app by @manuelmayer-dev in #1407
- Document NFC tags in the Companion App guide by @manuelmayer-dev in #1411
โฌ๏ธ Dependencies
- Update all patch updates by @renovate[bot] in #1421
- Update dependency @tauri-apps/cli to v2.12.1 by @renovate[bot] in #1422
- Update dependency rust-lang/rust to v1.99.0 by @renovate[bot] in #1423
- Update dependency Scriban to 7.5.0 by @renovate[bot] in #1424
- Update dorny/test-reporter action to v3.2.0 by @renovate[bot] in #1425
๐ ๏ธ Other Changes
- Pin Tauri's renamed linuxdeploy and fail when the bundler fetches unpinned tools by @manuelmayer-dev in #1440
Full Changelog: v3.0.0-beta.17...v3.0.0-beta.18
Macro Deck 3.0.0-beta.17
What's Changed
๐ Security
- Update System.Security.Cryptography.Pkcs to 10.0.13 by @manuelmayer-dev in #1368
๐ New Integrations
- Add a Steam integration with a game launcher and a currently playing widget by @manuelmayer-dev in #1299
- Add email inboxes with a built-in IMAP integration and an inbox widget by @manuelmayer-dev in #1317
๐ Exciting New Features
- Let plugins translate native key codes into key names by @manuelmayer-dev in #1289
- Let plugins show toasts and dialogs on every client by @manuelmayer-dev in #1290
- Add Steam friends and library widgets, favorites, events and game closing by @manuelmayer-dev in #1302
- Serve integration widgets through the Plugin SDK by @manuelmayer-dev in #1303
- Let plugins offer searchable choice fields by @manuelmayer-dev in #1314
- Add a compact style to the Weather widget by @manuelmayer-dev in #1320
- Let built-in integrations use only the Plugin SDK by @manuelmayer-dev in #1322
- Let the widget type picker sort by a fixed order, name or type by @manuelmayer-dev in #1350
- Support variable templates in the Developer Tools tester by @manuelmayer-dev in #1354
๐ Improvements
- Let users mute audio devices by setting their mute variables by @manuelmayer-dev in #1296
- Add Donate and Companion App links to the onboarding by @manuelmayer-dev in #1313
- Run the variables conformance checks for plugins that declare no variables by @manuelmayer-dev in #1329
- Show the arrow cursor on controls and the hand only on links and cards by @manuelmayer-dev in #1361
๐ Bug Fixes
- Keep keyboard keys consistent across recording, keyboard layouts and triggers by @manuelmayer-dev in #1287
- Keep the Visual editor usable for widgets with many actions by @manuelmayer-dev in #1288
- Keep the Weather widget in sync with the weather variables by @manuelmayer-dev in #1309
- Let plugins write variables they add after connecting by @manuelmayer-dev in #1315
- Offer variable catalogs of plugins that declare no variables by @manuelmayer-dev in #1321
- Show why a variable value could not be written in the variables manager by @manuelmayer-dev in #1323
- Name the unavailable integration when a variable write is refused by @manuelmayer-dev in #1327
- Name the unavailable integration in Set Variable action errors by @manuelmayer-dev in #1331
- Fix conformance check MDC0604 failing on Windows when a plugin is still sending by @manuelmayer-dev in #1334
- Complete the close handshake in the plugin test host on a failed hello or a plugin close by @manuelmayer-dev in #1340
- Make the plugin test host answer oversized messages and empty hellos like Macro Deck by @manuelmayer-dev in #1345
- Complete the WebSocket close handshake when a plugin closes or its handshake times out by @manuelmayer-dev in #1346
- Keep settings controls clear of overlay scrollbars by @manuelmayer-dev in #1347
- Complete the WebSocket close handshake when a UI client closes by @manuelmayer-dev in #1348
- Fix saving a button after switching its state mapping to an action's states by @manuelmayer-dev in #1364
- Fix store description tables squeezing a column to one letter per line by @manuelmayer-dev in #1369
- Prevent icons from briefly zooming when an Action Button changes state by @manuelmayer-dev in #1370
๐ Documentation
- Document the Companion App first start and trial by @manuelmayer-dev in #1312
- Explain the message the Companion App shows after a failed press by @manuelmayer-dev in #1339
- Describe the lifetime Companion App license by @manuelmayer-dev in #1341
- Describe host messages in the Companion App by @manuelmayer-dev in #1342
๐ ๏ธ Other Changes
- Say that Companion diagnostics include the last crash by @manuelmayer-dev in #1343
- Stop Chrome's helper processes before removing the measurement profile by @manuelmayer-dev in #1344
- Pin the CI .NET SDK so the bundled runtime resolves on .NET patch days by @manuelmayer-dev in #1352
- Recognise script actions by role and re-push desktop notification support on shell changes by @manuelmayer-dev in #1355
- Keep the Companion device access policy usable while the host shuts down by @manuelmayer-dev in #1372
Full Changelog: v3.0.0-beta.16...v3.0.0-beta.17
Macro Deck 3.0.0-beta.16
What's Changed
๐ Breaking Changes
- Fix Voicemeeter strips being numbered from 1 instead of 0 by @manuelmayer-dev in #1194
๐ New Integrations
- Add a YouTube Live integration by @manuelmayer-dev in #1215
- Add Outlook and Microsoft 365 calendars by @manuelmayer-dev in #1246
- Add a SoundPad integration with Music Player support by @manuelmayer-dev in #1244
- Add AdGuard Home integration with control and statistics widgets by @manuelmayer-dev in #1248
- Add Jellyfin integration by @manuelmayer-dev in #1245
๐งฑ New Widgets
- Add a Gauges widget with icons from an included icon pack by @manuelmayer-dev in #1227
- Add calendar widgets with Google Calendar and plugin calendar providers by @manuelmayer-dev in #1228
๐ Exciting New Features
- Add Simplified Chinese localization by @manuelmayer-dev in #1168
- Ask signed-in users to rate installed packages by @manuelmayer-dev in #1171
- Add a Switch block to action flows by @manuelmayer-dev in #1180
- Let Deck actions choose which device to navigate by @manuelmayer-dev in #1181
- Add a font size setting to the Twitch Chat widget by @manuelmayer-dev in #1195
- Add a Label Box Color setting to Action Buttons by @manuelmayer-dev in #1196
- Add a video stream image option to the plugin preview CLI by @manuelmayer-dev in #1207
- Ask users once to star Macro Deck on GitHub after a week by @manuelmayer-dev in #1206
- Allow reordering profiles in the profile menu by @manuelmayer-dev in #1208
- Add live OBS state updates and a custom event trigger by @manuelmayer-dev in #1209
- Let Action Buttons turn off the label shadow and outline labels by @manuelmayer-dev in #1213
- Support importing custom fonts into the Library by @manuelmayer-dev in #1214
- Add actions to control any OBS output by @manuelmayer-dev in #1211
- Add OBS recording split, chapter and folder actions by @manuelmayer-dev in #1210
- Let sliders draw their icon in any colour by @manuelmayer-dev in #1219
- Add an OBS action to change a source's text, file or URL by @manuelmayer-dev in #1222
- Show press feedback when a slider recognises a double tap by @manuelmayer-dev in #1224
- Let icons switch between light, dark, static and animated appearances by @manuelmayer-dev in #1225
- Add a random number chip to the template builder by @manuelmayer-dev in #1223
- Add an OBS action to switch scene collections by @manuelmayer-dev in #1226
- Add message and name colors to the chat widgets by @manuelmayer-dev in #1232
- Add color thresholds to the Slider, History Graph and Gauges widgets by @manuelmayer-dev in #1233
- Add disk statistics variables to the System integration by @manuelmayer-dev in #1243
- Add Color variables with modifiers for every colour setting by @manuelmayer-dev in #1242
- Add template variables built from other variables by @manuelmayer-dev in #1247
- Add 11 languages and right-to-left support for Arabic by @manuelmayer-dev in #1263
- Let plugins set the track colour of a UiGauge by @manuelmayer-dev in #1257
- Let widget parts size from their own box and grids pick their columns by @manuelmayer-dev in #1259
- Add album color variables to the Music Player by @manuelmayer-dev in #1262
- Make color fields compact and add a shared color palette by @manuelmayer-dev in #1261
- Allow signing in to the Web Client with a pairing code by @manuelmayer-dev in #1275
- Let users name their own icon appearances by @manuelmayer-dev in #1277
๐ Improvements
- Update Linux volume changes instantly via pactl events by @manuelmayer-dev in #1178
- Let users set the User-Agent of built-in integrations by @manuelmayer-dev in #1260
- Let the label Align and Position controls fill the row by @manuelmayer-dev in #1276
โฟ Accessibility
- Close an open dropdown or popover on Escape instead of its dialog by @manuelmayer-dev in #1254
๐ Bug Fixes
- Explain dialogs that cannot be opened instead of showing an empty frame by @manuelmayer-dev in #1152
- Show plugin text in the plugin CLI preview by @manuelmayer-dev in #1165
- Fix first-fit drawing text that is already cut off by @manuelmayer-dev in #1155
- Fix dark edges on widgets with a solid fill by @manuelmayer-dev in #1170
- Stop repeated integration issue errors flooding the log by @manuelmayer-dev in #1175
- Show rendered widget labels in the widget picker by @manuelmayer-dev in #1177
- Stop the installer treating non-lock file errors as locks by @manuelmayer-dev in #1201
- Add decibel steps to OBS Set Input Volume and read volume below -60 dB by @manuelmayer-dev in #1212
- Show provider-backed button states without long delays by @manuelmayer-dev in #1241
- Prevent adb.exe error dialogs when Windows shuts down by @manuelmayer-dev in #1256
- Show lists, tables and images in store descriptions like GitHub by @manuelmayer-dev in #1258
- Show img tags in Store descriptions as images by @manuelmayer-dev in #1265
- Keep outlined Action Button labels in a label box on one line by @manuelmayer-dev in #1266
๐งฉ Plugin SDK and Protocol
- Document alpha support in text colours by @manuelmayer-dev in #1255
๐ Documentation
- Clarify Deck access after waking an Android device by @manuelmayer-dev in #1167
- Document the Companion App fixed vibration length by @manuelmayer-dev in #1235
- Document icon appearances in the Companion App by @manuelmayer-dev in #1236
- Document waking a computer from the Companion App by @manuelmayer-dev in #1253
- Document the Companion app's languages and right-to-left layout by @manuelmayer-dev in #1273
- Document signing in to the Companion App with the pairing code by @manuelmayer-dev in #1274
โฌ๏ธ Dependencies
- Update dependency @astrojs/starlight to v0.42.2 by @renovate[bot] in #1184
- Update dependency Microsoft.IdentityModel.JsonWebTokens to 8.23.0 by @renovate[bot] in #1186
- Update dependency @tauri-apps/cli to v2.11.5 by @renovate[bot] in #1185
- Update dependency obs-websocket-dotnet to 5.7.0 by @renovate[bot] in #1187
- Update dependency marked to v18 by @renovate[bot] in #1188
- Bump the npm_and_yarn group across 1 directory with 3 updates by @dependabot[bot] in #1217
- Bump the npm_and_yarn group across 2 directories with 2 updates by @dependabot[bot] in #1230
- Bump @modelcontextprotocol/sdk from 1.30.0 to removed in /ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1231
๐ ๏ธ Other Changes
- List additive plugi...
Macro Deck 3.0.0-beta.15
What's Changed
๐ Security
- Install and update the Companion App over ADB from the settings by @manuelmayer-dev in #995
- Prevent untrusted text from forging host log lines by @manuelmayer-dev in #1103
๐ SDK
- Let plugins show any installed icon by its id by @manuelmayer-dev in #1048
- Let the Music Player widget show the playback source and a provider badge by @manuelmayer-dev in #1083
- Let plugins offer optional settings without blocking the integration by @manuelmayer-dev in #1088
- Let plugins offer per-widget Music Player options by @manuelmayer-dev in #1087
- Let widgets provide a default Short Press action by @manuelmayer-dev in #1111
- Let plugins show the artwork of other music players by @manuelmayer-dev in #1113
๐ Exciting New Features
- Allow naming button events and running buttons from the deck by @manuelmayer-dev in #1052
- Share variables with other Macro Decks through Macro Deck Delegate by @manuelmayer-dev in #1055
- Add a Twitch chat widget and withdraw widgets of disabled integrations by @manuelmayer-dev in #1057
- Show announcements from the Macro Deck team by @manuelmayer-dev in #1064
- Add a chat dialog with moderator actions to the Twitch Chat widget by @manuelmayer-dev in #1065
- Detect damaged or partially updated installations on startup by @manuelmayer-dev in #1067
- Let plugins show live video streams in Macro Deck UI by @manuelmayer-dev in #1072
- Tell the Companion App which versions work together by @manuelmayer-dev in #1076
- Let devices hide their settings button by @manuelmayer-dev in #1084
- Add Countdown and Stopwatch widgets by @manuelmayer-dev in #1089
- Let the Web Client choose the icon resolution by @manuelmayer-dev in #1085
- Add search, favorites and a list view to the widget selector by @manuelmayer-dev in #1097
- Let widgets use any background color, including transparent by @manuelmayer-dev in #1098
- Add macrodeck:// links that open Store entries by @manuelmayer-dev in #1117
- Let Slider widgets control Home Assistant entities by @manuelmayer-dev in #1120
- Add a Toggle option to Twitch Set Chat Mode by @manuelmayer-dev in #1126
- Let users redeem Companion promo codes in Macro Deck by @manuelmayer-dev in #1140
- Add a Twitch Stream Stats widget by @manuelmayer-dev in #1142
- Add a command to render widget previews to PNG by @manuelmayer-dev in #1141
- Let widgets pick the first layout whose text fits by @manuelmayer-dev in #1139
๐ Improvements
- Link the Companion App on the App Store and Google Play in the setup wizard by @manuelmayer-dev in #1040
- Let music player plugins register their cover as a UI resource in one call by @manuelmayer-dev in #1046
- Mark plugin integrations with a Plugin badge by @manuelmayer-dev in #1053
- Show the connect QR code for the Companion App in the setup wizard by @manuelmayer-dev in #1056
- Allow grids up to 16 rows and 16 columns by @manuelmayer-dev in #1081
- Move Car Thing setup to Experiments under Advanced by @manuelmayer-dev in #1114
- Stop plugins logging every health poll and successful request by @manuelmayer-dev in #1119
- Collapse unbound variables into a group and unify the variable views by @manuelmayer-dev in #1121
- Show backup progress when installing a plugin file by @manuelmayer-dev in #1136
๐ Bug Fixes
- Fix Server Started automations never running by @manuelmayer-dev in #1039
- Fix Lock Computer doing nothing on current macOS by @manuelmayer-dev in #1050
- Fix links not opening from the Linux AppImage on KDE Plasma 6 by @manuelmayer-dev in #1051
- Keep the resize dot and pin badge visible at large corner radii by @manuelmayer-dev in #1049
- Let Companion actions run on a device that has just connected by @manuelmayer-dev in #1054
- Keep the Web Client on its own profile when profiles are copied or deleted by @manuelmayer-dev in #1061
- Keep the Web Client current after Macro Deck updates by @manuelmayer-dev in #1062
- Keep integration icons coloured in the Companion App by @manuelmayer-dev in #1069
- Run Integration Connected automations on startup by @manuelmayer-dev in #1073
- Let OBS source visibility actions select sources inside groups by @manuelmayer-dev in #1074
- Keep apps launched from Macro Deck running after it exits by @manuelmayer-dev in #1075
- Fix duplicate font styles for symlinked fonts on Linux by @manuelmayer-dev in #1099
- Fix Variable Changed triggers missing padded HTTP bodies by @manuelmayer-dev in #1100
- Fix inconsistent widget shadow overlap and add a shadows setting by @manuelmayer-dev in #1101
- Fix long animated icons showing a still image on buttons by @manuelmayer-dev in #1102
- Fix reinstalling an unsigned plugin failing on a missing signature by @manuelmayer-dev in #1112
- Fix GIF icons with a loop count of 1 playing once by @manuelmayer-dev in #1115
- Show freed cells as empty cells while resizing a widget by @manuelmayer-dev in #1118
- Remove plugin variables when a plugin is uninstalled by @manuelmayer-dev in #1127
- Show empty cells under a widget while moving it by @manuelmayer-dev in #1137
- Name the node when a view holds an undefined JsonElement by @manuelmayer-dev in #1138
๐ Documentation
- Document the Companion app in the user guide by @manuelmayer-dev in #1038
- Say in the Companion guide that Macro Deck 2 is not supported by @manuelmayer-dev in #1044
- Document live video in the Companion App by @manuelmayer-dev in #1079
- Document running scripts from other apps in the Companion guide by @manuelmayer-dev in #1080
- Document the icon resolution setting of the Companion App by @manuelmayer-dev in #1086
- Add the iOS script widget to the user guide by @manuelmayer-dev in #1106
- Add Quick Settings tiles to the Companion app guide by @manuelmayer-dev in #1107
- Document Android script shortcuts in the Companion guide by @manuelmayer-dev in #1108
- Document the Companion scripts widget on Android by @manuelmayer-dev in #1110
- Update the Companion guide for the automation key by @manuelmayer-dev in #1116
- Add screen settings to the Companion user guide by @manuelmayer-dev in #1122
- Add the Control Center script control to the iOS guide by @manuelmayer-dev in #1124
- Add screenshot to the readme by @manuelmayer-dev in #1148
โฌ๏ธ Dependencies
- Update all patch updates by @renovate[bot] in https://github.com/Macro-Deck-App/M...
2.15.3
What's Changed
๐ ๏ธ Other Changes
- chore: add Macro Deck 3 notice dialog and store shutdown badge by @manuelmayer-dev in #1144
Full Changelog: v2.15.1...v2.15.3