Skip to content

Releases: M15t/decky-egpu-helper

v0.2.3 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 04 Oct 12:52

Fix

Clear stale helper installation errors when status polling confirms the Zapret2 helper is available. Previously, installing the helper from a terminal or Desktop Mode after a failed in-plugin installation could leave an outdated Helper setup message visible in Gaming Mode.

The UI now hides this outdated setup message for an available helper. Actual service failures remain visible, and setup errors are retained when the helper is still unavailable.

Update

Install decky-egpu-helper.zip using Decky's ZIP installation option. A working helper does not need reinstalling for this fix. Existing ON/OFF persistence is unchanged.

Validation

72 automated tests, TypeScript checks, frontend build and ZIP verification passed, including regression tests for external installation recovery and preserving runtime failures. Tests use mocked Linux services; this fix has not been validated in a live Gaming Mode session.

v0.2.2 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 04 Oct 12:41

Changes

  • Add Tools → Install helper to install the bundled Zapret2 helper directly from the plugin.
  • Automatically detect the non-root Decky account. Linux handles administrator authentication through pkexec; the plugin never collects or stores your password.
  • Keep status responsive during setup, prevent duplicate installation requests, and report cancelled authentication, unavailable authentication dialogs and installation failures.
  • Preserve the ON/OFF setting across reboot and power cycles from v0.2.1.

Install

Download decky-egpu-helper.zip and install it using Decky's ZIP installation option. Open Tools → Install helper, approve the Linux administrator prompt, then turn DPI bypass ON if wanted. New helper installations default OFF.

The install button requires x86_64 Linux, pkexec and a working polkit authentication agent for the calling session, plus the helper's Python/systemd/nftables/kernel prerequisites. Gaming Mode or service-hosted Decky may not provide an authentication dialog. If no prompt is available, try Desktop Mode or follow the terminal setup in the included README. Missing nftables still requires installation through your distribution's package mechanism.

Existing helper installations are not overwritten. A working v0.2.1 helper does not need reinstalling for this UI update. Development v0.2.0 helper installations still require the migration described in the README.

Validation

69 automated tests, TypeScript checks, frontend build and ZIP/runtime checksum verification passed. Authentication, systemd and firewall behavior use mocked tests; the native authentication dialog, live Linux/Decky behavior and ISP effectiveness still need testing on the device. Decky remains non-root.

v0.2.1 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 04 Oct 12:35

Changes

  • Add a Zapret2 DPI bypass toggle for TCP HTTP/HTTPS in Tools.
  • Remember ON/OFF across reboot and power cycles. The system service restores ON without opening Decky; OFF stays OFF.
  • Show saved preference separately from actual runtime status and report service failures.
  • Keep Decky non-root, with narrowly scoped start/stop permission for the dedicated helper service.
  • Bundle the pinned upstream Zapret2 v1.0.5.2 runtime with SHA-256 verification and its license. No runtime downloads or automatic updates.

Install

Download decky-egpu-helper.zip and install using Decky's ZIP installation option.

The Zapret2 helper also requires one-time installation on x86_64 Linux. Extract the ZIP, open egpu-gamescope/zapret2, and run:

sudo /usr/bin/python3 install.py --user YOUR_DECKY_USER

Replace YOUR_DECKY_USER with the non-root account running Decky. See the included README for nftables/systemd/polkit prerequisites, diagnostics and removal instructions.

If you installed the development 0.2.0 helper, remove it using the README instructions and install the new helper once; updating the ZIP alone does not update the privileged service. New installations default OFF; select ON to enable automatic restoration after reboot.

Validation and limits

62 automated tests, TypeScript checks, frontend build and ZIP/runtime checksum checks passed. Systemd and firewall tests use mocks; live Linux/Decky behavior, reboot restoration and ISP effectiveness still need device validation. The initial preset handles TCP ports 80/443, not QUIC or DNS, and is not a VPN. Checksums pin runtime bytes; they are not a complete security audit.

v0.1.8 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 16 Sep 11:42

Changes

  • Put Connection and eGPU details on the next line under the status label.
  • Use Field childrenLayout="below" instead of description, so dock/USB/link no longer stack as leftover left-column text.
  • Keep Refresh and Restart full width. Backlight toggle still has no subtitle.

