From e069eb04178965dce6397590866106213bd308ba Mon Sep 17 00:00:00 2001 From: Twest2 Date: Fri, 30 Oct 2026 23:53:07 -0500 Subject: [PATCH 1/2] Declare graphicsCaptureWithoutBorder in the Store manifest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Store version shows Windows' yellow capture border while recording. Electron already asks Windows to hide it, which the "Desktop apps" switch in Settings → Privacy & security → Screenshot borders allows for the .exe install; a packaged app needs the graphicsCaptureWithoutBorder capability and its own switch there. electron-builder's capability list doesn't know the capability, so the manifest writes its Capabilities out (with runFullTrust) in place of ${capabilities}, and declares the uap11 namespace as ignorable so Windows 10 skips it. The Store guide gets a troubleshooting row for the border. --- docs/windows/microsoft-store.md | 1 + packaging/windows/store/appxmanifest.xml | 17 ++++++++++++++--- tests/unit/package-windows-store.test.js | 7 +++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/windows/microsoft-store.md b/docs/windows/microsoft-store.md index 8ad65c43..d7b3300b 100644 --- a/docs/windows/microsoft-store.md +++ b/docs/windows/microsoft-store.md @@ -99,6 +99,7 @@ folder if you want them gone too. | Problem | What to do | | --- | --- | +| A yellow border shows around your screen while you record | Windows draws it while an app records the screen. To hide it on Windows 11, open **Settings → Privacy & security → Screenshot borders**, turn on the switch at the top and the one for **StepForge**, then close StepForge completely and start it again. | | StepForge isn't found in the Store | Check that you're on Windows 10 version 1809 or later, 64-bit. On a work or school PC, the Store may be turned off by your organization; use the [Windows installer](../windows_installation.md) instead. | | **Check for updates** shows a newer version, but the Store has no update yet | Microsoft checks each release before the Store offers it, which can take a day or two. Try again later. | | **Settings → General → Guide storage** says your guides are still in `%APPDATA%\stepforge` | StepForge couldn't move them, so it keeps using that folder and nothing is lost. The message says why. It retries ordinary failures; if two different copies remain, choose an empty folder in Guide storage or combine the copies manually before trying again. If `C:\Users\\StepForge` already holds a library from the other version, uninstall one of the two, then [open an issue](https://github.com/Twest2/StepForge/issues/new/choose) if you need both libraries combined. | diff --git a/packaging/windows/store/appxmanifest.xml b/packaging/windows/store/appxmanifest.xml index 3b61735d..c8f149be 100644 --- a/packaging/windows/store/appxmanifest.xml +++ b/packaging/windows/store/appxmanifest.xml @@ -4,14 +4,16 @@ storeVersion there); electron-builder fills the ${...} values from the appx options. Based on electron-builder's templates/appx/appxmanifest.xml, plus the uap3 - namespace for the stepforge.exe execution alias in extensions.xml. --> + namespace for the stepforge.exe execution alias in extensions.xml and + uap11 for graphicsCaptureWithoutBorder. --> + IgnorableNamespaces="uap uap3 uap11 desktop rescap"> - ${capabilities} + + + + + 'splashScreen', 'arch', 'resourceLanguages', 'capabilities', 'extensions', 'minVersion', 'maxVersionTested']; assert.deepEqual(macros.filter((m) => !known.includes(m)), []); assert.ok(macros.includes('extensions')); + // The capabilities are written out, so electron-builder's list can't replace them. + assert.ok(!macros.includes('capabilities')); + assert.match(manifest, /xmlns:uap11="http:\/\/schemas\.microsoft\.com\/appx\/manifest\/uap\/windows10\/11"/); + assert.match(manifest, /IgnorableNamespaces="[^"]*\buap11\b[^"]*"/); + const capabilities = manifest.split('')[1].split('')[0]; + assert.deepEqual([...capabilities.matchAll(/<(\w+):Capability Name="(\w+)" \/>/g)].map((m) => `${m[1]}:${m[2]}`), + ['uap11:graphicsCaptureWithoutBorder', 'rescap:runFullTrust']); assert.throws(() => renderStoreManifest('1.5.3.1'), /invalid Store version/); const extensions = read('packaging/windows/store/extensions.xml'); From ef4fc6a625fbf9964b15d9b463719c8bf6e82513 Mon Sep 17 00:00:00 2001 From: Twest2 Date: Sat, 31 Oct 2026 00:12:30 -0500 Subject: [PATCH 2/2] Drop the capture-border troubleshooting row from the Store guide --- docs/windows/microsoft-store.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/windows/microsoft-store.md b/docs/windows/microsoft-store.md index d7b3300b..8ad65c43 100644 --- a/docs/windows/microsoft-store.md +++ b/docs/windows/microsoft-store.md @@ -99,7 +99,6 @@ folder if you want them gone too. | Problem | What to do | | --- | --- | -| A yellow border shows around your screen while you record | Windows draws it while an app records the screen. To hide it on Windows 11, open **Settings → Privacy & security → Screenshot borders**, turn on the switch at the top and the one for **StepForge**, then close StepForge completely and start it again. | | StepForge isn't found in the Store | Check that you're on Windows 10 version 1809 or later, 64-bit. On a work or school PC, the Store may be turned off by your organization; use the [Windows installer](../windows_installation.md) instead. | | **Check for updates** shows a newer version, but the Store has no update yet | Microsoft checks each release before the Store offers it, which can take a day or two. Try again later. | | **Settings → General → Guide storage** says your guides are still in `%APPDATA%\stepforge` | StepForge couldn't move them, so it keeps using that folder and nothing is lost. The message says why. It retries ordinary failures; if two different copies remain, choose an empty folder in Guide storage or combine the copies manually before trying again. If `C:\Users\\StepForge` already holds a library from the other version, uninstall one of the two, then [open an issue](https://github.com/Twest2/StepForge/issues/new/choose) if you need both libraries combined. |