Compare commits

...

8 Commits

Author SHA1 Message Date
AAGaming 670ae7d8a7 OOPS
Builder Win / Build PluginLoader for Win (push) Has been cancelled
Builder / Build PluginLoader (push) Has been cancelled
Push Updated Plugin Stub to Template / copy-stub (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Type Check / Run type checkers (push) Has been cancelled
2025-07-13 02:42:16 -04:00
AAGaming 01ec1663bc Merge branch 'main' of github.com:SteamDeckHomebrew/decky-loader 2025-07-13 02:37:34 -04:00
AAGaming b840d75cb8 certified pnpm moment 2025-07-13 02:37:03 -04:00
AAGaming e22ba20d13 Fix ModalRoot component on beta (#792) 2025-07-13 02:33:22 -04:00
AAGaming bff410d98b chore(readme): update to reflect dumb new pnpm change 2025-07-13 02:26:51 -04:00
AAGaming 7188db9877 feat(dev): make deckdebug.sh configurable
so i can use it on windows :3
2025-07-13 02:20:42 -04:00
AAGaming 02e8640ad4 bump @decky/ui to fix ConfirmModal component (#789)
Builder Win / Build PluginLoader for Win (push) Has been cancelled
Builder / Build PluginLoader (push) Has been cancelled
Push Updated Plugin Stub to Template / copy-stub (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Type Check / Run type checkers (push) Has been cancelled
Co-Authored-By: shadow <81448108+shdwmtr@users.noreply.github.com>
2025-07-08 23:30:47 -04:00
AAGaming e63983dba9 Fix updater reload freezing (#786)
Builder Win / Build PluginLoader for Win (push) Has been cancelled
Builder / Build PluginLoader (push) Has been cancelled
Push Updated Plugin Stub to Template / copy-stub (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Type Check / Run type checkers (push) Has been cancelled
2025-07-01 15:24:52 -04:00
10 changed files with 27 additions and 22 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ jobs:
working-directory: ./frontend
run: |
npm i -g pnpm
pnpm i --frozen-lockfile
pnpm i --frozen-lockfile --dangerously-allow-all-builds
- name: Build JS Frontend 🛠️
working-directory: ./frontend
+1 -1
View File
@@ -43,7 +43,7 @@ jobs:
working-directory: ./frontend
run: |
npm i -g pnpm
pnpm i --frozen-lockfile
pnpm i --frozen-lockfile --dangerously-allow-all-builds
- name: Build JS Frontend 🛠️
working-directory: ./frontend
+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
working-directory: frontend
run: |
npm i -g pnpm
pnpm i --frozen-lockfile
pnpm i --frozen-lockfile --dangerously-allow-all-builds
- name: Run prettier (TypeScript)
working-directory: frontend
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
working-directory: frontend
run: |
npm i -g pnpm
pnpm i --frozen-lockfile
pnpm i --frozen-lockfile --dangerously-allow-all-builds
- name: Run pyright (Python)
uses: jakebailey/pyright-action@v1
+1 -1
View File
@@ -95,7 +95,7 @@ Please consult [the wiki page regarding development](https://wiki.deckbrew.xyz/e
1. In your clone of the repository, run these commands.
```bash
cd frontend
pnpm i
pnpm i # NOTE: you may need to approve esbuild's build script with pnpm approve-builds
pnpm run build
```
1. If you are modifying the UI, these commands will need to be run before deploying the changes to your Steam Deck.
@@ -11,7 +11,7 @@ logger = logging.getLogger("localplatform")
# subprocess._ENV
ENV = Mapping[str, str]
ProcessIO = int | IO[Any] | None
async def run(args: list[str], stdin: ProcessIO = DEVNULL, stdout: ProcessIO = PIPE, stderr: ProcessIO = PIPE, env: ENV | None = None) -> tuple[Process, bytes | None, bytes | None]:
async def run(args: list[str], stdin: ProcessIO = DEVNULL, stdout: ProcessIO = PIPE, stderr: ProcessIO = PIPE, env: ENV | None = {"LD_LIBRARY_PATH": ""}) -> tuple[Process, bytes | None, bytes | None]:
proc = await create_subprocess_exec(args[0], *(args[1:]), stdin=stdin, stdout=stdout, stderr=stderr, env=env)
proc_stdout, proc_stderr = await proc.communicate()
return (proc, proc_stdout, proc_stderr)
@@ -146,6 +146,7 @@ async def service_active(service_name : str) -> bool:
async def service_restart(service_name : str, block : bool = True) -> bool:
await run(["systemctl", "daemon-reload"])
logger.info("Systemd reload done.")
cmd = ["systemctl", "restart", service_name]
if not block:
@@ -272,7 +273,7 @@ async def close_cef_socket():
logger.info(f"Closing CEF socket with PID {pid} and FD {fd}")
# Use gdb to inject a close() call for the socket fd into steamwebhelper
gdb_ret, _, _ = await run(["gdb", "--nx", "-p", pid, "--batch", "--eval-command", f"call (int)close({fd})"], env={"LD_LIBRARY_PATH": ""})
gdb_ret, _, _ = await run(["gdb", "--nx", "-p", pid, "--batch", "--eval-command", f"call (int)close({fd})"])
if gdb_ret.returncode != 0:
logger.error(f"Failed to close CEF socket with gdb! return code: {str(gdb_ret.returncode)}", exc_info=True)
+1 -4
View File
@@ -14,7 +14,6 @@ import zipfile
from aiohttp import ClientSession
from . import helpers
from .injector import get_gamepadui_tab
from .settings import SettingsManager
if TYPE_CHECKING:
from .main import PluginManager
@@ -142,8 +141,6 @@ class Updater:
async def download_decky_binary(self, download_url: str, version: str, is_zip: bool = False, size_in_bytes: int | None = None):
download_filename = "PluginLoader" if ON_LINUX else "PluginLoader.exe"
download_temp_filename = download_filename + ".new"
tab = await get_gamepadui_tab()
await tab.open_websocket()
if size_in_bytes == None:
size_in_bytes = 26214400 # 25MiB, a reasonable overestimate (19.6MiB as of 2024/02/25)
@@ -186,7 +183,6 @@ class Updater:
logger.info("Updated loader installation.")
await self.context.ws.emit("updater/finish_download")
await tab.close_websocket()
await self.do_restart()
async def do_update(self):
@@ -244,6 +240,7 @@ class Updater:
await self.download_decky_binary(download_url, version, size_in_bytes=size_in_bytes)
async def do_restart(self):
logger.info("Restarting loader for update.")
await service_restart("plugin_loader", block=False)
async def do_shutdown(self):
+1 -1
View File
@@ -47,7 +47,7 @@
}
},
"dependencies": {
"@decky/ui": "^4.10.2",
"@decky/ui": "^4.10.4",
"compare-versions": "^6.1.1",
"filesize": "^10.1.2",
"i18next": "^23.11.5",
+5 -5
View File
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@decky/ui':
specifier: ^4.10.2
version: 4.10.2
specifier: ^4.10.4
version: 4.10.4
compare-versions:
specifier: ^6.1.1
version: 6.1.1
@@ -218,8 +218,8 @@ packages:
'@decky/api@1.1.1':
resolution: {integrity: sha512-R5fkBRHBt5QIQY7Q0AlbVIhlIZ/nTzwBOoi8Rt4Go2fjFnoMKPInCJl6cPjXzimGwl2pyqKJgY6VnH6ar0XrHQ==}
'@decky/ui@4.10.2':
resolution: {integrity: sha512-dfY/OEI/rhG4d3Tvx4Y3TLmBrJ+nAm2RTbkoOJ3VAglql3Lu7RY2ixeDFbs21ZWWzWh/C+9dAQKjQ4lx4d1f2g==}
'@decky/ui@4.10.4':
resolution: {integrity: sha512-swgC4IVtQzZVw8dtP/iztpNYUl1eR0dxWfiMpswY8YglDsBn4ntspbL91Ic4WgxvkOEMSpsIs+zkVtjHE9zi3A==}
'@esbuild/aix-ppc64@0.20.2':
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
@@ -2295,7 +2295,7 @@ snapshots:
'@decky/api@1.1.1': {}
'@decky/ui@4.10.2': {}
'@decky/ui@4.10.4': {}
'@esbuild/aix-ppc64@0.20.2':
optional: true
+12 -5
View File
@@ -20,7 +20,10 @@ if [ -z "$INSIDE_NIX_RANDOMSTRING" ] && command -v nix &> /dev/null; then
exit $?
fi
required_dependencies=(websocat jq curl chromium)
[[ -f "$HOME/.config/deckdebug/config.sh" ]] && source "$HOME/.config/deckdebug/config.sh"
CHROMIUM="${CHROMIUM:-chromium}"
required_dependencies=(websocat jq curl $CHROMIUM)
# Check if the dependencies are installed
for cmd in "${required_dependencies[@]}"; do
@@ -30,7 +33,7 @@ for cmd in "${required_dependencies[@]}"; do
fi
done
chromium --remote-debugging-port=9222 &
$CHROMIUM --remote-debugging-port=9222 &
sleep 2
ADDR=$1
@@ -49,10 +52,14 @@ while :; do
TARGET=$NEWTARGET
TARGETURL="http://$ADDR/devtools/inspector.html?ws=$ADDR/devtools/page/$TARGET"
LOCALTARGET=$(echo '{"id": 1, "method": "Target.createTarget", "params": {"background": true, "url": "'$TARGETURL'"}}
echo '{"id": 1, "method": "Target.createTarget", "params": {"background": true, "url": "'$TARGETURL'"}}
{"id": 2, "method": "Target.closeTarget", "params": {"targetId": "'$LOCALTARGET'"}}' \
| websocat ws://$LOCAL/devtools/page/$LOCALTARGET \
| jq -r '.result.targetId')
| websocat -t ws://$LOCAL/devtools/page/$LOCALTARGET
sleep 2
LOCALTARGETS=$(curl -s http://$LOCAL/json/list)
LOCALTARGET=$(jq -r '.[] | select(.title | startswith("DevTools")) | .id' <<< "$LOCALTARGETS")
echo started devtools at $LOCALTARGET
fi