Skip to content

Add decky-loader and nodejs#2802

Draft
gio3k wants to merge 5 commits into
ROCKNIX:nextfrom
gio3k:dev/gio/decky-loader
Draft

Add decky-loader and nodejs#2802
gio3k wants to merge 5 commits into
ROCKNIX:nextfrom
gio3k:dev/gio/decky-loader

Conversation

@gio3k

@gio3k gio3k commented May 28, 2026

Copy link
Copy Markdown
Contributor

Adds the decky-loader and nodejs packages

Node is being used to build the frontend for decky-loader, so it's only used as a host package currently
It can be built for the target though

note: As this is mostly host side changes, I'm not sure if there are libs in my toolchain left from previous attempts... please build this first before merge!!

AI Usage

While ROCKNIX doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? NO

@tiopex tiopex self-assigned this May 28, 2026
Comment thread projects/ROCKNIX/packages/devel/nodejs/package.mk
gio3k added 3 commits June 2, 2026 13:32
We need Node on the host to build decky-loader's frontend.

This package supports building for target anyways though!

Signed-off-by: Gianni Spadoni <me@gio.blue>
Needed for decky-loader.
Our Python3 build was stripped down, we can relax that a bit now

Target build size didn't go up in my testing.

Notably, the below line has been removed from post_makeinstall_target
`python_compile ${PKG_INSTALL_PATH_LIB}`

With the new configure options, this was breaking the install and
causing a FS codec error, need to look into this

Signed-off-by: Gianni Spadoni <me@gio.blue>
Adds decky-loader as a package.
Stores plugins in "/storage/.config/decky-loader/plugins"

Requires:
nodejs:host (for frontend building) and
Python3 (for the backend)

Signed-off-by: Gianni Spadoni <me@gio.blue>
@gio3k gio3k force-pushed the dev/gio/decky-loader branch from fd923ae to c9f39da Compare June 2, 2026 05:35
@tiopex tiopex added this pull request to the merge queue Jun 2, 2026
@tiopex tiopex removed this pull request from the merge queue due to a manual request Jun 2, 2026
@tiopex

tiopex commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Shouldn't this be a dependency of the Steam package?

Compiles decky-loader when using the Steam package
@gio3k

gio3k commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

Yes, added that now - not sure if it even got built on the pr-approval workflow because nothing depended on it, my bad

@tiopex tiopex assigned tiopex and unassigned tiopex Jun 2, 2026
@tiopex

tiopex commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Checked, is decky should appear in steam?

@gio3k

gio3k commented Jun 4, 2026

Copy link
Copy Markdown
Contributor Author

Should show up in the quick access menu, can you check if ~/.steam/steam/.cef-enable-remote-debugging exists?

@gio3k

gio3k commented Jun 4, 2026

Copy link
Copy Markdown
Contributor Author

I had a line in /usr/bin/decky-backend.sh that created that file automatically but it's gone now - it must've been lost during a rebase

If Decky works for you after creating it, I can commit a fix and we can just skip the test builds

(alternatively we can just add -cef-enable-debugging to the Steam launch params if you'd like)

@tiopex

tiopex commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Ok, but now in decky general tab there is: "an error occured while rendering this content." and buttons: restart decky, steam or disable decky

@gio3k

gio3k commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

Decky needs to be updated from v3.2.3 -> v3.2.4 to handle the new Steam UI changes

Worth mentioning that plugins would still work even if the plugin manager UI (from the quick access menu) isn't

@gio3k

gio3k commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

If this is a problem in the future and Steam UI changes break the Decky UI often before Rocknix stable releases then we can look into having Decky update itself on device (which should be pretty easy, as it's running with nodejs + python3)

Fixes Steam UI issues

Signed-off-by: Gianni Spadoni <me@gio.blue>
@tiopex

tiopex commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

yes, update would be fine

@gio3k

gio3k commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

SteamDeckHomebrew/decky-loader#914

@AAGaming00

AAGaming00 commented Jun 9, 2026

Copy link
Copy Markdown

@gio3k please consider shipping our release builds (which i see you are adding arm64 support to) with our updater instead of packaging your own builds unless they can be automatically or quickly updated to match our releases, decky needs fast updates to keep up with steam and unless you can clearly disclaim that your builds are unofficial and unsupported we do not want the extra support burden of being put in third party distro packages with their own update schedules.

@AAGaming00

Copy link
Copy Markdown

also dont make your steam package depend on it, decky should be opt-in

PKG_VERSION="v22.22.3"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/nodejs/node"
PKG_URL="${PKG_SITE}/archive/refs/tags/${PKG_VERSION}.tar.gz"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing PKG_DEPENDS_HOST

# strip
chmod u+w ${INSTALL}/usr/lib/libpython*.so.*
debug_strip ${INSTALL}/usr
} No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain the changes to this package please as you have made a number of changes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The post_makeinstall_target step is the same, just with python_compile ${PKG_INSTALL_PATH_LIB} replaced with a delete pycaches step

I'm not sure why but the python_compile step was causing Python on the target to crash instantly with a FS codec error (when the host has these build support changes)

The PKG_CONFIGURE_OPTS_HOST is mostly the same, just adding back pyc-build and other stuff for building packages (host side)

I'm not sure why the configuration for the host side was so stripped down, I understand why the target would be though

mkdir -p ${INSTALL}/usr/bin/
cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin/

chmod +x ${INSTALL}/usr/bin/*

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not necessary if you have already made executable in your commit

@gio3k

gio3k commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

@AAGaming00 Yeah I'd definitely rather use the official builds if we can get that ARM64 PR merged, I'll put this commit into draft for now

If it doesn't get merged I can rework this package to clone the Decky repo on-device, wouldn't be too different to how we're doing it here anyways, we aren't using PyInstaller / poetry

also dont make your steam package depend on it, decky should be opt-in

Makes sense, the reason I'd like to have Decky preinstalled is because the ARM64 version of Steam is sorta broken when it comes to Proton, maybe you have some thoughts on this

If you install Steam on Rocknix, it opens into a normal Steam Deck like experience at first

The problem is that if you try to launch a game at this point, you're not using Proton 11 (arm64) which is the best experience in 95% of cases, you'll be using Proton completely through FEX (it doesn't sound like a huge difference but it is on these chips)

The second problem is that if you change the compatibility tool manually to Proton 11 arm64, games just won't boot at all - you have to manually search and install Proton 11 arm64 and Steam Linux Runtime 4 arm64

This makes the Steam flow (if you want a good experience):

  1. boot Rocknix
  2. tools -> install Steam
  3. open Steam, log in
  4. search for Proton 11 arm64, install it
  5. search for Steam Linux Runtime 4 arm64, install it
  6. go to steam settings, turn on developer mode
  7. go to developer settings, change the global compat tool to proton 11 arm64

I wrote a small tool to fix this UX up - I'd like it to be install steam -> play games

Screencast_20260528_170934.mp4

I guess I could rewrite this tool to just run directly in Steam's devtools? Some of it could run through the devtools console directly (apart from the UI ofc), but maybe you have some recommendations for how I could approach this?

@gio3k gio3k marked this pull request as draft June 10, 2026 04:53
@tiopex

tiopex commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

@gio3k Maybe add installation of the latest Decky to the Steam installation script, and provide a separate Decky uninstall script for cases where Decky breaks after a Steam UI update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants