Files
lhns--steam-frame-nix/modules/lib/signatures.json
T
Pierre Kisters 6a8924f219 UI patches: find Steam internals by signature, offline checker
Runtime patches no longer use webpack module ids or minified export
names, which change with every Steam UI build:

- modules/lib/finders.js: finder library (getWebpackRequire,
  findModule/findExport by source text and shape, resolveAll with a
  per-page cache, findFiberUp/findFiberDown/findInReactTree), installed
  once per page as window.__sfuiFind.
- modules/lib/signatures.json: the signatures, per patch, shared by the
  patches and the checker. lib/default.nix mkPatch wraps a patch
  `(find, sigs, opts) => ...` with the library, its signatures and
  options; exposed as steamFrame.uiPatches.lib.
- Keyboard patch (VERSION 10): layouts module, current/enabled layout
  getters, arrow keys, VR keyboard status and VirtualKeyboardManager are
  found by signature; if one doesn't match it reports which and leaves
  Steam untouched. unpatch.js uses references the patch remembered.
  The helper logs inject results when they change.
- launcher-menu launch/pinned-desktop use the library's fiber helpers;
  launch no longer depends on the bar popup's window name.
- scripts/check-signatures.mjs (+ webpack-modules.mjs): extracts module
  factories from the installed bundles without a browser and checks
  every signature (found / ambiguous / missing, with module ids and
  export names). README: "Finders and signatures", "After a Steam update".
2026-09-27 20:04:15 +02:00

105 lines
3.9 KiB
JSON

{
"bundles": {
"steamui": {
"description": "Steam client UI (SharedJSContext and its popups, e.g. the VR keyboard and dashboard bar)",
"chunkGlobal": "webpackChunksteamui",
"dir": "~/.local/share/Steam/steamui",
"html": "index.html",
"exclude": "^localization/"
},
"vrwebui-systemui": {
"description": "SteamVR dashboard (vrwebhelper page systemui)",
"chunkGlobal": "webpackChunkvrwebui",
"dir": "/opt/steamvr/resources/webinterface/dashboard",
"html": "systemui.html"
}
},
"patches": {
"steam-keyboard-patch": {
"bundle": "steamui",
"modules": {
"layouts": {
"module": { "includes": ["name:\"qwerty\"", "rgLayout:", "GetKeyboardLayoutSettings"] },
"exports": {
"currentLayout": {
"type": "function", "length": 0,
"includes": ["GetKeyboardLayoutSettings", "currentLayout"],
"excludes": ["selectedLayouts", "SetKeyboardLayout"]
},
"enabledLayouts": {
"type": "function", "length": 0,
"includes": ["GetKeyboardLayoutSettings", "selectedLayouts"],
"excludes": ["useState", "SetKeyboardLayout", "SetValidKeyboardLayouts"]
},
"arrowLeft": { "type": "object", "props": { "key": "ArrowLeft" } },
"arrowUp": { "type": "object", "props": { "key": "ArrowUp" } },
"arrowDown": { "type": "object", "props": { "key": "ArrowDown" } },
"arrowRight": { "type": "object", "props": { "key": "ArrowRight" } }
},
"expects": ["Half", "rgLayout:", "leftActionButton"]
},
"vrStatus": {
"module": { "includes": ["get VRKeyboardStatus()"] },
"exports": {
"holder": { "type": "object", "getters": ["VRKeyboardStatus"] }
},
"expects": ["bIsOpen:", "sOverlayKey", "unAppID"]
},
"keyboardManager": {
"module": { "includes": ["SendClientPasteCommand(){", "HandleVirtualKeyDown(", "GetEnterKeyLabel("] },
"exports": {
"VirtualKeyboardManager": {
"type": "class",
"protoMethods": ["HandleVirtualKeyDown", "GetEnterKeyLabel", "SendClientPasteCommand"]
}
},
"expects": ["m_ActiveElementProps", "m_bDismissOnEnter", "m_Instance", "GetVROverlayKey()",
"MainRunningAppID", "ControllerKeyboardSendText"]
},
"keyboardComponent": {
"checkOnly": true,
"module": { "includes": ["TypeKeyInternal(", "toggleStates", "standardLayout"] },
"expects": ["\"data-key\"", "\"data-key-row\"", "HandleVirtualKeyDown"]
},
"popupManager": {
"checkOnly": true,
"module": { "includes": ["g_PopupManager", "GetPopups()"] }
}
}
},
"launcher-menu-order": {
"bundle": "steamui",
"modules": {
"programList": {
"checkOnly": true,
"module": { "includes": ["ScanForInstalledNonSteamApps("] }
}
}
},
"launcher-menu-launch": {
"bundle": "steamui",
"modules": {
"dashboardBar": {
"checkOnly": true,
"module": { "includes": ["allowLaunchProgram", "refBarPopopHandle", "#VRDashboard_LaunchNonSteamApp"] },
"expects": ["LaunchNonSteamApp(", "\"VRDashboardBarSmallButton\"", "BPopupOpen()", "closePopup()"]
}
}
},
"launcher-menu-pinned-desktop": {
"bundle": "steamui",
"modules": {
"dashboardBar": {
"checkOnly": true,
"module": { "includes": ["allowLaunchProgram", "refBarPopopHandle", "#VRDashboard_LaunchNonSteamApp"] },
"expects": ["header:", "strExePath", "rctContents"]
},
"popupNames": {
"checkOnly": true,
"module": { "includes": ["\"valve.steam.gamepadui.barpopup\""] }
}
}
}
}
}