Install on your handheld

Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.

Validation

37 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed.

v0.1.7 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 16 Sep 11:31
06fec5c

Changes

  • Rename the first section from Thunderbolt / USB4 to Connection.
  • Status is the only strong line. Host, USB generation, and link sit on one muted description.
  • Keep Refresh and Restart full width.
  • Drop all subtitle copy under Force off internal backlight.

Install on your handheld

Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.

Validation

37 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed.

v0.1.6 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 16 Sep 11:11
f6bd163

Changes

  • Reorder the QAM: Thunderbolt first, eGPU plus Restart second, Tools last.
  • Thunderbolt leads with Authorized. Dock name, link, and power sit under it. GPU ready lives only in eGPU.
  • Shorten GPU names to the SKU (RX 6800 XT) instead of the full lspci string.
  • Add a Tools toggle to force the internal panel backlight off. Preference is remembered, reapplies on plugin start, and keeps writing 0 while the toggle is on. It does not auto-restore on unplug.
  • The plugin stays non-root and skips any backlight node on 1002:73ff. Permission or missing-node errors disable the toggle instead of claiming success.

Install on your handheld

Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.

Validation

37 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live backlight behavior still needs verification on Ally hardware.

v0.1.5 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 16 Sep 06:54

Changes

  • Fill the eGPU name from lspci -Dnn when sysfs has no marketing label.
  • Match only PCI ID 1002:73ff. The Ally iGPU is ignored.
  • Cache that name for 5 seconds so the 2-second PCI poll does not spam lspci.
  • If lspci has no matching line, the panel still shows GPU instead of inventing a model.

Install on your handheld

Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.

Typical SteamOS name looks like Navi 21 [Radeon RX 6800/6800 XT / 6900 XT], not a store SKU.

Validation

32 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI still needs verification on Ally hardware.

v0.1.4 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 16 Sep 06:46

Changes

  • Show the GPU name from sysfs when available, not PCI IDs.
  • Distinguish GPU ready, On PCI · Driver not ready, and GPU not on PCI.
  • Thunderbolt line is Authorized · GPU ready or Authorized · GPU not on PCI.
  • Show compact link speed (40 Gb/s, or different RX/TX) and Power only if boltctl reports them.
  • Rename the action to Restart. Thunderbolt heading is Thunderbolt / USB4.

Install on your handheld

Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.

GPU ready is PCI + amdgpu, not proof Gamescope is rendering on the eGPU. Power is omitted when boltctl has no power field.

Validation

30 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI still needs verification on Ally hardware.

v0.1.3 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 16 Sep 06:29

Changes

  • Parse boltctl type / name / uuid / status anywhere on a line, including SteamOS C-locale ? prefixes, CRLF, and junk before the key.
  • Ignore timestamp lines such as authorized: and connected:.
  • If parsing still fails, show a short raw-output preview instead of only "Unrecognized boltctl output".
  • Refresh still loads boltctl on demand and runs lspci -Dnn after an authorized Thunderbolt device. It does not restart Gamescope.

Install on your handheld

Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.

v0.1.2 could show PCI Connected while Thunderbolt said Unrecognized. After this install, Refresh should show Intel TBT5 Dock as Authorized. If it still fails, send the preview text from the plugin.

Validation

28 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI and display hotplug still need verification on Ally hardware.

v0.1.2 - eGPU Helper

Choose a tag to compare

@M15t M15t released this 16 Sep 06:15

Changes

  • Parse SteamOS/C-locale boltctl list output that replaces tree characters with ?.
  • Stop automatic boltctl polling. Status loads on panel open and when you press Refresh.
  • Refresh runs /usr/bin/lspci -Dnn after a Thunderbolt device is authorized, matching the PCI poke that makes this eGPU appear. It does not restart Gamescope.
  • PCI scan errors are shown separately and do not hide Thunderbolt status.

Install on your handheld

Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode. No pnpm or local build is needed.

Validation

26 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI, display hotplug, and Gamescope restart still need verification on Ally hardware.

Authorized Thunderbolt is not proof the GPU is enumerating. Restarting Gamescope may close running games. Save first.