From f8cb71eb9f1454e6f82f0cf7095cd3e1de578b1d Mon Sep 17 00:00:00 2001 From: Matias Galarza Date: Fri, 1 May 2026 16:37:52 -0300 Subject: [PATCH] fix(decky): render plugin on SteamOS 3.7.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Steam's React internals were rebuilt and the literal `React.createElement` no longer appears in the LibraryContextMenu module's siblings (now uses the jsx/jsxs runtime). The double-filter selector in `getLibraryContextMenu()` returned undefined, `fakeRenderComponent(undefined)` threw "fun is not a function", the `definePlugin` callback aborted, and Decky inserted its TheError fallback shape — invisible in the QAM without a `titleView`. - Drop the createElement filter in the LibraryContextMenu sibling lookup (mirrors decky-steamgriddb, the original source of this pattern). - Migrate `title:` → `titleView:` to match Decky's official Plugin interface for v3.2.x (`title` is not in the type). Closes #32 --- src/index.tsx | 2 +- src/patches/contextMenuPatch.tsx | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index d104e25..5be474e 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -136,7 +136,7 @@ export default definePlugin(() => { const menuPatches = contextMenuPatch(getLibraryContextMenu()); return { - title:
CapyDeploy
, + titleView:
CapyDeploy
, content: , icon: , onDismount() { diff --git a/src/patches/contextMenuPatch.tsx b/src/patches/contextMenuPatch.tsx index 1e6342d..9c65822 100644 --- a/src/patches/contextMenuPatch.tsx +++ b/src/patches/contextMenuPatch.tsx @@ -326,9 +326,7 @@ export function getLibraryContextMenu(): any { e?.toString && e.toString().includes("().LibraryContextMenu") ) ).find( - (sibling) => - sibling?.toString().includes("createElement") && - sibling?.toString().includes("navigator:") + (sibling) => sibling?.toString().includes("navigator:") ) as FC ).type; }